Virtualized Gaming: Nvidia Cards, Part 2: GeForce, Quadro, and GeForce Modified into a Quadro – Higher End Fermi Models

Following the success with QuadForce 2450 modification (GeForce GTS450 -> Quadro 2000), I went on to investigate whether the same modification will work on the GTX470 to turn it into a Quadro 5000 and on a GTX480 to turn it into a Quadro 6000. Modifying a GTX580 into a somewhat obscure Quadro 7000 was also undertaken.

Model Core Configuration Memory Channels Memory
GeForce GTX470 448:56:40 5x 1.25GB
GeForce GTX480 480:60:48 6x 1.50GB
Quadro 5000 352:44:40 5x 2.50GB
Quadro 6000 448:56:48 6x 6.00GB

In all three cases, the modifications were successful, and they all worked as expected – features like VGA passthrough work on the 5000 and 6000 models and gaming performance is excellent, as you would expect – I can play Crysis at 3840×2400 in a virtual machine. Again, the extra GL functions aren’t there (if you compare the output of glxinfo between a real Quadro and a QuadForce, you will find a number of GL primitives missing), so some aspects of OpenGL performance are still crippled. PhysX support is also a little hit-and-miss. In a VM, on Windows 7 it seems to work on Quadro cards; on XP it appears to not be working. On bare metal on Windows XP it works. This appears to be due to the Quadro driver itself, rather than due to the cards not being genuine Quadros.

Finally, the GF100 based cards (GTX470/480) also get an extra feature enabled by the modification – second DMA channel. Normally there is a unidirectional DMA channel between the host and the card. Following the modification, the second DMA channel in the other direction is activated. This has a relatively moderate impact on gaming performance, but it can have a very large impact on performance of I/O bound number crunching applications since it increases the memory bandwidth between the card and the system memory (you can read and write to/from the GPU memory at the same time). Compare the CUDA-Z Memory report for the GTX470 before and after modifying it into a Quadro 5000 – GTX470 only has a unidirectional async memory engine, but after modifying it the engine becomes bidirectional:

GTX470 CUDA-Z MemoryQuadForce 5000 CUDA-Z Memory

The same happens on the GTX480 – it’s async engine also becomes bidirectional after modification.

Quadro 7000 is a little different from the other two. It doesn’t have dual DMA channels, and Nvidia don’t list it as MultiOS capable. The drivers do not do the necessary adjustments to make it work with VGA passthrough. That means that, unfortunately, the gain from modifying a GTX580 is questionable in terms of what you will gain. Note, however, that the Quadro 7000 was never aimed at the virtualization market; it was only available as a part of the QuadroPlex 7000 product – an external GPU enclosure designed for driving multiple monitors for various visualisation work. Hence the lack of MultiOS support on it.

Here is how the QuadForce 5470 does in SPECviewperf (GTX470 = 100%):

QuadForce 5470 SPECviewperf

Compared to the QuadForce 2450, the performance improvements are more modest – the only real difference is observable in the lightwave benchmark.

Unfortunately, my QuadForce 6480 is currently in use, so I cannot get measurements from it, but since the they are both based on the GF100 GPU, the results are expected to be very similar.

On the QuadForce 7580 there was no observed SPEC performance improvement.

I have since acquired a Kepler Based 4GB GTX680 and successfully modified it into Quadro K5000. Modifying it into a Grid K2 also works, but there don’t appear to be any obvious advantages from doing so at the moment (K5000 works fine for virtualization passthrough, even though it wasn’t listed as MultiOS last time I checked). This QuadForce K5680 is why my GTX470 became free for testing again. More on Quadrifying Keplers in the next article. I also have a GTX690 now (essentially two 680s on the same PCB), which will be replacing the QuadForce 6480, so this will also be written up in due time. Unfortunately, however, quadrifying Keplers in most cases requires some hardware as well as BIOS modifications. I will post more on all this soon, along with a tutorial on soft-modding.

15 thoughts on “Virtualized Gaming: Nvidia Cards, Part 2: GeForce, Quadro, and GeForce Modified into a Quadro – Higher End Fermi Models

  1. How is gamingperformance affected by modifying that GTX 680 into a Quadro? Is it crippled, better or the same?
    How much of a performance increase is it in CAD applications?

    I’m patiently awaiting your how-to guides! :)

  2. Any news on this guide? I know how it is trying to find time to write blog posts. So would you have anywhere to direct me to find more on this? I currently have a friend with two gts 450’s that would like to convert to Quadro 2000’s for virtualization. I also have GTX 660’s that I would love looking into modifying so I could virtualize my desktop. I feel as if my 32gb ram isn’t really being utilized only running one system. Thanks for any help.

    • Sorry, I haven’t gotten around to it yet – real life gets in the way of fun projects. :(
      You might be able to modify the 660 into a K4000, but I don’t think anybody has tried this, or located the hard-straps that you would have to modify.

    • I don’t have a 30-bit capable monitor, so I don’t think I can test it. I am also not sure if the option even exist on XP, and I only run XP64, so I cannot tell with any degree of certainty whether it works or not.

  3. Hi there,
    I’ve started searching soft-moding options for gtx470 to make it work as quadro 5000 and so far I’ve had no luck. Neither I’m gamer nor designer so I don’t have any performance expectation; I just want to test vmware svga -shared vga at home lab and would appreciated if you provide me some guideline. I can give the details whatever I’ve tried so if it is necessary as well…

    Thanks,

    Cem

  4. Hi altechnative,

    I wonder if it would also be possible to achieve vga passtrhrough by modifying the quadro drivers, since the only thing preventing my gts450 from working in my VM are the drivers… Any thoughts on that?

      • Great write up, this has been very helpful for me.

        I am trying to find a cost effective method of giving my ESXi host a graphical edge with vSGA and Horizon View. Just checking to see if you have had the time to write up how you modified the GTX480 into a Q6000? Nodding the GTX480 seems reasonable since I’m only looking for a mild increase in performance.

        • Yes, look at the more recent article on this site, it explains how to modify the BIOS. A Quadro 5000 should also work with VSGA, so you could also go with a GTX470, which is only slightly slower than a GTX480.

  5. Just wondering if modding my GTX 480 to a Quadro 6000 or Tesla would actually increase its double precision capabilities. Im interested in seeing better performance with BOINC crunching. Cheers!

    • I no longer have my GTX480, but I don’t think modifying results in any difference to double-precision performance.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>