
Компиляция программы xmrig с плагином для видеокарт Nvidia
Компиляция майнера xmrig для процессоров и видеокарт не вызывает затруднений и подробно описана в статьях:
Самостоятельное компилирование программы xmrig с поддержкой технологии многопотоковых вычислений CUDA, которая используется у видеокарт производства компании Nvidia немного сложнее: нужно добавить поддержку CUDA перед компиляцией и добавить плагин CUDA в директорию майнера.
Рассмотрим подробнее процесс создания из исходного кода исполняемого файла майнера xmrig с поддержкой CUDA.
Как скомпилировать майнер Xmrig с поддержкой технологии CUDA?
Для компиляции майнера xmrig с поддержкой видеокарт Nvidia нужно выполнить следующие шаги:
- скачать и разархивировать в папку C:\XMR исходный код майнера xmrig;
- скачать и разархивировать в папку C:\xmrig-deps библиотеки xmrig-dependencies;
- скачать, установить и обновить компилятор MSYS2;
- скачать, установить набор утилит CMake;
- скомпилировать майнер xmrig по методике, описанной в статье «Компиляция майнера XMRig для ОС Windows». Перед компиляцией нужно включить поддержку технологии CUDA («Enable CUDA backend» ON) и поддержку библиотеки NVML («Enable NVML (NVIDIA Management Library) support (only if CUDA backend enabled)» ON);
- скачать и разархивировать в папку с майнером архив, соответствующий выбранной версии технологии CUDA;
- настроить батник (добавить опцию cuda и (для Linux) cuda-loader=/путь к файлу/libxmrig-cuda.so) и наслаждаться майнингом.
Далее размещена информация о поэтапной компиляции майнера xmrig с поддержкой видеокарт Nvidia.
Скачивание архива с исходниками майнера:

Распаковка исходников майнера из скачанного архива xmrig-… в папку XMR:

Все файлы-исходники майнера должны находиться именно в папке XMR:

Открываем для редактирования файл CMakeLists.txt:

Включаем/выключаем необходимые опции в файле CMakeLists.txt:

При желании, редактируем размер комиссии в файле donate.h по пути C:\XMR\src

Скачивание зависимостей:

Распаковка xmrig-deps в папку C:\xmrig-deps:

Скачивание и установка компилятора МСИС2 и набора утилит СиМейк подробно описаны в статье «Компиляция майнера XMRig для ОС Windows».
Компиляция майнера с поддержкой CUDA:
cd C:\XMR && mkdir build && cd build && cmake .. -G "Unix Makefiles" -DXMRIG_DEPS=c:/xmrig-deps/gcc/x64 && make

Конец компиляции майнера xmrig в программе MSYS2 под Windows:

Исполняемый файл майнера (в данном случае xmrig-notls) записывается компилятором в папку C:\XMR\build:

Выбираем версию CUDA, соответствующую установленным драйверам (по таблице в статье О технологии многопотоковых вычислений CUDA в видеокартах компании Nvidia):

Драйвера 388.71 согласно таблице поддерживают версию CUDA 9.0:
Скачивание плагина CUDA 9.0:

Копирование файлов плагина CUDA для вставки в директорию с майнером xmrig:

Директория майнера xmrig с библиотеками для работы с CUDA:

При выборе версии CUDA следует руководствоваться установленными драйверами Nvidia (список соответствий версии CUDA и видеодрайверов Nvidia есть в статье «О технологии многопотоковых вычислений CUDA в видеокартах компании Nvidia»). Теоретически более новая версия CIUDA должна давать более высокую производительность, но на практике это не всегда так.
Определиться с обозначением нужного алгоритма в батнике для xmrig можно на странице.
Пример батника xmrig с поддержкой CUDA для Windows:
@echo off xmrig.exe -a cn-heavy/tube -ocryptonight_saber.mine.zergpool.com:4446 -u адрес_кошелька -p c=BTC,worker,refcode=81de238596774683dd427a9d57bae6af -k --donate-level=0 --cuda --no-cpu --keepalive pause
Скриншот майнера xmrig, управляющего видеокартой Nvidia GTX1050Ti:

Разгон и даунвольтинг видеокарт в Windows лучше всего делать программой nvidiainspector.
Пример скрипта для запуска xmrig с поддержкой видеокарт Nvidia в Linux:
sudo ./xmrig-notls -a cn-heavy/tube -o cryptonight_saber.mine.zergpool.com:4446 -u адрес_кошелька -p c=BTC,воркер,refcode=81de238596774683dd427a9d57bae6af -k --donate-level=0 --keepalive --cuda --cuda-loader=/путь к файлу/libxmrig-cuda.so --no-cpu
Разгон видеокарт в ubuntu можно делать с помощью утилиты nvidia-smi, встроенной в драйвера командами (скриптом):
#!/bin/sh sudo nvidia-smi -pm 1 sudo nvidia-smi -pl 75 nvidia-settings -a '[gpu:0]/GPUMemoryTransferRateOffset[3]=600'; nvidia-settings -a '[gpu:0]/GPUGraphicsClockOffset[3]=130'; nvidia-settings -a '[gpu:0]/GPUPowerMizerMode=1'; nvidia-settings -a '[gpu:0]/GPUFanControlState=1'; nvidia-settings -a '[fan:0]/GPUTargetFanSpeed=65';
Скриншот майнера xmrig, управляющего 11 видеокартами Nvidia:
При появлении в майнере ошибки:
…incompatible/disabled algotithm detected , reconnect … login error code: 6
нужно проверить включение нужного алгоритма майнинга в файле CMakeLists.txt и, при необходимости, заново откомпилировать бинарник майнера.

Иногда такая ошибка может возникнуть при неправильном алгоритме, выставленном в батнике.
Также эта ошибка иногда возникает при отключенном от майнинга процессоре (опция no-cpu). Хотя xmrig при включении CPU перестает выдавать ошибку incompatible/disabled algotithm detected , reconnect … login error code: 6, он все равно может отказаться работать с видеокартами Nvidia на некоторых алгоритмах, выдавая ошибку no suitable configuration found:

Это связано с малой эффективностью работы видеокарт Nvidia на некоторых алгоритмах и отсутствии оптимальных конфигураций для них в коде майнера.

