First thing you need to do is open up a command window and input this command.This will allow your card to use higher thread concurrencies than normal:
setx GPU_MAX_ALLOC_PERCENT 100
First off you need to get cgminer which you can find here:
https://bitcointalk.org/index.php?topic=28402.0
Once you have cgminer you need to make a new notepad file and put the following inside.
cgminer --scrypt -o (poolurl:poolport) -u (worker name) -p (Worker password) --intensity 13 --worksize 256 -g 2 --thread-concurrency XXXX
(you may need to change g2 for g1 depending on your card)
then save it as a .bat file.
Run this from inside your cgminer folder and it will create a .bin file part of the file name will be tcXXXX, where XXXX is a number, this is your thread concurrency that cgminer tries to auto detect. once you have that number open up your batch file for editing and add the following.
--thread-concurrency XXXX
so it will look like this
cgminer --scrypt -o (poolurl:poolport) -u (worker name) -p (Worker password) --intensity 13 --worksize 256 -g 2 --thread-concurrency XXXX
save the .bat file
now what you want to do is add 2048 to the thread concurrency number and start cgminer each time until it won't start up. then the last number it successfully started at will be your golden number, the highest possible thread concurrency your card will run at.
Now what you want to do is run cgminer and use an overclocking tool like catalyst or gpu tweak so slowly increase your memory clock in intervauls of 25 until your gpu crashes. once it crashes reboot and take your number it crashed at. subtract 50 and that is your number and then you want to add this to your .bat file
--gpu-memclock XXXX
cgminer --scrypt -o (poolurl:poolport) -u (worker name) -p (Worker password) --intensity 13 --worksize 256 -g 2 --thread-concurrency XXXX --gpu-memclock XXXX
Then 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 cgminer one more time and watch your hashrate. 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.
Once you have found your optimal clock to memory ratio take the number and add this to your .bat file
--gpu-engine XXXX
to look like this
cgminer --scrypt -o (poolurl:poolport) -u (worker name) -p (Worker password) --intensity 13 --worksize 256 -g 2 --thread-concurrency XXXX --gpu-memclock XXXX --gpu-engine XXXX
My .bat file ended up looking like this on my 7970 and i gained about 70kh/s per second.
cgminer --scrypt -o http://notroll.in:6332 -u (workername) -p (Worker password) --thread-concurrency 16384 --intensity 13 --worksize 256 -g 2 --gpu-engine 1026 --gpu-memclock 1600
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!