Guía completa de amdgpu_top: Monitorización avanzada para GPUs AMD en Linux

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

Etiquetas: amdgpu AMD linux GPU monitoring Rust

Publicado el 7-16 20:51