How to fine tune Radeon 7970 / R9 280X on CGMiner

How to fine tune Radeon 7970 / R9 280X on CGMiner

How-to-fine-tune-a-Radeon-7970-R9-280X-on-CGMiner

Once you have decided to venture into crypto-currency mining and have set up a mining rig, it takes time to fine tune your machine in order to have a better hashrate. I would assume that you have known the basics of Litecoin mining to be reading this, so i will not waste much of your time on the history of crypto-currency and go straight into tweaking the values in CGMiner in order to have a higher hashrate output.

 

Tuning an AMD Radeon 7970

Example tuning a 7970 for Scrypt mining taken directly from the creator of CGMiner:

In the same console/bash/dos prompt/bat file/whatever you want to call it, before running CGMiner,

  • On Linux use this command:

export GPU_MAX_ALLOC_PERCENT=100

  • On Windows use this command:

setx GPU_MAX_ALLOC_PERCENT 100

 

 Step 1 : --thread-concurrency

  • First, find the highest thread concurrency that you can start it at. They should all start at 8192 but some will go up to 3 times that. Don’t go too high on the intensity while testing and don’t change gpu threads. If you cannot go above 8192, don’t fret as you can still get a high hashrate.
  • Delete any .bin files so you’re starting from scratch and see what bins get generated.
  • First try without any thread concurrency or even shaders, as cgminer will try to find an optimal value :

cgminer -I 13

  •  If that starts mining, see what bin was generated, it is likely the largest meaningful TC you can set.

Starting it on mine I get:

scrypt130302Tahitiglg2tc22392w64l8.bin

  • See tc22392 that’s telling you what thread concurrency it was. It should start without TC parameters, but you never know. So if it doesn’t, start with --thread-concurrency 8192 and add 2048 to it at a time till you find the highest value it will start successfully at.

 

Step 2 :  --gpu-memclock

Then start overclocking the eyeballs off your memory, as 7970s are exquisitely sensitive to memory speed and amazingly overclockable but please make sure it keeps adequately cooled with –auto-fan! Do it while it’s running from the GPU menu. Go up by 25 at a time every 30 seconds or so until your GPU crashes. Then reboot and start it 25 lower as a rough start. Mine runs stable at 1900 memory without overvolting. Overvolting is the only thing that can actually damage your GPU so I wouldn’t recommend it at all.

 

Step 3 : --gpu-engine

Once you find the maximum memory clock speed, you need to find the sweet spot engine clock speed that matches it. It’s a fine line where one more MHz will make the hashrate drop by 20%. It’s somewhere in the .57 – 0.6 ratio range. Start your engine clock speed at half your memory clock speed and then increase it by 5 at a time. The hashrate should climb a little each rise in engine speed and then suddenly drop above a certain value. Decrease it by 1 then until you find it climbs dramatically. If your engine clock speed cannot get that high without crashing the GPU, you will have to use a lower memclock.

 

Step 4 : Final tweaking

Then, and only then, bother trying to increase intensity further.

 

My final settings were:

--gpu-engine 1141 --gpu-memclock 1875 -I 20

for a hashrate of 745kH.

 

Note: I did not bother setting a thread concurrency. Once you have the magic endpoint, look at what tc was chosen by the bin file generated and then hard code that in next time (eg --thread-concurrency 22392) as slight changes in thread concurrency will happen every time if you don’t specify one, and the tc to clock ratios are critical!

 

Good luck, and if this doesn’t work for you, well same old magic discussion applies, I cannot debug every hardware combo out there. Your numbers will be your numbers depending on your hardware combination and OS, so don’t expect to get exactly the same results!


Did you remember to share this with your friends?
  • monkeygoes

    Thanks for the guide Justin,
    I can’t seem to adjust the memclock/engineclock from the GPU menu (cgminer372). It might be showing 500MHz first. Then, after I set it to 525 it accepts it, then shows that the memclock got knocked down to 300Mhz. I kept trying but it never seems to reflect my changes. Any reason why this might be happening?

    I have 2x ATI Radeon 5770 Sapphire.

  • Generic42

    Have you seen 280X cards not take to tweaking? I have 3 XFX R9 280X cards, each cranking out about 710KH/s using the lastest version of BAMT. I’m using:
    Intensity 20, Engine 1080, Memclock 1500 and 23Kish threads. If I do any tweaks to increase Engine, Memclock or threads the hash rate just tanks. I tried dropping to Intensity 13 and 8192 threads but then the hashrate drops to the low 600s.

    Any thoughts or recommendations?

    • shadowin1126

      I have an experience with Powercolor R9 280X where i have to increase the intensity to above 13 in order to have a higher hashrate. But the highest it can go is around 650khash/sec. Then i found the solution by flashing the BIOS and now it’s cranking at 760khash/sec on 13 intensity.

      But i can see with your situation, you have achieved above 700khash/sec which is considered as a decent speed for 280X. So my suggestion is either you keep it at that settings or try your luck with flashing the BIOS. I haven’t tried the XFX card so i’m only speaking from my experience with other 280X cards.

      ps. always flip your dual BIOS switch before flashing so that you would be able to revert to your original BIOS even if something did go wrong after flashing.

  • Michael Runge

    I’ve only been mining since saturday around 12 noon. I’ve been toying with the settings for cgminer via the bat file but can’t seem to get over say 450-460WU. I tried working with your guide and dropping everything out of the bin but:
    Setx GPU_MAX_ALLOC_PERCENT_100
    SETX GPU_USE_SYNC_OBJECTS 1 (this was listed on ltcrabbit to put in the bat file)

    cgminer –scrypt -o stratum+tcp://eu.ltcrabbit.com:3333 -u sfdjfks.user -p 4842942 -w 256 -g 2 –auto fan –intensity 13

    For it to make its own bin file. Which it did and I’ve tried the TC number it says by adding that line

    –thread-concurrency 22400

    which does nothing different over 8192. I’ve also went the route of using 8192 and adding 2048 to it multiple times but nothing is really changing.

    What makes this mess difficult is everyone says the numbers that cgminer portrays aren’t actual hash numbers and are really estimates and the same goes for what the pool says I’m hashing. I was told the only way to find out what you are really hashing is to take the numbers under WU and divide by .92.

    It takes so long for cgminer’s WU numbers to stabilize to move onto the next set of numbers to try and find the sweet spot. I’m figuring no matter what I set it’s still running about 440-475 WU

    I’m running stock clocks on my Diamond 7970PE53G of 975/1375 currently and haven’t even ventured to messing with the clocks yet as I can’t seem to get the program to spit out anything different as it should.

    I must have something wrong in my bat file as shown above that is causing a problem. The more I mess with it here and there throughout the day the worse my daily figure drops.

    I did find out today after picking up a Kill-A-Watt that when mining I’m only pulling an extra 186 watts to make 371 total out of my gaming computer (which is monitor speakers etc)