Currently:

Author Topic: Hacking NVidia Cards into their Professional Counterparts  (Read 101353 times)

0 Members and 205 Guests are viewing this topic.

Online gnif

  • Member
  • ***
  • Posts: 145
  • Country: au
Hacking NVidia Cards into their Professional Counterparts
« on: March 15, 2013, 03:05:16 PM »
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.

Edit: As can be seen in the photos the straps are fairly obvious for GPU2, but there are no markings or anything obvious for GPU1, the risk to damaging my one and only card in my workstation is too high to just randomly probe around on the card. As stated further down this thread, if people want GPU1 modded also to fully convert the GTX 690 into a Dual Quadro K5000 SLI or into a Tesla K10, donations will be required to purchase an additional card for hacking on.

Those that wish to donate towards this cause may do so HERE

If the funds can be raised to get the card, I will offer to mod cards of anyone who donates $50 or more once the straps can be identified, you will just have to cover the cost of shipping the card to AU and back.


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.
« Last Edit: Yesterday at 12:49:29 AM by gnif »
Linux Engineer/Software Developer + wannabe EE
gnif@github | EE Wishlist | Donate for NVidia Research

Offline Strada916

  • Member
  • ***
  • Posts: 29
  • 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?

Online gnif

  • Member
  • ***
  • Posts: 145
  • 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 | Donate for NVidia Research

Offline amyk

  • Member
  • ***
  • Posts: 839
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.

Online gnif

  • Member
  • ***
  • Posts: 145
  • 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 | Donate for NVidia Research

Offline airthimble

  • Newbie
  • **
  • Posts: 1
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

  • Member
  • ***
  • Posts: 431
  • 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

  • Member
  • ***
  • Posts: 530
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

  • Member
  • ***
  • Posts: 21
  • 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

Online gnif

  • Member
  • ***
  • Posts: 145
  • 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 | Donate for NVidia Research

Online gnif

  • Member
  • ***
  • Posts: 145
  • 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 | Donate for NVidia Research

Online gnif

  • Member
  • ***
  • Posts: 145
  • 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 | Donate for NVidia Research

Offline toster

  • Member
  • ***
  • Posts: 26
  • 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).

Online gnif

  • Member
  • ***
  • Posts: 145
  • 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 | Donate for NVidia Research


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf