Para los usuarios de tarjetas gráficas AMD en Linux, la monitorización del estado de la GPU ha sido históricamente un desafío comparedo con el ecositsema NVIDIA, donde nvidia-smi ofrece una solución consolidada. amdgpu_top surge como una herramienta especializada que cubre esta necesidad, proporcionando métricas en tiempo real y diagnóstico de hardware para GPUs AMD mediante el driver amdgpu del kernel Linux.
Características principales
La herramienta ofrece capacidades avanzadas de monitorización:
- Telemetría en tiempo real: Frecuencia de reloj GPU, utilización de VRAM, temperatura, consumo energético y actividad por motor de cómputo
- Múltiples interfaces: TUI interactiva, GUI con GTK y salida en línea de comandos
- Exportación estructurada: Formato JSON para integración con sistemas de recolección de métricas
- Diagnóstico de hardware: Acceso a información DRM, identificadores PCI, versión de VBIOS y capacidades Resizable BAR
Instalación
Distribuciones soportadas
El paquete está disponible en los repositorios oficiales de las principales distribuciones:
# Debian y derivados
sudo apt update && sudo apt install amdgpu-top
# Fedora / RHEL
sudo dnf install amdgpu_top
# Arch Linux (AUR)
paru -S amdgpu-top
Compilación desde código fuente
Para acceso a características en desarrollo o parches personalizados, la compilación mediante Cargo es el método recomendado:
git clone https://gitlab.freedesktop.org/rafael/amdgpu_top.git
cd amdgpu_top
cargo build --release
sudo install -m 755 target/release/amdgpu_top /usr/local/bin/amdmon
Modos de operación
Monitorización interactiva (TUI)
El modo por defecto presenta un panel actualizado periódicamente con las métricas esenciales:
amdmon
La interfaz muestra gráficos de barras para utilización de gráficos (GFX), motores multimedia, decodificación/ codificación de video y uso de memoria VRAM.
Interfaz gráfica
Para preferencia visual, la variante GUI renderiza gráficos históricos temporales:
amdmon --gui
Inspección DRM
Para auditoría detallada de capacidades de hardware:
amdmon --drm-info
Este comando expone datos como el tamaño total de VRAM, ancho de banda del bus PCIe, estado de Resizable BAR y propiedades del dispositivo DRM.
Integración con sistemas de monitorización
Salida JSON estructurada
La bandera --json combinada con el modo daemon permite capturar snapshots puntuales:
amdmon -d --json > /tmp/amd_snapshot.json
Recolección periódica automatizada
Un script de shell para registrar métricas a intervalos regulares y rotar archivos de log:
#!/usr/bin/env bash
set -euo pipefail
LOG_DIR="/var/log/amdgpu"
mkdir -p "$LOG_DIR"
collect_metrics() {
local now
now=$(date -u +"%FT%TZ")
local out_file="${LOG_DIR}/metrics_${now}.json"
amdmon -d --json > "$out_file"
# Retener solo las últimas 168 muestras (7 días con recolección horaria)
ls -t "${LOG_DIR}"/metrics_*.json | tail -n +169 | xargs -r rm --
}
collect_metrics
Configuración en crontab para ejecución horaria:
# crontab -e
0 * * * * /usr/local/bin/amd_gpu_logger.sh
Estrategias de diagnóstico
Aálisis de cuellos de botella
La interpretación de los datos de telemetría permite identificar limitaciones de rendimiento:
- Saturación del pipeline GFX: Si el uso sostenido supera el 95%, el motor de gráficos está limitando el rendimiento. Considerar reducir la carga de draw calls.
- Actividad del MediaEngine: Picos durante transcodificación indican saturación de codificadores hardware.
- Presión de VRAM: Fluctuaciones rápidas entre límite superior y inferior sugieren thrashing de memoria. Verificar el tamaño de working set de la aplicación.
Troubleshooting de problemas térmicos y de frecuencia
La monitorización de sensores térmicos y frecuencias efectivas permite detectar throttle térmico. Una GPU operando a temperaturas superiores a 90°C con frecuencias por debajo del boost nominal indica que el límite térmico está activo. La corrección implica mejorar el flujo de aire del chasis o reemplazar la pasta térmica en GPUs con varios años de uso.
Ecosistema y herramientas complementarias
amdgpu_top no opera en aislamiento. Se integra naturalmente con otras utilidades del ecosistema AMD:
- radeontop: Para granularidad fina en la monitorización de actividad por bloque funcional
- rocm-smi: En entornos de cómputo ROCm, complementa con métricas de compute queues y ECC
- hwmon / lm-sensors: Para integración con sistemas de monitorización de servidor como Prometheus mediante node_exporter