Author Topic: Poor hash rate on Radeon 7900 / 280X series cards? Here is the fix  (Read 314423 times)

Offline The Stilt

  • Sr. Member
  • ****
  • Posts: 804
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:

400MHz (0-400MHz)
800MHz (401-800MHz)
900MHz (801-900MHz)
1000MHz (901-1000MHz)
1125MHz (1001-1125MHz)
1250MHz (1126-1250MHz)
1375MHz (1251-1375MHz)
1500MHz (1376-1500MHz)
1625MHz (1501-1625MHz)
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":
URL REMOVED



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 ;)
« Last Edit: February 14, 2014, 09:37:02 PM by The Stilt »
BTC: 1FCMi2fA2opmJANHKZkDsdJriwTGXGR8kP
LTC: LVFjDYv1iioTZ3YcX3mraV7LHKxQXDcpF4
DOGE: D7H44tkLuxbsbAUpiNKswXnVrZVkDmFim7
ALL: e6f1126ff86f7a806bc2c7140b3cc9a16a8a9fe1 (Cryptsy Trade Key)

Advertisement: Advertise Here

Octopuss

  • Guest
Re: Poor hash rate on Radeon 7900 / 280X series cards? Here is the fix
« Reply #1 on: January 06, 2014, 02:02:12 PM »
edit: looks like I was wrong. It seems legit.
« Last Edit: January 07, 2014, 10:18:59 PM by Octopuss »

Offline Sk1llS

  • Jr. Member
  • **
  • Posts: 135
Re: Poor hash rate on Radeon 7900 / 280X series cards? Here is the fix
« Reply #2 on: January 06, 2014, 02:12:58 PM »
Well most cards are dual bios so you don't have much to lose...

Offline jukk

  • Newbie
  • *
  • Posts: 15
Re: Poor hash rate on Radeon 7900 / 280X series cards? Here is the fix
« Reply #3 on: January 06, 2014, 04:09:08 PM »
FYI linux people, the mentioned Tahiti GDDR5 Identifier software doesn't work under linux, but VBE7 works in Wine and is able to list the memory manufacturer and model from the BIOS information (BIOS image can be read in linux with the linux variant of atiflash without rebooting the PC).
LiZDKPu9PKXWykjN3xqAgdnAmhst13d1ay

Offline dexX7

  • Jr. Member
  • **
  • Posts: 84
Re: Poor hash rate on Radeon 7900 / 280X series cards? Here is the fix
« Reply #4 on: January 06, 2014, 06:01:27 PM »
So how can I edit the timing tables or find out more about it?
« Last Edit: January 08, 2014, 01:37:56 AM by dexX7 »

Offline slax0r

  • Jr. Member
  • **
  • Posts: 71
Re: Poor hash rate on Radeon 7900 / 280X series cards? Here is the fix
« Reply #5 on: January 06, 2014, 07:45:46 PM »
Don't be n00b haters.  The math actually checks out. And Ive seen most of this before in the Overclockers and Guru3d forums. And some of it is in the AMD APP SDK developers' docs. @The Stilt just did us all a favor and consolidated it. 

I for one say Thanks!!!  +1 
If any of my ranting or raving has helped you, please consider a donation.

LTC: LZVL5c2R4XgassRJrBDsfPNDCo5rdAyHyL

Offline The Stilt

  • Sr. Member
  • ****
  • Posts: 804
Re: Poor hash rate on Radeon 7900 / 280X series cards? Here is the fix
« Reply #6 on: January 06, 2014, 08:11:36 PM »
FYI linux people, the mentioned Tahiti GDDR5 Identifier software doesn't work under linux, but VBE7 works in Wine and is able to list the memory manufacturer and model from the BIOS information (BIOS image can be read in linux with the linux variant of atiflash without rebooting the PC).

These programs can only list the included VRAM block profiles in the bios, based on a raw text identifier.
Since there can be up to three different profiles included it will not reveal which of the chips are actually installed on your card.
Of course if there is only a single profile included then you will know for sure.

Thats why you need to use the "Tahiti GDDR5 Identifier" or alternatively your bare eyes.
Unfortunately in most cases the ICs are not visibile due the heatsink so I made a program which makes it possible to check the actual memory ICs used without disassembling the card.

The "Tahiti GDDR5 Identifier" is safe as it is a simple AutoIT script I made.
There are two drivers (Winring & inpout) which both ring0 drivers and therefore could be used for malicious purposes.
Some less credible AV might get excited about these, however the very same drivers have been used in numerous other software (such as OpenHWMonitor, etc).
BTC: 1FCMi2fA2opmJANHKZkDsdJriwTGXGR8kP
LTC: LVFjDYv1iioTZ3YcX3mraV7LHKxQXDcpF4
DOGE: D7H44tkLuxbsbAUpiNKswXnVrZVkDmFim7
ALL: e6f1126ff86f7a806bc2c7140b3cc9a16a8a9fe1 (Cryptsy Trade Key)

Offline The Stilt

  • Sr. Member
  • ****
  • Posts: 804
Re: Poor hash rate on Radeon 7900 / 280X series cards? Here is the fix
« Reply #7 on: January 06, 2014, 08:15:57 PM »
I'm all for testing new ideas.

https://www.dropbox.com/s/x1gtz82g1f1fgyw/Gigabyte-280x-REV2-F60.zip

This card uses Elpida ICs only.
Gigabyte has also modified the stock configuration block (provided by AMD) for more aggressive timings already.
There is not much to be done, however since the PPI on this card is high due the high engine clock (1.1GHz) you can see a minor improvement with this: https://www.dropbox.com/s/nhihlvrkcujl584/GV-R928XOC-3GD_F60_AGR.zip

Use the included ATIFlash (DOS) to update the bios.
Never use the WinFlash (even the newest version) as it fails more often than it actually succeeds.

In case you got artifacts or other issues just revert to the original bios.
BTC: 1FCMi2fA2opmJANHKZkDsdJriwTGXGR8kP
LTC: LVFjDYv1iioTZ3YcX3mraV7LHKxQXDcpF4
DOGE: D7H44tkLuxbsbAUpiNKswXnVrZVkDmFim7
ALL: e6f1126ff86f7a806bc2c7140b3cc9a16a8a9fe1 (Cryptsy Trade Key)

Offline The Stilt

  • Sr. Member
  • ****
  • Posts: 804
Re: Poor hash rate on Radeon 7900 / 280X series cards? Here is the fix
« Reply #8 on: January 06, 2014, 08:24:44 PM »
So how can I edit the timing tables or find out more about it?

The ATOMBios is made of around 70 separate blocks.
Each of them control the different features of the card.

The VRAM block controls the memory configuration.
It contains information about model and frequency specific settings.
The timings can be found in per register (dword) strings inside the block.

Unfortunately the decoding of the timings and the actual control register locations are confidential.
I will not disclose them any further.
BTC: 1FCMi2fA2opmJANHKZkDsdJriwTGXGR8kP
LTC: LVFjDYv1iioTZ3YcX3mraV7LHKxQXDcpF4
DOGE: D7H44tkLuxbsbAUpiNKswXnVrZVkDmFim7
ALL: e6f1126ff86f7a806bc2c7140b3cc9a16a8a9fe1 (Cryptsy Trade Key)

Offline Joe-Dirt

  • Jr. Member
  • **
  • Posts: 37
Re: Poor hash rate on Radeon 7900 / 280X series cards? Here is the fix
« Reply #9 on: January 06, 2014, 08:35:45 PM »
Wow. Flashed the BIOS he sent me. Put all my clocks and voltages back to stock and its hashing at 750 Kh/s. Before with stock settings it would be at 550-600.
If I helped you out, maybe help me out: LLNSvxudA5icF4XG3ztR6U37GtXy2F4Anf

Free LTC: http://ltc4you.com/?r=29062

Offline Sy

  • Global Moderator
  • Legendary Member
  • *****
  • Posts: 5087
Re: Poor hash rate on Radeon 7900 / 280X series cards? Here is the fix
« Reply #10 on: January 06, 2014, 08:40:53 PM »
Wondering why google got no results for that Tahiti GDDR5 Identifier except this thread, link removed for now - if he offers to scan the bios anyway just dump it with gpuz - not enough for a ban though, the technical stuff seems about right ^^

Remember, run external programs with care, use sandboxie and in general don't trust downloads from dropbox since they are most likely user modified, no reason to not link to something official.

Offline Joe-Dirt

  • Jr. Member
  • **
  • Posts: 37
Re: Poor hash rate on Radeon 7900 / 280X series cards? Here is the fix
« Reply #11 on: January 06, 2014, 08:46:12 PM »
He did say he made it himself. Might be why you can't find it on google.
If I helped you out, maybe help me out: LLNSvxudA5icF4XG3ztR6U37GtXy2F4Anf

Free LTC: http://ltc4you.com/?r=29062

Offline slax0r

  • Jr. Member
  • **
  • Posts: 71
Re: Poor hash rate on Radeon 7900 / 280X series cards? Here is the fix
« Reply #12 on: January 06, 2014, 08:56:40 PM »
Wondering why google got no results for that Tahiti GDDR5 Identifier except this thread, link removed for now - if he offers to scan the bios anyway just dump it with gpuz - not enough for a ban though, the technical stuff seems about right ^^

Quote
The "Tahiti GDDR5 Identifier" is safe as it is a simple AutoIT script I made.

It is an original creation that hasn't seen the light of day except here.  Thats why it doesn't show up in a Google search.  Try looking up AutoIT.  This is a just a script that runs in it.  It is also AutoIT that can be the gateway to some blackhat funkiness which is why it triggers false positives in the scanners.

If @The Stilt would care to share the code to his script, I think it might put some minds at ease.

If any of my ranting or raving has helped you, please consider a donation.

LTC: LZVL5c2R4XgassRJrBDsfPNDCo5rdAyHyL

Offline The Stilt

  • Sr. Member
  • ****
  • Posts: 804
Re: Poor hash rate on Radeon 7900 / 280X series cards? Here is the fix
« Reply #13 on: January 06, 2014, 08:59:56 PM »
I made the program today so it is not likely to be found in Google yet.

You may want to look the other things I've done in past:

The Stilt's AMD "Extreme" Tools Collection

Or you could just Google "The Stilt" and check the hardware related things from the results.

All of my previous software used WinRing driver, however "inpout" driver is new one.
It is based on WinIO driver, which could not be used as it is as it is unsigned (needs test mode on x64 Windows).

You can find more about the latter one from: http://www.highrez.co.uk/Downloads/InpOut32

None of the drivers have been modified in any way, FYI.

BTC: 1FCMi2fA2opmJANHKZkDsdJriwTGXGR8kP
LTC: LVFjDYv1iioTZ3YcX3mraV7LHKxQXDcpF4
DOGE: D7H44tkLuxbsbAUpiNKswXnVrZVkDmFim7
ALL: e6f1126ff86f7a806bc2c7140b3cc9a16a8a9fe1 (Cryptsy Trade Key)

Offline tokyodrifte

  • Newbie
  • *
  • Posts: 15
Re: Poor hash rate on Radeon 7900 / 280X series cards? Here is the fix
« Reply #14 on: January 06, 2014, 09:21:59 PM »
I hear the poor hash rate is quite common on XFX 7970's which I will be getting in a few days, is this something you could help with if I sent you copies of the BIOS?