Author

Topic: How to Hack Your Radeon 79x0 GPU BIOS (any version) to Undervolt it (Read 16364 times)

newbie
Activity: 1
Merit: 0
Cheers, Spoetnik.  Smiley

Yeah, the point wasn't to brag.  It was to state that I had experience and a "resume" to back it up.  All I did was try to educate how to *actually* change the I2C values for the voltage.

Also, it was world news.  Ask nVidia's PR department.  Wink
http://www.brightsideofnews.com/news/2009/9/24/nvidia-sli-cracked---works-on-all-motherboards-now-.aspx

National vs world news doesn't change anything though.  The code still works the same way.

If you can't swallow your pride and admit ignorance, you're going to have a tough time learning.

I am writing here in case anyone can help me with my W8000 bios : http://www.easybytez.com/jv304lwh5xt4

It is voltage locked, so i cannot do any mods. I would like to overclock/overvolt it.

If in any case "sveetsnelda" is around and can read this, please unlock pm's for new users so i can send you a pm.

Thank you in advance
full member
Activity: 164
Merit: 100
I've ran the atiflash utility to download the bios from each gpu. Originally I got the 256kb version with UEFI data. Did the 20000 size limit, but VBE7 (the tool that was suggested here) still opens it saying that there is UEFI data that will be ignored.  Is this normal, any else flash on a card without dual bios switch? Kinda nervous, have the asus 280x's
newbie
Activity: 14
Merit: 0
I took the risk and flash the card with a 1084v bios, the original was 1250v.
The temperature only came down by 5º. It was at 84º and now it is at 79º.
Atiwinflash backed up a 256 kb rom, this one do not work. Use the  gpu-z backup that is 128kb.
The undervolt worked fine, but apparently this card is really hot either way.

EDIT: Still testing, at 1000mv, temperature is at 78º but fan velocity went down from 4000 to 3600 rpm. I read that at low voltage the 7950 cards went down to 65 or 70º. But this XFX must be really bad quality because it is still really hot.

EDIT2: I flashed a 975mv bios and when I opened cgminer, it never started mining.
Then I bricked the card, fixed it using an Nvidia as primary, and went back to 1000mv.
I had never flashed an ati card before. It seems ati cards are really good when it comes to flashing bios, you can fix a bricked card really easy.

TIP: If you use atiwinflash and it says bios upload failed, NEVER reboot the pc. Just wait a minutes and try again until the bios uploads succesfully.

yeah man, mine is the same. i have two xfx's. one is reachin even 96 degrees, second is around 82. will be getting gelid icy cooling for them shortly.
newbie
Activity: 14
Merit: 0
@mar69theone
What did you do to unlock the voltage?
which was the default voltage and what did you change it for??
Did you have to change more data to get the correct checksum???
I have a locked XFX 7950 and want to undervolt it, but I am afraid to do it becouse this card doesn't have the backup switch...

Thanks!!

franciz,
Check this tread
https://bitcointalksearch.org/topic/m.3871104
newbie
Activity: 7
Merit: 0
I took the risk and flash the card with a 1084v bios, the original was 1250v.
The temperature only came down by 5º. It was at 84º and now it is at 79º.
Atiwinflash backed up a 256 kb rom, this one do not work. Use the  gpu-z backup that is 128kb.
The undervolt worked fine, but apparently this card is really hot either way.

EDIT: Still testing, at 1000mv, temperature is at 78º but fan velocity went down from 4000 to 3600 rpm. I read that at low voltage the 7950 cards went down to 65 or 70º. But this XFX must be really bad quality because it is still really hot.

EDIT2: I flashed a 975mv bios and when I opened cgminer, it never started mining.
Then I bricked the card, fixed it using an Nvidia as primary, and went back to 1000mv.
I had never flashed an ati card before. It seems ati cards are really good when it comes to flashing bios, you can fix a bricked card really easy.

TIP: If you use atiwinflash and it says bios upload failed, NEVER reboot the pc. Just wait a minutes and try again until the bios uploads succesfully.
newbie
Activity: 7
Merit: 0
@mar69theone
What did you do to unlock the voltage?
which was the default voltage and what did you change it for??
Did you have to change more data to get the correct checksum???
I have a locked XFX 7950 and want to undervolt it, but I am afraid to do it becouse this card doesn't have the backup switch...

Thanks!!
newbie
Activity: 14
Merit: 0
Guys, I have done this on Sapphire 7970 and Gigabyte 7950s.  I had undervolted the ROMs to have them running at lover voltages.
Before specs:
  • 4 x 7950s @ 550kh/sec @ 1000 watts
  • 1 x 7970 @ 700kh/sec @ 350 watts
After undervolting modded stock BIOS
  • 4 x 7950s @ 665 kh/s @ 900 watts @ 1.0v
  • 1 x 7970 @ 730 kh/s @ 250 watts @ 0.962v

To modify your BIOS, follow the instructions listed below.  See Disclaimer below.

  • Grab atiflash and save your bios ("./atiflash -s 0 bios0.back.up.rom" to save bios from card zero),
  • Check that it produces a file of size 128Kb ("ls -lkh bios0.back.up.rom"),
  • If it produced file of size 256Kb, these will appear valid but attempting to write them back to the card will always fail, leaving you without a valid backup! In this case, retry to read the video card bios again specifying an additional size parameter ("./atiflash -s 0 bios0.back.up.rom 20000"),
  • You should save the bios from each card, then use diff to see which match and modify that subset, then flash all the cards,
  • Please check all GPUs stock voltage in cgminer GPU Management and Bios Config File in output of "./atiflash -ai", these can vary between bios in "identical" brand GPUs,
  • Transfer all bios to a Windows PC/laptop using WinSCP, or via Webmail if you do not have WinSCP
  • Open the saved bios in a hex editor, we use Frhed,
  • Convert that bios stock GPU voltage into hex, eg google "1125 in hex" if bios stock voltage is 1.125. The hex equivalent in this case is 0x465,
  • Reverse the stock hex voltage, eg: 0x465 = 04 65 = 65 04,
  • Using your hex editor, search and replace for (reversed stock voltage) with your desired voltage in the same pattern, eg: to undervolt to 0.962V, 0962 = 0x3C2 = c2 03, so you'd replace with ,
  • Save the modified bios to a different file name so you can always write the original back if required,
  • Unlock the bios for the card you wish to flash (eg: ./atiflash -unlockrom 0),
  • Transfer the modified bios back to your (Linux) coin mining rig and write the modified bios back to the video card using atiflash with the -f parameter to bypass checksum checks. In our experience this can fail multiple times before succeeding and some bios require using different write flags (-atmel, -sst).
  • Cold Reboot and use cgminer GPU Management to see new undervoltage in action!
  • We recommend doing one card to start with and not the primary video card until you are confident with the process :-)

After doing all this above, you will save money and be able to run a cooler rig.  I now use 1250 watts total and it a beautiful space heater for my whole house Smiley

Happy Bios Flashing, Video Card Undervolting & Coin Mining!



If you Found this article useful, please send a donation to:

BTC: 1PoN7e4q5DMoTXiU2HYecbaGrb78mSxo6W
LTC: LNYFzi4ed8gBwk8joVpntk5apUcvndu2g9
BTB: BBe9NyL2uzne4ZEXax39huFzUH1XMD4a7t
BTG: gbpuqkpmZVhcJgZBQtmGRamSvLdEhQFEkM

DISCLAIMER: Any and all modifications done here is at your own risk.  I am not responsible if your hardware goes dead, gets damaged, or burns up.  This information is strictly for educational purpose.  Use at your own risk.

It unlocked my XFX Double D FX-797A-TD FX with dual DVI so i am able to regulate the voltage in trixx now.
I just replaced the value in two places in the bios.

Thanks a lot
hero member
Activity: 642
Merit: 500
Cheers, Spoetnik.  Smiley

Yeah, the point wasn't to brag.  It was to state that I had experience and a "resume" to back it up.  All I did was try to educate how to *actually* change the I2C values for the voltage.

Also, it was world news.  Ask nVidia's PR department.  Wink
http://www.brightsideofnews.com/news/2009/9/24/nvidia-sli-cracked---works-on-all-motherboards-now-.aspx

National vs world news doesn't change anything though.  The code still works the same way.

If you can't swallow your pride and admit ignorance, you're going to have a tough time learning.
legendary
Activity: 1540
Merit: 1011
FUD Philanthropist™
its painfully obvious this guy knows his shit..
and it was a pleasure to see someone who knows how i feel..
i've been through this too many times in the altcoin scene lol
i'm an old cracker and a coder and i have a large resume too and little shits get mad about it and say your bragging
and of course argue every chance they get.. failing to get the damn point.

sveetsnelda
screw em.. you know your right and you tried to help what more can you do ?
let the ignorant drown..

nothing against swiftwshoot but recognize.. this guy knows his shit trust me lol
that bugs you all out there ? too damn bad suck it up.
full member
Activity: 200
Merit: 100
You want me to overclock instead of undervolt?  Now you're really confusing.  I'll never hit 1060-1100 mhz on those chips with my lowered voltage, and I intended it to be that way.

My voltage/clocks -- 3.27MH/J
Your clocks -- 2.955MH/J

Once again, you have no idea what you're editing.  I've tried to help, but you're still so sure of yourself (even though you've obviously not disassembled the code to that BIOS).  I've made national news for things I've done with video cards, but I'm sure you're still right.   Roll Eyes

Youppi! You made National News... unfortunately it was not World News.
I am sacrificing 0.315 MH/J to be able to heat my house better.  For some people, we need our HEAT to keep our house warm.  What better way to heat our house than with Mining?  HEAT and make money with it.

Before I undervolted (or you thinking I am not undervolting), at stock BIOS with the speeds I am currently running undervolted, I hit 1700 Watts @ 2.9 GH/s (Digital PS handled it for a short time).  Now I am doing 1250 Watts @ 3.329GH/s... So shaving off 450 Watts is not undervolting then what is?

Yep, it looks like I have no idea what I am editing oh mighty BIOS god however, it looks like I found something YOU did not find... gaining Hash Power with lower power consumption.  If you want to discredit this finding by all means please do.  I am just happy I am able to run the 5 cards at the speeds I am getting.

I do however credit your findings... you spent more time than I did disassembling the BIOS... Surprised you did not find the secret to gain more hashing power out of it like I  did.
hero member
Activity: 642
Merit: 500
You want me to overclock instead of undervolt?  Now you're really confusing.  I'll never hit 1060-1100 mhz on those chips with my lowered voltage, and I intended it to be that way.

My voltage/clocks -- 3.27MH/J
Your clocks -- 2.955MH/J

Once again, you have no idea what you're editing.  I've tried to help, but you're still so sure of yourself (even though you've obviously not disassembled the code to that BIOS).  I've made national news for things I've done with video cards, but I'm sure you're still right.   Roll Eyes
full member
Activity: 200
Merit: 100
P.S.  This rig takes 673 watts (at the wall) to run because I *actually* undervolted it.
You are running 900 mhz gpu and 800 mhz memory.. no wonder you are at 673 watts at wall...
set it to 1060-1100 mhz gpu and 1250 memory then report back with your watts at wall...

Lets measure apples with apples now.
hero member
Activity: 642
Merit: 500
Oh, whoops.  Cheesy  That's what happens when I browse on my phone.  The screenshots were small and I just glanced past it.  I'll check it out!  Thanks for the link!
hero member
Activity: 700
Merit: 500
No, the one I quoted few days ago is made by Darkhmz.
This one is made by Dragonheart.

hero member
Activity: 642
Merit: 500
Good one Grin

Have you by chance experimented with this utility?
http://www.techpowerup.com/forums/showthread.php?t=183423
Yeah, you quoted my reply about that utility on page 1 of this thread.    Grin
hero member
Activity: 700
Merit: 500
You guys are delusional.  Here, let me prove my point.  Here's a 7950 that I modified to run on FIVE volts.  You understand that this card should be melting down, right?:


Good one Grin

Have you by chance experimented with this utility?
http://www.techpowerup.com/forums/showthread.php?t=183423
hero member
Activity: 642
Merit: 500
P.S.  This rig takes 673 watts (at the wall) to run because I *actually* undervolted it.
hero member
Activity: 642
Merit: 500
You guys are delusional.  Here, let me prove my point.  Here's a 7950 that I modified to run on FIVE volts.  You understand that this card should be melting down, right?:


hero member
Activity: 721
Merit: 523
So you guys are doing what I posted here?

The warning is probably a bit stern on that page, these cards have a small dual bios switch, I have dumped the read only bios and flashed it across to user area before.

some premade ones for MODEL: AX7950 3GBD5-2DHV5E in that thread above

some tips to make the process easier.
gpu-z has a button to dump your bios in windows.
then hex edit.
then use aitflash to load it in to the card with -f (force bios flash)

full member
Activity: 200
Merit: 100
GPUs are not Car engines... running hot or cold makes nominal difference.
You are quite wrong.  Power consumption rises as temperatures within the ASIC increase (leakage increases because resistance increases).  AMD's 28nm chips are extremely sensitive to this, and the power consumption climbs rapidly above about 73-74c.  Go put 4 7970s in a rig, measure it at 60-65c and then measure it at 80c.  You'll see 80-100 extra watts being drawn from the wall, even though the fans spun DOWN.  Water cool the chips and you'll notice a pretty significant decrease in power consumption under load.  Lastly, you'll notice that power consumption is *much* lower when you first start your mining software.  Go measure it again after 15 minutes and be amazed by how much more power is being drawn after the ASIC heated up.

Once again, the number you are altering doesn't change the power consumption on ANY 7000 series BIOS.  I don't mean to sound pompous here and I'm only trying to educate, but I know what that value does and you clearly do not.  If you had spent enough time reverse-engineering that value, you'd realize that it only changes the voltage reported by ADL (and it changes the voltage on cards prior to Southern Island chips since they had a function that translated the voltage value into the proper commands to send to the voltage regulator.  The 7000 series cards do not have this.)

Still drawing 1250 Watts and getting 3.329 Mh/sec.  I have been running overnight.  I will set the temp lower to see if that will reduce consumption.
full member
Activity: 200
Merit: 100
Anyone that have a successful undervolted 7950 bios file to share ?

It would be much appreciated !

If you want me to undervolt your BIOS, send me a link to it via PM...  Donations welcome.
hero member
Activity: 642
Merit: 500
Did you even read the post that you quoted?  Smiley   I didn't make that chart, and no CPU/GPU is immune to the laws of thermodynamics -- regardless of brand.   Wink
sr. member
Activity: 420
Merit: 250


Here's an example with a GTX 480 and GTX 580.  There may be one out there for a Southern Islands chip, but I haven't dug around.  From experience though, I know that the 28nm chips have very high leakage at higher temps, and you don't have to get them as hot as the previous generation before you start seeing leakage ramp up significantly.

Do you have one with ATI? Not a fan of nvidia, sorry Smiley
hero member
Activity: 642
Merit: 500


Here's an example with a GTX 480 and GTX 580.  There may be one out there for a Southern Islands chip, but I haven't dug around.  From experience though, I know that the 28nm chips have very high leakage at higher temps, and you don't have to get them as hot as the previous generation before you start seeing leakage ramp up significantly.
hero member
Activity: 642
Merit: 500
GPUs are not Car engines... running hot or cold makes nominal difference.
You are quite wrong.  Power consumption rises as temperatures within the ASIC increase (leakage increases because resistance increases).  AMD's 28nm chips are extremely sensitive to this, and the power consumption climbs rapidly above about 73-74c.  Go put 4 7970s in a rig, measure it at 60-65c and then measure it at 80c.  You'll see 80-100 extra watts being drawn from the wall, even though the fans spun DOWN.  Water cool the chips and you'll notice a pretty significant decrease in power consumption under load.  Lastly, you'll notice that power consumption is *much* lower when you first start your mining software.  Go measure it again after 15 minutes and be amazed by how much more power is being drawn after the ASIC heated up.

Once again, the number you are altering doesn't change the power consumption on ANY 7000 series BIOS.  I don't mean to sound pompous here and I'm only trying to educate, but I know what that value does and you clearly do not.  If you had spent enough time reverse-engineering that value, you'd realize that it only changes the voltage reported by ADL (and it changes the voltage on cards prior to Southern Island chips since they had a function that translated the voltage value into the proper commands to send to the voltage regulator.  The 7000 series cards do not have this.)
full member
Activity: 425
Merit: 109
Anyone that have a successful undervolted 7950 bios file to share ?

It would be much appreciated !
full member
Activity: 200
Merit: 100
I would think it is all a matter of timing between memory and gpus... since they are not overclocked to push more and produce lots of heat they work in unison.  I was shocked too when I saw the results.  If I tried to overclock while undervolted, it would then drop in performance.  I think the bell curve gets shifted downwards as you undervolt.
Go measure your card's voltage with a meter before and after what you're changing in the BIOS.  It isn't budging, I assure you.  Your power consumption changes are either differences in settings, or you're measuring when cards are hot vs cold.
I don't poke my GPUs with wiring... I can see if at the wall... 1250 watts @ 3.329gh/s vs 1480 @2.9 GH/s is all I need to convince me.
GPUs are not Car engines... running hot or cold makes nominal difference.

Here is my Before Undervolting settings.
"intensity" : "20",
"vectors" : "1",
"worksize" : "256",
"kernel" : "scrypt",
"lookup-gap" : "2",
"thread-concurrency" : "40960",
"shaders" : "1792,1792,2048,1792,1792",
"api-port" : "4028",
"api-listen" : true,
"expiry" : "10",
"gpu-dyninterval" : "7",
"gpu-platform" : "0",
"gpu-threads" : "1",
"gpu-engine" : "900,900,1080,900,900",
"gpu-memclock" : "1250,1250,1680,1250,1250",
"gpu-vddc" : "1.030,1.125,1.175,1.125,1.125",
"gpu-powertune" : "0",
"auto-fan" : true,
"temp-target" : "70",
"temp-overheat" : "77",
"temp-cutoff" : "83",
"log" : "5",
"no-pool-disable" : true,
"queue" : "10",
"scan-time" : "1",
"scrypt" : true,
"shares" : "0",
"rotate" : "1440",
"kernel-path" : "/usr/local/bin"
}
full member
Activity: 200
Merit: 100
1: Both at Intensity 20, Thread Concurrency @ 40960, Shaders @ 1792, lookup gap @ 2, Threads @ 1, powertune @ 0
    Before undervolting, running 1090MHz CPU, 1500 MHz Memory
    After undervolting, running 1080MHz CPU, 1250 MHz Memory.  250MHz lower on memory speed yet gained 115kh/s

2: Nor do I but it does not affect mem timing if you are using the memory stock speed of your vid card.

Gigabyte and Sapphires work great for getting good high hash rates.  I had an XFX, was crap returned it.
Consider maxing out the Thread Concurrency as much as possible along with the shaders.  It worked for me and getting great speeds.  Scrypt is memory intensive so more memory it gets the more it can hash.


That is weird, undervolting normally only result in equal hash rate or lower. Maybe its due to powertune @ 0. hm...
here is my cgminer.conf

{
"intensity" : "20",
"vectors" : "1",
"worksize" : "256",
"kernel" : "scrypt",
"lookup-gap" : "2",
"thread-concurrency" : "40960",
"shaders" : "1792,1792,2048,1792,1792",
"expiry" : "2",
"gpu-dyninterval" : "7",
"gpu-platform" : "0",
"gpu-threads" : "1",
"gpu-engine" : "1100,1080,1100,1080,1060",
"gpu-memclock" : "1250,1250,1500,1250,1250",
"gpu-vddc" : "1.020,1.01,0.962,1.003,1.08",
"gpu-powertune" : "0",
"auto-fan" : true,
"temp-target" : "75",
"temp-overheat" : "79",
"temp-cutoff" : "83",
"log" : "5",
"failover-only" : true,
"no-pool-disable" : true,
"queue" : "2",
"scan-time" : "1",
"scrypt" : true,
"shares" : "0",
"kernel-path" : "/usr/local/bin"
}

And CGMiner results.
cgminer version 3.1.0 - Started: [2013-10-18 22:46:23]
--------------------------------------------------------------------------------
 (5s):3.350M (avg):3.329Mh/s | A:53296  R:5269  HW:0  U:9.5/m  WU:3099.7/m
 ST: 3  SS: 265  NB: 15036  LW: 649635  GF: 190  RF: 52
 Connected to stratum01.hashco.ws diff 237 with stratum as user swiftshoot.2
 Block: cdc821b513950ac7...  Diff:539K  Started: [20:29:55]  Best share: 10.2M
--------------------------------------------------------------------------------
 [P]ool management [G]PU management \[S\]ettings [D]isplay options [Q]uit
 GPU 0:  72.0C 3236RPM | 667.1K/663.4Kh/s | A:10578 R:1033 HW:0 U:1.88/m I:20
 GPU 1:  73.0C 2199RPM | 656.7K/651.2Kh/s | A:10458 R:1026 HW:0 U:1.86/m I:20
 GPU 2:  72.0C 2841RPM | 728.5K/723.1Kh/s | A:11713 R:1064 HW:0 U:2.08/m I:20
 GPU 3:  72.0C 1883RPM | 653.6K/651.4Kh/s | A:10451 R:1050 HW:0 U:1.86/m I:20
 GPU 4:  73.0C 4638RPM | 645.2K/640.2Kh/s | A:10096 R:1096 HW:0 U:1.80/m I:20
--------------------------------------------------------------------------------

GPU 0: 667.7 / 663.4 Kh/s | A:10578  R:1033  HW:0  U:1.88/m  I:20
72.0 C  F: 78% (3244 RPM)  E: 1100 MHz  M: 1250 Mhz  V: 1.019V  A: 99% P: 0%
Last initialised: [2013-10-18 22:46:23]
Intensity: 20
Thread 0: 668.4 Kh/s Enabled ALIVE

GPU 1: 655.0 / 651.2 Kh/s | A:10456  R:1026  HW:0  U:1.86/m  I:20
73.0 C  F: 52% (2199 RPM)  E: 1080 MHz  M: 1250 Mhz  V: 1.009V  A: 99% P: 0%
Last initialised: [2013-10-18 22:46:23]
Intensity: 20
Thread 1: 655.2 Kh/s Enabled ALIVE

GPU 2: 726.9 / 723.1 Kh/s | A:11712  R:1064  HW:0  U:2.08/m  I:20
72.0 C  F: 79% (2781 RPM)  E: 1100 MHz  M: 1500 Mhz  V: 0.962V  A: 99% P: 0%
Last initialised: [2013-10-18 22:46:23]
Intensity: 20
Thread 2: 726.1 Kh/s Enabled ALIVE

GPU 3: 654.8 / 651.4 Kh/s | A:10450  R:1050  HW:0  U:1.86/m  I:20
72.0 C  F: 45% (1881 RPM)  E: 1080 MHz  M: 1250 Mhz  V: 1.003V  A: 99% P: 0%
Last initialised: [2013-10-18 22:46:23]
Intensity: 20
Thread 3: 653.9 Kh/s Enabled ALIVE

GPU 4: 645.5 / 640.2 Kh/s | A:10095  R:1096  HW:0  U:1.80/m  I:20
73.0 C  F: 29% (2229 RPM)  E: 1060 MHz  M: 1250 Mhz  V: 1.080V  A: 99% P: 0%
Last initialised: [2013-10-18 22:46:23]
Intensity: 20
Thread 4: 645.1 Kh/s Enabled ALIVE

[E]nable [D]isable ntensity [R]estart GPU [C]hange settings
Or press any other key to continue
hero member
Activity: 642
Merit: 500
I would think it is all a matter of timing between memory and gpus... since they are not overclocked to push more and produce lots of heat they work in unison.  I was shocked too when I saw the results.  If I tried to overclock while undervolted, it would then drop in performance.  I think the bell curve gets shifted downwards as you undervolt.
Go measure your card's voltage with a meter before and after what you're changing in the BIOS.  It isn't budging, I assure you.  Your power consumption changes are either differences in settings, or you're measuring when cards are hot vs cold.
full member
Activity: 200
Merit: 100
@swiftshoot thanks for post and what are temperatures before and after?
Before I was at 79-85c depending on the board...
After I was as low as 62-65c but now I tuned it to 72-74c so that I can heat my house... we getting cold nights here so having the GPUs heat helps us save on the Heating bills.


Funny thing is, is that my HD7850's don't really use more power when overvolted, or use less when undervolted.
But, 100W is a huge win, such things mean ROI or no ROI.

Thanks for the guide, I thing many people will find this usefull.
Think most of 7850's are voltage locked. I have voltage slider on my asus/xfx cards and i can move it around. But if i check in gpu-z it's at the same stock value no matter what i do.
Both my Asus Hd7850 DCII have unlocked voltage, I can go down to 0.01 if I want to, but probably not too healthy for my card hehe...
Undervolting will not damage your card... Overvolting it will.


can anybody verify those results?
I still wonder how the hashrate would go up through undervolting....
I would think it is all a matter of timing between memory and gpus... since they are not overclocked to push more and produce lots of heat they work in unison.  I was shocked too when I saw the results.  If I tried to overclock while undervolted, it would then drop in performance.  I think the bell curve gets shifted downwards as you undervolt.
full member
Activity: 196
Merit: 100
i read your post, still both don't make sense.

so what is it, that is stated in the first post?

hero member
Activity: 642
Merit: 500
can anybody verify those results?
I still wonder how the hashrate would go up through undervolting....
Read my post in this thread.  This does not alter the voltage.  There is a utility that will allow you to change it though.
full member
Activity: 196
Merit: 100
can anybody verify those results?
I still wonder how the hashrate would go up through undervolting....
hero member
Activity: 812
Merit: 1000
I <3 VW Beetles
Funny thing is, is that my HD7850's don't really use more power when overvolted, or use less when undervolted.
But, 100W is a huge win, such things mean ROI or no ROI.

Thanks for the guide, I thing many people will find this usefull.
Think most of 7850's are voltage locked. I have voltage slider on my asus/xfx cards and i can move it around. But if i check in gpu-z it's at the same stock value no matter what i do.
Both my Asus Hd7850 DCII have unlocked voltage, I can go down to 0.01 if I want to, but probably not too healthy for my card hehe...
member
Activity: 83
Merit: 10
@swiftshoot thanks for post and what are temperatures before and after?
sr. member
Activity: 434
Merit: 250
Guys, I have done this on Sapphire 7970 and Gigabyte 7950s.  I had undervolted the ROMs to have them running at lover voltages.
Before specs:
  • 4 x 7950s @ 550kh/sec @ 1000 watts
After undervolting modded stock BIOS
  • 4 x 7950s @ 665 kh/s @ 900 watts @ 1.0v


The idea of undervolting is pretty useful but 2 moments:

1. amm, you didn't state frequencies used before and after - really, only changing voltages affected hash rate?! ("I don't believe you!")

2. There are memory timings - and it does help if you can edit them. But I don't know how to do that.

E.g. 7850 from sapphire and 7850 from gigabyte can reach 375-400kh and up to 350kh "whatever you do" respectively; all with the same settings(like 1100/1250). HIS 7950 ICEQ does 585kh/s at 970/1000 and nothing more - whatever I try; raising mem speed to 1250 or whatever upper - doesn't do any good.

1: Both at Intensity 20, Thread Concurrency @ 40960, Shaders @ 1792, lookup gap @ 2, Threads @ 1, powertune @ 0
    Before undervolting, running 1090MHz CPU, 1500 MHz Memory
    After undervolting, running 1080MHz CPU, 1250 MHz Memory.  250MHz lower on memory speed yet gained 115kh/s

2: Nor do I but it does not affect mem timing if you are using the memory stock speed of your vid card.

Gigabyte and Sapphires work great for getting good high hash rates.  I had an XFX, was crap returned it.
Consider maxing out the Thread Concurrency as much as possible along with the shaders.  It worked for me and getting great speeds.  Scrypt is memory intensive so more memory it gets the more it can hash.


That is weird, undervolting normally only result in equal hash rate or lower. Maybe its due to powertune @ 0. hm...
full member
Activity: 200
Merit: 100
Guys, I have done this on Sapphire 7970 and Gigabyte 7950s.  I had undervolted the ROMs to have them running at lover voltages.
Before specs:
  • 4 x 7950s @ 550kh/sec @ 1000 watts
After undervolting modded stock BIOS
  • 4 x 7950s @ 665 kh/s @ 900 watts @ 1.0v


The idea of undervolting is pretty useful but 2 moments:

1. amm, you didn't state frequencies used before and after - really, only changing voltages affected hash rate?! ("I don't believe you!")

2. There are memory timings - and it does help if you can edit them. But I don't know how to do that.

E.g. 7850 from sapphire and 7850 from gigabyte can reach 375-400kh and up to 350kh "whatever you do" respectively; all with the same settings(like 1100/1250). HIS 7950 ICEQ does 585kh/s at 970/1000 and nothing more - whatever I try; raising mem speed to 1250 or whatever upper - doesn't do any good.

1: Both at Intensity 20, Thread Concurrency @ 40960, Shaders @ 1792, lookup gap @ 2, Threads @ 1, powertune @ 0
    Before undervolting, running 1090MHz CPU, 1500 MHz Memory
    After undervolting, running 1080MHz CPU, 1250 MHz Memory.  250MHz lower on memory speed yet gained 115kh/s

2: Nor do I but it does not affect mem timing if you are using the memory stock speed of your vid card.

Gigabyte and Sapphires work great for getting good high hash rates.  I had an XFX, was crap returned it.
Consider maxing out the Thread Concurrency as much as possible along with the shaders.  It worked for me and getting great speeds.  Scrypt is memory intensive so more memory it gets the more it can hash.
jr. member
Activity: 73
Merit: 2
Guys, I have done this on Sapphire 7970 and Gigabyte 7950s.  I had undervolted the ROMs to have them running at lover voltages.
Before specs:
  • 4 x 7950s @ 550kh/sec @ 1000 watts
After undervolting modded stock BIOS
  • 4 x 7950s @ 665 kh/s @ 900 watts @ 1.0v


The idea of undervolting is pretty useful but 2 moments:

1. amm, you didn't state frequencies used before and after - really, only changing voltages affected hash rate?! ("I don't believe you!")

2. There are memory timings - and it does help if you can edit them. But I don't know how to do that.

E.g. 7850 from sapphire and 7850 from gigabyte can reach 375-400kh and up to 350kh "whatever you do" respectively; all with the same settings(like 1100/1250). HIS 7950 ICEQ does 585kh/s at 970/1000 and nothing more - whatever I try; raising mem speed to 1250 or whatever upper - doesn't do any good.
jr. member
Activity: 73
Merit: 2
Funny thing is, is that my HD7850's don't really use more power when overvolted, or use less when undervolted.
But, 100W is a huge win, such things mean ROI or no ROI.

Thanks for the guide, I thing many people will find this usefull.

Definitely voltage is locked. With all of my 5870/5770/5750/7850/7950 I can see the difference in wattage;it is even possible to run 7950 close to 100W at 0.8V/600-800MHz core.

legendary
Activity: 1596
Merit: 1010
very nice info, i have a sapphire 7970 & may use this Smiley
sr. member
Activity: 392
Merit: 250
It would be easier to buy GPU that is voltage unlocked, its has more flexibility and save time.
Not even close (unless you only run one rig with a few cards).  My world would be a nightmare if I couldn't flash my cards and run Linux.

What do you mean, have you tried runing 6 GPU on window 7?
I mean that I'm running over 250 GPUs.  If I had to use Afterburner to set voltages on all of them, it would be a nightmare.  Simply powering on the machine from a bootable flash drive (or SAN) is a lot easier/cheaper than a full Windows install on a hard drive with Afterburner (which isn't easily scripted).

Wow, that is a lot of GPU. I am thinking to upgrade my 4 GPU window 7 to 6 GPU but some people told me that its unstable and others tell me it should work. Any idea since I believe you used window prior to linux?

Thanks in advance.
hero member
Activity: 642
Merit: 500
It would be easier to buy GPU that is voltage unlocked, its has more flexibility and save time.
Not even close (unless you only run one rig with a few cards).  My world would be a nightmare if I couldn't flash my cards and run Linux.

What do you mean, have you tried runing 6 GPU on window 7?
I mean that I'm running over 250 GPUs.  If I had to use Afterburner to set voltages on all of them, it would be a nightmare.  Simply powering on the machine from a bootable flash drive (or SAN) is a lot easier/cheaper than a full Windows install on a hard drive with Afterburner (which isn't easily scripted).
sr. member
Activity: 392
Merit: 250
It would be easier to buy GPU that is voltage unlocked, its has more flexibility and save time.
Not even close (unless you only run one rig with a few cards).  My world would be a nightmare if I couldn't flash my cards and run Linux.

What do you mean, have you tried runing 6 GPU on window 7?
hero member
Activity: 642
Merit: 500
and if there's an interest to fund such a thing, I'm confident that I could reverse engineer and modify locked card BIOSes to be unlocked.  My time is just spread very thin right now.
hero member
Activity: 642
Merit: 500
It would be easier to buy GPU that is voltage unlocked, its has more flexibility and save time.
Not even close (unless you only run one rig with a few cards).  My world would be a nightmare if I couldn't flash my cards and run Linux.
sr. member
Activity: 392
Merit: 250
It would be easier to buy GPU that is voltage unlocked, its has more flexibility and save time.
hero member
Activity: 700
Merit: 500
hero member
Activity: 642
Merit: 500
Further explanation:

For every 7000 series card, there are five voltages in a table for the "performance" state.  You'll notice that each 7000 series card you buy doesn't necessarily have the same voltage, but the BIOS is identical.  The voltage that gets used depends on the quality of the ASIC on the board.  If your chip has extremely low leakage, the lowest value (of the five voltages) gets used.  Highest leakage = highest value.  Somewhere in the middle = one of the other three values.  There is a function in GPU-Z that will read the "ASIC Quality" value of your card if you're curious.

It's even more complicated for boost BIOSes.  There's *another* table of 5 values for the "boost" state.  The card will switch back and forth depending on the thermal state.

On the 7990 cards, there's a THIRD leakage table (beyond the scope of what I'm writing).

If you want to change the voltage on a 7000 series card, you have to modify the extended voltage tables (referred to as LEAKID_VOLTAGE or VOLTAGE_LUT_ENTRY).  You either need to modify all 5 of the values to be identical (which is wasteful if you flash it to a bunch of cards with different leakage), or you need to modify the values proportionally to be higher/lower.  If it's a boost edition card, you'll need to modify the 2nd table as well.  For the 7990 cards, you'll need to modify the 3rd state table as well (assuming you're keeping the card extremely cool anyways...  otherwise the voltage will likely bounce around).

The cards that are "voltage locked" actually aren't technically "locked".  They still have a variable VRM and can be modified.  The BIOS just has a function that loops and repeatedly sets the voltage.  When you change the voltage with a utility like MSI Afterburner, the voltage actually changes for a split second but it gets changed back by the card's BIOS.  You can still set the voltage in the leakage tables though.

The only utility I'm aware of that will properly modify these tables is here:
http://www.techpowerup.com/forums/showthread.php?t=189089

This utility will modify all 5 voltage values to be the same though.  If you use this to modify your BIOS and then flash it to multiple cards, you're most likely wasting electricity because you'll set the voltage high on a low-leakage chip.  Either that, or you'll flash too low of a voltage on a high leakage chip and it'll be unstable at your desired clock.  In other words -- you'll need to create multiple BIOS files with different voltages and flash them according to your cards for optimal power savings (or modify the files manually with proper voltage "steps").

I spent many full days reverse engineering the 7000 series BIOSes quite a few months back.  If anyone has any technical questions, feel free to post 'em.
hero member
Activity: 642
Merit: 500
Thanks for writing this guide, but be aware that this doesn't actually change the voltage.  It just changes what ADL *reports* as the voltage.  The voltage must be changed by modifying the values sent to the voltage regulator.  The number you're modifying is only a "label" for the voltage used, not to control the voltage itself.  You'll see the voltage change in CGMiner etc, but if you measure it with a meter, it didn't move.
full member
Activity: 200
Merit: 100
This is for Hardware that has Voltage locked via the BIOS.   All you are doing is Lowering the Voltage Lock ceiling down to a lower level.  This way, it is still voltage locked but at a lower level.  therefore unlocking it per say.
member
Activity: 99
Merit: 10
Funny thing is, is that my HD7850's don't really use more power when overvolted, or use less when undervolted.
But, 100W is a huge win, such things mean ROI or no ROI.

Thanks for the guide, I thing many people will find this usefull.
Think most of 7850's are voltage locked. I have voltage slider on my asus/xfx cards and i can move it around. But if i check in gpu-z it's at the same stock value no matter what i do.
sr. member
Activity: 840
Merit: 255
SportsIcon - Connect With Your Sports Heroes
That's an excellent post! I've done it 2 weeks ago, but using an usb pen booting DOS.
legendary
Activity: 1344
Merit: 1004
Funny thing is, is that my HD7850's don't really use more power when overvolted, or use less when undervolted.
But, 100W is a huge win, such things mean ROI or no ROI.

Thanks for the guide, I thing many people will find this usefull.

Maybe your 7850 is voltage locked.
hero member
Activity: 812
Merit: 1000
I <3 VW Beetles
Funny thing is, is that my HD7850's don't really use more power when overvolted, or use less when undervolted.
But, 100W is a huge win, such things mean ROI or no ROI.

Thanks for the guide, I thing many people will find this usefull.
legendary
Activity: 1344
Merit: 1004
The benefit of doing this is what exactly?

I'm going to assume you have free power. The point of this is to reduce power consumption, so lower electric bills. It's also possible the resulting lower temperatures gives higher overclock headroom, even at lower volts.
full member
Activity: 200
Merit: 100
Guys, I have done this on Sapphire 7970 and Gigabyte 7950s.  I had undervolted the ROMs to have them running at lover voltages.
Before specs:
  • 4 x 7950s @ 550kh/sec @ 1000 watts
  • 1 x 7970 @ 700kh/sec @ 350 watts
After undervolting modded stock BIOS
  • 4 x 7950s @ 665 kh/s @ 900 watts @ 1.0v
  • 1 x 7970 @ 730 kh/s @ 250 watts @ 0.962v

To modify your BIOS, follow the instructions listed below.  See Disclaimer below.

  • Grab atiflash and save your bios ("./atiflash -s 0 bios0.back.up.rom" to save bios from card zero),
  • Check that it produces a file of size 128Kb ("ls -lkh bios0.back.up.rom"),
  • If it produced file of size 256Kb, these will appear valid but attempting to write them back to the card will always fail, leaving you without a valid backup! In this case, retry to read the video card bios again specifying an additional size parameter ("./atiflash -s 0 bios0.back.up.rom 20000"),
  • You should save the bios from each card, then use diff to see which match and modify that subset, then flash all the cards,
  • Please check all GPUs stock voltage in cgminer GPU Management and Bios Config File in output of "./atiflash -ai", these can vary between bios in "identical" brand GPUs,
  • Transfer all bios to a Windows PC/laptop using WinSCP, or via Webmail if you do not have WinSCP
  • Open the saved bios in a hex editor, we use Frhed,
  • Convert that bios stock GPU voltage into hex, eg google "1125 in hex" if bios stock voltage is 1.125. The hex equivalent in this case is 0x465,
  • Reverse the stock hex voltage, eg: 0x465 = 04 65 = 65 04,
  • Using your hex editor, search and replace for (reversed stock voltage) with your desired voltage in the same pattern, eg: to undervolt to 0.962V, 0962 = 0x3C2 = c2 03, so you'd replace with ,
  • Save the modified bios to a different file name so you can always write the original back if required,
  • Unlock the bios for the card you wish to flash (eg: ./atiflash -unlockrom 0),
  • Transfer the modified bios back to your (Linux) coin mining rig and write the modified bios back to the video card using atiflash with the -f parameter to bypass checksum checks. In our experience this can fail multiple times before succeeding and some bios require using different write flags (-atmel, -sst).
  • Cold Reboot and use cgminer GPU Management to see new undervoltage in action!
  • We recommend doing one card to start with and not the primary video card until you are confident with the process :-)

After doing all this above, you will save money and be able to run a cooler rig.  I now use 1250 watts total and it a beautiful space heater for my whole house Smiley

Happy Bios Flashing, Video Card Undervolting & Coin Mining!



If you Found this article useful, please send a donation to:

BTC: 1PoN7e4q5DMoTXiU2HYecbaGrb78mSxo6W
LTC: LNYFzi4ed8gBwk8joVpntk5apUcvndu2g9
BTB: BBe9NyL2uzne4ZEXax39huFzUH1XMD4a7t
BTG: gbpuqkpmZVhcJgZBQtmGRamSvLdEhQFEkM

DISCLAIMER: Any and all modifications done here is at your own risk.  I am not responsible if your hardware goes dead, gets damaged, or burns up.  This information is strictly for educational purpose.  Use at your own risk.
Jump to: