nvidia-nvml

Данный плагин, который поставляется вместе с GPU Fan Meister, позволяет контролировать видеокарты NVIDIA, для которых установлены официальные проприетарные драйвера.

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

  • Видеокарта NVIDIA архитектуры Kepler или более новой (серия GeForce 600 и новее). На свой страх и риск вы можете попробовать данный плагин вместе с видеокартами архитектуры Fermi (серии GeForce 400 и 500).

  • Проприетарные драйвера NVIDIA, установленные любым доступным способом:

  • Программа 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)}`)