[MOVED] Hacking NVidia Cards into their Professional Counterparts - Page 1
Forum section: electronics / general

author: gnif
author_rank: Unknown
timestamp: March 15, 2013, 04:05:16 am
content: 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.Update: The GTX680 has been hacked alsoFirstly 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. 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.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 = 810K = 915K = A20K = B25K = C30K = D35K = E40K = FWhen 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 - $50unknown - $50unknown - $50some sexy Jew beast - $100airthimble - $20Erik Tande - $20victorngcm - $10Rivhan - $250unknown - $10ray78 - $50bdx - $50darkomenz - $50unknown - $50unknown - $50OJT - $50winjet - $50unknown - $10CDeLorme - $50Various others - $100Total: $1070Target: $1000 (EVGA GTX 690)Remaining: $-70Thank you everyone, the card has been replaced, I will see about getting a mod of my 690 up here soon

author: Strada916
author_rank: Frequent Contributor
timestamp: March 15, 2013, 04:55:17 am
content: Great work there gnif. Have they sorted out the "Your video card has stopped responding."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.

author: gnif
author_rank: Unknown
timestamp: March 15, 2013, 04:58:04 am
content: Quote from: Strada916 on March 15, 2013, 04:55:17 amThanksAparrently 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.

author: amyk
author_rank: Super Contributor
timestamp: March 15, 2013, 11:52:53 am
content: Do you mean the "front" one, are the strapping resistors really closer to the other GPU, or is your computerback to front?Carefully comparing the PCBs (or suitable images thereof) of the 690 with the K5000 might yield useful results.

author: gnif
author_rank: Unknown
timestamp: March 15, 2013, 11:59:33 am
content: Quote from: amyk on March 15, 2013, 11:52:53 amSorry, 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.

author: airthimble
author_rank: Newbie
timestamp: March 15, 2013, 02:37:53 pm
content: 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?

author: Ed.Kloonk
author_rank: Super Contributor
timestamp: March 15, 2013, 04:24:05 pm
content: 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.

author: olsenn
author_rank: Frequent Contributor
timestamp: March 15, 2013, 04:29:00 pm
content: You've got balls for taking a soldering iron to a GTX-690!

author: Kaluriel
author_rank: Contributor
timestamp: March 15, 2013, 04:33:23 pm
content: 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

author: gnif
author_rank: Unknown
timestamp: March 15, 2013, 09:42:46 pm
content: Quote from: airthimble on March 15, 2013, 02:37:53 pmNo, 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.Quote from: Ed.Kloonk on March 15, 2013, 04:24:05 pmI watched that a few days ago, couldn't agree more with him.Quote from: olsenn on March 15, 2013, 04:29:00 pmNo, just anger at NVidia for not clearly advertising that surround does not work under linux.Quote from: Kaluriel on March 15, 2013, 04:33:23 pmAgreed, NVidia are the Microsoft of the hardware industry.

author: gnif
author_rank: Unknown
timestamp: March 15, 2013, 10:06:16 pm
content: 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.

author: gnif
author_rank: Unknown
timestamp: March 15, 2013, 10:10:33 pm
content: And these might be them on the EVGA GTX 660

author: toster
author_rank: Contributor
timestamp: March 17, 2013, 11:34:39 am
content: 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.

author: Zibri
author_rank: Newbie
timestamp: March 18, 2013, 05:41:31 pm
content: 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).

author: gnif
author_rank: Unknown
timestamp: March 18, 2013, 06:18:37 pm
content: Quote from: toster on March 17, 2013, 11:34:39 amWindows 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.Quote from: Zibri on March 18, 2013, 05:41:31 pmUnknown, 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.

author: SeanB
author_rank: Super Contributor
timestamp: March 18, 2013, 07:25:16 pm
content: Normally the parts that fail full QC are used to make the lower spec units, but often as process yield improves the rejects become fewer, so they start using full spec devices instead, and just disable them. Normally this is done with a chip level probe test and zener zapping an internal fuse. You could in the old days change certain Intel and AMD parts back as they had either a pin strapping or an on top of case jumper that was cut to do options.

author: Unknown
author_rank: Unknown
timestamp: March 18, 2013, 09:22:16 pm
content: Here is where all the traffic is coming from. In case you were wondering.http://www.reddit.com/r/linux_gaming/comments/1aj3n3/not_cool_nvidia/And thanks OP for the brilliant writeup.

author: cloudscapes
author_rank: Regular Contributor
timestamp: March 18, 2013, 11:42:03 pm
content: It's on hackaday as well, gratz!http://hackaday.com/2013/03/18/hack-removes-firmware-crippling-from-nvidia-graphics-card/This has been going on for a while. I remember a decade ago you could some of the better Geforce 2's into a Quadro 2. I also heard years ago that Quadros, though better at workstation stuff like CAD and 3D packages, might offer inferior performance in gaming. Like they trade off the speed for greater precision when going Geforce->Quadro, or something like that. A higher definition z-buffer, or something. I'm unsure if that's still the case, if it ever was.

author: Zibri
author_rank: Newbie
timestamp: March 19, 2013, 02:33:37 am
content: hmm sure, but I bet such "fuses" are outside the chip.

author: Omnipotent_Galaxy
author_rank: Newbie
timestamp: March 19, 2013, 04:12:41 am
content: hi gnif,I am wondering if the same method will be useful in mobility Geforce cards since I own a Clevo GTX675MX card of GK104 and I'm looking forward to a K4000m card with the same CUDA cores.Though some players have announced their successful soft-adjustments from 675MX to K4000m by VBIOS or others, I'm still searching for a way to make a long-term stable work.Anyway, the price of K4000m with varranty is its worst part maybe, and many users are using ES cards or other cards from factories without varranty... What a pity.

author: EEVblog
author_rank: Unknown
timestamp: March 19, 2013, 04:15:53 am
content: Two Hack-A-Days from GNIF in almost as many days!What will he hack next?Dave.

author: Omnipotent_Galaxy
author_rank: Newbie
timestamp: March 19, 2013, 04:21:32 am
content: Quote from: Zibri on March 18, 2013, 05:41:31 pmSome GTXx70/x60 cards do use the original CUDA core with the GTXx80 cards but there is likely to be some problems with the 'hidden' parts of the core anyway.This generation of NV cards uses the GK104 core from 576sp cards (mobility ones of K3000m) to 1344sp cards. It is hard to imagine the power supply of GTX660Ti can be enough for GTX680...Though with great expectation, Kepler is not like Fermi... GTX560Ti 448sp was just a dream maybe?

author: jerry507
author_rank: Regular Contributor
timestamp: March 19, 2013, 04:42:26 am
content: It wasn't quite clear to me, did you just turned your 690 into a K5000? I understand that you wanted the multiple monitor support for linux, but you said you also bought it for gaming. The K5000 is significantly worse in that respect, is there something about this hack that preserves that?I suppose it's a question of priorities.

author: gnif
author_rank: Unknown
timestamp: March 19, 2013, 05:25:45 am
content: Quote from: EEVblog on March 19, 2013, 04:15:53 amYay, and looks like my topic has blown out our total number of users on-line 5 fold, makes me glad I went to the trouble to tune the site a bit more.HaD have missed one thing though, they said the 690 is a K5000 PCB, etc... it isn't, it is a Tesla K10.As for those that are just spewing trash on HaD 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, you are not making the GTX690 faster.

author: Unknown
author_rank: Unknown
timestamp: March 19, 2013, 12:50:48 pm
content: Quote0.0I think you've just made the server impervious to the notorious internet_kiss_of_death !!