Home » radeontop и amdgpu_top: метрики GPU для пользователей AMD
radeontop и amdgpu_top: метрики GPU для пользователей AMD

radeontop и amdgpu_top: метрики GPU для пользователей AMD

О чём эта статья и зачем всё это нужно?

Если у тебя на сервере крутится AMD-шная видеокарта (будь то для ML, рендера, гейминга или просто для ускорения задач), то мониторинг её состояния — штука не факультативная, а жизненно необходимая. В отличие от NVIDIA, где всё давно и стабильно (nvidia-smi, привет!), у AMD всё чуть веселее и требует внимания. Сегодня разберём две утилиты: radeontop и amdgpu_top. Это инструментариум для мониторинга нагрузки и состояния GPU на Linux. Расскажу, как они устроены, чем отличаются, как быстро запустить, где ошибаются новички и как выжать максимум из AMD-шного железа.

Почему мониторинг GPU на AMD — это важно?

  • AMD — не только про игры: всё чаще их карты берут под ML, видеотрансляции, вычисления, облачные рендеры и, конечно, в серверах для экономии бюджета.
  • У AMD нет официального аналога nvidia-smi, а стандартные средства мониторинга не всегда дают нужную детализацию.
  • Без мониторинга ты не узнаешь, когда твой GPU простаивает, перегревается или упирается в память.
  • Виртуализация, контейнеры, облако — всё это требует контроля за ресурсами. Без понятных метрик — это как ездить на машине без спидометра и датчика топлива.

Короче, если ты хочешь, чтобы твой сервер с AMD работал не «на авось», а как часы — читай дальше.


Как это работает? Архитектура и алгоритмы

radeontop

  • radeontop — это консольная утилита, которая читает данные из ядра Linux, а именно из sysfs (/sys/class/drm/), и выводит живую статистику по загрузке GPU, памяти, видеокодекам, DMA и т.д.
  • Она работает с открытым драйвером radeon и amdgpu. Для новых карт (RX 400 и новее) нужен amdgpu.
  • Данные обновляются в реальном времени (по умолчанию раз в секунду), можно менять частоту обновления.
  • Показывает: загрузку GPU, память, видеокодеки, DMA, графический движок, вычислительный движок, частоты, температуру (если поддерживается).

amdgpu_top

  • amdgpu_top — более новая и продвинутая утилита, часть пакета libdrm (начиная с версии 2.4.110+), заточена строго под драйвер amdgpu.
  • Использует интерфейсы ядра Linux (ioctl, sysfs), дергает данные прямо из драйвера.
  • Показывает более подробную и структурированную инфу: по разным движкам (графика, вычисления, видео), энергопотребление, температуру, частоты, использование памяти, работу вентиляторов, PCIe-линки и т.д.
  • Поддерживает вывод в терминал и JSON (для автоматизации и сбора метрик).

В чём разница?

radeontop amdgpu_top
Работает с radeon и amdgpu Только amdgpu
Проще, меньше зависимостей Больше метрик, современный интерфейс
Только терминал Терминал + JSON
Меньше подробностей Глубокая детализация
Подходит для старых карт Только GCN 1.2 и новее (Polaris, Vega, Navi, RDNA, RDNA2, RDNA3…)

Как быстро и просто всё настроить?

1. Проверяем поддержку железа и драйверов

  • radeontop: подойдёт для большинства карт, если стоит открытый драйвер radeon или amdgpu.
  • amdgpu_top: нужен amdgpu, ядро Linux 5.7+ (лучше свежее), libdrm 2.4.110+.

2. Установка radeontop

На большинстве дистрибутивов всё просто:

# Debian/Ubuntu
sudo apt install radeontop

# Fedora
sudo dnf install radeontop

# Arch
sudo pacman -S radeontop

# Gentoo
emerge --ask radeontop

3. Установка amdgpu_top

amdgpu_top — часть libdrm. В новых дистрибутивах он уже есть, но можно собрать из исходников:

# Debian/Ubuntu (22.04+)
sudo apt install libdrm-tests

# Fedora
sudo dnf install libdrm

# Arch
sudo pacman -S libdrm

# Если хочется собрать свежак:
git clone https://gitlab.freedesktop.org/mesa/drm.git
cd drm
meson build
ninja -C build
sudo ninja -C build install

4. Запуск и базовые команды

  • radeontop:
radeontop
  • amdgpu_top:
amdgpu_top
  • Для вывода в JSON (для Prometheus, Grafana, Zabbix и т.д.):
amdgpu_top --json

5. Краткая шпаргалка по опциям

  • radeontop:
    • -d, --dump — дамп метрик в файл
    • -l, --log — логирование
    • -i, --interval — частота обновления
    • -c, --color — цветной вывод
    • -b, --begin — стартовать с определённого GPU
  • amdgpu_top:
    • -d — выбрать GPU по номеру
    • --json — вывод в JSON
    • --list — показать список карт
    • -i — частота обновления

Примеры и кейсы: когда это реально помогает (и когда — нет)

Кейс radeontop amdgpu_top Комментарий
Мониторинг GPU в headless-сервере (без X11) + + Обе утилиты работают в терминале, не требуют GUI
Выявить узкое место (GPU, память, видеокодек) +/- + amdgpu_top даёт больше детализации
Интеграция с мониторингом (Prometheus, Grafana) + ++ amdgpu_top с JSON проще интегрировать
Работа с очень старыми картами + amdgpu_top не поддерживает старые карты
Автоматизация и скрипты + (через парсинг вывода) ++ (через JSON) amdgpu_top удобнее для автоматизации
Выявление перегрева/троттлинга + (если поддерживается) + Обе утилиты выводят температуру, если драйвер даёт инфу

Ошибки новичков и мифы

  • Миф: radeontop/amdgpu_top — это только для геймеров.
    Факт: Они нужны везде, где GPU работает — от ML до медиасерверов.
  • Ошибка: Пробовать amdgpu_top на старых HD 7000/8000 и ругаться, что «ничего не работает».
    Решение: Для старых карт — только radeontop, или обновлять железо.
  • Миф: «AMD не мониторится, только NVIDIA».
    Факт: Всё мониторится, просто у AMD чуть сложнее путь.
  • Ошибка: Использовать radeontop/amdgpu_top в контейнере Docker без проброса /dev/dri.
    Решение: Пробрасывай /dev/dri внутрь контейнера:
docker run --device=/dev/dri:/dev/dri ...
  • Ошибка: Запускать обе утилиты под обычным юзером, когда /dev/dri/* недоступен.
    Решение: Добавь пользователя в группу video:
sudo usermod -aG video <username>

Похожие решения и альтернативы

  • DRM info: drm_info — просто показывает инфу о картах, без мониторинга.
  • rocm-smi: rocm-smi — для карт, где стоит ROCm (более серверные, MI-серия), поддерживает только ROCm-драйверы.
  • glxinfo, vulkaninfo: Показывают только статическую инфу о GPU, не мониторят нагрузку.
  • nvidia-smi: Для NVIDIA, тут не поможет.
  • intel_gpu_top: Аналог для Intel, если вдруг пригодится.

Статистика и сравнения

  • radeontop — проекту уже более 10 лет, поддерживается, но развивается медленно.
  • amdgpu_top — активно развивается, особенно после 2022 года, поддержка новых карт появляется быстро.
  • amdgpu_top есть почти во всех современных дистрибутивах (2023+), но иногда нужен свежий libdrm.
  • radeontop стабилен, но не показывает энергопотребление, PCIe-линки, вентиляторы и т.д.

Интересные фишки и нестандартные способы использования

  • Через amdgpu_top --json можно собирать метрики в Prometheus/Grafana, просто парся JSON и отправляя в свой мониторинг.
  • radeontop можно запускать в tmux/screen на headless-сервере и смотреть статистику по ssh.
  • Можно писать свои алерты: например, если загрузка GPU > 90% больше 10 минут — шлём оповещение в Telegram/Slack.
  • amdgpu_top помогает ловить баги драйвера: если карта «зависла» (всё 0%), а нагрузка есть — значит, что-то не так с драйвером или питанием.
  • Через amdgpu_top --list можно быстро узнать, сколько карт в системе (актуально для майнинга, рендера, ML кластеров).
  • Можно мониторить температуру и скорость вентилятора, чтобы автоматизировать управление охлаждением (например, через внешние скрипты или systemd-юниты).

Автоматизация и интеграция в скрипты

  • amdgpu_top — идеален для автоматизации: JSON-вывод, парсинг, интеграция с любым мониторингом.
  • radeontop — можно парсить текстовый вывод, но это костыльнее.
  • Для Docker-контейнеров: пробрасываем /dev/dri, ставим утилиту, собираем метрики внутри контейнера.
  • Возможна интеграция с Zabbix через внешние скрипты, которые дергают amdgpu_top и отправляют значения в агент.
  • Можно писать свои watchdog-скрипты: если температура > 85°C — выключить нагрузку или отправить пуш-уведомление.
# Пример простого скрипта для мониторинга температуры (bash):

TEMP=$(amdgpu_top --json | jq '.cards[0].sensor.temp1_input')
if (( $(echo "$TEMP > 85" | bc -l) )); then
  echo "GPU перегрелась! Температура: $TEMP"
  # Здесь можно отправить уведомление, выключить сервис и т.д.
fi

Выводы и рекомендации

  • Если у тебя сервер/облако/контейнер с AMD GPU — мониторинг через radeontop или amdgpu_top обязателен.
  • Для новых карт и автоматизации — только amdgpu_top. Для старых/экзотических — radeontop.
  • amdgpu_top удобнее для интеграции с современными мониторингами, даёт больше инфы для анализа.
  • Не забывай про права доступа к /dev/dri и группу video!
  • Если нужен хостинг с AMD GPU — смотри VPS или выделенный сервер с поддержкой GPU.
  • Мониторинг — это не только про «посмотреть графики», а про оптимизацию расходов, поиск узких мест и автоматизацию реакций на перегрев/перегруз.

Официальные ссылки и ресурсы

AMD-шный мониторинг — это не боль, а приключение. Главное — знать инструменты и не бояться их пробовать. Любые вопросы — спрашивай в комментариях, делись кейсами и не забывай про автоматизацию!


В этой статье собрана информация и материалы из различных интернет-источников. Мы признаем и ценим работу всех оригинальных авторов, издателей и веб-сайтов. Несмотря на то, что были приложены все усилия для надлежащего указания исходного материала, любая непреднамеренная оплошность или упущение не являются нарушением авторских прав. Все упомянутые товарные знаки, логотипы и изображения являются собственностью соответствующих владельцев. Если вы считаете, что какой-либо контент, использованный в этой статье, нарушает ваши авторские права, немедленно свяжитесь с нами для рассмотрения и принятия оперативных мер.

Данная статья предназначена исключительно для ознакомительных и образовательных целей и не ущемляет права правообладателей. Если какой-либо материал, защищенный авторским правом, был использован без должного упоминания или с нарушением законов об авторском праве, это непреднамеренно, и мы исправим это незамедлительно после уведомления. Обратите внимание, что переиздание, распространение или воспроизведение части или всего содержимого в любой форме запрещено без письменного разрешения автора и владельца веб-сайта. Для получения разрешений или дополнительных запросов, пожалуйста, свяжитесь с нами.

Leave a reply

Your email address will not be published. Required fields are marked