August 30, 2024

Linux (ubuntu server) андервольтинг Nvidia

Ограничение по питанию на примере rtx 3060.

nvidia-smi

Как видим, дефолт 170W, а нам нужна долгая работа карточки без отвала и перегрева, так что проще всего занизить вольтаж, и это будет занижать частоты автоматически.

sudo nano /etc/systemd/system/gpu-limit.service

Создаем файл загрузки нового сервиса.

[Unit]
Description=GPU power limiter
After=network.target
StartLimitIntervalSec=0

[Service]
User=root
Type=simple
Restart=always
RestartSec=1
ExecStart=/usr/bin/nvidia-smi -i 0 -pl 150

[Install]
WantedBy=multi-user.target

Где в содержимом ставим 150, это будет 150W максимального потребления.

sudo systemctl daemon-reload & \
sudo systemctl start gpu-limit.service
sudo systemctl enable gpu-limit.service

Перезагружаем сервисы и смотрим статус.

sudo systemctl status gpu-limit.service

А теперь смотрим лимит потребления.

nvidia-smi

Можно еще завысить частоту, пример завышения на 100 Mhz, но нужно искать готовые кейсы под разгон, сколько допустимо при определенном пиковом напряжении. Я этот параметр не дергаю, так как задача просто сохранить карту для дольшей работы, а не выжать из нее все соки.

nvidia-settings -a '[gpu:0]/GPUGraphicsClockOffset[4]=100' -a '[gpu:0]/GPUGraphicsClockOffset[3]=100' -a '[gpu:0]/GPUGraphicsClockOffset[2]=100'

Полное состояние:

nvidia-smi -q -a