Introduction
A few weeks ago AMD released the Radeon HD 6970 and Radeon HD 6950. Both cards are based on AMD's new Cayman core which is their first graphics processor to use a VLIW4 shader configuration.
Just like on all other similar products, AMD's two Cayman variants, called Cayman Pro and Cayman XT, are based on the exact same GPU silicon. The model variant a GPU chip becomes is decided after the die is produced, at some point before it is put on the card. Creating new SKUs from the same silicon by locking features has been common practice in the industry since at least the Radeon 9500 in 2002.
This article is to unlock the Radeon HD 6950. The HD 6970 has nothing that can be unlocked.
Please
Digg Reddit this story to spread the word.
The picture above shows the disabled HD 6950 shaders in red. When unlocked, these deactivated units become active, resulting in a substantial performance increase.
AMD has two methods of locking the shader count on all of their recent GPUs. The first one relies on fuses inside the GPU, or on the substrate - a mechanism similar to Intel's multiplier locking. It is not reversible as far as we know. The second mechanism is the one we are interested in, AMD can configure the VGA BIOS in a way that it disables extra shaders, in addition to the ones disabled via the on-die fuses. This method is mostly used to create engineering samples or reviewer cards that match the target specifications. Usually production cards come with the shader count configured in the fuses, so that it can not be changed.
Apparently currently shipping Radeon HD 6950 cards from all manufacturers - which actually are all the same card with different sticker - have their shaders locked via the BIOS method, so we can exploit it easily.
Unlocking the shaders
Unlocking the additional shaders is done by flashing the card with a HD 6970 BIOS. You can find a few in our
VGA BIOS collection. Any of these BIOSes will work on any reference design HD 6950 card. You could use the ASUS BIOS which comes with higher clocks & Overdrive limits and enables voltage changes via SmartDoctor, or stick with one of the reference BIOSes in case you are afraid the clocks might be too high.
I will describe the method for flashing from within Windows, which is safe enough on these cards because of the dual BIOS feature that enables easy recovery.
- Grab ATI Winflash from here (32 & 64-bit).
- Download HD 6970 BIOS. The Sapphire one I linked to will work on all reference design cards from any vendor.
- Make sure the BIOS switch on the card is set to the 1 position (pictured further down if you don't know where it is).
- Run ATI Winflash, click Save to save your BIOS, so you have a backup in case something goes wrong.
- Load the HD 6970 BIOS into Winflash by clicking Load Image, followed by Program.
- Let the flashing process complete and reboot your system.
- Check the shader count using GPU-Z, it should show 1536. Make sure you use version 0.5.0 or newer, the official 0.4.9 version does not support HD 6900 Series properly. If you see a shader count of 1600, your GPU-Z version is outdated.
- To ensure maximized performance open Catalyst Control Center, go to the Overdrive tab and set the PowerTune slider to the +20% setting. The "Testing" section of this article has more data on that.
- Check stability in Windows desktop applications and games.
If you get an error like ID mismatch or Could not erase ROM, then you'll have to do some
extra work in a Windows command prompt (or DOS): Run
atiwinflash -unlockrom 0 followed by
atiwinflash -f -p 0 bios.bin where bios.bin is the path and filename of the HD 6970 BIOS you downloaded.
Update: I have uploaded a pack of all the files required together with some batch files to ease the process for less experienced users. You can download it
here, please report success or any issues with the scripts in the comments for this article.
Update 2: Above method is only for 2 GB HD 6950 reference design cards. If you have a custom design or 1 GB card, then use
RBE to modify your existing BIOS. Save the BIOS from your card, load it into RBE, enable the shader unlock option on the last tab, then flash that modified BIOS to the card instead of the one downloaded from this page.
Feel free to post in the discussion thread for this article if you need additional assistance with the flashing process.
Testing
We can see that enabling the shaders without any clock increases improves performance. Once the clock speeds are adjusted to match the HD 6970, the card effectively performs just as well as a full blown Radeon HD 6970.
I did some additional power consumption tests and it seems that AMD's PowerTune power limiting system does not get "upgraded" by the BIOS flash. We see that even when modded, the HD 6950 (at HD 6970 shaders and clocks) runs into the PowerTune limit earlier than the regular HD 6970 which results in reduced power draw but also reduced performance in Furmark. With a power consumption of 202 W, the modded HD 6950 is well below the 225 W specification limit of the HD 6950 power configuration.
Once we up the power limit in Catalyst Control Center by +20%, we see that the modded HD 6950 draws 252 W, which exceeds its specification (225 W) by 27 W. This move also improves rendering performance by a good deal, so I would recommend it to all users who perform this mod and have a half-decent power supply. Going 12% beyond the specified power limit will not have any ill effects on your hardware and is well covered by manufacturing tolerances and overspeccing, but it reduces the possibility of stuttering or other performance slowdowns caused by AMD PowerTune.
What if something goes wrong?
So you flashed the BIOS and your card doesn't work for one reason or the other?
If your card boots fine but does not work reliably in 3D, you can just boot the card and flash back the original BIOS of your card (that's why you should
always save
your BIOS before doing any flashing experiments.
In case your card does not boot at all you can use AMD's new backup BIOS feature:
- Set the BIOS switch (pictured above) in the 2 position to enable the recovery BIOS and restart the computer. This will let you boot the card without problems.
- Boot into Windows/DOS prompt and get ready to flash the card - do not start the flashing process just yet.
- Set the BIOS switch in the 1 position with the system running and ready to flash.
- Flash your saved BIOS to the card.
- Reboot, done.
The dual BIOS feature is just an added convenience for easier recovery, it is not a requirement for this kind of modding, nor is it evidence that AMD has planned their cards with unlocking in mind.
Test Results
(Last updated March 28th)
Manufacturer | Cards tested | Unlocks and works fine | Unlocks but rendering errors | Does not unlock |
AMD | 1 | 1 | 0 | 0 |
ASUS | 40 | 39 | 1 | 0 |
Club3D | 21 | 20 | 0 | 1 |
Diamond | 8 | 7 | 1 | 0 |
Gigabyte | 48 | 48 | 0 | 0 |
HIS | 71 | 70 | 1 | 0 |
MSI | 27 | 26 | 1 | 0 |
PowerColor | 76 | 73 | 3 | 0 |
Sapphire | 242 | 230 | 12 | 0 |
XFX | 146 | 143 | 3 | 0 |
VTX3D | 11 | 10 | 1 | 0 |
Visiontek | 5 | 5 | 0 | 0 |