So i'm new to this game, about 3 weeks in now. One of the most frustrating problems i came across, was that my 2 7970's both got 700+Mh/s on sha-256 but when it came to scrypt they were only getting about 550Kh/s.
I spent a solid week searching for answers - I have noticed so many people with the same problem - and there are lot's of responses about how certain 7970's are just crap and you should sell them blah blah well anyway that's rubbish - Most if not all 7970's should be able to get 700+Kh/s.
Some of you will have just not set them up properly and won't need to flash, but, there are specific cards that for some unknown reason seriously under perform on scrypt. Luckily, the solution is rather simple.
Now, just to clarify, all the setting i state are for a sapphire vapor-x ghz edition, so they may vary for other cards.
I can confirm i have gotten peoples gigabyte and xfx cards up to these speeds, and my own is currently hashing at 730Kh/s. It is usally the ghz/vapor-x/ possibly OC editions that need flashing.
Oh and one other thing - if you think your card is voltage locked, try MSI afterburner version 2.2.2 and Sapphire Trixx, as some cards that people claim to be voltage locked are not when using Trixx or older MSi software.
Before we go as far as flashing, try the following:
Before running cgminer, open cmd, type "setx GPU_MAX_ALLOC_PERCENT 100" (no quotation marks) and press return, then close cmd.
Change your MSI afterburner settings to the following:
GPU Clock - 1040Mhz *
GPU Voltage - 1100Mv
Memory Clock - 1500Mhz
Memory Voltage - 1500Mv
*This is the optimal value for one of my identical cards, the other one get's a much lower hashrate with this value so i use 1025Mhz which get's 730Kh/s as well - It will be specific with each unique card, and it's more about the ratio of the GPU to memory speeds than how high they are. With scrypt 1Mhz can easily make a 20Kh/s+ difference in hashrate.
EDIT - I have noticed something peculiar about the vapor-x cards. Sometimes the hashrate is very stable, stays at the same value, but if i change something suddenly the hashrate will be up and down like a yo-yo.
The strange thing is, this doesn't seem to be because for e.g there's not enough voltage or your clock speeds are too high. I found that is the difference between memory voltage and clock OR
GPU Voltage and clock that causes this in my experience, if it's too big a difference you have problems, if it's too small a difference you have problems. Hope this helps if you've noticed this issue.
The trick is to find the sweet spot - Start at 1040, find whether going up or down increases hashrate, then keep moving GPU speed in that direction untill the hashrate suddenly goes down, back up 1 or 2Mhz and that should be the optimal clock settings for 1500Mhz memory - if you then decide to change memory speed you will need a totally different gpu speed.
Then go into a fresh cmd window and type:
cgminer --scrypt -o yourpool -u yourusername -p yourpassword -s 2 --expiry 1 --queue 0 --thread-concurrency 20992 -I 13 -w 256 -g 2
Also try 8192.
If your hashrate is still only 550Kh/s - 650Kh/s then a bios flash will be necessary.
**WARNING - If you mess up, there is a small chance you may brick your card**
Luckily with certain cards i.e the vapor-x you have a switch that can switch between 2 different BIOS. So if for some reason after flashing you are unable to boot (i can't imagine any reason this would happen, but still), just push the switch and boot off the second BIOS then re flash with the original BIOS. If you don't have the switch and for some reason you can't boot, you will need to boot off another graphics card and re flash the bios back to original.Ok so here's what you need to do, you will need a USB flash drive:1.
First of all you need to make the flash drive bootable. This software should do the trick: http://rufus.akeo.ie/2.
Next Download the BIOS for your card from this website: http://www.techpowerup.com/vgabios
As for what BIOS you need, this depends on your card. For the Sapphire 7970 this one worked for me: http://www.techpowerup.com/vgabios/129658/sapphire-hd7970-3072-120926.html
Say you have a Gigabyte 7970 Ghz - You want to flash with the Gigabyte 7970 BIOS for a NON Ghz edition version of the card.
Then download atiflash: http://www.techpowerup.com/downloads/2230/atiflash-4-07/
Feel free to rename your bios to new.bios to make life easier further along. 3.
Copy both files over to the bootable USB you created earlier.4.
Restart your PC. Go into your motherboard BIOS and set your boot device priority so the USB drive is first, save and exit. (don't forget to switch this back to your operating system drive after your done)5.
Right so if everything is going well, atiflash should boot (a black screen like cmd if i remember correctly). Type the following and press return: atiflash.exe -i
That will tell you the device number to use in the next step.6.
Then type the following and press return, where 0 is your device number and new.rom is the bios name, or leave it the same if you renamed it: atiflash.exe -f -p 0 new.rom
Once complete, reboot and keep your fingers crossed
Go through the steps i wrote first, varying your GPU speed to find the best value.
HOPEFULLY that should do the trick.
Pleas let me know if i haven't explained something properly, or if anyone needs any help with it, post back and i will try my best.
Hope this helps
Edit - I think this also works for under performing 7950's but obviously not as high and different settings across the board.
Edit - Well i got bored, so here's some proof for any doubters.. and a nice tidy blond piece to go with it
As you can see i've been playing about with MSI Afterburner settings, still haven't got the sweet spot quite right, it's amazing how sensitive these cards are to such small changes.