• Welcome to Overclockers Forums! Join us to reply in threads, receive reduced ads, and to customize your site experience!

Optimizing GPUs for maximum hashrate

Overclockers is supported by our readers. When you click a link to make a purchase, we may earn a commission. Learn More.

gsrcrxsi

Member
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.
 
Last edited:
XFX 7950 DD 3GB - Results
this card is generally regarded as an underperformer. i struggled to get it to break 600 through trial and error.
Baseline: 625 KH/s @ 1100core/1250mem, TC 20240, -g1, -I20
Final: 665 KH/s @ 1120/1480, TC 21900, -g1, -I20

GPU core vs. Hashrate: best at 1120MHz

E7sKGl6.png

GPU set to 1120, MEM clock vs. Hashrate: best at 1480MHz mem clock (+40KH/s gain!)

NWNh3bl.png

GPU/MEM set to 1120/1480, TC vs. Hashrate: "best" chosen at 21900, had the best WU

L7sqaYs.png

MSI 7870 Hawk - Results
another seeming underperformer, i had trouble breaking 300 with this card
baseline: 350KH/s @ 1200core/1350mem, TC 8192, -g2, -I 12
Final:

Core clock vs Hashrate:

BQAIfcR.png

core set to 890 (better WU), mem vs hashrate:

4ziNRor.png

ATI 5970 - Results
havent played with this one much, seems unstable at current settings
card was DOA, then baked to resurrect
card has ArcticCooling Xtreme5970 HSF, nice and cool temps
baseline: 370KH/s per GPU (740KH/s total) @ (800,800)core/(1000,1000)mem, TC (8192,8192), -g1, -I18,18
Final: 765 KH/s total @ (815,815)core/(1000,1000)mem, TC 8192, -g1, -I20,20

GPU core(s) vs. Hashrate: best 815MHz (technically 825 was the best but i didnt work to flirt with that edge of stability)

vJ5iITi.png

GPU set to 815MHz, GPU mem vs. Hashrate: as you can see, except for the few areas of poor performance, it really doesnt matter what i set it to. I decided to stick with 1000MHz since it's the stock speeds and theres no added benefit to increasing it.

tHoHitW.png

GPU/MEM set to 815/1000, TC vs Hashrate: doesnt really matter outside of a few areas.

ZEcpjch.png

XFX R9-270x - Results
Baseline: 415 KH/s @ 1080core/1500mem, TC 20480, -g1, -I19
Final:
 
Last edited:
Nice quick guide, very interesting. Will have to give these tools a try when I get some time :)
 
Thanks gsrcrxsi!

Nice guide. Need to get ZL1 to sticky this soon perhaps.... I'll shoot him a PM and see what he says...

Going to try this guide after my mining run @ middlecoin is over.
 
XFX 7950 DD 3GB - Results
this card is generally regarded as an underperformer. i struggled to get it to break 600 through trial and error.
Baseline: 625 KH/s @ 1100core/1250mem, TC 20240, -g1, -I20
Final: 665 KH/s @ 1120/1480, TC , -g1, -I20

GPU core vs. Hashrate: best at 1120MHz

E7sKGl6.png

GPU set to 1120, MEM clock vs. Hashrate: best at 1480MHz mem clock (+40KH/s gain!)

NWNh3bl.png

running the TC now with 1120/1480...

MSI 7870 Hawk - Results
another seeming underperformer, i had trouble breaking 300 with this card
baseline: 350KH/s @ 1200core/1350mem, TC 8192, -g2, -I 13
coming soon...

ATI 5970 - Results
havent played with this one much, seems unstable at current settings
card was DOA, then baked to resurrect
card has ArcticCooling Xtreme5970 HSF, nice and cool temps
baseline: 370KH/s per GPU (740KH/s total) @ 800,800core/1000,1000mem, TC 8192,8192, -g1, -I18,18
coming soon...


Now... Did your electricity usage go up? Are the cards drawing more watts?
 
I don't know because I don't have a kil-a-watt.

If I had to guess, I'd say it probably went down. Temps are down a few degrees and the voltage has been lowered.
 
I don't know because I don't have a kil-a-watt.

If I had to guess, I'd say it probably went down. Temps are down a few degrees and the voltage has been lowered.

I just use my dad's clamp on volt multi-meter to measure the amps.

I need to tweak this for my 6850 tonight.


But I have noticed that higher core clocks=more electricity used.....
 
Last edited:
Well I went up a whopping 20MHz on the core. Dropping the volts should have a larger affect

Also, a voltmeter measures volts. An ammeter measures amps.
 
Well I went up a whopping 20MHz on the core. Dropping the volts should have a larger affect

Also, a voltmeter measures volts. An ammeter measures amps.

Sorry, i meant to say muilti-meter. :facepalm:

It can measure volts and amps. My rig draws 1.6 amps average now, after I downclocked...
 
Im about to throw up the values/plots for my 7950s TC. it's pretty interesting, as there are MANY acceptable values, and MANY undesirable values. unfortunately it didnt give me any extra boost in hashrate, it shows that there are definitely values you DONT want to use.
 
ok, new plot of what TC looks like when varied.

i picked the value with the best WU, since many of the peaks were the same. be sure to pick a number out of the range where you get HW errors.
 
started testing the 5970 (dual GPU). core clock vs hashrate is up.

i figured i should just run both GPUs at the same time since everything SHOULD be symmetrical. and it'll be more realistic with the heatload.
 
added the 5970 memory plot. running TC now. interesting to see how different cards react.

Unfortunately, my 6850 didn't respond to the TC changes and mem clock changes. :shrug:

I guess it don't care about the TC or mem clocks, because they had no effect on cgminer's performance. :-/
 
Unfortunately, my 6850 didn't respond to the TC changes and mem clock changes. :shrug:

I guess it don't care about the TC or mem clocks, because they had no effect on cgminer's performance. :-/

what settings did you use? and did you run the gpu clock file first to find the best core clock?
 
what settings did you use? and did you run the gpu clock file first to find the best core clock?

I did, but for some reason, the core got stuck at 930 Mhz :shrug:

There was no difference with TC's any higher than the 6144 setting I use...
 
Very interresting, what Volts are running, did i miss that or did you not mention it?

Since i have 2x 7950's i need to try this when I have time.
 
Back