- Электрический блогнот
- мои заметки на полях
- контроль и разгон графических карт NVIDIA в Linux
- nvidia-smi
- Полезные команды
- Журнал
- Driver Persistence
- Разгон
- Заключение
- Русские Блоги
- Сводка команд серии NVIDIA-SMI
- Каталог статей
- 1 Введение в NVIDIA-SMI
- 2 Подробное описание серии команд NVIDIA-SMI
- 2.1 nvidia-smi
- 2.2 nvidia-smi -q
- 2.3 Варианты модификации устройства
- 2.4 nvidia-smi dmon
- 2.5 nvidia-smi pmon
Электрический блогнот
мои заметки на полях
контроль и разгон графических карт NVIDIA в Linux
Многие геймеры, майнеры и просто любители повозиться с multimedia давно используют видеокарты NVIDIA для своих целей. Используют на «всю катушку». Разработчики видеокарт позволили простым людям создавать программы для запуска на видеокартах, используя мощь всех CUDA ядер. Попутно видеокарты стали комплектоваться оперативной памятью в несколько гигабайт. После этого простая видеокарта превратилась в компьютер-в-компьютере. Поэтому контроль графических карт NVIDIA является первостепенной задачей для тех, кто хочет выжать по максимуму и одновременно добиться того, чтобы карта работала, как можно дольше.
nvidia-smi
Для контроля состояния видеокарты мы будем использовать утилиту nvidia-smi (NVIDIA System Management Interface), которая входит в комплект драйверов производимых компанией NVIDIA для своих карт.
Если у вас Linux, то после установки NVIDIA драйверов nvidia-smi можно найти в папке:
Nvidia-smi является консольной программой (у нее нет графического интерфейса) и для ее запуска необходимо воспользоваться командной строкой.
Полезные команды
С моей точки зрения самой полезным способом запуска nvidia-smi, является запуск без параметров:
вы получите много полезной информации структурированной в виде простенькой таблички. Давайте запусти несколько приложений нагружающих видеокарты и посмотрим, что выдаст nvidia-smi. Для этого воспользуемся примерами, которые поставляются вместе с NVIDIA Cuda Toolkit (установка этого Toolkit описана здесь). Эти примеры точно нагрузят нашу видеокарту 🙂 А так же запустим конвертирование видео из одного формата в другой с помощью утилиты FFmpeg, которая проводит кодирование/раскодирование видео на графическом ускорителе видеокарты.
Глядя на скриншот мы видим, что у нас запущены 4 приложения использующих ресурсы видеокарты:
- Xorg — графическая подсистема Linux. Использует драйвер NVIDIA, поэтому она здесь в списке;
- SimpleGL — пример из Cuda Toolkit;
- marchinCubes — еще пример из Cuda Toolkit;
- FFmpeg — в нашем тесте он занимается конвертированием видео с помощью NVIDIA GPU.
Шапка таблицы дает информацию о названии видеокарты, версии драйвера, текущем режиме работы и температуру. Все дается в понятном виде и дополнительных объяснений не требует. Рассмотрим подробнее раздел Processes, здесь каждый процесс имеет 5 параметров:
- GPU — номер видеокарты на котором приложение запущено (если видеокарта одна, то там будет 0);
- PID — ID процесса, по этому ID вы можете kill’ьнуть процесс обычной командой kill;
- Type — тип приложения:
- «G» — графическое (обычная графика, которая отрисовывается видеокартой);
- «C» — вычислительное, например можно очень эффективно перемножать матрицы на видеокарте (CUDA ядра), но чаще всего подбирают пароли или майнят битки;
- «G+C» — рисует и вычисляет и все это делает с помощью видеокарты.
- Process name — название приложения;
- GPU Memory Usage — сколько видеопамяти занимает приложение.
Чтобы получить максимум информации о состоянии видеокарты наберите:
вывалится огромная «простыня», где вы найдете всю информацию про вашу карточку.
Если установлено несколько видеокарт в системе и нужно получить информацию о какой-то карте конкретно, то нужно указать ID этой карты:
Для того, чтобы получить весь список видеокарт в системе воспользуйтесь командой:
Журнал
Для контроля состояния видеокарты в течение некоторого промежутка времени поможет журнал или log. Nvidia-smi позволяет выводить информацию о требуемых параметрах на экран или в файл для последующего анализа.
Следующая команда будет непрерывно с интервалом в 5 секунд выводить на экран информация о потреблении видеопамяти и температуре GPU:
С помощью опции «-f» можно перенаправить вывод в файл:
Еще один способ смотреть за видеокартой — это запустить nvidia-smi с ключами dmon или pmon.
С помощью dmon можно следить за общими параметрами видеокарты. Я чаще всего использую dmon для контроля загруженности чипов NVDEC/NVENC расположенных в карте NVIDIA и которые отвечают за кодирование и раскодирование видео на аппаратном уровне.
Если хотите журналировать потребление ресурсов видеокарты каждым прорцессом, то можно воспользоваться опцией pmon.
Driver Persistence
Peristence — постоянство. Если приложению нужна видеокарта, то обращение происходит сначала к драйверу, а от драйвера к видеокарте. Современные системы могут выгружать драйверы из памяти (например, понизить энергопотребление). Если приложение требует драйвер, а драйвер в это время выгружен, то система загружает драйвер. На это уходит время. Возникает лаг (lag). Чтобы лагов не было, есть возможность сделать драйвер невыгружаемым:
проверяем статус драйвера»
для того, чтобы вернуть все как было (разрешить выгружать драйвер) делаем:
и сразу же проверяем:
Следует помнить, что если вы меняли настройки видеокарты (частоту, энергопотребление), то перевод/вывод ее в Persistence сбросит все предыдущие настройки.
Разгон
По умолчанию разгон выключен. Вы не можете контролировать частоту графического процессора:
ни скорость вентилятора на видеокарте:
Для того, чтобы в nvidia-settings появилась возможность разгона, нужно добавить в файл
в секцию Section «Device» строку:
и перезагрузить компьютер. После перезагрузки в nvidia-settings станут доступны следующие опции для регулировки разгона:
настройка частоты графического процессора
настройка скорости вращения вентилятора
Следует помнить, что разгон переводит видеокарту в нестандартный режим работы и поэтому контроль ее состояния нужно осуществлять еще тщательнее.
Заключение
В данной заметке мы рассмотрели, как осуществлять контроль и разгон графических карт NVIDIA в Linux. Затронули только самые базовые принципы и лишь слегка погрузились в эту интересную тему. На простых примерах посмотрели, как следить за состоянием видеокарты, как вести логи. Слегка коснулись темы разгона. Правда зачастую уже и этого достаточно, чтобы грамотно задействовать мощь видеокарты.
Источник
Русские Блоги
Сводка команд серии NVIDIA-SMI
Каталог статей
1 Введение в NVIDIA-SMI
nvidia-smi, сокращенно NVSMI, предоставляет функции для мониторинга использования графического процессора и изменения состояния графического процессора.Это кроссплатформенный инструмент, который поддерживает все стандартные дистрибутивы Linux, поддерживаемые драйверами NVIDIA, и 64-разрядные системы, начиная с WindowsServer 2008 R2. Этот инструмент включен в драйвер N-карты, пока драйвер установлен, он будет доступен.
Расположение программы в Windows: C: \ Program Files \ NVIDIACorporation \ NVSMI \ nvidia-smi.exe.
Расположение программы в Linux: / usr / bin / nvidia-smi. Поскольку расположение было добавлено в PATH, вы можете напрямую ввести nvidia-smi для запуска.
2 Подробное описание серии команд NVIDIA-SMI
2.1 nvidia-smi
Отображение текущего информационного статуса всех графических процессоров
В отображаемой таблице:
Вентилятор: скорость вентилятора (0% -100%), N / A означает отсутствие вентилятора
Temp: температура графического процессора (чрезмерная температура графического процессора приведет к падению частоты графического процессора)
Perf: Состояние производительности: от P0 (максимальная производительность) до P12 (минимальная производительность)
Pwr: энергопотребление графического процессора
Persistence-M: состояние режима сохранения (постоянный режим потребляет больше энергии, но для запуска нового приложения GPU требуется меньше времени)
Bus-Id: шина GPU, domain🚌device.function
Disp.A: Display Active, указывающий, инициализирован ли дисплей GPU
Memory-Usage: Использование видеопамяти
Volatile GPU-Util: Использование GPU
ECC: включить ли технологию проверки и исправления ошибок, 0 / ОТКЛЮЧЕНО, 1 / ВКЛЮЧЕНО
Compute M .: режим расчета, 0 / ПО УМОЛЧАНИЮ, 1 / EXCLUSIVE_PROCESS, 2 / ЗАПРЕЩЕНО
Необязательные параметры:
Просмотреть справочную документацию
Посмотреть доступные графические процессоры
Укажите графический процессор
Обновлять информацию динамически (по умолчанию обновляется каждые 5 секунд), нажмите Ctrl + C, чтобы остановить, вы можете указать частоту обновления в секундах
Вывести запрошенную информацию в конкретный файл, не отображая ее на терминале
2.2 nvidia-smi -q
Запросить текущую подробную информацию обо всех графических процессорах
Отображение свойств устройства вместо графического процессора
nvidia-smi –q –i xxx
Укажите конкретную информацию о графическом процессоре или устройстве
nvidia-smi –q –f xxx
Вывести запрошенную информацию в конкретный файл, не отображая ее на терминале
Вывести запрошенную информацию в виде xml
nvidia-smi -q –d xxx
Укажите, чтобы отображалась некоторая информация о видеокарте. Параметры xxx могут быть: MEMORY, UTILIZATION, ECC, TEMPERATURE, POWER, CLOCK, COMPUTE, PIDS, PERFORMANCE, SUPPORTED_CLOCKS, PAGE_RETIREMENT, ACCOUNTING.
nvidia-smi –q –l xxx
Обновите информацию динамически, нажмите Ctrl + C для остановки, вы можете указать частоту обновления в секундах
Выборочные параметры запроса, вы можете указать параметры отображаемых атрибутов
Доступные для просмотра свойства: timestamp, driver_version, pci.bus, pcie.link.width.current и т. Д. (Вы можете проверить nvidia-smi – help-query – gpu, чтобы узнать, какие атрибуты доступны)
2.3 Варианты модификации устройства
Вы можете вручную установить параметры состояния устройства карты GPU
nvidia-smi –pm 0/1
Установите постоянный режим: 0 / ОТКЛЮЧЕН, 1 / ВКЛЮЧЕН
Поддержка ECC переключателя: 0 / ВЫКЛЮЧЕНО, 1 / ВКЛЮЧЕНО
Сбросить количество ошибок ECC: 0 / VOLATILE, 1 / AGGREGATE
Установите режим приложения расчета: 0 / ПО УМОЛЧАНИЮ, 1 / EXCLUSIVE_PROCESS, 2 / ЗАПРЕЩЕНО
Сброс графического процессора
Установить режим виртуализации GPU
nvidia-smi –ac xxx,xxx
Установите рабочую частоту графического процессора. например, nvidia-smi –ac2000,800
Сброс тактовой частоты на значение по умолчанию
nvidia-smi –acp 0/1
Переключите требования разрешений -ac и -rac, 0 / UNRESTRICTED, 1 / RESTRICTED
Укажите максимальный предел управления мощностью (Вт)
nvidia-smi –am 0/1
Включение или отключение режима подсчета, 0 / ОТКЛЮЧЕН, 1 / ВКЛЮЧЕН
Очистить все записанные PID в буфере, 0 / ОТКЛЮЧЕНО, 1 / ВКЛЮЧЕНО
2.4 nvidia-smi dmon
Команда мониторинга устройства для отображения статистики устройства GPU в виде полосы прокрутки.
Статистика графического процессора отображается в формате однострочной прокрутки, а отслеживаемые индикаторы могут быть настроены в зависимости от ширины окна терминала. Мониторинг до 4. GPU. Если GPU не указан, GPU0-GPU3 будет отслеживаться по умолчанию (индекс GPU начинается с 0).
nvidia-smi dmon –i xxx
Разделите индексы графического процессора, идентификатор шины PCI или UUID запятыми
nvidia-smi dmon –d xxx
Укажите время обновления (по умолчанию 1 секунда)
nvidia-smi dmon –c xxx
Вывести указанное количество статистики и выйти
nvidia-smi dmon –s xxx
Укажите, какие индикаторы мониторинга отображать (по умолчанию puc), где:
p: потребление энергии и температура (pwr: потребляемая мощность, temp: температура)
u: частота использования графического процессора (sm: потоковый процессор, mem: видеопамять, enc: ресурс кодирования, dec: ресурс декодирования)
c: тактовая частота процессора и памяти графического процессора (mclk: частота памяти, pclk: частота процессора)
v: аномальная мощность и нагрев
m: память FB и память Bar1
e: количество ошибок ECC и ошибок повторного отображения PCIe
t: пропускная способность чтения и записи PCIe
nvidia-smi dmon –o D/T
Укажите формат отображения времени D: ГГГГММДД, THH: MM: SS
nvidia-smi dmon –f xxx
Вывести запрошенную информацию в конкретный файл, не отображая ее на терминале
2.5 nvidia-smi pmon
Команда мониторинга процесса для отображения информации о состоянии процесса графического процессора в виде полосы прокрутки.
Статистика процессов графического процессора отображается в виде однострочной прокрутки.Этот инструмент отображает статистику всех процессов графического процессора. Индикаторы, которые нужно отслеживать, можно настроить в зависимости от ширины окна терминала. Мониторинг до 4. GPU. Если GPU не указан, GPU0-GPU3 будет отслеживаться по умолчанию (индекс GPU начинается с 0).
nvidia-smi pmon –i xxx
Разделите индексы графического процессора, идентификатор шины PCI или UUID запятыми
nvidia-smi pmon –d xxx
Укажите время обновления (по умолчанию 1 секунда, максимум 10 секунд)
nvidia-smi pmon –c xxx
Вывести указанное количество статистики и выйти
nvidia-smi pmon –s xxx
Укажите, какие индикаторы мониторинга отображать (по умолчанию u), где:
u: использование графического процессора
m: использование памяти FB
nvidia-smi pmon –o D/T
Укажите формат отображения времени D: ГГГГММДД, THH: MM: SS
nvidia-smi pmon –f xxx
Вывести запрошенную информацию в конкретный файл, не отображая ее на терминале
Источник