Майнинг

Как добиться от видеокарт Radeon R9 290/390 хешрейта 29-30 Mh/s на Ethash

Видеокарты R9 290/290X и 390/390X, эти заслуженные ветераны майнинга от компании AMD, добывающие криптовалюту, а в зимнюю пору обогревающие помещения, до сих пор в строю.

С помощью относительно несложных хореографических упражнений с бубнами и усердия можно до сих пор получать профит от карт, которые выпускались еще в 2013-2014 годах. Этого можно достичь путем перехода на Linux-подобные системы.

Прирост хешрейта до 50 процентов стоит свеч, поэтому нужно провести ряд несложных действий для получения такого прироста.

Какой хешрейт на видеокартах R9 290/390 в разных ОС?

Карты R9 290 и 390 (ядро Hawaii), выпущенные на 28 нм процессе и потребляющие 220-250 ватт при майнинге эфира в Windows сейчас дают лишь до 21 mh/s. При этом в Linux-подобных системах они спокойно выдают около 30 махов.

Скриншот R9 290 при майнинге эфира в Windows с помощью Claymore майнера:

Эти же карты в Ubuntu:

Проблема низкого хешрейта в Windows касается и других видеокарт АМД, выпущенных в 2013-2014 годах (R9 280, R9 295 и прочих).

Почему на видеокартах R9 290/390 сильно упал хешрейт?

При майнинге Ethash-подобных монет с большим размером DAG на всех драйверах под Windows постепенно происходит значительное падение хешрейта. У видеокарт с ядром Polaris (серия RX) эта проблема решена с выпуском blockchain-драйверов и добавлением поддержки compute-вычислений в Adrenalin-версиях. О поддержке старичков-гавайцев в этих драйверах почему-то забыли.

К радости владельцев «тихоокеанских» карт, драйвера, использующиеся в Линукс-подобных осях (Ubuntu, XUbuntu, Linx Mint, HiveOS, SimpleminingOS и других), работают с этими картами намного лучше.

Что можно сделать для увеличения хешрейта на видеокартах R9 290/290X?

Linux-версия дров от AMD и rocm дают значительный (50%) прирост хешрейта при майнинге на algo, чувствительных к производительности подсистемы видеопамяти.

Монстры типа R9 290/290X имеют 512-битную шину памяти с чипами GDDR5, поэтому имеют высокую производительность на уровне многих современных GPU. Раньше они спокойно майнили Ethereum со скоростью порядка 30-31 Mh/s, а сейчас в Windows с трудом дают около 19-20.

Увеличить их производительность можно следующими способами:

  1. Прошить улучшенные версии Bios (нужно использовать AtiFlash, Hex-редактор и программу Hawaii Bios Editor). При этом можно уменьшить энергопотребление (использовать меньшие значения вольтажа на ядре на более высоких states/частотах), прошить тайминги с низких частот в более высокие (на 1-2 порядка), указать в Bios большие частоты чипов памяти (при этом для стабильности нужно увеличить напряжение на контроллере памяти до 1030-1050 мВ). Важно указать в BIOS повышенные обороты вентиляторов, уменьшить TDP карт, а также их граничную температуру (лучше ее снизить со штатных 95 до 80 градусов). Модификация Bios дает прирост порядка 1-1,5 мегахешей.
  2. Для серьезного увеличения производительности нужно перейти на Ubuntu версии не выше 16.04 (с новыми ядрами Ubuntu у этих карт плохая совместимость), установить драйвера версии 17.40 и AMD SDK-кит и… наслаждаться высоким хешрейтом R9 290. Переход на Linux-подобные ОС дает прирост порядка 10 мегахешей (50%).

Также можно использовать утилиты типа amdmemory tweak для изменения таймингов чипов памяти на лету, а также других параметров памяти (установка значений —REF 30, DPM 5) но проще сразу прошить в BIOS нужные скорость памяти, тайминги, частоту и вольтаж ядра, TDP, скорость и режим работы системы охлаждения.

Рассмотрим подробнее, как это делать на примере ОС XUbuntu. Все действия, которые нужно предпринимать для получения 29-30 mh/s с карт AMD, выпущенных несколько лет назад, описываются пошагово.

Модификация и прошивка BIOS для майнинга в картах с архитектурой Hawaii

Модификацию Bios видеокарт типа R9 290 и 390 делают программой Hawaii Bios Reader.  В ней меняют следующие значения:

При изменении вольтажа ядра нужно внести эти значения и в таблицу на вкладке Limit Tables.

Для обеспечения работы памяти на повышенных частотах нужно немного повысить напряжение на контроллере памятиVDDCI (не более 1050 мВ, так как это очень греющаяся часть карты).

Корректировка напряжения на контроллере памяти видеокарт R9 290:

Для устранения головной боли в виде дополнительных утилит по регулировке частоты вентилей, корректируют их скорость вращения на вкладке Fan profile.

Тайминги памяти можно подкорректировать Hex-редактором путем перестановки значений (8 цифр) на более высокие частоты. В открытом файле Bios ищут группы цифр 7771 и переносят шестнадцетиричные значения тайминга в более скоростной регистр:

При этом руководствуются следующими значениями частот и страпов:

Bios, отредактированный HEX-редактором нужно открыть в Hawaii -эдиторе и пересохранить для обеспечения правильности контрольной суммы.

Подробный гайд по прошивке BIOS-ов R9 290/X, 295 и 390-х и можно изучить здесь.

Установка XUbuntu

Так как видеокарты архитектуры Hawaii с точки зрения маркетологов уже устарели, то поддержки высокопроизводительных вычислдений в новых ядрах Ubuntu-подобных систем и драйверах нет.

В связи с этим нужно использовать любую из таких осей с ядром не новее версии 16.04. Это стабильно работающий релизы с поддержкой ядра до 2021 года и минимальным количеством багов.

Практическая работоспособность была проверена на версии XUbuntu версии 16.04.6.

Для ее установки нужно провести следующие действия:

  1. Скачать образ и записать его на флешку, например, утилитой Etcher;
  2. Загрузиться с флешки с образом системы и установить ее;
  3. Установить все обновления (команда sudo apt update, а затем sudo apt upgrade), перезагрузиться (sudo reboot);
  4. Скачать и установить пакет AMD-APP-SDKInstaller-v3.0.130.136-GA-linux64.tar.bz2 (на официальном сайте этот пакет уже скачать нельзя, так как он встроен в новые драйвера АМД, которые нам не подходят), перегрузить компьютер.

Скриншот страницы сайта sourceforge.net со ссылками на пакет SDK от АМД:

Затем устанавливают драйвера.

Процедура установки драйверов для майнинга в Ubuntu для видеокарт R9 290 довольно сложна, так как в новых Linux-драйверах они нормально не поддерживаются. Поэтому нужно использовать ОС с версией ядра 16.04 и соответствующие дрова (версия 17.40).

Установка драйверов видеокарт в Ubuntu

Скачать и установить драйвер AMD версии 17.40 (amdgpu-pro-17.40-492261) для Ubuntu.

!!!Важно!!!

Блокчейн-драйвера (версия amdgpu-pro-17.40-483984) с r9 290 при установке выдают ошибку.

В версии amdgpu-pro-17.40-514569 (последний релиз от АМД) при установке не работает команда compute.

Перед установкой обновляют систему, последовательно выполняя команды:

sudo apt update
sudo apt dist-upgrade
sudo reboot

Затем из папки, куда разархивированы инсталляционные файлы драйверов запускают установку:

sudo ./amdgpu-pro-install --compute

Затем нужно добавить текущего пользователя в группу «video» командой

sudo usermod -a -G video логин для входа в систему

Затем проверяют включение юзера в эту группу командой groups. Так выглядит проверка для пользователя z170:

После этого нужно не спешить делать перезагрузку, так как иначе можно получить неработающий комп, либо придется восстанавливать/переустанавливать систему.

Чтобы избежать неприятностей, нужно дополнительно модифицировать загрузчик ОС.

Коррекция загрузчика Grub (находится в папке /etc/default/grub).

На этом этапе нужно включить поддержку больших страниц памяти и откорректировать загрузчик для корректной работы видеокарт R9 290. Для этого выполняют команду:

sudo nano /etc/default/grub

В появившемся окне нужно найти и откорректировать строку до вида
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash amdgpu.vm_fragment_size=9".

Для устранения проблемы с загрузкой системы с видеокартами R9 290 нужно отключить установленные в системе драйвера radeon, заставив ОС использовать только версию amdgpu от AMD. Если автоматически загружаются драйвера radeon, то система работает, но при запуске майнера возникает ошибка DRM version is 2.50/0 but this driver is only compatible with 3.x.x:

Для устранения этой ошибки в еще одной строке конфигурации загрузчика Grub добавляют следующие параметры:

GRUB_CMDLINE_LINUX_DEFAULT="radeon.si_support=0 radeon.cik_support=0 amdgpu.si_support=1 amdgpu.cik_support=1"

Правильный файл загрузчика должен быть таким:

Далее сохраняют изменения файла, нажав Ctrl+O, ввод, обновляют GRUB командой sudo update-grub, а затем перегружают систему.

Скриншот обновления GRUB:

Проверка правильности установки видеокарт командой clinfo

Для установки clinfo нужно выполнить такие команды:

sudo apt update

sudo apt install ocl-icd-opencl-dev

sudo apt install clinfo

Если не корректно отключены драйвера radeon, то clinfo покажет следующую информацию:

В системе с правильно установленными драйверами clinfo показывает информацию об установленных графических ускорителях R9 290:

Для проверки ядра, которое используется графической подсистемой, можно также ввести в терминале команду

lspci -k|egrep 'VGA|in use'
Если в системе продолжают использоваться драйвера radeon, то появится  картинка  о том, что используется kernel-драйвер видеокарты radeon (должен быть amd-gpu). Эта ошибка также может возникать при включенной интегрированной видеокарте, хотя при правильной модификации загрузчика grub система работает и со встройкой.

Для корректной работы майнеров нужно дополнительно поставить пакет rocm.

Инсталляция пакета rocm

Пакет rocm инсталлируют командой sudo apt install -y rocm-amdgpu-pro:

Без наката rocm-драйверов система (на некоторых компьютерах) работает, но при запуске майнеров может неверно определяться доступная в видеокартах память.

После этого перезагружают компьютер, устанавливают майнеры и можно запускать добычу монет. Установка майнеров заключается в скачивании нужного дистрибутива, создании скрипта для запуска, наделении его правами для запуска.

Кроме того, для майнера/скрипта (аналог батника в Windows) для запуска нужно установить права root (команды

sudo chown root:root ethdcrminer64
sudo chown root:root скрипт.sh

и

 sudo chmod u+s ethdcrminer64

иначе будут возникать такие ошибки:

Пример скрипта для запуска PhoenixMiner:

#!/bin/sh export GPU_MAX_ALLOC_PERCENT=100 ./PhoenixMiner -pool eu1.ethermine.org:4444 -pool2 us1.ethermine.org:4444 -wal адрес.воркер -eres 0 -powlim 0 -log 0 -proto 3 -cdm 1 -gwtime 150 -tt 65 -tstop 73 -tmax 70 -tstart 55 -fcm 2 -fanmin 50 -cdmport 3333

Для скрипта в свойствах нужно установить галочку запускать как приложение и установить права на чтение и запись. После этого его можно запускать с помощью эмулятора терминала.

Управление температурой и вентиляторами кулеров видеокарт

Управление скоростью вентиляторов системы охлаждения видеокарт мы прошили в Bios, поэтому лишние телодвижения с запуском дополнительных утилит не нужны.

Автоматизация запуска майнеров

Для автоматического запуска майнеров при включении компьютера проще всего задействовать штатную утилиту «Сеансы и запуск», в которой нужно включить галочку сохранения сеанса:

Можно также активировать галочку «Сохранять сеанс», которая появляется в окне при выключении компьютера.

При этом все работающие при выключении компьютера с X Ubuntu программы снова продолжат работу при запуске.

Удаленный контроль за работой рига с R9 290 под управлением Ubuntu

Для удаленного управления работающей системой можно задействовать либо ssh-утилиты (для продвинутых пользователей), либо, что проще, утилитой Vino (удаленный рабочий стол Gnome):

Это сервер, поддерживающий режим VNC-канала связи с другими компьютерами (в том числе под управлением Windows). С помощью Vino очень просто управлять ригами на Ubuntu в локальной сети с помощью Windows-терминала с UltraVNC или любой подобной программой.

Если Vino не установлена в системе, то ее инсталлируют командой sudo apt-get install vino.

В окне конфигурации программы Vino (запускается командой vino-preferences) заполняют необходимые поля:

Кроме того, нужно отключить принудительное шифрование канала связи, которое впоследствии не позволит подключение к ригу с других компьютеров под управлением Windows.

Для этого нужно выполнить команду

 gsettings set org.gnome.Vino require-encryption false

Нужно также не забыть проверить добавление программы сервера удаленного рабочего стола в автозапуск:

Подключение к ригу с  компьютера локальной сети осуществляется через любой vnc-вьювер на порт по умолчанию 5900.

Скриншот консоли приложения UltraVNC при контроле и управлении ригом с работающими R9 290 и R9 290X в Phoenix miner по локальной сети:

Заключение

Видеокарты R9 290 и в 2019 году могут использоваться не только для обогрева помещений в зимнее время, но и для добывания криптовалют. Их показатели энергоэффективности конечно хуже, чем у современных видеокарт, но, при стоимости электричества порядка 5 центов за киловатт они и сейчас приносят 40-50 центов чистого дохода в день.

Ищущий обрящет …

Нужно искать способы обретения новых знаний и мудрости, которые приходят со временем в результате практических действий и их осмысливания. Время и энергия, затраченные на то, чтобы заставить работать легендарные R9 290 на уровне с более молодыми конкурентами окупятся сторицей не только в виде «звонких монет», но и в виде полученных новых знаний.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *