Майнинг,  Статьи

Производительность видеокарт AMD при майнинге на разных драйверах

Для видеокарт АМД в операционных системах linux существует несколько способов проведения высокопроизводительных параллельных вычислений с помощью технологии OpenCl.

Это связано с многообразием драйверов и различиями в способах реализации поддержки технологии OpenCl. Ее изначально изобрела компания Apple Inc, а затем развитие OpenCl было передано некоммерческому консорциуму Khronos Group.

Для майнинга важна наибольшая производительность при добывании криптовалют, поэтому важно знать, какие драйвера обеспечивают наибольшую скорость вычислений. Она напрямую связана с качеством обеспечения работоспособности технологии ОпенСиЭль.

В данной статье приводится информация по тестированию драйверов для платформы АМД c поддержкой разных версий OpenCl при майнинге в xubuntu и на Windows.

Как устанавливались и проверялись драйвера разных версий

По результатам тестирования выяснилось, что сторонние реализации OpenCl, отличные от фирменной технологии, реализованной в драйверах amdgpu-pro, практически не поддерживаются большинством майнеров.

Для информации:

Драйвера amdgpu-pro, широко использующиеся для майнинга в OC на ядре LInux, на самом деле представляют собой комплект (комбинацию) открытого, свободно распространяющегося драйвера amdgpu с дополнительно устанавливаемыми компонентами Pro (с закрытым кодом), обеспечивающими работоспособность технологии OpenCl.

В открытый комплект amdgpu входят:

  • базовые драйвера;
  • компоненты Mesa OpenGL и мультимедиа.

В версию Про дополнительно входят компоненты:

  • Pro OpenGL;
  • Pro OpenCL (включает PAL с поддержкой Vega 10 и более новых видеокарт) и Legacy OpenCL — для видеокарт, выпущенных до Vega 10);
  • Pro Vulkan.

Для майнинга в драйверах, кроме базовых функций, нужна только поддержка OpenCL.

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

  • надстройка для открытого пакета Mesa с поддержкой OpenCL (mesa-opencl-icd);
  • драйвера ROCM с открытым исходным кодом от AMD.

При тестировании в Linux в загрузчике включалась поддержка больших страниц памяти (compute mode) и технология OverDrive.

В Windows использовались драйвера RobinHood для Windows 7/8.1, а для Windows 10 — драйвера АМД 18.6.1, как самые производительные для видеокарт серии RX.

О различиях в установке драйверов разных версий в Linux

Драйвера amdgpu-pro версий 18.5 и 19.5 устанавливаются командой:

sudo ./amdgpu-pro-install -y --opencl=pal,legacy -headless

sudo usermod -a -G video $LOGNAME

где параметр opencl=pal,legacy подразумевает поддержку обеих поколений видеокарт: Vega 10 и новее (опция pal) и GPU старее десятой Веги (legacy).

Для справки:

При желании можно установить только открытую версию драйверов amdgpu командой:

./amdgpu-install -y

а затем «навешивать» на нее разные реализации опциональной технологии OPENCL.

Для исправления бага в скрипте установки драйверов amdgpu-pro перед инсталляцией выполняется команда:

sudo usermod -a -G video $LOGNAME && echo ‘SUBSYSTEM==»kfd», KERNEL==»kfd», TAG+=»uaccess», GROUP=»video»‘ | sudo tee /etc/udev/rules.d/70-kfd.rules && sudo dpkg —add-architecture i386

После установки драйверов amdgpu-pro производится установка дополнительных компонентов командой:

sudo apt install amdgpu-dkms libdrm-amdgpu-amdgpu1 libdrm-amdgpu1 libdrm2-amdgpu opencl-amdgpu-pro opencl-amdgpu-pro-dev opencl-headers clinfo libnuma-dev

Деинсталляция открытых компонентов драйверов amdgpu производится командой:

amdgpu-uninstall

Для полной деинсталляции версии Pro используют команду:

amdgpu-pro-uninstall

После инсталляции/деинсталляции драйверов нужно проводить перезагрузку системы. На xubuntu 16.04 драйвера 19.50 установщиком без модификаций не устанавливаются. Драйвера 18.50 на xubuntu 16.04 в штатном режиме также не ставятся, выдавая ошибку Sub-process /usr/bin/dpkg returned an error code (1).

Драйвера amdgpu-pro версии 17.40:

В xubuntu использовались драйвера для Убунту 16.04 (версия 17.40-492261), которые ставились командой:

sudo ./amdgpu-pro-install -y --compute

APP SDK с поддержкой opencl для дров 17.40-492261 версии 3.0.130.136-GA-linux64 можно установить с GitHub repo.

На xubuntu 18.04 с этими драйверами появляются проблемы при загрузке, поэтому в этой ОС их лучше не использовать.

Для xubuntu 16.04 эти уже достаточно старые драйвера являются самыми оптимальными.

Ошибка, возникающая при установке драйверов типа:

ln: не удалось создать символьную ссылку '/usr/bin/amdgpu-pro-uninstall': Файл существует

лечится командой:

sudo rm /usr/bin/amdgpu-pro-uninstall

и прописыванием полного пути к установочному скрипту amdgpu-pro-install.

Удаляются драйвера 17.40 командой amdgpu-pro-uninstall.

Драйвера ROCm 3.0 с поддержкой OpenCL 1.2 и 2.0 устанавливаются командами:

wget -qO - http://repo.radeon.com/rocm/apt/debian/rocm.gpg.key sudo apt-key add –

echo ‘deb [arch=amd64] http://repo.radeon.com/rocm/apt/debian/ xenial main’ sudo tee /etc/apt/sources.list.d/rocm.list

sudo apt update

sudo apt install rocm-dkms

Для установки только opencl-компонентов rocm используют команду:

sudo apt-get install dkms rock-dkms rocm-opencl-dev

Дополнительно для rocm нужно прописать пользователей в группу и экстра группу video:

sudo usermod -a -G video $LOGNAME

echo 'ADD_EXTRA_GROUPS=1' | sudo tee -a /etc/adduser.conf echo 'EXTRA_GROUPS=video' | sudo tee -a /etc/adduser.conf

Прописывание бинарников ROCm в PATH командами:

echo 'export PATH=$PATH:/opt/rocm/bin:/opt/rocm/profiler/bin:/opt/rocm/opencl/bin/x86_64'

sudo tee -a /etc/profile.d/rocm.sh

Полная деинсталляция ROCm 3.0:

sudo apt autoremove rocm-dkms rocm-dev rocm-utils

Драйвера mesa-opencl устанавливаются командой:

sudo apt install mesa-opencl-icd -y

Деинсталляция mesa-opencl-icd производится командой sudo apt remove mesa-opencl-icd.

Сразу можно сказать, что mesa-opencl большинством современных майнеров не поддерживаются. На этих драйверах майнинг попросту не запускается.

Проверка установки драйверов в Linux производится командами (любая из них):

lspci -k | grep -EA3 "VGA|3D|Display"

lshw -c video

clinfo

sudo lshw -c video

Практические результаты тестирования скорости майнинга на разных драйверах и версиях OpenCL

Разгон в xubuntu осуществлялся по методике, описанной в статье «Разгон и даунвольтинг видеокарт AMD программами wolfamdctrl и amdmemorytweak в Ubuntu».

При использовании в качестве базы открытый драйвер amdgpu с проприетарной реализацией OpenCl из пакета amdgpu-pro (драйвера AMD 18.5 и 19.5) в xubuntu 18.04 отмечался примерно одинаковый хешрейт на всех алгоритмах. Производительность видеокарт серии RX при майнинге в xubuntu и в Windows на Ethash примерно одинакова, а на разных CN-algo линуксоиды значительно отстают.

На драйверах mesa-opencl-icd майнинг не запускается.

Драйвера rocm 3.0 в теории обеспечивают совместимость с версией 2.0 технологии OpenCL, но показывают немного меньший хешрейт на алгоритме Ethash, чем amdgpu-pro.

Нужно отметить, что с драйверами ROCm 3.0 видеокарты работают только при включении в слот PCI-E 16. При этом не все программы майнинга работают, например, teamredminer запускается, но подвисает:

Phoenix и Claymore на драйверах ROCm 3.0 на Ethash выдают на примерно 10% меньший хешрейт, чем amdgpu-pro 18.5 и 19.5

В операционной системе WINDOWS 10 LTSC с драйверами 18.6.1 при том же разгоне на алгоритмах семейства cryptonight хешрейт выше на примерно 30%, чем в xubuntu на всех драйверах (для видеокарт RX) и аналогичная скорость при майнинге на Ethash.

В ОС Windows 7/8.1 на robinh00d_driver видеокарты AMD серии RX показывают более высокий хешрейт, чем в Windows 10LTSC на 5-7%. Возможно, это связано с более экономным расходованием памяти. Потребление видеопамяти в этих системах на 80-100 Мб меньше, что увеличит продолжительность майнинга эфира в Windows 7/8.1 на примерно полтора месяца (по сравнению с Виндовс 10LTSC).

В связи с тем, что драйвера от РобинГуда уже достаточно старые, в Phoenix Miner последней версии они крашатся при наличии в батнике параметров разгона и даунвольтинга. Эта проблема с успехом не решается программой OverdriveNTool. Частоты ядра и памяти, а также скорость кулеров в ней меняются, но вольтаж остается.

В Claymore 15.0 все значения, включая вольтаж, полностью меняются штатными средствами.

Кроме того, Phoenix Miner иногда отказывается формировать DAG на четырехгиговых картах даже при наличии свободной видеопамяти, что решается отключением ее проверки командой:

-rvram -1

Claymore 15.0 на драйверах robinh00d прекрасно работает, управляя вольтажом и другими параметрами майнинга.

Leave a Reply

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

Chinese (Traditional) ZH-TW English EN French FR German DE Russian RU Spanish ES