Gerenciador de GPU do data center da NVIDIA (DCGM)

A integração do NVIDIA Data Center GPU Manager coleta as principais GPUs avançadas e métricas do DCGM. O agente de operações pode ser configurado para coletar um dos dois conjuntos diferentes de métricas selecionando a versão do receptor dcgm:

Para mais informações sobre o Gerenciador de GPUs do NVIDIA Data Center, consulte a documentação do DCGM. Essa integração é compatível com o DCGM versão 3.1 e posterior.

Essas métricas estão disponíveis apenas para sistemas Linux. As métricas de perfil não são coletadas dos modelos de GPU NVIDIA P100 e P4.

Pré-requisitos

Para coletar as métricas do NVIDIA DCGM, faça o seguinte:

  • Instale o DCGM.

  • Instalar o Agente de operações.

    • Métricas da versão 1: versão 2.38.0 ou mais recente do Agente de operações. Apenas a versão do Agente de operações 2.38.0 ou versões 2.41.0 ou mais recentes são compatíveis com o monitoramento da GPU. Não instale as versões 2.39.0 e 2.40.0 do Agente de operações em VMs com GPUs anexadas. Para ver mais informações, consulte Falhas do agente e relatórios menciona a NVIDIA.
    • Métricas da versão 2: Agente de operações versão 2.51.0 ou mais recente.

Instalar o DCGM e verificar a instalação

É necessário instalar um DCGM versão 3.1 e posterior e garantir que ele seja executado como um serviço privilegiado. Para instalar o DCGM, consulte Instalação. na documentação do DCGM.

Para verificar se o DCGM está sendo executado corretamente, faça o seguinte:

  1. Verifique o status do serviço DCGM executando o seguinte comando:

    sudo service nvidia-dcgm status
    

    Se o serviço estiver em execução, o serviço nvidia-dcgm será listado como active (running). A saída será assim:

    ● 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. Verifique se os dispositivos da GPU são encontrados executando o seguinte comando:

    dcgmi discovery --list
    

    Se forem encontrados dispositivos, a saída será semelhante a esta:

    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                |
    +--------+----------------------------------------------------------------------+
    

Configurar o agente de operações para o DCGM

Seguindo o guia Como configurar o agente de operações, adicione os elementos necessários para coletar a telemetria do serviço DCGM e reiniciar o agente.

Exemplo de configuração

Os comandos a seguir criam a configuração para coletar e ingerir os receptor da versão 2 para NVIDIA DCGM e reiniciar o Agente de operações:

# 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

Se você quiser coletar apenas métricas de criação de perfil DCGM, substitua o valor de no campo receiver_version com 1. Também é possível remover receiver_version inteiramente; a versão padrão é 1. Não é possível usar as duas versões ao mesmo tempo.

Depois de executar esses comandos, verifique se o agente foi reiniciado. Execute o comando a seguir e verifique se os componentes do subagente "Agente de métrica" e "Agente de geração de registros" estão listados como "ativo (em execução)":

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

Se você estiver usando uma conta de serviço personalizada em vez da conta de serviço padrão do Compute Engine ou se tiver uma VM muito antiga do Compute Engine, talvez seja necessário autorizar o agente de operações.

Configurar a coleta de métricas

Para ingerir métricas do NVIDIA DCGM, é preciso criar um receptor para as métricas produzidas pelo NVIDIA DCGM e, em seguida, criar um pipeline para o novo receptor.

Esse receptor não aceita o uso de várias instâncias na configuração, por exemplo, para monitorar vários endpoints. Todas essas instâncias gravam na mesma série temporal, e o Cloud Monitoring não tem como diferenciá-las.

Para configurar um receptor para suas métricas do dcgm, especifique os campos a seguir:

Campo Padrão Descrição
collection_interval 60s Um valor de time.Duration, como 30s ou 5m.
endpoint localhost:5555 Endereço do serviço DCGM, formatado como host:port.
receiver_version 1 1 ou 2. A versão 2 tem muitas outras métricas disponíveis.
type Este valor precisa ser dcgm.

O que é monitorado?

As tabelas a seguir fornecem listas de métricas que o agente de operações coleta da instância do DGCM da NVIDIA. Nem todas as métricas estão disponíveis para todos os modelos de GPU. As métricas de criação de perfil não são coletadas dos modelos de GPU NVIDIA P100 e P4.

Métricas da versão 1

As métricas a seguir são coletadas usando a versão 1 do receptor dcgm.

Tipo de métrica 
Tipo, tipo
Recursos monitorados
Rótulos
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

 Indisponível nos modelos de GPU P100 e P4.

 Para L4, o valor pipe de fp64 não é compatível.

Métricas da versão 2

As métricas a seguir são coletadas usando a versão 2 do receptor dcgm.

Tipo de métrica 
Tipo, tipo
Recursos monitorados
Rótulos
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 e P4, apenas os valores violation power, thermal e sync_boost são aceitos.

 Não disponível nos modelos de GPU P100 e P4.

§ Para L4, o valor pipe fp64 não é compatível.

Métricas da GPU

Além disso, a configuração integrada do agente de operações também coleta métricas agent.googleapis.com/gpu, que são informadas pela biblioteca de gerenciamento da NVIDIA (NVML). Nenhuma ação adicional é necessária no Agente de operações para coletar essas métricas, mas é necessário criar sua VM com GPUs anexadas e instalar o driver da GPU. Para mais informações, consulte Sobre as métricas gpu. As métricas da versão 1 do receptor dcgm estão projetada para complementar essas métricas padrão, enquanto a versão 2 do receptor dcgm devem ser independentes.

Verificar a configuração

Nesta seção, descrevemos como verificar se você configurou corretamente o receptor NVIDIA DCGM. Pode levar um ou dois minutos para que o agente de operações comece a coletar telemetria.

Para verificar se as métricas do NVIDIA DCGM estão sendo enviadas para o Cloud Monitoring, faça o seguinte:

  1. No console do Google Cloud, acesse a página do  Metrics Explorer:

    Acesse o Metrics explorer

    Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo Monitoring.

  2. Na barra de ferramentas do painel do criador de consultas, selecione o botão  MQL ou  PromQL.
  3. Verifique se MQL está selecionado na opção de ativar/desativar MQL. A alternância de idiomas está na mesma barra de ferramentas que permite formatar sua consulta.
    • Para métricas da v1, insira a seguinte consulta no editor e clique em Executar:
      fetch gce_instance
      | metric 'workload.googleapis.com/dcgm.gpu.profiling.sm_utilization'
      | every 1m
      
    • Para métricas da v2, insira a seguinte consulta no editor e clique em Executar:
      fetch gce_instance
      | metric 'workload.googleapis.com/gpu.dcgm.sm.utilization'
      | every 1m
      

Ver painel

Para visualizar as métricas do NVIDIA DCGM, é necessário ter um gráfico ou um painel configurado. A integração com o NVIDIA DCGM inclui um ou mais painéis. Todos os painéis são instalados automaticamente depois que você configura a integração e o Agente de operações começa a coletar dados de métricas.

Também é possível ver visualizações estáticas de painéis sem instalar a integração.

Para ver um painel instalado, faça o seguinte:

  1. No console do Google Cloud, acesse a página  Painéis:

    Ir para Painéis

    Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo Monitoring.

  2. Selecione a guia Lista de painéis e escolha a categoria Integrações.
  3. Clique no nome do painel que você quer visualizar.

Se você configurou uma integração, mas o painel não foi instalado, verifique se o agente de operações está em execução. Quando não há dados de métricas para um gráfico no painel, a instalação do painel falha. Depois que o Agente de operações começar a coletar métricas, o painel será instalado para você.

Para acessar uma visualização estática do painel, faça o seguinte:

  1. No console do Google Cloud, acesse a página  Integrações:

    Acessar Integrações

    Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo Monitoring.

  2. Clique no filtro de plataforma de implantação do Compute Engine.
  3. Localize a entrada do NVIDIA DCGM e clique em Conferir detalhes.
  4. Selecione a guia Painéis para uma visualização estática. Se o painel estiver instalado, navegue até ele clicando em Ver painel.

Para mais informações sobre painéis no Cloud Monitoring, consulte Painéis e gráficos.

Para mais informações sobre como usar a página Integrações, consulte Gerenciar integrações.

Limitações do DCGM e pausa da criação de perfil

O uso simultâneo do DCGM pode entrar em conflito com algumas outras ferramentas de desenvolvedor da NVIDIA, como Nsight Systems ou Nsight Compute. Essa limitação se aplica à NVIDIA A100 e a GPUs anteriores. Para mais informações, consulte Como criar o perfil da taxa de amostragem na modificação do recurso DCGM.

Quando você precisar usar ferramentas como o Nsight Systems sem interrupções significativas, é possível pausar ou retomar temporariamente a coleta de métricas usando os seguintes comandos:

dcgmi profile --pause
dcgmi profile --resume

Quando a criação de perfil é pausada, nenhuma das métricas DCGM que o agente de operações coleta é emitida da VM.

A seguir

Para ver um tutorial sobre como usar o Ansible para instalar o agente de operações, configurar um aplicativo de terceiros e instalar um painel de amostra, consulte o vídeo Instalação do agente de operações para resolver problemas de aplicativos de terceiros.