Gerenciador de GPU do data center da NVIDIA (DCGM)

A integração do Gerenciador de GPU do data center da NVIDIA coleta as principais métricas avançadas de GPU do DCGM, incluindo a utilização de blocos de Multiprocessador de streaming (SM), a ocupação do SM, a utilização do pipeline do SM, a taxa de tráfego PCIe e a taxa de tráfego do NVLink. Para informações sobre a finalidade e a interpretação dessas métricas, consulte Como criar perfis de métricas na visão geral do recurso 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.

O Agente de operações coleta métricas de DCGM usando a biblioteca de cliente da NVIDIA go-dcgm.

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

Pré-requisitos

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

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 telemetria para o 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
  service:
    pipelines:
      dcgm:
        receivers:
          - dcgm
EOF

sudo systemctl restart google-cloud-ops-agent

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 DCGM, você precisa criar um receptor para as métricas produzidas pelo 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.
type Este valor precisa ser dcgm.

O que é monitorado?

A tabela a seguir fornece a lista de métricas que o agente de operações coleta do serviço DCGM. Nem todas as métricas estão disponíveis para todos os modelos de GPU. As métricas não são coletadas dos modelos de GPU NVIDIA K80, P100 e P4.

Tipo de métrica 
Tipo, tipo
Recursos monitorados
Rótulos
 
Modelos de GPU
compatíveis
workload.googleapis.com/dcgm.gpu.profiling.dram_utilization
GAUGEDOUBLE
gce_instance
gpu_number
model
uuid
Todos, exceto K80, P100 e P4
GAUGEINT64
gce_instance
direction
gpu_number
model
uuid
Todos, exceto K80, P100 e P4
workload.googleapis.com/dcgm.gpu.profiling.pcie_traffic_rate
GAUGEINT64
gce_instance
direction
gpu_number
model
uuid
Todos, exceto K80, P100 e P4
workload.googleapis.com/dcgm.gpu.profiling.pipe_utilization
GAUGEDOUBLE
gce_instance
gpu_number
model
pipe
uuid
Todos, exceto K80, P100 e P4. Para L4, o valor pipe fp64 não é compatível.
workload.googleapis.com/dcgm.gpu.profiling.sm_occupancy
GAUGEDOUBLE
gce_instance
gpu_number
model
uuid
Todos, exceto K80, P100 e P4
workload.googleapis.com/dcgm.gpu.profiling.sm_utilization
GAUGEDOUBLE
gce_instance
gpu_number
model
uuid
Todos, exceto K80, P100 e P4

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.

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 painel de navegação do console do Google Cloud, selecione Monitoramento e  Metrics Explorer:

    Acesse o Metrics explorer

  2. Na barra de ferramentas do painel do criador de consultas, selecione o botão com o nome  MQL ou  PromQL.
  3. Verifique se MQL está selecionado no botão de alternância Idioma. O botão de alternância está na mesma barra de ferramentas que permite formatar a consulta.
  4. Insira a seguinte consulta no editor e clique em Executar consulta:
    fetch gce_instance
    | metric 'workload.googleapis.com/dcgm.gpu.profiling.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 painel de navegação do console do Google Cloud, selecione Monitoramento e  Painéis:

    Acessar Painéis

  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 painel de navegação do console do Google Cloud, selecione Monitoramento e  Integrações:

    Acessar Integrações

  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.