Author Topic: [MOVED] Hacking NVidia Cards into their Professional Counterparts  (Read 384965 times)

0 Members and 6 Guests are viewing this topic.

Offline gnif

  • Supporter
  • ****
  • Posts: 350
  • Country: au
Hi All,

I did originally post this on the nvidia forums but they have silently deleted it  :--, obviously they do not like what I have found becoming public  >:D.

Update: Against my better judgement and due to my impatience I decided to try to mod my card and find the straps for GPU1 anyway, I was successful in finding the straps, but managed to kill it at the same time, see HERE for the details.

Those that wish to donate towards replacing the card that I sacrificed for the greater good, please donate HERE


Update: The GTX680 has been hacked also

Firstly I will give a bit of history for those that are unaware. NVidia's has for a long time had two ranges of cards, the GeForce for the gaming market, and Quadro for the professional market, and more recently the Tesla range for high end parallel computing stuff. As I am sure most of you would be aware, it is cheaper to manufacture a single chip and cripple it in some way for different product lines then it is to make different silicon for every product.

In the past it has been possible to convert the GeForce cards into Quadro if you could find what they call 'hardware straps' on the board and change them. These straps control the PCI Device ID that the card reports to the computer, and as such, what the drivers will allow the card to do. Recently nVidia changed the way this all works and it has not been possible for quite a few generations of cards until someone on the nVidia forums discovered that the GeForce 4xx something can be turned into its higher end card by changing the hardware strap values by means of an undocumented override in the EEPROM. They were quick to disable this by changing the drivers to look at only the hardware straps for the PCI ID.

I own a NVidia GTX 690 which I bought for two reasons, gaming, and multi monitor setup for work, NVidia made it very clear that this card would drive up to 3 screens in 2d, which it does quite nicely  :-+... under windows  :--! The tight asses have decided that if you want this feature under Linux you have to get a Quadro which has Mosaic support  :palm:. So naturally I decided to look at how mod the card, as the price difference is over $1000 between the GTX 690 and the Quadro K5000 (same GPU) and, get this... the K5000 is only single GPU and clocked some 25-30% slower then the gaming card, what a joke :-DD.

What NVidia has done is changed the way that it handles the straps, instead of just pulling the straps high or low to control the switches as they did previously, they are now read as analogue values. The scheme is as follows:

When pulling high:

5K   = 8
10K = 9
15K = A
20K = B
25K = C
30K = D
35K = E
40K = F

When pulling low I expect this to be the same, but for 7 - 0, but I did not test this as the device ID I was targeting is >= 8.

There are two tiny SMD resistors on the board, one for each nibble of the PCI Device ID byte. Originally the GTX 690 has a device id of 0x1188, so to become a Quadro K5000 this has to be changed to 0x11BA, which equates to 20K and 15K resistors. If you wanted to change it to a Tesla K10, you would want to change it to 0x118F, which equates to 5K and 40K resistors.

This will only change the rear GPU on the GTX 690, I am yet to identify the resistors to change for the front one. I would also wager a bet that the new NVidia Titan can be upgraded into the Tesla K20 using the same method.

Anyway, enough with the description, here are the photos of what to change:



And the results:




Edit:
For those that are just spewing trash on HaD comments without doing a little research... the parts are identical, changing the Device ID just makes the binary blob advertise the additional features to the system, and enables them. It does NOT affect the clock speeds, and will not make the card faster for general day to day work unless you are using the specialised software that takes advantage of these 'professional' features. Changing the ID does not affect the clock speeds as they are configured by the BIOS which we are not touching.

And stock, the GTX690 is clocked FASTER then the K5000 and the Tesla K10, so you are getting a faster card in comparison, not making the GTX690 faster.

I repeat, this does NOT make your GTX 6XX card faster, nor does it make it slower.

Donations:
To give credit to those that have donated and to keep things fair, the following are the current donations I have received to go towards NVidia hardware:
  • Neo_Moucha - $50
  • unknown - $50
  • unknown - $50
  • some sexy Jew beast - $100
  • airthimble - $20
  • Erik Tande - $20
  • victorngcm - $10
  • Rivhan - $250
  • unknown - $10
  • ray78 - $50
  • bdx - $50
  • darkomenz - $50
  • unknown - $50
  • unknown - $50
  • OJT - $50
  • winjet - $50
  • unknown - $10
  • CDeLorme - $50
  • Various others - $100
Total: $1070
Target: $1000 (EVGA GTX 690)
Remaining: $-70

Thank you everyone, the card has been replaced, I will see about getting a mod of my 690 up here soon
« Last Edit: October 18, 2013, 02:46:03 PM by gnif »
Linux Engineer/Software Developer + wannabe EE
gnif@github | EE Wishlist

Offline Strada916

  • Regular Contributor
  • *
  • Posts: 183
  • Country: au
Re: Hacking NVidia Cards into their Professional Counterparts
« Reply #1 on: March 15, 2013, 03:55:17 PM »
Great work there gnif. Have they sorted out the "Your video card has stopped responding."  |O errors. I thought for ages it was my system. Until 6 months ago when I started to work for a new company who have all Lenovo computers. These machines too gave this error message. This was all under windows7. Sorry I diress, great work there non the less.  :-+
The Bone, the Off-White, the Ivory or the Beige?

Offline gnif

  • Supporter
  • ****
  • Posts: 350
  • Country: au
Re: Hacking NVidia Cards into their Professional Counterparts
« Reply #2 on: March 15, 2013, 03:58:04 PM »
Great work there gnif. Have they sorted out the "Your video card has stopped responding."  |O errors. I thought for ages it was my system. Until 6 months ago when I started to work for a new company who have all Lenovo computers. These machines too gave this error message. This was all under windows7. Sorry I diress, great work there non the less.  :-+

Thanks :) Aparrently it is fixed in the later drivers, but I doubt it, I had to go to a 6 month old driver to get away from all sorts of issues with SLI and surround vision under windows.
Linux Engineer/Software Developer + wannabe EE
gnif@github | EE Wishlist

Offline amyk

  • Super Contributor
  • ***
  • Posts: 2930
Re: Hacking NVidia Cards into their Professional Counterparts
« Reply #3 on: March 15, 2013, 10:52:53 PM »
Do you mean the "front" one, are the strapping resistors really closer to the other GPU, or is your computer back to front?

Carefully comparing the PCBs (or suitable images thereof) of the 690 with the K5000 might yield useful results.

Offline gnif

  • Supporter
  • ****
  • Posts: 350
  • Country: au
Re: Hacking NVidia Cards into their Professional Counterparts
« Reply #4 on: March 15, 2013, 10:59:33 PM »
Do you mean the "front" one, are the strapping resistors really closer to the other GPU, or is your computer back to front?

Carefully comparing the PCBs (or suitable images thereof) of the 690 with the K5000 might yield useful results.


Sorry, to be clear, when looking at a card, the rear connectors I have always seen as the front of the card. To be specific, it is GPU2 that can be changed. Comparing to a K5000 will not help as it does not have two GPUs on it. Comparing to a Tesla K10 may help as the use the same reference design.
Linux Engineer/Software Developer + wannabe EE
gnif@github | EE Wishlist

Offline airthimble

  • Newbie
  • Posts: 3
Re: Hacking NVidia Cards into their Professional Counterparts
« Reply #5 on: March 16, 2013, 01:37:53 AM »
gnif,

I saw your post on the cuda developer forums, which got deleted, then I tracked your username to overclock.net and finally made my way here. I am interested in exploring this with some of the single gpu cards. I am curious as to how you found this mod, were you able to get the schematics for the nvidia reference design?

Offline Ed.Kloonk

  • Frequent Contributor
  • **
  • Posts: 577
  • Country: au
Re: Hacking NVidia Cards into their Professional Counterparts
« Reply #6 on: March 16, 2013, 03:24:05 AM »
Ole Linus has had a bit to say in regards to Nvidia. And he's dead right. A while back Nvidia was the shit for Linux with it's tolerable binary blob drivers. But once they got a rep for being Linux friendly, they seemed to do everything possible to back away from that position. Maybe M$ scared them?

Further, I have been watching the history of the Amiga computer and the demise of Commodore. How great hardware combined with a great user community can still be destroyed by a few business-men fools.

IMO, nvidia is following in Commodore's footsteps and will probably end up just as bankrupt also.


Offline olsenn

  • Frequent Contributor
  • **
  • Posts: 994
Re: Hacking NVidia Cards into their Professional Counterparts
« Reply #7 on: March 16, 2013, 03:29:00 AM »
You've got balls for taking a soldering iron to a GTX-690!

Offline Kaluriel

  • Contributor
  • Posts: 33
  • Country: gb
Re: Hacking NVidia Cards into their Professional Counterparts
« Reply #8 on: March 16, 2013, 03:33:23 AM »
I didn't even realise nVidia was doing this. Years ago it use to just be broken parts that were disabled, and now they're just purposely disabling parts. For shame

Offline gnif

  • Supporter
  • ****
  • Posts: 350
  • Country: au
Re: Hacking NVidia Cards into their Professional Counterparts
« Reply #9 on: March 16, 2013, 08:42:46 AM »
gnif,

I saw your post on the cuda developer forums, which got deleted, then I tracked your username to overclock.net and finally made my way here. I am interested in exploring this with some of the single gpu cards. I am curious as to how you found this mod, were you able to get the schematics for the nvidia reference design?

No, no schematic, what I did was look for resistors that looked like they had an alternative position, have a look at the photos and you will see what I mean. Any that I suspected of being a strap I used a meter to check if the resistor was connected to ground of 3.3V directly, and looked where the general traces were going in the area. If they went towards the GPU and connected to one of the rails it was a pretty good bet that it was a hard strap.

Ole Linus has had a bit to say in regards to Nvidia. And he's dead right. A while back Nvidia was the shit for Linux with it's tolerable binary blob drivers. But once they got a rep for being Linux friendly, they seemed to do everything possible to back away from that position. Maybe M$ scared them?

I watched that a few days ago, couldn't agree more with him.

You've got balls for taking a soldering iron to a GTX-690!

No, just anger at NVidia for not clearly advertising that surround does not work under linux.

I didn't even realise nVidia was doing this. Years ago it use to just be broken parts that were disabled, and now they're just purposely disabling parts. For shame

Agreed, NVidia are the Microsoft of the hardware industry.
Linux Engineer/Software Developer + wannabe EE
gnif@github | EE Wishlist

Offline gnif

  • Supporter
  • ****
  • Posts: 350
  • Country: au
Re: Hacking NVidia Cards into their Professional Counterparts
« Reply #10 on: March 16, 2013, 09:06:16 AM »
I would wager a bet that these are the straps on the EVGA 670 and 680 (they use the same PCB), I would say the top set will me more likely to contain the PCI Deivce ID straps. The lower set I would only investigate if I couldn't find it it in the top set as they look less like straps.

A quick and simple way I found to test was to take a 2.2K resistor, tack the wire onto the board without removing the resistor and pulling it to ground or 3.3V+. Make a DOS bootable USB device and throw nvflash onto it, then running 'nvflash -a' will show you what the current ID is without having to boot all the way into windows/linux.
Linux Engineer/Software Developer + wannabe EE
gnif@github | EE Wishlist

Offline gnif

  • Supporter
  • ****
  • Posts: 350
  • Country: au
Re: Hacking NVidia Cards into their Professional Counterparts
« Reply #11 on: March 16, 2013, 09:10:33 AM »
And these might be them on the EVGA GTX 660
Linux Engineer/Software Developer + wannabe EE
gnif@github | EE Wishlist

Offline toster

  • Contributor
  • Posts: 28
  • Country: lv
Re: Hacking NVidia Cards into their Professional Counterparts
« Reply #12 on: March 17, 2013, 10:34:39 PM »
Hum.. what happens if I get the device id wrong? If the driver doesn't work with the chip that's on the card? Does it simply fall back to "software rendering" or can something worse happen?

I have a 9600GT I could mess around with, however the chip is G94b. It looks like the counterpart is Quadro FX 1800 which has a G94. The missing 'b' bothers me.
« Last Edit: March 17, 2013, 11:49:49 PM by toster »

Offline Zibri

  • Newbie
  • Posts: 4
  • Country: it
    • Zibri's Blog
Re: Hacking NVidia Cards into their Professional Counterparts
« Reply #13 on: March 19, 2013, 04:41:31 AM »
hmm very interesting...
I wonder if a similar approach can enable disabled cores on x70 cards to make them x80 (660/670 >> 680   or 560/570 >> 580).

Offline gnif

  • Supporter
  • ****
  • Posts: 350
  • Country: au
Re: Hacking NVidia Cards into their Professional Counterparts
« Reply #14 on: March 19, 2013, 05:18:37 AM »
Hum.. what happens if I get the device id wrong? If the driver doesn't work with the chip that's on the card? Does it simply fall back to "software rendering" or can something worse happen?

I have a 9600GT I could mess around with, however the chip is G94b. It looks like the counterpart is Quadro FX 1800 which has a G94. The missing 'b' bothers me.

Windows will just start up in VGA mode as it does not know the card, there is no risk to the card other then botching your soldering.

hmm very interesting...
I wonder if a similar approach can enable disabled cores on x70 cards to make them x80 (660/670 >> 680   or 560/570 >> 580).

Unknown, you would have to test it, I do know however that you can change the device ID to make a card become a 670, but do not know if it disables/enabled cores.
Linux Engineer/Software Developer + wannabe EE
gnif@github | EE Wishlist


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf