DualCoder / vgpu_unlock

Unlock vGPU functionality for consumer grade GPUs.
MIT License
4.55k stars 425 forks source link

Question: Turn all GeForce cards into TCC capable devices? #48

Closed nicehashdev closed 3 years ago

nicehashdev commented 3 years ago

Hello!

Using Linux hypervisor, could your tricks be used to turn all GeForce (from Pascal and up) cards to be TCC capable for Windows Guest? This is the feature we would need. If the answer is yes, but needs modification of your code, we are prepared to pay for this project to modify our ArchLinux virtualization project we are working on.

Let me know! Thanks for your time!

KrutavShah commented 3 years ago

This tool allows you to pass vGPU to VMs on a standard consumer graphics csrd.

But, I see that you (nicehash) are a company, and we have stated in the documentation for this project that this may only be used for personal experimentation purposes and not for any commercial use whatsoever. So even if it were possible to use this tool for unlocking TCC (I highly doubt it), legality may become an issue.

Also, TCC seems to be a bit old, and Nvidia offers newer solutions that I recommend checking out, thanks.

nicehashdev commented 3 years ago

Well, the TCC is interesting for us because it solves some issues we have when virtualizing GeForces. First, the default WDDM mode is quite unstable in Windows environment, TCC GPUs don't break when using RDP and thirdly, TCC mode isn't linked with Windows virtual memory system, so any allocation of memory on GPU does not require memory commitment in sys memory, which helps us get rid of crazy necessity of having huge pagefile when system doesn't have much RAM. Virtual machine with huge page file means high disk space which makes USB mining OS solution less practical (requiring 64 GB or even 128 GB flash drive if having many GPUs). It is not that GeForced TCC would bring something new to the table, but would just made things easier and more practical.

We do not need your vGPU project, because NVIDIA recently added support for virtualization even for GeForce series and this is enough. Actually, vGPU would be less practical for mining, because we would lose ability to fine tune clocks, voltages and power utilizations which is crucial to make mining more efficient.

But because TCC is - just like vGPU - just a software limitation, I had to try to ask due to possible similarities.

KrutavShah commented 3 years ago

I’d agree with GPU pass through being the better solution for you. Of course TCC seems to be rather old and newer solutions appear to exist, and I’d recommend checking them out.

However, if you do really want to use TCC if it is a driver based solution, you can use the flag “x-pci” to pass through your GPUs with a different PCI ID, in this case the ID of a Tesla. This will allow the installation of Tesla drivers.

nicehashdev commented 3 years ago

Oh well thanks, if it is so simple. Will try this out ;)

I am not aware of any other driver solutions for Windows 10. I did find some hacked drivers for older GPUs, but we need support for new ones too, not just old.

DualCoder commented 3 years ago

I don't really understand what you are asking for. But, if you are going to use PCI pass-through to pass the GPU to a Windows guest then the answer is no, since vgpu_unlock cannot work on Windows, and the host cannot access the GPU in pass-through mode.

nicehashdev commented 3 years ago

I would only need a hack to enable TCC (instead of WDDM) for all GeForce series (not only Tesla, Quadro and Titans). This was my question. So the first question would be, how does NVIDIA driver decides whether TCC is allowed mode or not. If this is based only on PCI ID list, then PCI ID swap hack should work.

DualCoder commented 3 years ago

How does NVIDIA driver decides whether TCC is allowed mode or not.

I have no idea. But what I do know is that none of the code in vgpu_unlock will be applicable since TCC is a feature on Windows. And therefore I am closing this. The question is unrelated to the vgpu_unlock project.