Простой разгон и/или снижение напряжения видеокарт NVIDIA на CachyOS
В этом руководстве описывается, как разогнать и/или снизить напряжение видеокарт NVIDIA под Linux. Хотя видеокарты NVIDIA не имеют такого широкого набора инструментов, как под Windows (нет MSI Afterburner или прямого контроля над кривой напряжения), все же есть относительно простые способы повысить тактовую частоту или снизить напряжение вашей карты, если вы знаете, как это сделать.
В этом руководстве мы настроим Python-скрипты для настройки различных повышений/смещений и создадим службу для автоматического запуска этих скриптов после загрузки.
Необходимые условия
- Система CachyOS с видеокартой NVIDIA
- Root-доступ
Процесс установки
1. Подготовка окружения
Откройте терминал по вашему выбору (Konsole, Alacritty и т.д.) и выполните следующие шаги:
-
Переключитесь в режим root:
Окно терминала sudo -i -
Создайте и перейдите в каталог NVIDIA:
Окно терминала mkdir NVIDIAcd NVIDIA
2. Настройка виртуального окружения Python
-
Создайте виртуальное окружение:
Окно терминала python -m venv venv -
Активируйте виртуальное окружение:
Окно терминала source /root/NVIDIA/venv/bin/activate -
Проверьте активацию:
Окно терминала which pipОн должен вернуть “/root/NVIDIA/venv/bin/pip”.
-
Установите необходимые модули:
Окно терминала pip install nvidia-ml-py pynvml -
Деактивируйте виртуальное окружение:
Окно терминала deactivate
3. Создание скрипта загрузчика
Создайте файл с именем nvidia-oc.sh
в /root/NVIDIA/
:
#!/usr/bin/fishsource /root/NVIDIA/venv/bin/activate.fishpython /root/NVIDIA/nvidia-oc.pydeactivate
Сделайте скрипт исполняемым:
chmod 770 nvidia-oc.sh
4. Определение диапазонов тактовых частот GPU
Найдите стандартные минимальные и максимальные тактовые частоты вашей карты:
nvidia-smi -q -d SUPPORTED_CLOCKS | less
Запишите верхние и нижние значения тактовой частоты ‘Graphics:’.
5. Создание Python-скрипта
Создайте файл с именем nvidia-oc.py
в /root/NVIDIA/
со следующим содержимым:
from pynvml import *nvmlInit()
# Это устанавливает GPU для настройки - если это выдает вам ошибки или у вас несколько GPU, установите значение 1 или попробуйте другие значения.myGPU = nvmlDeviceGetHandleByIndex(0)
# Установите минимальную и максимальную тактовую частоту ядраnvmlDeviceSetGpuLockedClocks(myGPU, MINCLOCK, MAXCLOCK)
# Смещение тактовой частоты (по умолчанию 0)nvmlDeviceSetGpcClkVfOffset(myGPU, CLOCKOFFSET)
# Смещение тактовой частоты памяти (по умолчанию 0)nvmlDeviceSetMemClkVfOffset(myGPU, MEMOVERCLOCK)
Замените MINCLOCK
, MAXCLOCK
, CLOCKOFFSET
и MEMOVERCLOCK
соответствующими значениями.
6. Тестирование конфигурации
Запустите скрипт:
/root/NVIDIA/nvidia-oc.sh
Мониторинг GPU:
watch nvidia-smi -q -d VOLTAGE,CLOCK
Протестируйте свою конфигурацию в играх или других задачах, интенсивно использующих GPU.
7. Создание службы Systemd
Создайте файл с именем nvidia-oc.service
в /etc/systemd/system/
:
[Unit]Description=Настройка параметров NvidiaWants=basic.target
[Service]Type=oneshotExecStart=/root/NVIDIA/nvidia-oc.sh
[Install]WantedBy=network.target
8. Включение и запуск службы
systemctl daemon-reloadsystemctl enable nvidia-oc.servicesystemctl start nvidia-oc.service
Проверьте статус службы:
systemctl status nvidia-oc.service
Заключение
Теперь у вас есть пользовательские тактовые частоты и, возможно, снижение напряжения для вашей видеокарты NVIDIA при загрузке. Не забудьте тщательно протестировать и отрегулировать значения по мере необходимости для стабильности и производительности.