- Home »

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-шный мониторинг — это не боль, а приключение. Главное — знать инструменты и не бояться их пробовать. Любые вопросы — спрашивай в комментариях, делись кейсами и не забывай про автоматизацию!
В этой статье собрана информация и материалы из различных интернет-источников. Мы признаем и ценим работу всех оригинальных авторов, издателей и веб-сайтов. Несмотря на то, что были приложены все усилия для надлежащего указания исходного материала, любая непреднамеренная оплошность или упущение не являются нарушением авторских прав. Все упомянутые товарные знаки, логотипы и изображения являются собственностью соответствующих владельцев. Если вы считаете, что какой-либо контент, использованный в этой статье, нарушает ваши авторские права, немедленно свяжитесь с нами для рассмотрения и принятия оперативных мер.
Данная статья предназначена исключительно для ознакомительных и образовательных целей и не ущемляет права правообладателей. Если какой-либо материал, защищенный авторским правом, был использован без должного упоминания или с нарушением законов об авторском праве, это непреднамеренно, и мы исправим это незамедлительно после уведомления. Обратите внимание, что переиздание, распространение или воспроизведение части или всего содержимого в любой форме запрещено без письменного разрешения автора и владельца веб-сайта. Для получения разрешений или дополнительных запросов, пожалуйста, свяжитесь с нами.