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, incluidos el uso de bloque de multiprocesador de transmisión (SM), la ocupación de SM, la utilización de canalizaciones de SM, la tasa de tráfico de PCIe y la tasa de tráfico de NVLink. Para obtener información sobre el propósito y la interpretación de estas métricas, consulta Métricas de creación de perfiles en la descripción general de la característica de 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.

El agente de operaciones recopila métricas de DCGM a través de la biblioteca cliente de NVIDIA go-dcgm.

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

Requisitos previos

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

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 el servicio se encuentra en ejecución, el servicio nvidia-dcgm se muestra 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 los dispositivos de GPU se encuentren:

    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 la telemetría de transferencia para 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
  service:
    pipelines:
      dcgm:
        receivers:
          - dcgm
EOF

sudo systemctl restart google-cloud-ops-agent

Después de ejecutar estos comandos, puedes verificar que el agente se haya reiniciado. Ejecuta el siguiente comando y verifica que los componentes del agente secundario “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 desde DCGM, debes crear un receptor para las métricas que produce DCGM y, luego, crear una canalización destinada al 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 Predeterminada Descripción
collection_interval 60s Un valor de duración de tiempo, como 30s o 5m.
endpoint localhost:5555 Dirección del servicio de DCGM, con el formato host:port.
type Este valor debe ser dcgm.

Qué se supervisa

En la siguiente tabla, se proporciona una lista de métricas que el Agente de operaciones recopila del servicio de DCGM. No todas las métricas están disponibles para todos los modelos de GPU. Las métricas no se recopilan de los modelos de GPU NVIDIA K80, P100 y P4.

Tipo de métrica 
Categoría, tipo
Recursos supervisados
Etiquetas
 
Modelos de GPU
compatibles
workload.googleapis.com/dcgm.gpu.profiling.dram_utilization
GAUGEDOUBLE
gce_instance
gpu_number
model
uuid
Todo, excepto K80, P100 y P4
GAUGEINT64
gce_instance
direction
gpu_number
model
uuid
Todo, excepto K80, P100 y P4
workload.googleapis.com/dcgm.gpu.profiling.pcie_traffic_rate
GAUGEINT64
gce_instance
direction
gpu_number
model
uuid
Todo, excepto K80, P100 y P4
workload.googleapis.com/dcgm.gpu.profiling.pipe_utilization
GAUGEDOUBLE
gce_instance
gpu_number
model
pipe
uuid
Todo, excepto K80, P100 y P4. Para L4, no se admite el valor fp64 de pipe.
workload.googleapis.com/dcgm.gpu.profiling.sm_occupancy
GAUGEDOUBLE
gce_instance
gpu_number
model
uuid
Todo, excepto K80, P100 y P4
workload.googleapis.com/dcgm.gpu.profiling.sm_utilization
GAUGEDOUBLE
gce_instance
gpu_number
model
uuid
Todo, excepto K80, P100 y P4

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.

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 el panel de navegación de la consola de Google Cloud, elige Monitoring y, luego,  Explorador de métricas:

    Ir al Explorador de métricas

  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.
  4. Ingresa 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
    

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 el panel de navegación de la consola de Google Cloud, elige Monitoring y, luego,  Paneles:

    Dirígete a Paneles de control

  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 el panel de navegación de la consola de Google Cloud, elige Monitoring y, luego,  Integraciones:

    Dirígete a Integraciones

  2. Haz clic en el filtro de la plataforma de implementación Compute Engine.
  3. Ubica la entrada de NVIDIA DCGM 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 otras herramientas 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 de perfiles en la descripción general de la función del 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 detiene la generación de perfiles, ninguna de las métricas del DCGM que recopila el agente de operaciones se emite 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.