ПО для GPU

Команды nvidia-smi для мониторинга GPU-серверов

От беглой проверки до долгосрочных метрик. Как следить за загрузкой, памятью, энергопотреблением и ошибками ваших GPU и как понять, что проблему должны устранять мы.

На этой странице
  1. Шпаргалка по nvidia-smi
  2. Наблюдение за GPU в реальном времени
  3. Непрерывный вывод метрик с dmon
  4. Запись метрик в CSV через --query-gpu
  5. nvtop — htop для GPU
  6. Долгосрочные метрики: экспортер DCGM и Prometheus
  7. Температура, энергопотребление и ошибки ECC
  8. Ошибки Xid: в каких случаях создавать тикет
  9. Аналоги для AMD: rocm-smi и amd-smi

Эти команды nvidia-smi охватывают всё, что нужно для мониторинга загрузки GPU в Linux: от наблюдения в реальном времени во время обучения до метрик, которые вы храните неделями. Они одинаково работают на тарифах с одним GPU и на 8-GPU-серверах. В последних разделах — аппаратные ошибки, случаи, когда стоит создать тикет, и аналоги для AMD.

Шпаргалка по nvidia-smi

ЗадачаКоманда
Разовый снимок состояния всех GPUnvidia-smi
Обновление каждые 2 секундыnvidia-smi -l 2
Список GPU и их UUIDnvidia-smi -L
Непрерывный вывод загрузки, энергопотребления, частот и памятиnvidia-smi dmon -s pucm
Процессы и используемая ими памятьnvidia-smi --query-compute-apps=pid,process_name,used_memory --format=csv
Выбранные метрики в формате CSV каждые 10 секундnvidia-smi --query-gpu=index,utilization.gpu,memory.used --format=csv -l 10
Подробные данные о температуре, энергопотреблении или ECCnvidia-smi -q -d TEMPERATURE (или POWER, ECC)
Как связаны GPU: NVLink, PCIe, NUMAnvidia-smi topo -m
Состояние каждого канала NVLinknvidia-smi nvlink -s

Ниже разобрана каждая команда, а аналоги для AMD приведены в конце страницы.

Наблюдение за GPU в реальном времени

nvidia-smi              # one snapshot
nvidia-smi -l 2         # print a new snapshot every 2 seconds
watch -n 2 nvidia-smi   # same, redrawn in place

GPU-Util — доля времени, когда выполнялось хотя бы одно ядро (kernel), а не загруженность каждого вычислительного блока, поэтому значение 100% ещё не доказывает, что GPU используется эффективно. Memory-Usage — выделенная память; фреймворки вроде vLLM намеренно резервируют большую её часть. Pwr:Usage/Cap и Temp показывают энергопотребление и температуру, а Perf — состояние производительности, где P0 — самое высокое. Список процессов показывает, какие PID используют каждый GPU; внутри контейнеров он часто пуст, поэтому проверяйте его на хосте. Если ошибку выдаёт сам nvidia-smi, загляните в раздел об устранении неполадок с драйвером.

Непрерывный вывод метрик с dmon

nvidia-smi dmon -s pucm -d 5
nvidia-smi --query-compute-apps=pid,process_name,used_memory --format=csv

dmon выводит по одной строке на каждый GPU каждые 5 секунд (-d 5). Буквы после -s выбирают группы метрик: p — энергопотребление и температура, u — загрузка, c — частоты, m — память; добавьте e для ошибок ECC и PCIe и t для скорости передачи данных по PCIe. -i 0,1 ограничивает вывод выбранными GPU. Вторая команда выводит каждый процесс и объём видеопамяти (VRAM), который он занимает.

Запись метрик в CSV через --query-gpu

fields=timestamp,index,utilization.gpu,memory.used,memory.total
fields=$fields,temperature.gpu,power.draw,clocks.sm
nvidia-smi --query-gpu=$fields --format=csv -l 10 >> ~/gpu-metrics.csv

Эта команда каждые 10 секунд дописывает в файл по строке на каждый GPU; запускайте её в tmux или как службу. Для файлов, которые вы разбираете скриптами, используйте --format=csv,noheader,nounits. nvidia-smi --help-query-gpu перечисляет все поля, например temperature.memory на GPU с HBM.

nvtop — htop для GPU

sudo apt install -y nvtop
nvtop

nvtop рисует графики загрузки и памяти для каждого GPU, а под ними — список процессов. Свежие версии, например та, что входит в Ubuntu 24.04, поддерживают и GPU AMD. Чтобы выйти, нажмите Q.

Долгосрочные метрики: экспортер DCGM и Prometheus

Для истории метрик и оповещений экспортер DCGM от NVIDIA отдаёт метрики GPU в формате Prometheus, а Grafana может строить по ним графики. Минимальный запуск в Docker (вместо TAG подставьте актуальный тег из каталога NGC от NVIDIA):

docker run -d --name dcgm-exporter --gpus all --cap-add SYS_ADMIN \
  -p 127.0.0.1:9400:9400 nvcr.io/nvidia/k8s/dcgm-exporter:TAG
curl -s http://127.0.0.1:9400/metrics \
  | grep -E 'DCGM_FI_DEV_(GPU_UTIL|GPU_TEMP|POWER_USAGE|XID_ERRORS)'

Для каждой метрики вы увидите по одному значению на каждый GPU. Собирайте метрики своим сервером Prometheus через частную сеть или SSH-туннель и настройте оповещения по DCGM_FI_DEV_XID_ERRORS и по температуре. Никогда не открывайте порт с метриками в интернет. На серверах AMD ту же роль выполняет экспортер метрик устройств от AMD для GPU Instinct.

Температура, энергопотребление и ошибки ECC

nvidia-smi -q -d TEMPERATURE
nvidia-smi -q -d POWER,PERFORMANCE
nvidia-smi -q -d ECC
nvidia-smi -q -d ROW_REMAPPER
  • Температура. Сравните текущее значение с порогами «GPU Slowdown Temp» и «GPU Shutdown Temp» в том же выводе. При температуре, близкой к порогу замедления, частоты снижаются.
  • Энергопотребление и частоты. В разделе PERFORMANCE перечислены причины изменения частот (clock event reasons). «SW Power Cap» под высокой нагрузкой — это нормально, а о «HW Slowdown» или «HW Thermal Slowdown», когда GPU загружен, стоит сообщить в поддержку.
  • ECC. GPU для дата-центров исправляют однобитовые ошибки памяти на лету. Временные (volatile) счётчики сбрасываются при перезагрузке драйвера, а накопительные (aggregate) охватывают весь срок службы GPU. Неисправимые ошибки обычно останавливают выполняющуюся задачу.
  • Переназначение строк (row remapping). GPU с HBM заменяют неисправные строки памяти. «Pending: Yes» означает, что для применения переназначения нужен сброс GPU или перезагрузка. Повторяющиеся переназначения или сбой переназначения означают, что GPU требует внимания.

Ошибки Xid: в каких случаях создавать тикет

Драйвер NVIDIA записывает сбои GPU в журнал ядра в виде сообщений Xid:

sudo dmesg -T | grep -i xid
sudo journalctl -k --since "24 hours ago" | grep -i xid
XidЗначениеЧто делать
13, 31, 43Исключение графического движка, ошибка страницы видеопамяти, GPU прекратил обработкуОбычно это ошибка или недопустимое обращение к памяти в самом приложении. Создайте тикет, если такие ошибки повторяются в разных задачах.
48, 94, 95Двухбитовая ошибка ECC; локализованная или нелокализованная ошибка ECCСоздайте тикет. Локализованная ошибка (94) останавливает только затронутое приложение; после 95 GPU нужно сбросить.
63, 64Событие переназначения строк или вывода страницы памяти из использования либо сбой его записиПерезагрузите сервер, чтобы применить ожидающее переназначение. Создайте тикет, если это повторяется или завершается сбоем.
74Ошибка NVLinkСоздайте тикет и приложите полную строку из журнала.
79GPU пропал с шиныСоздайте тикет. GPU остаётся недоступным до перезагрузки сервера, и ему может потребоваться ремонт.

В тикете укажите IP-адрес сервера и строки Xid, а также приложите NVIDIA bug report — отчёт, который собирает нужные журналы в один файл:

sudo nvidia-bug-report.sh

Скрипт сохраняет nvidia-bug-report.log.gz в текущий каталог. Вышедшие из строя GPU заменяются в приоритетном порядке в соответствии с нашим соглашением об уровне обслуживания, а инженеры отвечают круглосуточно: создайте тикет в поддержку через личный кабинет.

Аналоги для AMD: rocm-smi и amd-smi

ЗадачаNVIDIAAMD
Снимок состоянияnvidia-smirocm-smi или amd-smi metric
Просмотр в реальном времениnvidia-smi -l 2watch -n 2 rocm-smi
Непрерывный табличный выводnvidia-smi dmonamd-smi monitor
Загрузка, память, энергопотребление, температураnvidia-smi --query-gpu=...rocm-smi --showuse --showmemuse --showpower --showtemp
Процессыnvidia-smi --query-compute-apps=...amd-smi process
Сообщения ядраsudo dmesg -T | grep -i xidsudo dmesg -T | grep -i amdgpu

Подробнее об инструментах AMD — в руководстве по настройке ROCm.

Не получается?

Создайте тикет в личном кабинете: укажите сервер, что вы запускали, и приложите вывод ошибок, если он есть. Инженеры отвечают круглосуточно.

Создать тикет

Вход в FullGPU

Управляйте GPU-серверами, балансом и счетами.

Впервые в FullGPU? Создать аккаунт