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

О разгоне видеокарт Nvidia на Linux сервере

Для управления производительностью и вентиляторами видеокарт Nvidia в Linux обычно используют утилиты nvidia-xconfig, nvidia-settings и nvidia-smi.

Для этого после установки драйверов выполняют команду:

sudo nvidia-xconfig -a --cool-bits=31 --allow-empty-initial-configuration --enable-all-gpus

Затем, после перезагрузки компьютера, для включения возможности управления памятью, ядром, вентиляторами, используют команды:

nvidia-settings -a '[gpu:0]/GPUMemoryTransferRateOffset[3]=600';
nvidia-settings -a '[gpu:0]/GPUGraphicsClockOffset[3]=120' ;
nvidia-settings -a '[gpu:0]/GPUPowerMizerMode=1';
nvidia-settings -a '[gpu:0]/GPUFanControlState=1';
nvidia-settings -a '[fan:0]/GPUTargetFanSpeed=65'
Цифра в квадратных скобках перед знаком равенства выбираются в зависимости от использующейся видеокарты, например:
[1] — GeForce GTX750Ti;
[2] — Nvidia GeForce GT1030, GeForce GTX950/960;
[3] — для видеокарт Nvidia GeForce GTX1060/1070/1080;
[4] — для видеокарт типа Nvidia GeForce GTX1660.

С помощью этих действий можно управлять разгоном видеокарт на компьютере с включенным графическим окружением (рабочим столом).

Чтобы использовать возможности утилиты nvidia-settings, на компьютере должен работать дисплейный сервер X. Для обеспечения полноценного разгона видеокарт Nvidia его нужно включать даже на компьютерах, работающих без графического окружения (серверах, либо компьютерах, использующихся для майнинга).

Как разгонять видеокарты Nvidia в Linux, работающей в консольном режиме?

Если на компьютере с видеокартами Nvidia отключить графическое окружение, перейдя в режим работы multi-user.target, то исчезнет возможность управления их разгоном. Это происходит из-за того, что на компьютере перестает работать X server.

Чтобы управлять разгоном видеокарт Nvidia на сервере или любом другом компьютере с отключенным дисплейным менеджером, в ​Linux должен работать сервер дисплеев xorg.

Нужно обеспечить возможность запуска xorg на виртуальном дисплее, отредактировав конфигурационный файл Xwrapper.config, где прописывается разрешение на запуск xorg всем пользователям.

Для этого:

  • устанавливаем (в случае необходимости) пакеты xorg, x11-xserver-utils, xauth командой:
sudo apt install xorg x11-xserver-utils xauth

Примечание: на компьютере с уже установленными драйверами Nvidia эти пакеты обычно уже установлены. В этом случае, при попытке установить xorg появится информация об уже установленной версии X Display Manager:

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
xorg is already the newest version (1:7.7+23ubuntu2).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Это же замечание справедливо и для остальных утилит.
  • запускаем конфигурационную утилиту nvidia-xconfig с ключом -a и параметрами, разрешающими управление разгоном видеокарт:
sudo nvidia-xconfig -a --cool-bits=31 --allow-empty-initial-configuration --enable-all-gpus

Пример вывода терминала в случае успешного конфигурирования видеокарт Nvidia для работы в разогнанном режиме:

Using X configuration file: "/etc/X11/xorg.conf".
Option "AllowEmptyInitialConfiguration" "True" added to Screen "Screen0".
Option "AllowEmptyInitialConfiguration" "True" added to Screen "Screen1".
Option "AllowEmptyInitialConfiguration" "True" added to Screen "Screen2".
Option "AllowEmptyInitialConfiguration" "True" added to Screen "Screen3".
Backed up file '/etc/X11/xorg.conf' as '/etc/X11/xorg.conf.backup'
New X configuration file written to '/etc/X11/xorg.conf'

Благодаря этому:

  1. Будут включены все GPU, имеющиеся на компьютере;
  2. Будет произведена конфигурация драйвера nvidia x, позволяющая осуществлять разгон и управление вентиляторами (а также удалится информация о предыдущих x-screens в текущей конфигурации);
  3. Заново создадутся X-дисплеи для каждого GPU в системе;
  4. Создастся резервная копия файла xorg.conf.
  • редактируем файл Xwrapper.config в каталоге /etc/X11/, добавляя в нем строку, разрешающую всем пользователям запускать сервер X. Для этого открываем его в текстовом редакторе:
sudo nano /etc/X11/Xwrapper.config

и добавляем в конец файла строку allowed_users=anybody

После этого нужно перезагрузить компьютер.

Для запуска x-сервера можно использовать команду

sudo X :0

Если все предыдущие шаги были выполнены правильно, появится джинн из бутылки информация, схожая с этой:

X.Org X Server 1.21.1.3

X Protocol Version 11, Revision 0

Current Operating System: Linux intel39-desktop 5.15.0-67-generic #74-Ubuntu SMP Wed Feb 22 14:14:39 UTC 2023 x86_64

Kernel command line: BOOT_IMAGE=/boot/vmlinuz-5.15.0-67-generic root=UUID=f80ee2d7-a8fe-420c-9401-8aefe9965ac1 ro hpet=disable noresume elevator=noop

xorg-server 2:21.1.3-2ubuntu2.7 (For technical support please see http://www.ubuntu.com/support)

Current version of pixman: 0.40.0

Before reporting problems, check http://wiki.x.org

to make sure that you have the latest version.

Markers: (--) probed, (**) from config file, (==) default setting,

(++) from command line, (!!) notice, (II) informational,

(WW) warning, (EE) error, (NI) not implemented, (??) unknown.

(==) Log file: "/var/log/Xorg.0.log", Time: Fri Mar 10 23:38:53 2023

(==) Using config file: "/etc/X11/xorg.conf"

(==) Using system config directory "/usr/share/X11/xorg.conf.d"

Теперь, в другом терминале (!) можно запускать утилиту nvidia-settings и выполнять команды по разгону/управлению работой системы охлаждения.

Разгон видеокарт Nvidia в консольном Linux на примере xubuntu 22.04

Далее в качестве примера приведены команды, использующиеся на компьютере с операционной системой xubuntu 22.04 с видеокартами Nvidia (драйвера уже установлены и настроены по методике, описанной в статье «О майнинге на видеокартах Nvidia в Linux и Windows»).

!Внимание!
Изложенный материал является памяткой, предназначенной исключительно для использования в учебных целях. Автор не претендует на полноту раскрытия темы, не призывает пользователей ни к каким действиям и не отвечает за возможные проблемы, могущие возникнуть вследствие повторения приведенных в качестве примера команд!

Редактируем файл Xwrapper.config:

sudo nano /etc/X11/Xwrapper.config
и добавляем строку
allowed_users=anybody

Включаем ssh (подробнее в статье «Настройка удаленного доступа к ригу по ssh в ubuntu»), переходим в консольный режим управления компьютером:

sudo systemctl enable multi-user.target && sudo systemctl set-default multi-user.target

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

Примечание:
Для возвращения графического режима нужно выполнить команду
sudo systemctl set-default graphical.target

Перезагружаемся (sudo reboot).

Если для управления компьютером использовался realvnc server, то при попытке подключения к удаленному экрану компьютера с отключенным графическим окружением появится черное окно с сообщением о невозможности показать рабочий стол:

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

ssh 192.168.2.55 -l login

Теперь, несмотря на то, что отключен X-org, можно пользоваться утилитой nvidia-smi:

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

sudo nvidia-smi -pm 1
sudo nvidia-smi -i 0 -pl 30

Утилита nvidia-xconfig также полностью функциональна:

sudo nvidia-xconfig -a --cool-bits=31 --allow-empty-initial-configuration --enable-all-gpus
Using X configuration file: "/etc/X11/xorg.conf".
Option "AllowEmptyInitialConfiguration" "True" added to Screen "Screen0".
Option "AllowEmptyInitialConfiguration" "True" added to Screen "Screen1".
Option "AllowEmptyInitialConfiguration" "True" added to Screen "Screen2".
Option "AllowEmptyInitialConfiguration" "True" added to Screen "Screen3".
Backed up file '/etc/X11/xorg.conf' as '/etc/X11/xorg.conf.backup'
New X configuration file written to '/etc/X11/xorg.conf'
После перезагрузки запустим управление параметрами разгона нулевой видеокарты с помощью nvidia-settings.

Для этого сначала в отдельном терминале выполняем команду:

sudo X :0

а затем, в другом терминале:

export DISPLAY=:0

и команды для разгона видеокарт и по запуску программы, например:

sudo nvidia-settings -a '[gpu:0]/GPUFanControlState=1';
sudo nvidia-settings -a '[fan:0]/GPUTargetFanSpeed=65';
nvidia-settings -a '[gpu:0]/GPUMemoryTransferRateOffset[1]=95';
nvidia-settings -a '[gpu:0]/GPUGraphicsClockOffset[1]=55';
nvidia-settings -a '[gpu:0]/GPUPowerMizerMode=1';
sudo ./miner ...

При запуске еще одного терминала, для разгона видеокарт снова нужно выполнять

export DISPLAY=:0

Если получаем фигу ошибку, указывающую, что контрольный дисплей не определен:

ERROR: The control display is undefined; please run `nvidia-settings —help` for usage information.

то некооректно произведена конфигурация x-драйвера для работы в консольном режиме (не работает x-сервер).

Если нужно обеспечить автоматический запуск x-сервера и майнера с разгонанными картами, можно воспользоваться связкой crontab и screen (подробнее в статье «Автозапуск майнеров в Linux с помощью cron+screen»).

Пример записей в файле crontab для автоматического запуска x-server и скриптов запуска двух майнеров (разгон видеокарт прописан в них самих):

@reboot sudo X :0
@reboot ~/Miners/cpuminer-opt-jayddee/minotaurx.sh
@reboot ~/Miners/ccminer-xaya/xaya.sh

Пример скрипта (

Для управления производительностью и вентиляторами видеокарт Nvidia в Linux обычно используют утилиты nvidia-xconfig, nvidia-settings и nvidia-smi.

Для этого после установки драйверов выполняют команду:

sudo nvidia-xconfig -a --cool-bits=31 --allow-empty-initial-configuration --enable-all-gpus

Затем, после перезагрузки компьютера, для включения возможности управления памятью, ядром, вентиляторами, используют команды:

nvidia-settings -a '[gpu:0]/GPUMemoryTransferRateOffset[3]=600';
nvidia-settings -a '[gpu:0]/GPUGraphicsClockOffset[3]=120' ;
nvidia-settings -a '[gpu:0]/GPUPowerMizerMode=1';
nvidia-settings -a '[gpu:0]/GPUFanControlState=1';
nvidia-settings -a '[fan:0]/GPUTargetFanSpeed=65'
Цифра в квадратных скобках перед знаком равенства выбираются в зависимости от использующейся видеокарты, например:
[1] — GeForce GTX750Ti;
[2] — Nvidia GeForce GT1030, GeForce GTX950/960;
[3] — для видеокарт Nvidia GeForce GTX1060/1070/1080;
[4] — для видеокарт типа Nvidia GeForce GTX1660.

С помощью этих действий можно управлять разгоном видеокарт на компьютере с включенным графическим окружением (рабочим столом).

Чтобы использовать возможности утилиты nvidia-settings, на компьютере должен работать дисплейный сервер X. Для обеспечения полноценного разгона видеокарт Nvidia его нужно включать даже на компьютерах, работающих без графического окружения (серверах, либо компьютерах, использующихся для майнинга).

Как разгонять видеокарты Nvidia в Linux, работающей в консольном режиме?

Если на компьютере с видеокартами Nvidia отключить графическое окружение, перейдя в режим работы multi-user.target, то исчезнет возможность управления их разгоном. Это происходит из-за того, что на компьютере перестает работать X server.

Чтобы управлять разгоном видеокарт Nvidia на сервере или любом другом компьютере с отключенным дисплейным менеджером, в ​Linux должен работать сервер дисплеев xorg.

Нужно обеспечить возможность запуска xorg на виртуальном дисплее, отредактировав конфигурационный файл Xwrapper.config, где прописывается разрешение на запуск xorg всем пользователям.

Для этого:

  • устанавливаем (в случае необходимости) пакеты xorg, x11-xserver-utils, xauth командой:
sudo apt install xorg x11-xserver-utils xauth

Примечание: на компьютере с уже установленными драйверами Nvidia эти пакеты обычно уже установлены. В этом случае, при попытке установить xorg появится информация об уже установленной версии X Display Manager:

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
xorg is already the newest version (1:7.7+23ubuntu2).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Это же замечание справедливо и для остальных утилит.
  • запускаем конфигурационную утилиту nvidia-xconfig с ключом -a и параметрами, разрешающими управление разгоном видеокарт:
sudo nvidia-xconfig -a --cool-bits=31 --allow-empty-initial-configuration --enable-all-gpus

Пример вывода терминала в случае успешного конфигурирования видеокарт Nvidia для работы в разогнанном режиме:

Using X configuration file: "/etc/X11/xorg.conf".
Option "AllowEmptyInitialConfiguration" "True" added to Screen "Screen0".
Option "AllowEmptyInitialConfiguration" "True" added to Screen "Screen1".
Option "AllowEmptyInitialConfiguration" "True" added to Screen "Screen2".
Option "AllowEmptyInitialConfiguration" "True" added to Screen "Screen3".
Backed up file '/etc/X11/xorg.conf' as '/etc/X11/xorg.conf.backup'
New X configuration file written to '/etc/X11/xorg.conf'

Благодаря этому:

  1. Будут включены все GPU, имеющиеся на компьютере;
  2. Будет произведена конфигурация драйвера nvidia x, позволяющая осуществлять разгон и управление вентиляторами (а также удалится информация о предыдущих x-screens в текущей конфигурации);
  3. Заново создадутся X-дисплеи для каждого GPU в системе;
  4. Создастся резервная копия файла xorg.conf.
  • редактируем файл Xwrapper.config в каталоге /etc/X11/, добавляя в нем строку, разрешающую всем пользователям запускать сервер X. Для этого открываем его в текстовом редакторе:
sudo nano /etc/X11/Xwrapper.config

и добавляем в конец файла строку allowed_users=anybody

После этого нужно перезагрузить компьютер.

Для запуска x-сервера можно использовать команду

sudo X :0

Если все предыдущие шаги были выполнены правильно, появится джинн из бутылки информация, схожая с этой:

X.Org X Server 1.21.1.3

X Protocol Version 11, Revision 0

Current Operating System: Linux intel39-desktop 5.15.0-67-generic #74-Ubuntu SMP Wed Feb 22 14:14:39 UTC 2023 x86_64

Kernel command line: BOOT_IMAGE=/boot/vmlinuz-5.15.0-67-generic root=UUID=f80ee2d7-a8fe-420c-9401-8aefe9965ac1 ro hpet=disable noresume elevator=noop

xorg-server 2:21.1.3-2ubuntu2.7 (For technical support please see http://www.ubuntu.com/support)

Current version of pixman: 0.40.0

Before reporting problems, check http://wiki.x.org

to make sure that you have the latest version.

Markers: (--) probed, (**) from config file, (==) default setting,

(++) from command line, (!!) notice, (II) informational,

(WW) warning, (EE) error, (NI) not implemented, (??) unknown.

(==) Log file: "/var/log/Xorg.0.log", Time: Fri Mar 10 23:38:53 2023

(==) Using config file: "/etc/X11/xorg.conf"

(==) Using system config directory "/usr/share/X11/xorg.conf.d"

Теперь, в другом терминале (!) можно запускать утилиту nvidia-settings и выполнять команды по разгону/управлению работой системы охлаждения.

Разгон видеокарт Nvidia в консольном Linux на примере xubuntu 22.04

Далее в качестве примера приведены команды, использующиеся на компьютере с операционной системой xubuntu 22.04 с видеокартами Nvidia (драйвера уже установлены и настроены по методике, описанной в статье «О майнинге на видеокартах Nvidia в Linux и Windows»).

!Внимание!
Изложенный материал является памяткой, предназначенной исключительно для использования в учебных целях. Автор не претендует на полноту раскрытия темы, не призывает пользователей ни к каким действиям и не отвечает за возможные проблемы, могущие возникнуть вследствие повторения приведенных в качестве примера команд!

Включаем ssh (подробнее в статье «Настройка удаленного доступа к ригу по ssh в ubuntu»), переходим в консольный режим управления компьютером:

sudo systemctl enable multi-user.target && sudo systemctl set-default multi-user.target

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

Примечание:
Для возвращения графического режима нужно выполнить команду
sudo systemctl set-default graphical.target

Перезагружаемся (sudo reboot).

Если для управления компьютером использовался realvnc server, то при попытке подключения к удаленному экрану компьютера с отключенным графическим окружением появится черное окно с сообщением о невозможности показать рабочий стол:

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

ssh 192.168.2.55 -l login

Теперь, несмотря на то, что отключен X-org, можно пользоваться утилитой nvidia-smi:

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

sudo nvidia-smi -pm 1
sudo nvidia-smi -i 0 -pl 30

Утилита nvidia-xconfig также полностью функциональна:

sudo nvidia-xconfig -a --cool-bits=31 --allow-empty-initial-configuration --enable-all-gpus
Using X configuration file: "/etc/X11/xorg.conf".
Option "AllowEmptyInitialConfiguration" "True" added to Screen "Screen0".
Option "AllowEmptyInitialConfiguration" "True" added to Screen "Screen1".
Option "AllowEmptyInitialConfiguration" "True" added to Screen "Screen2".
Option "AllowEmptyInitialConfiguration" "True" added to Screen "Screen3".
Backed up file '/etc/X11/xorg.conf' as '/etc/X11/xorg.conf.backup'
New X configuration file written to '/etc/X11/xorg.conf'
После перезагрузки запустим управление параметрами разгона нулевой видеокарты с помощью nvidia-settings.

Для этого сначала в отдельном терминале выполняем команду:

sudo X :0

а затем, в другом терминале:

export DISPLAY=:0

и команды для разгона видеокарт и по запуску программы, например:

sudo nvidia-settings -a '[gpu:0]/GPUFanControlState=1';
sudo nvidia-settings -a '[fan:0]/GPUTargetFanSpeed=65';
nvidia-settings -a '[gpu:0]/GPUMemoryTransferRateOffset[1]=95';
nvidia-settings -a '[gpu:0]/GPUGraphicsClockOffset[1]=55';
nvidia-settings -a '[gpu:0]/GPUPowerMizerMode=1';
sudo ./miner ...

При запуске еще одного терминала, для разгона видеокарт снова нужно выполнять

export DISPLAY=:0

Если получаем фигу ошибку, указывающую, что контрольный дисплей не определен:

ERROR: The control display is undefined; please run `nvidia-settings --help` for usage information.

то некооректно произведена конфигурация x-драйвера для работы в консольном режиме (не работает x-сервер).

Если нужно обеспечить автоматический запуск x-сервера и майнера с разгонанными картами, можно воспользоваться связкой crontab и screen (подробнее в статье «Автозапуск майнеров в Linux с помощью cron+screen»).

Пример записей в файле crontab для автоматического запуска x-server и скриптов запуска двух майнеров (разгон видеокарт прописан в них самих):

@reboot sudo X :0
@reboot ~/Miners/cpuminer-opt-jayddee/minotaurx.sh
@reboot ~/Miners/ccminer-xaya/xaya.sh

Пример скрипта (файл xaya.sh) автозапуска майнинга в программе ccminer:

#!/bin/bash
sleep 10
export DISPLAY=:0

export GPU_FORCE_64BIT_PTR=0
export GPU_MAX_HEAP_SIZE=100
export GPU_USE_SYNC_OBJECTS=1
export GPU_MAX_ALLOC_PERCENT=100
export GPU_SINGLE_ALLOC_PERCENT=100

sudo nvidia-smi -pm 1

sudo nvidia-smi -i 0 -pl 20
sudo nvidia-smi -i 1 -pl 20
sudo nvidia-smi -i 2 -pl 34
sudo nvidia-smi -i 3 -pl 70

sudo nvidia-settings -a '[gpu:0]/GPUFanControlState=1';
sudo nvidia-settings -a '[gpu:1]/GPUFanControlState=1';
sudo nvidia-settings -a '[gpu:2]/GPUFanControlState=1';
sudo nvidia-settings -a '[gpu:3]/GPUFanControlState=1';

sudo nvidia-settings -a '[fan:0]/GPUTargetFanSpeed=70';
sudo nvidia-settings -a '[fan:1]/GPUTargetFanSpeed=70';
sudo nvidia-settings -a '[fan:2]/GPUTargetFanSpeed=60';
sudo nvidia-settings -a '[fan:3]/GPUTargetFanSpeed=60';

sudo nvidia-settings -a '[gpu:0]/GPUMemoryTransferRateOffset[1]=95';
sudo nvidia-settings -a '[gpu:1]/GPUMemoryTransferRateOffset[1]=95';
sudo nvidia-settings -a '[gpu:2]/GPUMemoryTransferRateOffset[1]=460';
sudo nvidia-settings -a '[gpu:3]/GPUMemoryTransferRateOffset[2]=550';

sudo nvidia-settings -a '[gpu:0]/GPUGraphicsClockOffset[1]=55';
sudo nvidia-settings -a '[gpu:1]/GPUGraphicsClockOffset[1]=55';
sudo nvidia-settings -a '[gpu:2]/GPUGraphicsClockOffset[1]=205';
sudo nvidia-settings -a '[gpu:3]/GPUGraphicsClockOffset[2]=205';

nvidia-settings -a '[gpu:0]/GPUPowerMizerMode=1';
nvidia-settings -a '[gpu:1]/GPUPowerMizerMode=1';
nvidia-settings -a '[gpu:2]/GPUPowerMizerMode=1';
nvidia-settings -a '[gpu:3]/GPUPowerMizerMode=1';

cd ~/Miners/ccminer-xaya

screen -dmS xaya ./ccminer -a neoscrypt-xaya -o stratum+tcp://neoscrypt-xaya.mine.zergpool.com:4238 -u кошелек -p c=LTC,компьютер -d 0,1,2,3 --pstate=0 --max-temp=59

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

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