Coletar e ver métricas do DCGM

É possível monitorar a utilização, o desempenho e a integridade da GPU configurando o GKE para que envie métricas do NVIDIA Data Center GPU Manager (DCGM) ao Cloud Monitoring.

Quando você ativa as métricas do DCGM, o GKE instala a ferramenta DCGM-Exporter, instala drivers de GPU gerenciados pelo Google e implanta um recurso ClusterPodMonitoring para que envie métricas ao Google Cloud Managed Service para Prometheus. Para novos clusters do GKE criados na versão 1.32.1-gke.1357000 ou mais recente, o pacote de métricas do DCGM é ativado por padrão. Para clusters que executam versões anteriores, é possível ativar a coleta de métricas do DCGM usando o console Google Cloud , a CLI gcloud ou o Terraform.

Também é possível configurar o DCGM autogerido se você quiser personalizar o conjunto de métricas do DCGM ou se tiver um cluster que não atenda aos requisitos para métricas do DCGM gerenciado.

O que é o DCGM?

O NVIDIA Data Center GPU Manager (DCGM) é um conjunto de ferramentas da NVIDIA que permitem gerenciar e monitorar GPUs NVIDIA. O DCGM expõe várias estruturas de capacidade de observação e contadores usando o que ele chama de fields. Cada campo tem um identificador simbólico e um número. Confira a lista completa em NVIDIA DCGM list of Field IDs (em inglês).

Se você ativar as métricas do DCGM no GKE, as métricas compatíveis estarão disponíveis automaticamente no Cloud Monitoring. Essas métricas oferecem uma visão abrangente da utilização, do desempenho e da integridade da GPU.

  • As métricas de utilização da GPU são uma indicação de como a GPU monitorada está ocupada e se ela é usada de forma eficaz para processar tarefas. Isso inclui métricas de processamento central, memória, E/S e consumo de energia.
  • As métricas de desempenho da GPU se referem à eficácia e eficiência com que uma GPU pode realizar uma tarefa computacional. Isso inclui métricas de velocidade do clock e temperatura.
  • As métricas de E/S da GPU, como NVlink e PCIe, medem a largura de banda de transferência de dados.

Antes de começar

Antes de começar, verifique se você realizou as tarefas a seguir:

  • Ativar a API Google Kubernetes Engine.
  • Ativar a API Google Kubernetes Engine
  • Se você quiser usar a CLI do Google Cloud para essa tarefa, instale e inicialize a gcloud CLI. Se você instalou a CLI gcloud anteriormente, instale a versão mais recente executando o comando gcloud components update. Talvez as versões anteriores da CLI gcloud não sejam compatíveis com a execução dos comandos neste documento.

Requisitos para as métricas do NVIDIA Data Center GPU Manager (DCGM)

Para coletar métricas do NVIDIA Data Center GPU Manager (DCGM), o cluster do GKE precisa atender aos seguintes requisitos:

Limitações

  • Se você estiver executando um pacote de métricas do NVIDIA Data Center GPU Manager (DCGM) autoimplantado, pare de coletá-lo antes de ativar as métricas gerenciadas do NVIDIA Data Center GPU Manager (DCGM). Caso contrário, é possível que você receba métricas duplicadas ou incorretas.

  • As métricas gerenciadas do DCGM, incluindo os manifestos e as imagens de contêiner subjacentes, são destinadas a funcionar apenas em clusters do GKE. Não use métricas gerenciadas do DCGM de forma independente nem execute-o fora do GKE.

Configurar a coleta de métricas do DCGM

É possível ativar o GKE para coletar métricas do DCGM em um cluster atual usando o console Google Cloud , a CLI gcloud ou o Terraform.

Console

  1. Crie um pool de nós de GPU.

    Use Padrão ou Mais recente para instalação do driver de GPU.

  2. Acesse a página do Google Kubernetes Engine no Google Cloud console.

    Acessar o Google Kubernetes Engine

  3. Clique no nome do cluster.

  4. Ao lado de Cloud Monitoring, clique em .

  5. Selecione SYSTEM e DCGM.

  6. Clique em "Salvar".

gcloud

  1. Crie um pool de nós de GPU.

    Use default ou latest para --gpu-driver-version.

  2. Atualize o cluster:

    gcloud container clusters update CLUSTER_NAME \
        --location=COMPUTE_LOCATION \
        --enable-managed-prometheus \
        --monitoring=SYSTEM,DCGM
    

    Substitua:

Terraform

Para configurar a coleta de métricas do DCGM usando o Terraform, consulte o bloco monitoring_config no registro do Terraform para google_container_cluster. Para informações gerais sobre como usar o Google Cloud com o Terraform, consulte Terraform com Google Cloud.

Usar métricas do DCGM

É possível conferir as métricas do DCGM usando os painéis no console doGoogle Cloud ou diretamente nas páginas de visão geral e detalhes do cluster. Para mais informações, consulte Conferir métricas de observabilidade.

É possível conferir as métricas usando o painel de métricas do DCGM do Grafana. Para mais informações, veja Consultar usando o Grafana. Se você encontrar erros, consulte Compatibilidade com a API.

Preços

As métricas do DCGM usam o Google Cloud Managed Service para Prometheus para carregar métricas no Cloud Monitoring. O Cloud Monitoring cobra pela ingestão dessas métricas com base no número de amostras ingeridas.

Para mais informações, consulte preços do Cloud Monitoring.

Cota

As métricas do DCGM consomem a cota de Solicitações de ingestão de séries temporais por minuto da API Cloud Monitoring. Antes de ativar os pacotes de métricas, verifique o pico de uso recente dessa cota. Se você tiver muitos clusters no mesmo projeto ou já estiver perto do limite dessa cota, solicite um aumento no limite de cota antes de ativar qualquer pacote de observabilidade.

Métricas do DCGM

Os nomes das métricas do Cloud Monitoring nesta tabela precisam ser prefixados com prometheus.googleapis.com/. Esse prefixo foi omitido das entradas na tabela.

Além dos rótulos no recurso monitorado prometheus_target, todas as métricas do DCGM coletadas no GKE têm os seguintes rótulos anexados:

Rótulos da GPU:

  • UUID: o UUID do dispositivo da GPU.
  • device: o nome do dispositivo da GPU.
  • gpu: o número do índice como um número inteiro do dispositivo de GPU no nó. Por exemplo, se houver 8 GPUs anexadas, esse valor poderá variar de 0 a 7.
  • modelName: o nome do modelo do dispositivo de GPU, como NVIDIA L4.

Marcadores do Kubernetes:

  • container: o nome do contêiner do Kubernetes que usa o dispositivo de GPU.
  • namespace: o namespace do Kubernetes do pod e do contêiner que usa o dispositivo de GPU.
  • pod: o pod do Kubernetes que usa o dispositivo de GPU.
Nome da métrica do PromQL
Nome da métrica do Cloud Monitoring
Tipo, Classe, Unidade
Recursos monitorados
Versão obrigatória do GKE
Descrição
DCGM_FI_DEV_FB_FREE
DCGM_FI_DEV_FB_FREE/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
Framebuffer livre em MB.
DCGM_FI_DEV_FB_TOTAL
DCGM_FI_DEV_FB_TOTAL/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
Framebuffer total da GPU em MB.
DCGM_FI_DEV_FB_USED
DCGM_FI_DEV_FB_USED/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
Framebuffer usado em MB.
DCGM_FI_DEV_GPU_TEMP
DCGM_FI_DEV_GPU_TEMP/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
Leituras atuais de temperatura do dispositivo (em °C).
DCGM_FI_DEV_GPU_UTIL
DCGM_FI_DEV_GPU_UTIL/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
Uso da GPU (em %).
DCGM_FI_DEV_MEM_COPY_UTIL
DCGM_FI_DEV_MEM_COPY_UTIL/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
Uso da memória (em %).
DCGM_FI_DEV_MEMORY_TEMP
DCGM_FI_DEV_MEMORY_TEMP/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
Temperatura da memória do dispositivo (em °C).
DCGM_FI_DEV_POWER_USAGE
DCGM_FI_DEV_POWER_USAGE/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
Consumo de energia do dispositivo (em watts).
DCGM_FI_DEV_SM_CLOCK
DCGM_FI_DEV_SM_CLOCK/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
Frequência do clock do SM (em MHz).
DCGM_FI_DEV_TOTAL_ENERGY_CONSUMPTION
DCGM_FI_DEV_TOTAL_ENERGY_CONSUMPTION/counter

CUMULATIVEDOUBLE1 prometheus_target
1.30.1-gke.1204000
Consumo de energia total da GPU em mJ desde a última recarga do driver.
DCGM_FI_PROF_DRAM_ACTIVE
DCGM_FI_PROF_DRAM_ACTIVE/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
A proporção de ciclos em que a interface de memória do dispositivo está ativa enviando ou recebendo dados.
DCGM_FI_PROF_GR_ENGINE_ACTIVE
DCGM_FI_PROF_GR_ENGINE_ACTIVE/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
A proporção de tempo em que o motor gráfico está ativo.
DCGM_FI_PROF_NVLINK_RX_BYTES
DCGM_FI_PROF_NVLINK_RX_BYTES/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
A taxa de dados ativos de rx (leitura) do NvLink em bytes, incluindo cabeçalho e payload.
DCGM_FI_PROF_NVLINK_TX_BYTES
DCGM_FI_PROF_NVLINK_TX_BYTES/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
A taxa de dados ativos de tx (transmissão) do NvLink em bytes, incluindo cabeçalho e payload.
DCGM_FI_PROF_PCIE_RX_BYTES
DCGM_FI_PROF_PCIE_RX_BYTES/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
A taxa de dados ativos de rx (leitura) do PCIe em bytes, incluindo cabeçalho e payload.
DCGM_FI_PROF_PCIE_TX_BYTES
DCGM_FI_PROF_PCIE_TX_BYTES/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
A taxa de dados ativos de tx (transmissão) do PCIe em bytes, incluindo cabeçalho e payload.
DCGM_FI_PROF_PIPE_FP16_ACTIVE
DCGM_FI_PROF_PIPE_FP16_ACTIVE/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
A proporção de ciclos em que o pipe fp16 está ativo.
DCGM_FI_PROF_PIPE_FP32_ACTIVE
DCGM_FI_PROF_PIPE_FP32_ACTIVE/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
A proporção de ciclos em que o pipe fp32 está ativo.
DCGM_FI_PROF_PIPE_FP64_ACTIVE
DCGM_FI_PROF_PIPE_FP64_ACTIVE/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
A proporção de ciclos em que o pipe fp64 está ativo.
DCGM_FI_PROF_PIPE_TENSOR_ACTIVE
DCGM_FI_PROF_PIPE_TENSOR_ACTIVE/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
A proporção de ciclos em que qualquer pipe tensor está ativo.
DCGM_FI_PROF_SM_ACTIVE
DCGM_FI_PROF_SM_ACTIVE/gauge

GAUGEDOUBLE1 prometheus_target
1.30.1-gke.1204000
A proporção de ciclos em que uma SM tem pelo menos um warp atribuído.

Para ajudar você a entender como essas métricas podem ser usadas, agrupamos elas da seguinte forma:

Uso de computação ou principal

Com elas, é possível identificar dispositivos subutilizados e ajustar a computação ou a alocação de GPU para otimizar a utilização. Uma utilização baixa significa que você pode estar pagando por mais capacidade de GPU do que o necessário. Essas métricas podem ajudar a economizar custos consolidando a computação em menos dispositivos.

DCGM_FI_DEV_GPU_UTIL

Essa métrica representa a fração de tempo em que a GPU esteve ativa.

Uso esperado:fornece uma visão geral da utilização média da GPU. Essa métrica é semelhante a DCGM_FI_PROF_GR_ENGINE_ACTIVE, que pode ser uma métrica mais precisa para a utilização da GPU.

DCGM_FI_PROF_GR_ENGINE_ACTIVE

Essa métrica representa o nível de ocupação do mecanismo de gráficos em cada intervalo de amostragem. O valor é derivado do número médio de ciclos ativos em comparação com o máximo possível de ciclos disponíveis no intervalo de amostragem. Por exemplo, se em um intervalo de amostragem de um segundo, 1.000 ciclos estiverem disponíveis e uma média de 324 ciclos estiver ativa (trabalhando), o valor da métrica resultante será 0,324. Isso pode ser interpretado como (0,324 x 100) 32,4% de utilização.

Uso esperado:fornece uma visão geral da utilização média da GPU. Valores consistentemente altos de utilização indicam que a GPU pode ser um gargalo que causa problemas de desempenho do sistema. Valores de utilização consistentemente baixos indicam que o aplicativo não está usando totalmente a capacidade de processamento disponível.

DCGM_FI_PROF_PIPE_FP16_ACTIVE, DCGM_FI_PROF_PIPE_FP32_ACTIVE, DCGM_FI_PROF_PIPE_FP64_ACTIVE, DCGM_FI_PROF_PIPE_TENSOR_ACTIVE

Essas métricas representam a proporção de ciclos em que um determinado pipe de GPU está ativo em relação aos ciclos decorridos com pico sustentado.

Uso esperado:mede a eficácia do uso dos vários pipelines computacionais na GPU.

DCGM_FI_PROF_SM_ACTIVE

Essa métrica representa a fração de tempo em que pelo menos um warp esteve ativo em um SM(multiprocessador de streaming), calculada com base na média de todos os SMs. Por exemplo, se a GPU tiver 80 SMs disponíveis e, durante o período de amostragem, 16 SMs estiverem executando um warp, o valor sm_active resultante será (16/80) 0,20, o que pode ser interpretado como 20% dos SMs disponíveis executando um warp.

Uso esperado:fornece uma medida de como o paralelismo da GPU é usado.

Uso de memória

O principal uso dessas métricas é detectar quando os dispositivos de GPU não têm memória suficiente para os aplicativos. Esses aplicativos podem se beneficiar da alocação de mais capacidade de GPU.

DCGM_FI_DEV_FB_FREE, DCGM_FI_DEV_FB_USED, DCGM_FI_DEV_FB_TOTAL

Essas métricas são para a memória do framebuffer, que é a memória da GPU. As métricas informam a memória livre e a memória usada, que somam o total. e a memória total disponível.

Uso esperado:determine os padrões de uso da memória da GPU. Isso permite correlacionar o uso real da memória na GPU com o uso esperado para determinar a eficiência da memória do aplicativo.

DCGM_FI_DEV_MEM_COPY_UTIL

Essa métrica representa a fração de tempo durante o período de amostragem anterior em que a memória global (dispositivo) estava sendo lida ou gravada.

Uso esperado:determine os padrões de transferência de dados para e da memória da GPU. Valores altos dessa métrica, combinados com valores baixos de métricas de utilização de computação, podem indicar que a transferência de memória é o gargalo nos aplicativos em execução.

DCGM_FI_PROF_DRAM_ACTIVE

Essa métrica representa a proporção de ciclos em que a interface de memória da GPU está enviando ou recebendo dados. Isso inclui cargas e armazenamentos de linhas de execução em execução em SMs, bem como cópias de memória para e da memória da GPU. Valores mais altos indicam níveis maiores de tráfego de memória.

Uso esperado:essa métrica é semelhante a DCGM_FI_DEV_MEM_COPY_UTIL e pode ser mais precisa.

Utilização de E/S

As métricas a seguir fornecem insights sobre o uso da transmissão de dados entre a GPU e o host ou entre vários dispositivos de GPU. Uma maneira de usar essas métricas é detectar quando um aplicativo sobrecarrega a interconexão. Devido à natureza intermitente dessa transmissão, talvez seja interessante analisar dados de resolução mais alta (por exemplo, uma distribuição) para ter uma ideia mais precisa de como a interconexão se comportou.

DCGM_FI_PROF_NVLINK_RX_BYTES, DCGM_FI_PROF_NVLINK_TX_BYTES

Essas métricas representam a capacidade de transmissão (tx) e recebimento (rx) do NVLink em bytes.

Uso esperado:acompanhe a carga nos conectores NVLink (entre chips de GPU). Se o valor dessas métricas estiver próximo da largura de banda total disponível do NVLink e as métricas de utilização da computação estiverem baixas, isso pode indicar que o NVLink é um gargalo nos aplicativos em execução.

DCGM_FI_PROF_PCIE_RX_BYTES, DCGM_FI_PROF_PCIE_TX_BYTES

Essas métricas representam a capacidade de transmissão (tx) e processamento (rx) do PCIe em bytes, em que tx é a GPU transmitindo dados e rx é a GPU recebendo dados.

Uso esperado:Acompanhe a carga no barramento PCIe (entre CPU e GPU). Se os valores dessas métricas estiverem próximos da largura de banda total do barramento PCIe e as métricas de utilização da computação estiverem baixas, isso pode indicar que o barramento PCIe é um gargalo nos aplicativos em execução.

Utilização de energia

As métricas a seguir fornecem insights sobre a utilização de energia da GPU, às vezes cruciais para o desempenho e a eficiência da carga de trabalho.

DCGM_FI_DEV_GPU_TEMP

Essa métrica representa a temperatura média em todos os núcleos da GPU.

Uso esperado:acompanhe quando a GPU estiver perto de superaquecer, principalmente para correlacionar com a redução de clock. Você também pode usar essa métrica para identificar GPUs propensas a superaquecimento para cargas mais leves em aplicativos mais avançados.

DCGM_FI_DEV_POWER_USAGE

Essa métrica representa o consumo de energia da GPU em watts. Talvez você queira acompanhar o uso de energia como uma métrica de ocupação da GPU. As GPUs NVIDIA ajustam os clocks do mecanismo com base na quantidade de trabalho que estão realizando. À medida que a velocidade do clock (e, portanto, a utilização) aumenta, o consumo de energia também aumenta.

Uso esperado:acompanhe a quantidade de energia que a GPU está usando para aplicativos do usuário.

DCGM_FI_DEV_TOTAL_ENERGY_CONSUMPTION

Essa métrica representa o consumo total de energia da GPU em milijoules (mJ) desde a última recarga do driver. A taxa calculada nessa métrica precisa corresponder à métrica de consumo de energia.

Uso esperado:acompanhe a quantidade de energia que a GPU está usando para aplicativos do usuário.

Métricas de desempenho da GPU

O desempenho da GPU se refere à eficácia e eficiência com que uma GPU pode realizar uma tarefa computacional.

DCGM_FI_DEV_MEMORY_TEMP

Essa métrica indica a temperatura média do bloco de memória.

Uso esperado:para mostrar a temperatura do bloco de memória e correlacionar com a temperatura da GPU.

DCGM_FI_DEV_SM_CLOCK

Essa métrica representa a velocidade média do clock em todos os SMs. Essa métrica é calculada em um intervalo de tempo especificado.

Uso esperado:acompanhe a velocidade do clock para detectar a limitação e correlacionar com o desempenho do aplicativo.

A seguir