- Joined
- Feb 21, 2008
- Location
- Baltimore, MD
So everyone knows that its a pretty big pain in the a** to try to pin down the optimal settings for maximizing hashrates. hours and hours of trial and error, chasing down seemingly impossible to catch "unicorns" of that perfect config. Part of the problem is that there are just SO MANY knobs to turn. GPU speed, mem speed, thread concurrency, gpu threads, etc. change one setting a little bit and all hell can break loose and hashrates plummet.
I wanted to have a thread with a little more of a systematic approach.
Ive had my XFX 7950 chugging along at 625KH/s (1100core/1250mem) for quite some time now, and have a feeling that theres more in it. but ive already spent hours and hours tweaking it already, and it's frustrating with so many options to play with.
Problem 1. VDDC.
From the factory, this card is voltage locked to 1.25v under load. quite a lot. and this card has always run a bit warm, even in a very cold room. so i wanted to reduce the temps a bit. the power savings in undervolting are nice, but not necessarily a concern for me.
I more or less followed ivan's method Click HERE - Easy undervolting guide to change the voltage of my card. its pretty easy. just pull the BIOS from GPU-z, open with VBE7, change volts (or other settings you want), save new rom, flash with atiwinflash, reboot, done.
I made my core voltage 1.091 (reported as 1.10) and removed the boost setting by making states 0 and 6 the same.
Problem 2. Finding optimal Core/Mem/TC settings.
this is the part i hated most when i started tweaking. because you had to either guess, or look up what other people did, and then sit there for hours on end testing them to see what hashrates it produced.
I'm an engineer. I'm a fan of automation. And I like having a method, rather than blind guessing each value I don't want to do something so trivial if i can have the computer do it for me. so i did some googling, and came across a little tool that so far seems pretty helpful.
GPU Clock Optimizer for CGminer: http://www.holynerdvana.com/2013/12/finding-optimal-clock-speed-for-cgminer.html
NOTE:
be sure to change the default powertune in the batch files from 50 to 20. not sure why, but with it at 50, it was causing the card to throttle and giving inconclusive results. also you have to test each card individually, so if you have more than one card in the system, either remove them, or set which device you want to test in the 'miner-' sub-batch files by using the -d 0 (or whichever GPU youre testing 0,1,2,3,etc) flag.
this tool is great. its a collection of batch files that will systematically test gpu and memory clock settings and record the hashrate. **these batch files are hard coded with an intensity of 20 and gpu-threads of 1. if you want to change those settings, you will need to edit the 'miner-' batch files.
1. download the zipped file
2. extract it to your cgminer folder
3. delete/move or temporarily rename your conf file if you use one
then you simply edit some parameters in the batch file and let it run, come back a little while later, and look at the output txt file. HOWEVER, THIS PROCESS TAKES A VERY LONG TIME!!. that is because for GPU it tests every value between your start/stop points in 5MHz increments, and runs each test for 5 minutes and for memory it does increments of 10MHz. i believe this will be a worthwhile endeavor though to find the optimal settings.
run the gpu clock file first choose an arbitrary (but safe and stable) memory speed, 1200-1300 is safe for 79xx cards and r9 280-290 cards, if youre testing something else, be sure to use whatever is safe/stable for your card. then choose whichever clock speed had the best hashrate, and move onto running the memory clock file. but this time use whichever GPU clock speed had the best hashrate. set your start and stop mem speeds, and let it run.
when its over, you should now have the best core/mem speeds for your card! next move on to fine tuning the TC...
Problem 3. Thread Concurrency
Use a similar tool to test TC. this one takes even longer to run.
Thread Concurrency Optimizer for CGminer: http://www.holynerdvana.com/2013/12/cgminer-optimal-thread-concurrency-for.html
pretty much the same as above, but varies the TC value. when it is finished, choose the setting with the best hashrate that has NO hardware (HW) errors. keep in mind that TC is strung to intensity and high intensities with low TCs will produce a lot of HW errors. its also good to note that this is only getting an average of 5mins of run time. if the best hashrate you get is from the lowest TC with no HW errors, then it's probable that over a longer time you'll still generate some HW errors. in which case just bump the TC up a bit.
I'm still testing this with my 7950, so I will add results.
I wanted to have a thread with a little more of a systematic approach.
Ive had my XFX 7950 chugging along at 625KH/s (1100core/1250mem) for quite some time now, and have a feeling that theres more in it. but ive already spent hours and hours tweaking it already, and it's frustrating with so many options to play with.
Problem 1. VDDC.
From the factory, this card is voltage locked to 1.25v under load. quite a lot. and this card has always run a bit warm, even in a very cold room. so i wanted to reduce the temps a bit. the power savings in undervolting are nice, but not necessarily a concern for me.
I more or less followed ivan's method Click HERE - Easy undervolting guide to change the voltage of my card. its pretty easy. just pull the BIOS from GPU-z, open with VBE7, change volts (or other settings you want), save new rom, flash with atiwinflash, reboot, done.
I made my core voltage 1.091 (reported as 1.10) and removed the boost setting by making states 0 and 6 the same.
Problem 2. Finding optimal Core/Mem/TC settings.
this is the part i hated most when i started tweaking. because you had to either guess, or look up what other people did, and then sit there for hours on end testing them to see what hashrates it produced.
I'm an engineer. I'm a fan of automation. And I like having a method, rather than blind guessing each value I don't want to do something so trivial if i can have the computer do it for me. so i did some googling, and came across a little tool that so far seems pretty helpful.
GPU Clock Optimizer for CGminer: http://www.holynerdvana.com/2013/12/finding-optimal-clock-speed-for-cgminer.html
NOTE:
be sure to change the default powertune in the batch files from 50 to 20. not sure why, but with it at 50, it was causing the card to throttle and giving inconclusive results. also you have to test each card individually, so if you have more than one card in the system, either remove them, or set which device you want to test in the 'miner-' sub-batch files by using the -d 0 (or whichever GPU youre testing 0,1,2,3,etc) flag.
this tool is great. its a collection of batch files that will systematically test gpu and memory clock settings and record the hashrate. **these batch files are hard coded with an intensity of 20 and gpu-threads of 1. if you want to change those settings, you will need to edit the 'miner-' batch files.
1. download the zipped file
2. extract it to your cgminer folder
3. delete/move or temporarily rename your conf file if you use one
then you simply edit some parameters in the batch file and let it run, come back a little while later, and look at the output txt file. HOWEVER, THIS PROCESS TAKES A VERY LONG TIME!!. that is because for GPU it tests every value between your start/stop points in 5MHz increments, and runs each test for 5 minutes and for memory it does increments of 10MHz. i believe this will be a worthwhile endeavor though to find the optimal settings.
run the gpu clock file first choose an arbitrary (but safe and stable) memory speed, 1200-1300 is safe for 79xx cards and r9 280-290 cards, if youre testing something else, be sure to use whatever is safe/stable for your card. then choose whichever clock speed had the best hashrate, and move onto running the memory clock file. but this time use whichever GPU clock speed had the best hashrate. set your start and stop mem speeds, and let it run.
when its over, you should now have the best core/mem speeds for your card! next move on to fine tuning the TC...
Problem 3. Thread Concurrency
Use a similar tool to test TC. this one takes even longer to run.
Thread Concurrency Optimizer for CGminer: http://www.holynerdvana.com/2013/12/cgminer-optimal-thread-concurrency-for.html
pretty much the same as above, but varies the TC value. when it is finished, choose the setting with the best hashrate that has NO hardware (HW) errors. keep in mind that TC is strung to intensity and high intensities with low TCs will produce a lot of HW errors. its also good to note that this is only getting an average of 5mins of run time. if the best hashrate you get is from the lowest TC with no HW errors, then it's probable that over a longer time you'll still generate some HW errors. in which case just bump the TC up a bit.
I'm still testing this with my 7950, so I will add results.
Last edited: