nvidia-nvml¶
Данный плагин, который поставляется вместе с GPU Fan Meister, позволяет контролировать видеокарты NVIDIA, для которых установлены официальные проприетарные драйвера.
Для работы этого плагина требуются следующие вещи:
Видеокарта NVIDIA архитектуры Kepler или более новой (серия GeForce 600 и новее). На свой страх и риск вы можете попробовать данный плагин вместе с видеокартами архитектуры Fermi (серии GeForce 400 и 500).
Проприетарные драйвера NVIDIA, установленные любым доступным способом:
Официальный сайт:
Proprietary GPU Drivers PPA: https://launchpad.net/~graphics-drivers/+archive/ubuntu/ppa
Пакетный менеджер или другие системные утилиты (например, Driver Manager в Ubuntu).
Программа NVIDIA X Server Settings, доступная через команду "nvidia-settings" (т.е. программа должна находиться в одной из директорий $PATH).
Программа NVIDIA X Configuration Tool, достапная через команду "nvidia-xconfig" (т.е. программа должна находиться в одной из директорий $PATH).
Включённая возможность контроля вентиляторов. Это делается установкой второго бита переменной CoolBits в Xorg.conf. Более подробно про CoolBits можно найти здесь: https://wiki.archlinux.org/index.php/NVIDIA/Tips_and_tricks_(Русский)#Включение_разгона. Самый простой способ установить второй бит в CoolBits:
sudo nvidia-xconfig --cool-bits=4
. После этого необходимо перезагрузить компьютер.
Функции плагина¶
Плагин nvidia-nvml содержит одну функцию, которую можно запускать из скрипта через $.dev.customFunction:
- getThrottleReasons()Object
Выдаёт причины троттлинга видеокарты. Результат функции - объект, содержащий в качестве ключей идентификаторы причины троттлинга. Каждое поле представляет собой целочисленное значение. Каждое поле может иметь одно из двух значений:
ноль - троттлинг, если он имеется, не вызван этой причиной.
код причины - троттлинг вызван данной причиной.
Возможные значения строк:
gpuIdle - частота GPU уменьшена, т.к. на GPU не запущено никаких задач.
applicationsClocksSetting - частота GPU ограничена общей настройкой частоты для приложений.
swPowerCap - power-scaling алгоритм занижает частоту GPU.
hwSlowdown - замедление по требованию оборудования; причины могут быть разные:
слишком высокая температура
слишком высокий ток
троттлинг шины PCIe или блока питания
GPU в процессе переключения частот или режимов питания
syncBoost - видеокарта помещена в группу "Sync boost". Все видеокарты в такой группе имеют одну и ту же максимальную частоту. Флаг syncBoost говорит о том, что другие видеокарты в этой группе тормозят данную видеокарту.
swThermalSlowdown - понижение частоты по требованию драйвера из-за высокой температуры GPU или памяти.
hwThermalSlowdown - понижение частоты по требованию оборудования из-за высокой температуры.
hwPowerBrakeSlowdown - троттлинг шины PCIe или блока питания.
unknown - троттлинг имеется, но причину выяснить не удалось.
code - код причин троттлинга, представляющий собой логическое ИЛИ всех кодов отдельных причин троттлинга, указанных выше. Если это поле равно нулю, то троттлинг отсутствует.
Пример:
const reasons = $.dev.customFunction('getThrottleReasons') if(reasons.swThermalSlowdown || reasons.hwThermalSlowdown) console.log(`Троттлинг из-за высокой температуры! Код: 0x${reasons.code.toString(16)}`)