Почему nvidia-smi больше не достаточен?
Стандартная утилита nvidia-smi остается базовым инструментом, но она ограничена однократным выводом статистики и простым текстовым форматом. Для сложных рабочих нагрузок, особенно в распределенных системах или при отладке глубокого обучения, требуется более детальный анализ. Nvitop решает эту проблему, предлагая интерактивный интерфейс в реальном времени, поддержку графиков истории использования ресурсов и возможность прямого управления процессами через клавиатуру.
Ключевые технические преимущества
В отличие от многих аналогов, парсящих вывод nvidia-smi, nvitop использует прямые bindings к NVIDIA Management Library (NVML) через Python. Это обеспечивает:
- Высокую скорость опроса: Асинхронный сбор данных с использованием многопоточности.
- Кэширование: Использование библиотеки
cachetools(TTLCache) для снижения нагрузки на систему. - Кроссплатформенность: Полная поддержка Linux и Windows (включая Windows Terminal).
- Интеграцию с Docker и SSH: Корректная работа в контейнеризованных средах и удаленных сессиях.
Сравнение с альтернативами
Разработчики позиционируют nvitop как универсальное решение, превосходящее такие инструменты, как gpustat, py3nvml и nvidia-htop. Ниже приведена сравнительная таблица ключевых характеристик:
| Характеристика | nvidia-smi | gpustat | nvitop |
|---|---|---|---|
| Интерфейс | Однократный вывод (CLI) | Однократный вывод (CLI) | Интерактивный (TUI) + CLI |
| Визуализация | Текст | Текст | Цветные графики, диаграммы, tree-view |
| Управление процессами | Нет | Нет | Отправка сигналов, фильтрация, сортировка |
| Метод получения данных | Системный вызов | Парсинг вывода nvidia-smi | Прямой вызов NVML API (Python bindings) |
| Поддержка Windows | Да | Частично/Зависит от среды | Да (полная) |
| Интеграция с Grafana | Нет | Нет | Да (через nvitop-exporter) |
Дополнительные возможности: от мониторинга до управления
Nvitop — это не просто «красивый» монитор. Пакет включает утилиту nvisel для удобного выбора устройств CUDA (CUDA_VISIBLE_DEVICES), что критически важно для исследователей в области Deep Learning. Кроме того, библиотека предоставляет богатый API для разработчиков, позволяя встраивать мониторинг GPU в собственные приложения. Поддерживается экспорт метрик для построения дашбордов в Grafana, что делает nvitop подходящим решением для production-сред.
Установка и требования
Для работы требуется Python 3.8+, библиотека NVML (входит в драйвер NVIDIA или CUDA Toolkit) и psutil. Установка максимально проста и доступна через PyPI:
pip3 install --upgrade nvitop
Также доступна установка через uvx или pipx для изолированных сред. Для пользователей Ubuntu предусмотрен скрипт install-nvidia-driver.sh для автоматического обновления драйверов.
Источник: Github ↗
