ПО для GPU
Команды nvidia-smi для мониторинга GPU-серверов
От беглой проверки до долгосрочных метрик. Как следить за загрузкой, памятью, энергопотреблением и ошибками ваших GPU и как понять, что проблему должны устранять мы.
На этой странице
Шпаргалка по nvidia-smi - Наблюдение за GPU в реальном времени
- Непрерывный вывод метрик с dmon
- Запись метрик в CSV через --query-gpu
- nvtop — htop для GPU
- Долгосрочные метрики: экспортер DCGM и Prometheus
- Температура, энергопотребление и ошибки ECC
- Ошибки Xid: в каких случаях создавать тикет
Аналоги для AMD: rocm-smi иamd-smi
Шпаргалка по nvidia-smi
| Задача | Команда |
|---|---|
| Разовый снимок состояния всех GPU | |
| Обновление каждые 2 секунды | |
| Список GPU и их UUID | |
| Непрерывный вывод загрузки, энергопотребления, частот и памяти | |
| Процессы и используемая ими память | |
| Выбранные метрики в формате CSV каждые 10 секунд | |
| Подробные данные о температуре, энергопотреблении или ECC | (или POWER, ECC) |
| Как связаны GPU: NVLink, PCIe, NUMA | |
| Состояние каждого канала NVLink | |
Ниже разобрана каждая команда, а аналоги для 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
Непрерывный вывод метрик с dmon
nvidia-smi dmon -s pucm -d 5
nvidia-smi --query-compute-apps=pid,process_name,used_memory --format=csv
dmon выводит по одной строке на каждый GPU каждые 5 секунд (). Буквы после выбирают группы метрик: p — энергопотребление и температура, u — загрузка, c — частоты, m — память; добавьте e для ошибок ECC и PCIe и t для скорости передачи данных по PCIe. ограничивает вывод выбранными 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 или как службу. Для файлов, которые вы разбираете скриптами, используйте . перечисляет все поля, например 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 через частную сеть 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 | Создайте тикет и приложите полную строку из журнала. |
| 79 | GPU пропал с шины | Создайте тикет. GPU остаётся недоступным до перезагрузки сервера, и ему может потребоваться ремонт. |
sudo nvidia-bug-report.sh
Скрипт сохраняет в текущий каталог. Вышедшие из строя GPU заменяются в приоритетном порядке в соответствии с нашим соглашением об уровне обслуживания, а инженеры отвечают круглосуточно: создайте тикет в поддержку через личный кабинет.
Аналоги для AMD: rocm-smi и amd-smi
| Задача | NVIDIA | AMD |
|---|---|---|
| Снимок состояния | | или |
| Просмотр в реальном времени | | watch |
| Непрерывный табличный вывод | | |
| Загрузка, память, энергопотребление, температура | | |
| Процессы | | |
| Сообщения ядра | sudo dmesg | sudo dmesg |
Подробнее об инструментах AMD — в руководстве по настройке ROCm.
Не получается?
Создайте тикет в личном кабинете: укажите сервер, что вы запускали, и приложите вывод ошибок, если он есть. Инженеры отвечают круглосуточно.