
Увеличение производительности видеокарт AMD при майнинге утилитой Memory Tweak
Благодаря стараниям программиста под ником Eliovp, на Bitcointalk и Github доступна утилита amdmemorytweak, позволяющая налету работать с таймингами видеопамяти GDDR5 и HBM2.
amdmemorytweak позволяет добиться лучшей скорости при майнинге на требовательных к памяти алгоритмах на видеокартах AMD. Она является аналогом программы ETHEnlargment Pill, которая значительно увеличивает производительность видеокарт Nvidia с памятью GDDR5X.
Особенно полезна amdmemorytweak для видеокарт серии Vega с памятью HBM2 при майнинге Monero (рост хешрейта около 10%), в том числе после перехода на алгоритм CryptonightR.
12 апреля стала доступна версия 0.1.6 amdmemorytweak, способная работать и в операционной системе Windows на драйверах Adrenaline.
В дополнение к утилите, разгон по частоте и даунвольтинг лучше делать с помощью программы OverdriveNTool по методике, изложенной в статье «Разгон видеокарт АМД для майнинга программой OverdriveNTool».
Для того чтобы уберечься от проблем с нестабильной работой рига при неправильном выставлении таймингов, стоит использовать аппаратные watchdog-и, например, модель версии 9.0, о которой рассказывается в статье «Использование Watchdog v 9.0 для обеспечения бесперебойной работы рига».
Рассмотрим подробнее, как использовать утилиту amdmemorytweak и дает ли ее использование преимущества на видеокартах с прошитым BIOS-ом.
Скачивание и установка программы amdmemorytweak в Windows
Скачать amdmemorytweak можно с Github-а на странице релизов (нужно скачать все четыре файла репозитория):

Их нужно сложить в одну папку, например, с названием WinAMDTweak:

Для работы с программой нужно изучить тайминги имеющейся видеопамяти и создать батник с оптимальными их значениями для майнинга.
Какие команды можно использовать в утилите amdmemorytweak?
В amdmemorytweak можно использовать следующие команды:
—gpu|—i [номера gpu, разделенные запятыми] – выбор задействованных видеокарт;
—current – показывает текущие тайминги;
—help – выводит список доступных команд. При этом нужно использовать батник такого вида:
WinAMDTweak.exe —help
Pause
Скрин батника для вывода помощи в amdmemorytweak:

В батнике для оптимизации таймингов можно изменять следующие значения для видеокарт с памятью GDDR5 (серия RX):
—CL|—cl [значение] – латентность (CAS to data return latency), уменьшать с осторожностью;
—W2R|—w2r [значение] — Write to read turn;
—R2R|—r2r [значение] — Read to read time;
—CCLD|—ccld [значение] – число циклов между записью/чтением из банки A в банку B;
—R2W|—r2w [значение] — Read to write turn;
—NOPR|—nopr [значение] — Extra cycle(s) between successive read bursts;
—NOPW|—nopw [значение] — Extra cycle(s) between successive write bursts;
—RCDW|—rcdw [значение] – число циклов from active to write;
—RCDWA|—rcdwa [значение] – число циклов from active to write with auto-precharge;
—RCDR|—rcdr [значение] – число циклов from active to read;
—RCDRA|—rcdra [значение] – число циклов from active to read with auto-precharge
—RRD|—rrd [значение] – число циклов from active bank a to active bank b;
—RC|—rc [значение] – число циклов from active to active/auto refresh;
—RFC|—rfc [значение] – период автообновления;
—TRP|—trp [значение] — Precharge command period;
—RP_WRA|—rp_wra [значение] — from write with auto-precharge to active;
—RP_RDA|—rp_rda [значение] — from write with auto-precharge to active;
—WDATATR|—wdatatr [значение]
—T32AW|—t32aw [значение]
—CRCWL|—crcwl [значение]
—CRCRL|—crcrl [значение]
—FAW|—faw [значение]
—PA2WDATA|—pa2wdata [значение]
—PA2RDATA|—pa2rdata [значение]
—ACTRD|—actrd [значение]
—ACTWR|—actwr [значение]
—RASMACTRD|—rasmactrd [значение]
—RASMACWTR|—rasmacwtr [значение]
—RAS2RAS|—ras2ras [значение]
—RP|—rp [значение]
—WRPLUSRP|—wrplusrp [значение]
—BUS_TURN|—bus_turn [значение]
Для памяти HBM2:
—CL|—cl [значение]
—RAS|—ras [значение]
—RCDRD|—rcdrd [значение]
—RCDWR|—rcdwr [значение]
—RC|—rc [значение]
—RP|—rp [значение]
—RRDS|—rrds [значение]
—RRDL|—rrdl [значение]
—RTP|—rtp [значение]
—FAW|—faw [значение]
—CWL|—cwl [значение]
—WTRS|—wtrs [значение]
—WTRL|—wtrl [значение]
—WR|—wr [значение]
—WRRD|—wrrd [значение]
—RDWR|—rdwr [значение]
—REF|—ref [значение]
—MRD|—mrd [значение]
—MOD|—mod [значение]
—PD|—pd [значение]
—CKSRE|—cksre [значение]
—CKSRX|—cksrx [значение]
—RFC|—rfc [значение]
Пример командной строки для использования утилиты для разгона памяти HBM2:
./amdmemtool -i 0,3,5 —faw 12 —RFC 208
Пример использования утилиты для разгона памяти GDDR5:
./amdmemtool -i 1,2,4 —RFC 43 —ras2ras 176
Перед первым запуском утилиты для оптимизации видеокарт с памятью GDDR5 нужно запустить программу-майнер, чтобы полностью загрузить видеокарту и перевести ее в состояние максимальной производительности, а затем запустить батник amdmemorytweak с параметром —current, чтобы узнать граничные значения таймингов видеопамяти. Видеокарты с памятью HBM2 этой процедуры не требуют.
Нужно учитывать ,что тайминг CL (Cas Latency) значительно влияет на стабильность, поэтому его уменьшение может уменьшить стабильность работы рига.
Как узнать доступные модификации таймингов у памяти видеокарт AMD?
Для изучения состояния карт создают батник (BAT-файл) или сценарий Windows (CMD-файл) с таким содержимым:
WinAMDTweak.exe —current
pause
Для создания исполняемого сценария Windows нажимают правой кнопкой мыши в любом месте и выбирают соответствующую команду:

Затем нажимают на полученном файле правой кнопкой мыши и выбирают команду изменить, а в открытый файл вводят нужные команды.
Скриншот CMD-файла для получения информации о таймингах, использующихся в системе видеокарт AMD:

При запуске этого файла для видеокарты RX470 с памятью GDDR5 Samsung выдается информация такого вида:

При выключенном майнере тайминги другие:

Как правило, производительность памяти увеличивается при уменьшении задержек. Таким образом, можно попробовать уменьшить значения таймингов и применить их утилитой amdmemorytweak.
Необходимые значения вносят в батник для разгона, который после установки оптимальных значений можно будет внести автозапуск.
Запуск утилиты amdmemorytweak для увеличения хешрейта видеокарт
При майнинге Монеро на видеокарте MSI Vega 64 с памятью HBM2 производства Samsung использование таймингов --rp 10 --rc 44 --rfc 300 --rrd 3 --rcdrd 12 --rcdwr 5 дает хешрейт 2130 h/s (в стоке 1950).
Такой результат достигнут в программе teamredminer 0.4.3 при частоте ядра 1150 Mhz и памяти 1100 Mhz. В системе были установлены драйвера версии 18.6.1 пор методике, изложенной в статье «Правильная установка драйверов GPU для майнинга».
При майнинге эфира на Vega 64 достигается скорость 50-52 mh/s при частоте ядра 1100 MHz. При этом используется батник такого вида:
WinAMDTweak.exe --CL 16 --RAS 30 --RCDRD 14 --RCDWR 14 --RC 44 --RP 14s --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 244
Запуск amdmemorytweak для увеличения хешрейта видеокарт с памятью GDDR5 производится с помощью команд в батнике (BAT или CMD-файле) такого вида (для первых трех карт):
WinAMDTweak.exe -i 1,2,3 --rfc 100,90,100 --RC 55,50,55 и другие значения.
При использовании уже прошитых под эфир видеокарт GDDR5 с разгоном и даунвольтингом в самой программе Phoenix Miner (-cclock 1070 -cvddc 820 -mclock 2010,1950,2010 -mvddc 860) существенного прироста производительности добиться не удалось. Хешрейт RX470 при этих настройках равен 29,2-29,6 Mh/s и игра с таймингами приводила к зависанию системы. Возможно, стоит пробовать менять тайминги GDDR5 на непрошитых картах.
Автоматический запуск amdmemorytweak с загрузкой таймингов
Автоматический запуск amdmemorytweak с загрузкой таймингов в Windows осуществляется таким батником:
@ECHO off WinAMDTweak.exe --i 0,1,2,3,4 --REF 30 pause
Добавление параметра REF 30 дает прирост до 5% при майнинге эфира на видеокартах АМД с памятью GDDR5. В программе Claymore Dual miner эта опция реализована командой -rxboost 1. С помощью amdmemorytweak эта опция становиться доступной в любом майнере, что пригодится при майнинге не только эфира, но и Монеро, Бим, Грин и прочих монетах.
В папке, откуда запускается этот батник должны быть файлы EIO.dll, IOMap.sys, IOMap64.sys и WinAMDTweak.exe:

Указанные файлы можно скачать на Github (Latest CLI Versions). Файл EIO.dll есть там же по ссылке.
Для изменения параметров памяти видеокарт в оконном интерфейсе можно использовать программу AMDMemoryTweakXL.
Консольная версия программы amdmemorytweak работает более надежно и не требует установки Microsoft NetFramework. Кроме того, ее автозапуск легко сделать обычным батником.
Заключение
Появление утилиты amdmemorytweak дает возможность немного увеличить доход владельцев карт АМД при добывании криптовалют, использующих алгоритмы, требовательные к памяти. Это касается, в основном владельцев карт с памятью HBM2 (в будущем и HBM). При использовании правильно прошитых Bios видеокарт АМД с памятью GDDR5 утилита существенного прироста скорости не дает. Есть смысл задействовать amdmemorytweak на таких непрошитых картах.
В любом случае использовать утилиту стоит «без фанатизма» и страховать риги аппаратными вотчдогами, например, «Watchdog v 9.0». При этом, до нахождения оптимальных таймингов, лучше не добавлять батник amdmemorytweak в автозагрузку.



3 комментария
Иван
Поковырял прогу для RX570 с памятью хьникс тайминги стали применятся без подвисания, но результат при одинаковых таймингах с прошитой и не прошитой, хешрейт на не прошитой падает. Эффекта не дает. Использовал стоковые параметры видика. То ли прога эффекта не дает то ли что то упустил может у кого получится лучший результат. Страпы под видик на дефолтных настройках core 1250 mem 1650 —cl 18 —rc 68 —rrd 5 —rcdr 23 —rcdra 23 —rcdwa 16 —rcdw 16 —rfc 164 —trp 21 —rp_rda 25 —rp_wra 55 —t32aw 0 —faw 0 —rasmactwr 37 —rasmactrd 32 —actrd 11 —ras2ras 116 —rp 29 —wrplusrp 39
cryptoprofi
Большое спасибо за проявленный интерес! Ваше мнение очень важно для авторов, спасибо!
автозеркало
у меня не работает