Thanks to the efforts of the programmer under the nickname Eliovp, the amdmemorytweak utility is available on Bitcointalk and Github, which allows you to work with the GDDR5 and HBM2 video memory timings of video cards on the AMD platform on the fly.
AmdMemoryTweak allows you to achieve the best speed when mining on memory-intensive algorithms on AMD video cards. Many people call it an analogue of the program ETHEnlargment Pill, which significantly increases the performance of Nvidia video cards with GDDR5X memory. In fact, this is certainly true, but to achieve the effect, the user’s level of training should be much higher.
AmdMemoryTweak is especially useful for video cards of the Vega series with HBM2 memory.
Common usage
In amdmemorytweak, you can use the following commands:
--gpu | --i
[comma-separated gpu numbers] - selection of the video cards involved;
--current
- shows current timings;
--help
- displays a list of available commands
Read/applying parameter must be done after overclocking (setting memory clock).
GDDR5
Let’s look to GDDR5 settings which we can get.
Get current settings
amdmemtweak --current
Results for custom BIOS RX570 equipped Elpida memory
GPU 0: Ellesmere [Radeon RX 470/480/570/570X/580/580X/590] pci:0000:01:00.0
Elpida GDDR5
PMG: CKSRE: 2 CKSRX: 2 CKE_PULSE: 10 CKE: 10 SEQ_IDLE: 7
CAS: CL: 20 W2R: 15 R2R: 5 CCDL: 2 R2W: 26 NOPR: 0 NOPW: 0
RAS: RC: 60 RRD: 5 RCDRA: 22 RCDR: 24 RCDWA: 13 RCDW: 12
MISC: RFC: 97 TRP: 22 RP_RDA: 24 RP_WRA: 44
MISC2: WDATATR: 0 T32AW: 0 CRCWL: 22 CRCRL: 3 FAW: 0 PA2WDATA: 0 PA2RDATA : 0
M3(MR4): RAS: 38
DRAM1: RASMACTWR: 6 RASMACTRD: 5 ACTWR: 2 ACTRD: 3
DRAM2: RAS2RAS: 13 RP: 5 WRPLUSRP: 7 BUS_TURN: 3
Refresh: tREF: 30
Getting current settings is useful as a reference.
Yes, this is too many settings, and it is difficult to understand for an unprepared user.
Available options for GDDR5 memory is
--CKSRE|--cksre [value]
--CKSRX|--cksrx [value]
--CKE_PULSE|--cke_pulse [value]
--CKE|--cke [value]
--SEQ_IDLE|--seq_idle [value]
--CL|--cl [value]
--W2R|--w2r [value]
--R2R|--r2r [value]
--CCDL|--ccdl [value]
--R2W|--r2w [value]
--NOPR|--nopr [value]
--NOPW|--nopw [value]
--RCDW|--rcdw [value]
--RCDWA|--rcdwa [value]
--RCDR|--rcdr [value]
--RCDRA|--rcdra [value]
--RRD|--rrd [value]
--RC|--rc [value]
--RFC|--rfc [value]
--TRP|--trp [value]
--RP_WRA|--rp_wra [value]
--RP_RDA|--rp_rda [value]
--WDATATR|--wdatatr [value]
--T32AW|--t32aw [value]
--CRCWL|--crcwl [value]
--CRCRL|--crcrl [value]
--FAW|--faw [value]
--PA2WDATA|--pa2wdata [value]
--PA2RDATA|--pa2rdata [value]
--RAS|--ras [value]
--ACTRD|--actrd [value]
--ACTWR|--actwr [value]
--RASMACTRD|--rasmactrd [value]
--RASMACWTR|--rasmacwtr [value]
--RAS2RAS|--ras2ras [value]
--RP|--rp [value]
--WRPLUSRP|--wrplusrp [value]
--BUS_TURN|--bus_turn [value]
--REF|--ref [value]
For users who use cards with custom BIOS and timings settings, as a rule, will not affect the hashrate growth.
However, using the --REF
parameter, you can achieve a gain of up to 5% on algorithms dependent on memory performance. Good start for REF
parameter is 30.
Command line will look as:
amdmemtweak --REF 30
Also interesting may be the parameters --RC
and --RFC
.
HBM2
HBM2 memory used in Vega series cards. For this cards available options is:
--CL|--cl [value]
--RAS|--ras [value]
--RCDRD|--rcdrd [value]
--RCDWR|--rcdwr [value]
--RC|--rc [value]
--RP|--rp [value]
--RRDS|--rrds [value]
--RRDL|--rrdl [value]
--RTP|--rtp [value]
--FAW|--faw [value]
--CWL|--cwl [value]
--WTRS|--wtrs [value]
--WTRL|--wtrl [value]
--WR|--wr [value]
--RREFD|--rrefd [value]
--RDRDDD|--rdrddd [value]
--RDRDSD|--rdrdsd [value]
--RDRDSC|--rdrdsc [value]
--RDRDSCL|--rdrdscl [value]
--WRWRDD|--wrwrdd [value]
--WRWRSD|--wrwrsd [value]
--WRWRSC|--wrwrsc [value]
--WRWRSCL|--wrwrscl [value]
--WRRD|--wrrd [value]
--RDWR|--rdwr [value]
--REF|--ref [value]
--MRD|--mrd [value]
--MOD|--mod [value]
--XS|--xs [value]
--XSMRS|--xsmrs [value]
--PD|--pd [value]
--CKSRE|--cksre [value]
--CKSRX|--cksrx [value]
--RFCPB|--rfcpb [value]
--STAG|--stag [value]
--XP|--xp [value]
--CPDED|--cpded [value]
--CKE|--cke [value]
--RDDATA|--rddata [value]
--WRLAT|--wrlat [value]
--RDLAT|--rdlat [value]
--WRDATA|--wrdata [value]
--CKESTAG|--ckestag [value]
--RFC|--rfc [value]
The selection of good parameters for this type of memory is a more subtle process, but the hashrate gain is more significant with respect to GDDR5.
Example of usage for Vega 56 with custom BIOS:
amdmemtweak --CL 16 --RAS 30 --RCDRD 12 --RCDWR 5 --RC 44 --RP 10 --RRDS 3 --RRDL 5 --RTP 5 --FAW 20 --CWL 7 --WTRS 4 --WTRL 9 --WR 16 --WRRD 1 --RDWR 19 --REF 17550 --MRD 8 --MOD 15 --PD 8 --CKSRE 10 --CKSRX 10 --RFC 300
With above settings achieved 50MH/s when mining at ethash algorithm.
Hive RXboost
The amdmemtweak
utility is included in the Hive OS distribution. With Hive update to v0.6-45 new option appears in AMD OC settings. This parameter allows you to apply the so-called rxboost tweak that became known after the appearance in the Claymore’s Dual ETH Miner v14 and can be applied to the RX 4xx/5xx series cards. Another words it’s the same as execution amdmemtweak
with --REF
parameter.
When field is empty (default value) then Refresh Rate is not applied. To apply the value of all the cards, enter the same value. If you need to apply individual values for different cards, enter values separated by spaces.
Here some short video how to use this feature: