Administrador de GPU del centro de datos de NVIDIA (DCGM)

La integración del administrador de GPU del centro de datos de NVIDIA recopila métricas clave de GPU avanzadas de DCGM. El agente de operaciones se puede configurar para recopilar uno de dos conjuntos de métricas diferentes seleccionando la versión del receptor dcgm:

Para obtener más información sobre el administrador de GPU del centro de datos de NVIDIA, consulta la documentación de DCGM. Esta integración es compatible con la versión 3.1 y posteriores de DCGM.

Estas métricas solo están disponibles para los sistemas Linux. Las métricas de creación de perfiles no se recopilan de los modelos P100 y P4 de la GPU de NVIDIA.

Requisitos previos

Para recopilar las métricas de NVIDIA DCGM, debes hacer lo siguiente:

  • Instala DCGM.

  • Instala el Agente de operaciones

    • Métricas de la versión 1: Agente de operaciones versión 2.38.0 o posterior Solo la versión 2.38.0 o las versiones 2.41.0 o posteriores del Agente de operaciones son compatibles con la supervisión de GPU. No instales las versiones 2.39.0 y 2.40.0 del agente de operaciones en las VMs con GPU conectadas. Para obtener más información, consulta El agente falla y se informa que se menciona NVIDIA.
    • Métricas de la versión 2: Versión 2.51.0 o posterior del agente de operaciones.

Instala DCGM y verifica la instalación

Debes instalar una versión 3.1 y posterior de DCGM y asegurarte de que se ejecute como un servicio privilegiado. Para instalar DCGM, consulta Instalación en la documentación del DCGM.

Para verificar que el DCGM se ejecute de forma correcta, haga lo siguiente:

  1. Verifica el estado del servicio de DCGM a través de la ejecución del siguiente comando:

    sudo service nvidia-dcgm status
    

    Si se está ejecutando, el servicio nvidia-dcgm aparece como active (running). El resultado se ve de la manera siguiente:

    ● nvidia-dcgm.service - NVIDIA DCGM service
    Loaded: loaded (/usr/lib/systemd/system/nvidia-dcgm.service; disabled; vendor preset: enabled)
    Active: active (running) since Sat 2023-01-07 15:24:29 UTC; 3s ago
    Main PID: 24388 (nv-hostengine)
    Tasks: 7 (limit: 14745)
    CGroup: /system.slice/nvidia-dcgm.service
           └─24388 /usr/bin/nv-hostengine -n --service-account nvidia-dcgm
    
  2. Ejecuta el siguiente comando para verificar que se encuentren los dispositivos de la GPU:

    dcgmi discovery --list
    

    Si se encuentran dispositivos, el resultado es similar al siguiente:

    1 GPU found.
    +--------+----------------------------------------------------------------------+
    | GPU ID | Device Information                                                   |
    +--------+----------------------------------------------------------------------+
    | 0      | Name: NVIDIA A100-SXM4-40GB                                          |
    |        | PCI Bus ID: 00000000:00:04.0                                         |
    |        | Device UUID: GPU-a2d9f5c7-87d3-7d57-3277-e091ad1ba957                |
    +--------+----------------------------------------------------------------------+
    

Configura el Agente de operaciones para DCGM

A través de la guía Configura el Agente de operaciones, agrega los elementos necesarios para recopilar la telemetría de tu servicio de DCGM y reinicia el agente.

Configuración de ejemplo

Los siguientes comandos crean la configuración para recopilar y transferir las métricas de la versión 2 del receptor para NVIDIA DCGM y reiniciar el agente de operaciones:

# Configures Ops Agent to collect telemetry from the app and restart Ops Agent.
set -e

# Create a back up of the existing file so existing configurations are not lost.
sudo cp /etc/google-cloud-ops-agent/config.yaml /etc/google-cloud-ops-agent/config.yaml.bak

# Configure the Ops Agent.
sudo tee /etc/google-cloud-ops-agent/config.yaml > /dev/null << EOF
metrics:
  receivers:
    dcgm:
      type: dcgm
      receiver_version: 2
  service:
    pipelines:
      dcgm:
        receivers:
          - dcgm
EOF

sudo service google-cloud-ops-agent restart
sleep 20

Si deseas recopilar solo métricas de perfil de DCGM, reemplaza el valor del campo receiver_version por 1. También puedes quitar entrada de receiver_version por completo; la versión predeterminada es 1. No puedes usar ambas versiones al mismo tiempo.

Después de ejecutar estos comandos, puedes comprobar que el agente se reinició. Ejecuta el siguiente comando y verifica que los componentes del subagente “Agente de métricas” y “Agente de Logging” aparezcan como “activos (en ejecución)”:

sudo systemctl status google-cloud-ops-agent"*"

Si usas una cuenta de servicio personalizada en lugar de la cuenta de servicio de Compute Engine predeterminada, o si tienes una VM de Compute Engine muy antigua, es posible que debas autorizar el Agente de operaciones.

Configura la recopilación de métricas

Para transferir métricas del DCGM de NVIDIA, debes crear un receptor para las métricas que produce NVIDIA DCGM y, luego, crea una canalización para el receptor nuevo.

Este receptor no admite el uso de varias instancias en la configuración, por ejemplo, para supervisar varios extremos. Todas estas instancias escriben en las mismas series temporales, y Cloud Monitoring no tiene forma de distinguirlas.

Para configurar un receptor para las métricas de dcgm, especifica los siguientes campos:

Campo Predeterminado Descripción
collection_interval 60s Un valor de duración de tiempo, como 30s o 5m.
endpoint localhost:5555 Es la dirección del servicio de DCGM, con el formato host:port.
receiver_version 1 Puede ser 1 o 2. La versión 2 tiene muchas más métricas disponibles.
type Este valor debe ser dcgm.

Qué se supervisa

En las siguientes tablas, se proporcionan listas de métricas que recopila el Agente de operaciones desde la instancia DGCM de NVIDIA. No todas las métricas están disponibles para todos los modelos de GPU. Las métricas de creación de perfiles no se recopilan de los modelos P100 y P4 de la GPU de NVIDIA.

Métricas de la versión 1

Las siguientes métricas se recopilan usando la versión 1 del receptor dcgm.

Tipo de métrica 
Categoría, tipo
Recursos supervisados
Etiquetas
workload.googleapis.com/dcgm.gpu.profiling.dram_utilization 
GAUGEDOUBLE
gce_instance
gpu_number
model
uuid
GAUGEINT64
gce_instance
direction
gpu_number
model
uuid
workload.googleapis.com/dcgm.gpu.profiling.pcie_traffic_rate 
GAUGEINT64
gce_instance
direction
gpu_number
model
uuid
workload.googleapis.com/dcgm.gpu.profiling.pipe_utilization 
GAUGEDOUBLE
gce_instance
gpu_number
model
pipe  
uuid
workload.googleapis.com/dcgm.gpu.profiling.sm_occupancy 
GAUGEDOUBLE
gce_instance
gpu_number
model
uuid
workload.googleapis.com/dcgm.gpu.profiling.sm_utilization 
GAUGEDOUBLE
gce_instance
gpu_number
model
uuid

 No disponible en los modelos de GPU P100 y P4.

 Para L4, no se admite el valor pipe fp64.

Métricas de la versión 2

Las siguientes métricas se recopilan usando la versión 2 del receptor dcgm.

Tipo de métrica 
Categoría, tipo
Recursos supervisados
Etiquetas
workload.googleapis.com/gpu.dcgm.clock.frequency
GAUGEDOUBLE
gce_instance
gpu_number
model
uuid
workload.googleapis.com/gpu.dcgm.clock.throttle_duration.time
CUMULATIVEDOUBLE
gce_instance
gpu_number
model
uuid
violation  
workload.googleapis.com/gpu.dcgm.codec.decoder.utilization
GAUGEDOUBLE
gce_instance
gpu_number
model
uuid
workload.googleapis.com/gpu.dcgm.codec.encoder.utilization
GAUGEDOUBLE
gce_instance
gpu_number
model
uuid
workload.googleapis.com/gpu.dcgm.ecc_errors
CUMULATIVEINT64
gce_instance
error_type
gpu_number
model
uuid
workload.googleapis.com/gpu.dcgm.energy_consumption
CUMULATIVEDOUBLE
gce_instance
gpu_number
model
uuid
workload.googleapis.com/gpu.dcgm.memory.bandwidth_utilization
GAUGEDOUBLE
gce_instance
gpu_number
model
uuid
workload.googleapis.com/gpu.dcgm.memory.bytes_used
GAUGEINT64
gce_instance
gpu_number
model
state
uuid
workload.googleapis.com/gpu.dcgm.nvlink.io 
CUMULATIVEINT64
gce_instance
direction
gpu_number
model
uuid
workload.googleapis.com/gpu.dcgm.pcie.io 
CUMULATIVEINT64
gce_instance
direction
gpu_number
model
uuid
workload.googleapis.com/gpu.dcgm.pipe.utilization 
GAUGEDOUBLE
gce_instance
gpu_number
model
pipe  §
uuid
workload.googleapis.com/gpu.dcgm.sm.utilization 
GAUGEDOUBLE
gce_instance
gpu_number
model
uuid
workload.googleapis.com/gpu.dcgm.temperature
GAUGEDOUBLE
gce_instance
gpu_number
model
uuid
workload.googleapis.com/gpu.dcgm.utilization
GAUGEDOUBLE
gce_instance
gpu_number
model
uuid

 Para P100 y P4, solo se admiten los valores violation power, thermal y sync_boost.

 No disponible en los modelos de GPU P100 y P4.

§ Para L4, no se admite el valor pipe fp64.

Métricas de GPU

Además, la configuración integrada del agente de operaciones también recopila métricas de agent.googleapis.com/gpu, que informa la Biblioteca de administración de NVIDIA (NVML). No necesitas ninguna configuración adicional en el agente de operaciones para recopilar estas métricas, pero debes crear una VM con GPUs conectadas e instalar el controlador de GPU. Para obtener más información, consulta Acerca de las métricas gpu. Las métricas de la versión 1 del receptor dcgm están diseñadas para complementar estas métricas predeterminadas, mientras que las métricas de la versión 2 del receptor dcgm están diseñadas para ser independientes.

Verifica la configuración

En esta sección, se describe cómo verificar de forma correcta que hayas configurado el receptor de NVIDIA DCGM. El agente de operaciones puede tardar uno o dos minutos en comenzar a recopilar telemetría.

Para verificar que las métricas de NVIDIA DCGM se envíen a Cloud Monitoring, haz lo siguiente:

  1. En la consola de Google Cloud, ve a la página  Explorador de métricas:

    Ir al Explorador de métricas

    Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es Monitoring.

  2. En la barra de herramientas del panel del compilador de consultas, selecciona el botón cuyo nombre sea MQL o PromQL.
  3. Verifica que MQL esté seleccionado en el botón de activación Lenguaje. El botón de activación de lenguaje se encuentra en la misma barra de herramientas que te permite dar formato a tu consulta.
    • Para las métricas de v1, escribe la siguiente consulta en el editor y, luego, haz clic en Ejecutar consulta:
      fetch gce_instance
      | metric 'workload.googleapis.com/dcgm.gpu.profiling.sm_utilization'
      | every 1m
      
    • Para las métricas de v2, escribe la siguiente consulta en el editor y, luego, haz clic en Ejecutar:
      fetch gce_instance
      | metric 'workload.googleapis.com/gpu.dcgm.sm.utilization'
      | every 1m
      

Ver panel

Para ver tus métricas de NVIDIA DCGM, debes tener configurado un gráfico o un panel. La integración de NVIDIA DCGM incluye uno o más paneles. Cualquier panel se instala de forma automática después de que configuras la integración y de que el agente de operaciones comienza a recopilar datos de métricas.

También puedes ver vistas previas estáticas de los paneles sin instalar la integración.

Para ver un panel instalado, haz lo siguiente:

  1. En la consola de Google Cloud, ve a la página  Paneles.

    Dirígete a Paneles de control

    Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es Monitoring.

  2. Selecciona la pestaña Lista de paneles y, luego, la categoría Integraciones.
  3. Haz clic en el nombre del panel que quiera ver.

Si configuraste una integración, pero el panel no se instaló, verifica que el agente de operaciones se esté ejecutando. Cuando no hay datos de métricas para un gráfico en el panel, la instalación del panel falla. Una vez que el agente de operaciones comienza a recopilar métricas, el panel se instalará por ti.

Para obtener una vista previa estática del panel, haz lo siguiente:

  1. En la consola de Google Cloud, ve a la página  Integraciones:

    Dirígete a Integraciones

    Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es Monitoring.

  2. Haz clic en el filtro de la plataforma de implementación Compute Engine.
  3. Ubica la entrada de DCGM de NVIDIA y haz clic en Ver detalles.
  4. Selecciona la pestaña Paneles para ver una vista previa estática. Si el panel está instalado, haz clic en Ver panel para navegar a él.

Para obtener más información de los paneles en Cloud Monitoring, consulta Paneles y gráficos.

Para obtener más información sobre el uso de la página Integraciones, consulta Administra integraciones.

Limitaciones del DCGM y pausa de la generación de perfiles

El uso simultáneo de DCGM puede entrar en conflicto con el uso de alguna otra herramienta para desarrolladores de NVIDIA, como Nsight Systems o Nsight Compute. Esta limitación se aplica a las GPUs NVIDIA A100 y anteriores. Para obtener más información, consulta Tasa de muestreo del perfilado en la descripción general de las funciones de DCGM.

Cuando necesites usar herramientas como Nsight Systems sin interrupciones significativas, puedes pausar o reanudar de forma temporal la recopilación de métricas a través de los siguientes comandos:

dcgmi profile --pause
dcgmi profile --resume

Cuando se pausa la generación de perfiles, no se recupera ninguna de las métricas de DCGM que el Agente de operaciones recopila se emiten desde la VM.

¿Qué sigue?

Para obtener una explicación sobre cómo usar Ansible para instalar el Agente de operaciones, configurar una aplicación de terceros y, luego, instalar un panel de muestra, consulta el video Instala el Agente de operaciones para solucionar problemas de apps de terceros.