Against common beliefs there is no magical GPU:MEMCLK ratio (e.g. "0.57") for optimal scrypt mining performance.
There are simply just badly calibrated VBIOSes.
Scrypt mining requires plenty of memory however again against the common beliefs it is not bandwidth intensive.
Instead it can be quite sensitive to memory latency.
In cases where the VBIOS is badly calibrated the performance hit can be up to 200kHash/s.
Since the latency can be decreased by increasing the clock frequency (lower time per cycle), it appears that the memory frequency itself has a major impact on the performance. However as long as the VBIOS is calibrated as it should, the performance is identical at 1250MHz (DDR-5000) and at 1500MHz (DDR-6000) for example.
When the VBIOS works properly the timings are adjusted by the memory controller based on presets defined by the VBIOS.
For example on 7970 card the VBIOS should contain timing presets for following clock regions:
1750MHz (1626-VCO Max)
So when the default memory clocks of a 7970 card is 1500MHz, the memory controller will drive timings defined by the 1500MHz clock profile (if present). As soon as the user sets the memory clock to 1501MHz (e.g.) the memory controller will start driving timings defined by the 1625MHz profile. The same thing happens if the clocks are lowered to 1375MHz for example.
Since the higher frequency profiles will usually have looser timings a slight increase in clock frequency might actually increase the memory latency instead of lowering it. For example at 1500MHz the GDDR5 timings for Hynix modules are 16-17-17 (tCL-tRCD-tRP, in MEMCLKs). This means that the actual cycle time is 10.66ns for tCL, 11.33ns for tRCD and tRP (1000 / 1500 * delay in MEMCLKs). For the 1625MHz clock profile the timings are 17-18-18. This means that if you overclock the memory from 1500MHz to 1550MHz the actual memory latency will increase while the bandwidth increases: 10.967ns for tCL and 11.612ns for tRCD and tRP. This is one of the reasons why overclocking the memory is not always desireable.
There are three different types of GDDR5 models used on Radeon 7900 and 280X series cards.
Two of the modules are made by SK Hynix (AFR and MFR) and the third one is produced by Elpida.
The ODMs are free to choose between the three products so the used memory type might vary even between the different batches.
The AFR version made by SK Hynix is the only one with properly calibrated memory block (provided by AMD).
In case the card is equipped with AFR modules there are no significant performance limitations.
However in case of MFR version the performance is absolute rubbish.
This is simply because of a poorly calibrated VBIOS memory block which has been provided to all ODMs by AMD.
The bottle neck is caused by excess latency and the performance impact can be up to 200kHash/s.
The Elpida modules are in the middle of the two Hynix modules.
There is a slight performance limitation however it is not nearly as severe as on Hynix MFR modules.
At stock both of my 7970 card equipped with Hynix MFR modules had around 530kHash/s rate with 1000/1500MHz frequencies.
The ballpark value for the normal hash rate for Tahiti based cards is around: (Shaders * GPU Clock in GHz) * 0.34 >> (2048 * 1) * 0.34 = 696kHash/s.
In case the hash rate is lower than that the issue is most likely caused by the VBIOS.
So in case you have similar problems here is how to proceed:
Download the "Tahiti GDDR5 Identifier":
Select the version based on your operating system and run it as admin
The program will launch and display all of your Tahiti based (7900 or 280X) adapters installed in your system.
If the program displays "SK Hynix H5GQ2H24MFR
" as the memory type you will need a fixed bios for your card.
In this case use the most recent version of GPU-Z or Atiflash (DOS) to dump your original VBIOS.
Pack the file (zip, rar or similar) and upload it somewhere.NOTE: To reduce the amount of work, please name the archive with the manufacturer part number of your card(s).
I will then compile a new bios version with properly calibrated and optimised memory block.
Only Radeon 7900 and 280X cards are currently supported.
It is likely that Radeon R9 290 and 290X cards are also affected due their high PPI rate.
I will update the situation on 290 cards as soon as it is confirmed.
Donations are welcome and highly appreciated naturally