- AMD Memory Tweak v0.2.3: Download and Apply Timings
- Download for Windows / Linux
- What is AMD Memory Tweak?
- System requirements
- Supported Graphics Cards
- How to use AMD Memory Tweak
- Step 1 — download the software
- Step 2 — launch AMD Memory Tweak
- Step 3 — change timings via bat file
- Video guide
- AMD Memory Tweak XL
- Hive os — RX Boost — AmdMemTweak
- Timings for various video cards
- Vega 56 Samsung
- Vega 64
- RX 5700
- NAVI and GDDR6 video memory
- RX 470/480/570/570X/580/580X/590
- Command-line arguments
- REF 30
- Alternatives
- Does not work?
- Questions and answers
- Strap failed to inject error?
- Conclusions
- Amd memory tweak linux
AMD Memory Tweak v0.2.3: Download and Apply Timings
In this tutorial, you will learn how to set up and use the latest AMD Memory Tweak v0.2.3 and newer.
Download for Windows / Linux
What is AMD Memory Tweak?
— is a new open source tool introduced by Eliovp and A. Solodovnikov. It is a tool that allows you to change graphics card memory timings on the fly like ETHlargementPill, but for AMD. This tool is also compatible with Vega. Works from the command line only.
AMDMemoryTweakXL — This version has a graphical shell. Works similar to your typical graphics card overclocking software such as MSI Afterburner, EVGA Precision XOC or Asus GPU Tweak II. However, Elievp and Solodovnikov’s program primarily focuses on the memory aspect, so it has more advanced features, one of which is the ability to adjust memory timings on the fly.
System requirements
- OS: Windows 10 / Windows 8 / Windows 7 / Windows Vista / XP and Linux.
- Driver: At least Radeon Software Adrenalin 19.4.1 (and AMDGPU-Pro for Linux).
- Driver: At least Radeon Software Adrenalin 19.4.1 (and AMDGPU-Pro for Linux).
Supported Graphics Cards
The authors did not provide a compatibility list, but the program should work with a wide range of AMD Radeon graphics cards, ranging from older models with GDDR5 memory to the latest offerings with HBM (High Bandwidth Memory) and HBM2 memory.
How to use AMD Memory Tweak
Step 1 — download the software
The version for Windows is called WinAMDTweak.exe . However, you need to download all files ( IOMap64.sys , IOMap.sys ) and place them in one folder.
Step 2 — launch AMD Memory Tweak
To work with the utility, you need to study the timings of the available video memory and create a file with the .bat extension with their optimal values for mining.
To find out the current values of the timings, enter the command in the batch file:
The performance of the video memory increases with decreasing latency. We need to lower the timing values and apply them with this software. Keep in mind that video memory from different manufacturers (Samsung, Hynix, Micron, Elpida) have individual characteristics of overclocking timings (lines).
Step 3 — change timings via bat file
For the Vega 56 video card with Hynix video memory, the timings will be as follows:
The launch is performed on the .bat file you created.
Since the timings are applied on the fly, in the event of a reboot, you will have to execute the command again. In order not to perform it every time, configure the batch file autoloading.
To autostart, put your .bat shortcut to Windows Startup. The startup folder in the Windows 10 operating system is located in the following path: C:\Users\ Username \AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
Example for Samsung video memory:
Video guide
Attention!
Miners PhoenixMiner and NBMiner already have a ready-made and built-in timing setting. Read about NBMiner and PhoenixMiner.
AMD Memory Tweak XL
As already mentioned, the XL version, unlike the usual one (CLI), has a graphical shell (GUI):
In it, you can make settings directly in the program window:
It is better to run the software as an administrator.
For GPUs of the Polaris family, add the parameter:
Hive os — RX Boost — AmdMemTweak
I stopped the miner, then I go to Overclocking and here on this screen, there’s a new parameter «Mem tweak». We suggest you put the value of 30 here, then click Save implies, this Overclocking ok. Then I start miner again. MD settings applied. We wait for the miner to settings up. Previously, the hash rate was 55 MH/s, now it has grown to 63 MH/s.
Timings for various video cards
Vega 56 Samsung
Vega 64
This will set all settings on all 8 Vega 64 cards (just change the –i parameter in the above script to include the number of cards you have) — with one exception, it does not set the core clock, core voltage, memory frequency, and memory voltage.
RX 5700
For RX 5700 this tool does not work. The developer of this tool opened his own production of rigs based on the 5700 with his own operating system.
NAVI and GDDR6 video memory
On GDDR6, the parameter is written —REF 30 in the timings when editing the BIOS. It is important to set it from 9000 to 16000. Changing timings on the fly for GDDR6 is locked.
In any case, NAVI will work the same as Vega 56/64. The memory bandwidth is the same. GDDR6 will perform slightly better due to tighter timings compared to HBM. The main result will be energy savings compared to the Vega.
Note!
RBE has fully decoded GDDR6 timings. Over 100 different sling timings. A stability of 60+ MH should be readily achievable.
RX 470/480/570/570X/580/580X/590
Since with Polaris cards, you can use a bios mod or a miner that changes the timings itself.
Command-line arguments
Available options for GDDR5 memory:
REF 30
Using this parameter —REF , you can achieve gains of up to 5% for algorithms that depend on memory performance. A good start for parameter REF is 30. The command line would look like this:
The parameters —RC and may also be of interest —RFC .
I am running (using vega 64 downgraded to vega 56) at the same timings but [email protected] and ΗΒΜ [email protected] getting 54.65Μh/s at the same hiveOS consumption +-10watts or so depending the card (what I also did though is to clean the stock thermal paste and addthermalgrizzly kryonaut extreme there is also a non extreme variant didnt test that worth every penny in terms of thermals! ) Oh and my GPUs are nitro+ so that may play a part as well.
A GUI utility that runs on Windows and Linux, not only allows you to overclock your AMD Radeon graphics card on the fly, but also tweak the memory timings. Most timings are applied in real time, but some require a reboot. Unfortunately, this means that they cannot be changed yet, as a reboot resets the timings to their default values. Of course, the utility allows you to change the frequency of the GPU core and control the operation of the fans.
Video shows you some examples of the AMDMemoryTweaker on how it can turn your current AMD Graphics cards to run even better hashrates on both Ethereum and Monero by simply changing the timings.
Alternatives
Does not work?
УThe utility will not work on systems with Nvidia graphics cards.
Questions and answers
Strap failed to inject error?
Just make a few changes and click the «inject» button, then «refresh from driver», (the values in the dropdown are the values loaded from vbios in memory), if you click the «refresh» button, the tool will load the values from the driver directly.
Conclusions
Most of the settings are in real time. However, some of the demanding memory timings may require a system reboot to be applied correctly.
Essentially, the modified BIOS will simply hard-code the memory timing, frequency, and voltage. But you can also apply them on the fly with OC and amdmemtweak.
So the graphics cards have a stock version of the BIOS in case of resale.
If you are mining on video cards, then it is recommended to use PhoenixMiner.
Источник
Amd memory tweak linux
AMD Memory Tweak
Read and modify memory timings «on the fly»
AMD Memory Tweak XL Released!
- GDDR5 Based AMD GPU’s
- HBM / HBM2 Based AMD GPU’s
- Linux
- Windows (Beta)
- One or more AMD Radeon GPU’s
- amdgpu-pro | ROCM (Verified working on amdgpu-pro 18.30)
- Adrenaline (Verified working on v19.4.1/v19.5.*)
- Clone repo
- Launch VS Project
- Build!
Global command line options
Command | User Input | Extra Info |
---|---|---|
— -help | Show this output | |
— -version|—v | Show version info | |
— -gpu|- -i | Comma-Seperated gpu indices | Selected device(s) |
— -current | List current twiming values |
Command line options: (HBM2)
Command | User Input | Extra Info |
---|---|---|
— -CL|- -cl | [value] | Cas Latency |
— -RAS|- -ras | [value] | Active to PRECHARGE command period |
— -RCDRD|- -rcdrd | [value] | Active to READ command delay |
— -RCDWR|- -rcdwr | [value] | Active to WRITE command delay |
— -RC|- -rc | [value] | Active to Active command period |
— -RP|- -rp | [value] | Precharge command period |
— -RRDS|- -rrds | [value] | Active bank A to Active or Single bank Refresh bank B command delay different bank group |
— -RRDL|- -rrdl | [value] | Active bank A to Active or Single Bank Refresh bank B command delay same bank group |
— -RTP|- -rtp | [value] | Read to precharge delay |
— -FAW|- -faw | [value] | Four Active Window |
— -CWL|- -cwl | [value] | |
— -WTRS|- -wtrs | [value] | Write to read delay |
— -WTRL|- -wtrl | [value] | tWTR = tWTRL when bank groups is enabled and both WRITE and READ |
— -WR|- -wr | [value] | Write Recovery Time |
— -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] | Average Periodic Refresh Interval |
— -MRD|- -mrd | [value] | Mode Register Set command cycle time |
— -MOD|- -mod | [value] | Mode Register Set command update delay |
— -XS|- -xs | [value] | Self refresh exit period |
— -XSMRS|- -xsmrs | [value] | |
— -PD|- -pd | [value] | Power down entry to exit time |
— -CKSRE|- -cksre | [value] | Valid CK Clock required after self refresh or power-down entry |
— -CKSRX|- -cksrx | [value] | Valid CK Clock required before self refresh power down exit |
— -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] | Auto Refresh Row Cycle Time |
Command line options: (HBM)
Command | User Input | Extra Info |
---|---|---|
— -CKSRE|- -cksre | [value] | |
— -CKSRX|- -cksrx | [value] | |
— -CKE_PULSE|- -cke_pulse | [value] | |
— -CKE|- -cke | [value] | |
— -SEQ_IDLE|- -seq_idle | [value] | |
— -CL|- -cl | [value] | CAS to data return latency |
— -W2R|- -w2r | [value] | Write to read turn |
— -R2R|- -r2r | [value] | Read to read time |
— -CCDL|- -ccdl | [value] | Cycles between r/w from bank A to r/w bank B |
— -R2W|- -r2w | [value] | Read to write turn |
— -NOPR|- -nopr | [value] | Extra cycle(s) between successive read bursts |
— -NOPW|- -nopw | [value] | Extra cycle(s) between successive write bursts |
— -RCDW|- -rcdw | [value] | # of cycles from active to write |
— -RCDWA|- -rcdwa | [value] | # of cycles from active to write with auto-precharge |
— -RCDR|- -rcdr | [value] | # of cycles from active to read |
— -RCDRA|- -rcdra | [value] | # of cycles from active to read with auto-precharge |
— -RRD|- -rrd | [value] | # of cycles from active bank a to active bank b |
— -RC|- -rc | [value] | # of cycles from active to active/auto refresh |
— -MRD|- -mrd | [value] | |
— -RRDL|- -rrdl | [value] | |
— -RFC|- -rfc | [value] | Auto-refresh command period |
— -TRP|- -trp | [value] | Precharge command period |
— -RP_WRA|- -rp_wra | [value] | From write with auto-precharge to active |
— -RP_RDA|- -rp_rda | [value] | From read with auto-precharge to active |
— -WDATATR|- -wdatatr | [value] | |
— -T32AW|- -t32aw | [value] | |
— -CRCWL|- -crcwl | [value] | |
— -CRCRL|- -crcrl | [value] | |
— -FAW|- -faw | [value] | |
— -PA2WDATA|- -pa2wdata | [value] | |
— -PA2RDATA|- -pa2rdata | [value] | |
— -REF|- -ref | [value] | Refresh Rate |
— -ENB|- -enb | [value] | |
— -CNT|- -cnt | [value] | |
— -TRC|- -trc | [value] |
Command line options: (GDDR5)
Command | User Input | Extra Info |
---|---|---|
— -CKSRE|- -cksre | [value] | |
— -CKSRX|- -cksrx | [value] | |
— -CKE_PULSE|- -cke_pulse | [value] | |
— -CKE|- -cke | [value] | |
— -SEQ_IDLE|- -seq_idle | [value] | |
— -CL|- -cl | [value] | CAS to data return latency |
— -W2R|- -w2r | [value] | Write to read turn |
— -R2R|- -r2r | [value] | Read to read time |
— -CCDL|- -ccdl | [value] | Cycles between r/w from bank A to r/w bank B |
— -R2W|- -r2w | [value] | Read to write turn |
— -NOPR|- -nopr | [value] | Extra cycle(s) between successive read bursts |
— -NOPW|- -nopw | [value] | Extra cycle(s) between successive write bursts |
— -RCDW|- -rcdw | [value] | # of cycles from active to write |
— -RCDWA|- -rcdwa | [value] | # of cycles from active to write with auto-precharge |
— -RCDR|- -rcdr | [value] | # of cycles from active to read |
— -RCDRA|- -rcdra | [value] | # of cycles from active to read with auto-precharge |
— -RRD|- -rrd | [value] | # of cycles from active bank a to active bank b |
— -RC|- -rc | [value] | # of cycles from active to active/auto refresh |
— -RFC|- -rfc | [value] | Auto-refresh command period |
— -TRP|- -trp | [value] | Precharge command period |
— -RP_WRA|- -rp_wra | [value] | From write with auto-precharge to active |
— -RP_RDA|- -rp_rda | [value] | From read with auto-precharge to active |
— -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] | Refresh Rate |
Example Usage (Linux):
Example Usage (Windows):
(These are just examples! Don’t try these at home! :p)
Make sure to run the program first with parameter —current to see what the current values are. Current values may change based on state of the GPU, in other words, make sure the GPU is under load when running —current. HBM2 Based GPU’s do not need to be under load to apply timing changes. It is often better to apply new timings before starting a benchmark/mining tool.
Hints: Some timings are stability timings, lowering these will lower stability. Such as tRC. Some timings might require a higher value for performance to improve. Such as tREF. Some timings have a min/max value, going outside this range will result into it defaulting back to original value. Such as tCL Some timings are dynamic, they change based on the vbios values and active clocks. Dram timings. .
Row Access Timings tRC, tRAS, tRCDRD, tRCDWR, tRRDL, tRRDS, tFAW, tRTP Column Access Timings tCCDL, tCCDS, tCCDR, tWTRL, tWTRS, tRTW, Refresh Timings tRFC, tRFCSB, tRREFD, tREFI
Some extra info
Still not all possible timings have been exposed. However, it’s not such a big deal to add more of them in the tool. The ones available are more or like the most important ones.
Some users have reported very nice results already, please continue to contribute to these results. Example
- 3GBgapb49BZ7fBPXnbetqbnMn2KiGNzUXf
- 0x8C77C212da3e12cad1AfB8824CF74b1CC04d2F7C
In the unlikely event of not owning either BTC or ETH and you do want to be an amazing person and tip, shapeshift, changelly, simpleswap, . are great ways to solve that «issue» 😉
Источник