Введение
Когда речь заходит о мониторинге и управлении видеокартами NVIDIA, первое, что приходит на ум инженерам и системным администраторам, — это nvidia-smi. Эта утилита командной строки позволяет не только наблюдать за состоянием графических процессоров, но и ограничивать энергопотребление, логировать данные и анализировать загрузку GPU в реальном времени.
В этой статье мы подробно разберем основные команды nvidia-smi, их применение и практические сценарии использования.
1. Базовая информация о GPU
Чтобы получить сводку о состоянии всех установленных видеокарт, достаточно выполнить:
nvidia-smi
Вывод команды включает:
- Загрузку GPU (%)
- Температуру (°C)
- Потребление энергии (Вт)
- Объем занятой видеопамяти (MB)
- Активные процессы, использующие GPU
Пример вывода:
+-----------------------------------------------------------------------------+ | NVIDIA-SMI 535.104.05 Driver Version: 535.104.05 CUDA Version: 12.2 | |-------------------------------+----------------------+----------------------+ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | | | | | | 0 NVIDIA RTX 4090 On | 00000000:01:00.0 Off | Off | | 34% 65C P8 15W / 450W | 4000MiB / 24576MiB | 12% Default | +-------------------------------+----------------------+----------------------+
Для обновления информации в реальном времени можно использовать watch:
watch -n 2 nvidia-smi
Каждые 2 секунды на экран будет выводиться актуальная информация.
2. Просмотр версии драйвера и CUDA
Если необходимо быстро узнать, какая версия драйвера и CUDA установлена, можно выполнить:
nvidia-smi --query-gpu=driver_version,cuda_version --format=csv
Вывод будет следующим:
driver_version, cuda_version 535.104.05, 12.2
3. Контроль энергопотребления
Видеокарты NVIDIA могут потреблять значительное количество энергии, что особенно критично для серверов и рабочих станций. Для мониторинга энергопотребления можно выполнить:
nvidia-smi --query-gpu=power.draw --format=csv
Вывод покажет текущее энергопотребление, например:
power.draw [W] 125.46 W
Если требуется ограничить энергопотребление, например, до 100 Вт, используется команда:
nvidia-smi -pl 100
Чтобы проверить, применилось ли ограничение, повторно выполните команду мониторинга.
4. Отслеживание процессов, использующих GPU
Бывает необходимо узнать, какие именно процессы нагружают видеокарту. Для этого существует команда:
nvidia-smi pmon -s um
Вывод команды покажет список PID процессов, объем потребляемой видеопамяти и загрузку GPU для каждого из них.
Пример:
# gpu pid type sm mem enc dec command 0 1245 C 50% 2048 0 0 python3 0 3765 G 5% 512 0 0 Xorg
- C — процесс CUDA
- G — графический процесс
Если замечена аномальная загрузка, можно принудительно завершить процесс:
kill -9 1245
5. Логирование данных
Если нужно вести мониторинг в течение длительного времени и записывать данные в файл, можно использовать логирование:
nvidia-smi -l 5 > gpu_log.txt
Здесь -l 5 означает, что информация будет обновляться каждые 5 секунд и записываться в gpu_log.txt
.
Для анализа собранных данных можно использовать grep
, awk
или другие утилиты. Например, чтобы получить список зафиксированных значений энергопотребления:
grep "power.draw" gpu_log.txt
Вывод
Утилита nvidia-smi — мощный инструмент для мониторинга и управления GPU NVIDIA. Она позволяет:
✅ Получать информацию о состоянии видеокарты
✅ Контролировать энергопотребление
✅ Отслеживать загрузку и активные процессы
✅ Вести логирование для последующего анализа
Это незаменимый инструмент как для разработчиков CUDA, так и для администраторов серверов с GPU.