Neste documento, explicamos como monitorar instâncias do Compute Engine A4X Max, A4X, A4, A3 Ultra ou A3 Mega criadas usando capacidade reservada. Especificamente, este documento explica como usar os painéis do Cloud Monitoring para identificar e resolver gargalos de desempenho nas instâncias de computação autônomas ou nos clusters do Slurm. O uso desses painéis ajuda a minimizar o tempo de inatividade e os problemas de desempenho nas suas cargas de trabalho.
Ao criar ou usar painéis do Monitoring predefinidos para monitorar instâncias de computação autônomas ou clusters do Slurm, é possível monitorar o seguinte:
Integridade da instância do Compute
Desempenho da GPU
Eficiência da transmissão de rede
Eficiência da rede entre blocos e sub-blocos
Eficiência da carga de trabalho de machine learning (ML)
Detecção de tarefas retardatárias
Antes de começar
Antes de monitorar sua carga de trabalho, conclua as etapas a seguir, se ainda não tiver feito isso:
Implante uma carga de trabalho que possa ser monitorada. Para saber quais cargas de trabalho são compatíveis, consulte as limitações neste documento. Para saber como implantar uma carga de trabalho, consulte Visão geral das opções de implantação.
Saiba mais sobre os serviços Google Cloud para monitorar cargas de trabalho:
As métricas neste documento usam painéis do Monitoring. Saiba mais sobre os painéis do Monitoring, os períodos de retenção do Monitoring e os preços do Monitoring.
A detecção de atrasos também fornece entradas de registro no Cloud Logging. Saiba mais sobre interfaces do Logging, períodos de retenção do Logging e preços do Logging.
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
Limitações
As métricas neste documento só são compatíveis com cargas de trabalho executadas em instâncias de computação que atendem a todos os critérios a seguir:
- As instâncias de computação precisam ser criadas como instâncias autônomas do Compute Engine ou como parte de um cluster do Slurm.
- As instâncias de computação precisam ter sido criadas usando capacidade reservada.
- As instâncias de computação precisam usar a série de máquinas A4X Max, A4X, A4, A3 Ultra ou A3 Mega.
- No entanto, a detecção de atrasados também é compatível com instâncias de máquina virtual (VM) que usam a série de máquinas A3 Mega.
Para monitorar as métricas de carga de trabalho de ML, é necessário configurar o monitoramento da carga de trabalho.
As métricas de detecção de straggler têm as seguintes limitações adicionais:
- Para séries de máquinas compatíveis que não sejam A3 Mega, a detecção de straggler só é compatível com instâncias de computação que permitem que a biblioteca Collective Communication Analyzer (CoMMA) exporte a telemetria do NCCL para serviços Google Cloud . Para mais informações, consulte a visão geral do CoMMA.
- A detecção de atrasados geralmente leva até 10 minutos para informar um atrasado.
- Ao contrário das outras métricas neste documento, não é possível filtrar as métricas de detecção de atrasos dos seus projetos por cluster, bloco, subbloco ou instância de computação. No entanto, é possível filtrar consultas para registros de detecção de atrasos pelo ID de uma ou mais instâncias de computação suspeitas de atraso.
Funções exigidas
Para receber as permissões necessárias para monitorar métricas de cargas de trabalho do AI Hypercomputer, peça ao administrador para conceder a você os seguintes papéis do IAM :
-
Para ver métricas no Cloud Monitoring:
Editor do Monitoring (
roles/monitoring.editor) no projeto -
Para ver os registros de detecção de atrasos no Logging:
Visualizador de registros (
roles/logging.viewer) no projeto
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Esses papéis predefinidos contêm as permissões necessárias para monitorar métricas de cargas de trabalho do AI Hypercomputer. Para acessar as permissões exatas necessárias, expanda a seção Permissões necessárias:
Permissões necessárias
As permissões a seguir são necessárias para monitorar métricas de cargas de trabalho do AI Hypercomputer:
-
Para ver painéis:
monitoring.dashboards.getno projeto -
Para criar painéis:
monitoring.dashboards.createno projeto -
Para ver entradas de registro:
logging.logEntries.listno projeto
Essas permissões também podem ser concedidas com funções personalizadas ou outros papéis predefinidos.
Métricas disponíveis
Dependendo do seu caso de uso, as seguintes métricas estão disponíveis para monitorar suas instâncias de computação e clusters do Slurm:
Para monitorar a integridade, o desempenho e o desempenho da rede das GPUs anexadas às instâncias de computação, consulte Métricas de infraestrutura.
Para monitorar a eficiência das GPUs nas suas cargas de trabalho de ML, consulte Métricas de carga de trabalho de ML.
Para monitorar instâncias de computação lentas suspeitas em cargas de trabalho de ML com desempenho lento, consulte Métricas de detecção de lentidão.
Para saber como visualizar essas métricas, consulte Visualizar métricas neste documento.
Métricas de infraestrutura
Para monitorar a integridade, o desempenho e o desempenho da rede das GPUs conectadas às instâncias de computação, use as seguintes métricas:
Para uma visão geral das métricas disponíveis no Compute Engine, consulte métricas doGoogle Cloud .
Métricas de integridade da GPU
Para monitorar a integridade das GPUs, use as seguintes métricas:
| Nome | Tipo de métrica | Série de máquinas compatível | Descrição |
|---|---|---|---|
| Status da máquina | machine/machine_status |
A4X Max, A4X, A4, A3 Ultra ou A3 Mega | Mostra se a máquina usada pela instância de computação está íntegra ou se ela está com problemas e precisa de reparo. |
| Status do NVSwitch | instance/gpu/nvswitch_status |
A4X Max, A4X, A4, A3 Ultra ou A3 Mega | Se um switch NVLink em uma GPU NVIDIA conectada a uma instância de computação está apresentando problemas. |
| Integridade da infraestrutura de VM | instance/gpu/infra_health |
A4X, A4, A3 Ultra ou A3 Mega | A integridade do cluster, do bloco, do subbloco e do host em que suas instâncias de computação estão sendo executadas. Se essa métrica mostrar que a infraestrutura de uma instância de computação não está íntegra, ela também vai descrever o problema. |
| Pontuação de previsão de falha da VM | instance/gpu/failure_prediction_score |
A4X, A4, A3 Ultra ou A3 Mega |
A probabilidade de degradação do host em que a instância de computação é executada nas próximas cinco horas. O valor pode estar entre
0.0 e 1.0. Quanto mais próximo o valor permanecer de 1.0 por um período consistente, maior a probabilidade de degradação da instância de computação. Nesse caso, recomendamos que você mova o job para outra instância de computação e, se encontrar problemas com a instância, informe o host dela como com falha.
|
Métricas de desempenho da GPU
Para monitorar o desempenho das GPUs, use as seguintes métricas:
| Nome | Tipo de métrica | Série de máquinas compatível | Descrição |
|---|---|---|---|
| Utilização acumulada de contexto | instance/gpu/accumulated_context_utilization_seconds |
A4X Max, A4X, A4, A3 Ultra ou A3 Mega | O tempo total, em segundos, que a GPU fica ocupada processando uma carga de trabalho. |
| Consumo de energia da GPU | instance/gpu/power_consumption |
A4X Max, A4X, A4, A3 Ultra ou A3 Mega | A energia em watts (W) e em valores decimais consumida em GPUs individuais no host. Para instâncias de computação com várias GPUs anexadas, a métrica fornece o consumo de energia separadamente para cada GPU no host. |
| Utilização do SM | instance/gpu/sm_utilization |
A4X Max, A4X, A4, A3 Ultra ou A3 Mega | Um valor diferente de zero indica que os multiprocessadores de streaming (SMs) nas GPUs estão sendo usados ativamente. |
| Temperatura da GPU | instance/gpu/temperature |
A4X Max, A4X, A4, A3 Ultra ou A3 Mega | A temperatura em graus Celsius (℃) e em valores decimais de GPUs individuais no host. Para instâncias de computação com várias GPUs anexadas, a métrica fornece a temperatura separadamente para cada GPU no host. |
| Margem térmica da GPU | instance/gpu/tlimit |
A4X Max, A4X, A4, A3 Ultra ou A3 Mega | A margem térmica em graus Celsius (℃) e em valores decimais que as GPUs individuais têm antes de precisarem reduzir a velocidade devido à alta temperatura. Para instâncias de computação com várias GPUs anexadas, a métrica fornece o headroom térmico separadamente para cada GPU no host. |
Métricas de desempenho da rede da GPU
Para monitorar o desempenho da rede das GPUs, use as seguintes métricas:
| Nome | Tipo de métrica | Série de máquinas compatível | Descrição |
|---|---|---|---|
| Mudanças na operadora do link | instance/gpu/link_carrier_changes |
A4X, A4, A3 Ultra ou A3 Mega | Com que frequência a operadora do link de rede muda em um minuto. |
| RTT da rede | instance/gpu/network_rtt |
A4X, A4, A3 Ultra ou A3 Mega | O tempo de retorno, medido em microssegundos, para que os dados de rede viajem entre uma origem e um destino. |
| Tráfego de rede entre blocos | instance/gpu/network/inter_block_tx |
A4X, A4, A3 Ultra ou A3 Mega | O número de bytes de tráfego de rede entre blocos. |
| Tráfego de rede entre sub-blocos | instance/gpu/network/inter_subblock_tx |
A4X, A4, A3 Ultra ou A3 Mega | O número de bytes de tráfego de rede entre sub-blocos. |
| Tráfego de rede no subbloco | instance/gpu/network/intra_subblock_tx |
A4X, A4, A3 Ultra ou A3 Mega | O número de bytes de tráfego de rede em um único subbloco. |
| Velocidade ativa do NVLink | instance/gpu/nvlink_active_speed |
A4X Max, A4X, A4, A3 Ultra ou A3 Mega | A velocidade atual da porta do link de acesso, em GBps. |
| Bytes de RX de capacidade de processamento | instance/gpu/throughput_rx_bytes |
A4X, A4, A3 Ultra ou A3 Mega | O número de bytes recebidos do tráfego de rede. |
| Bytes de TX de capacidade de processamento | instance/gpu/throughput_tx_bytes |
A4X, A4, A3 Ultra ou A3 Mega | O número de bytes transmitidos para o tráfego de rede. |
Métricas de erros fatais da GPU
Para monitorar os erros encontrados pelas GPUs que podem forçar a interrupção das instâncias de computação ou afetar negativamente o desempenho delas, use as seguintes métricas:
| Nome | Tipo de métrica | Série de máquinas compatível | Descrição |
|---|---|---|---|
| Erro de execução do NVLink | instance/gpu/nvlink_runtime_error |
A4X Max ou A4X | Indica se ocorreu um erro de execução do NVLink. |
| Erros de ECC de DRAM incorrigíveis | instance/gpu/dram_uncorrectable_ecc_error_count |
A4X Max ou A4X | O número de códigos de correção de erros (ECCs) incorrigíveis em uma memória de acesso aleatório dinâmica (DRAM) da GPU. |
| Contagem de remapeamento de linhas da DRAM incorrigível | instance/gpu/dram_uncorrectable_row_remapping_count |
A4X Max ou A4X | O número de remapeamentos de linhas de erros incorrigíveis em DRAMs de GPU. |
| Falha no remapeamento de linha da DRAM incorrigível | instance/gpu/dram_row_remapping_failed |
A4X Max ou A4X | Se um remapeamento de linha em DRAMs de GPU falhou devido a um dos seguintes problemas:
|
| Erros incorrigíveis do PCIe | instance/gpu/pcie_fatal_error_count |
A4X Max ou A4X | O número de erros incorrigíveis de interconexão de componentes periféricos express (PCIe). |
| Erros de ECC de cache incorrigíveis | instance/gpu/cache_uncorrectable_ecc_error_count |
A4X Max ou A4X | O número de ECCs incorrigíveis na memória cache. |
Métricas de carga de trabalho de ML
Para monitorar a produtividade, especificamente o goodput, das suas cargas de trabalho de ML, use as seguintes métricas:
| Nome | Tipo de métrica | Série de máquinas compatível | Descrição |
|---|---|---|---|
| Tempo produtivo | workload/goodput_time |
A4X, A4, A3 Ultra ou A3 Mega | O tempo, em segundos, que a carga de trabalho passa em atividades de goodput. Essas atividades são tarefas principais e úteis, como uma transmissão direta ou inversa durante treinamento de modelo. |
| Tempo não produtivo | workload/badput_time |
A4X, A4, A3 Ultra ou A3 Mega | O tempo, em segundos, que a carga de trabalho gasta em atividades de badput. Essas atividades são tarefas de sobrecarga, como carregar ou pré-processar dados para treinamento. |
Métricas de detecção de tarefas retardatárias
As métricas de detecção de valores discrepantes ajudam você a notar e identificar suspeitos. Retardatários são falhas de ponto único e não fatais que acabam atrasando toda a carga de trabalho.
Para monitorar a detecção de tarefas lentas nas suas VMs, use a seguinte métrica:
| Nome | Tipo de métrica | Série de máquinas compatível | Descrição |
|---|---|---|---|
| Suspeita de stragglers | instance/gpu/straggler_status |
A4X, A4, A3 Ultra ou A3 Mega | Se uma VM é suspeita de ser uma atrasada que está afetando o desempenho da carga de trabalho. Recomendamos que você tome medidas em relação a suspeitas de valores discrepantes somente quando outras métricas indicarem que a carga de trabalho está enfrentando problemas. |
Também é possível conferir as métricas de detecção de atrasos nas entradas de registro de uma instância A4X, A4, A3 Ultra ou A3 Mega. Por exemplo, é possível usar as seguintes consultas:
| Descrição | Consulta |
|---|---|
| Registros com suspeita de atrasos para VMs específicas. Use esta consulta para verificar se há atrasados suspeitos para uma carga de trabalho específica no seu projeto. |
logName=~ "/logs/compute.googleapis.com%2Fworkload_diagnostic" AND jsonPayload.suspectedStragglersDetection.numNodes > 0 AND jsonPayload.suspectedStragglersDetection.nodes.instanceId="INSTANCE_ID"
Substitua
OR jsonPayload.suspectedStragglersDetection.nodes.instanceId="INSTANCE_ID"
|
| Todos os registros da detecção de atrasos do seu projeto. Use esta consulta para verificar se o serviço de detecção de atrasados está em execução quando nenhum atrasado suspeito é detectado. Devido às limitações, não é possível filtrar os registros sem suspeita de valores discrepantes por VMs específicas. |
|
As métricas de detecção de straggler são particularmente úteis para cargas de trabalho de ML em grande escala pelos seguintes motivos:
Cargas de trabalho de ML em grande escala são muito suscetíveis a atrasos. Cargas de trabalho de ML em grande escala usam computação síncrona e distribuída em massa. Em outras palavras, eles têm muitos componentes altamente interdependentes que são executados simultaneamente. Essa arquitetura torna as cargas de trabalho de ML em grande escala muito suscetíveis a falhas de ponto único, como atrasos.
É muito difícil notar e identificar outliers em cargas de trabalho de ML em grande escala. Para referência, considere que há dois tipos de falhas de ponto único:
Falhas de interrupção: falhas que causam a paralisação de todo o sistema, por exemplo, erros de host e eventos de manutenção. Eles são relativamente simples de detectar e resolver.
Falhas lentas: falhas que causam degradação grave do desempenho sem falhas. É muito difícil identificar e depurar esses problemas.
Devido à natureza de falha lenta, é difícil notar e identificar os atrasados, especialmente em cargas de trabalho síncronas em grande escala.
Ver métricas
Para conferir as métricas das instâncias de computação e dos clusters do Slurm, use os painéis do Monitoring da seguinte maneira:
Para conferir as métricas de infraestrutura e de detecção de tarefas lentas, faça o seguinte:
Para ter uma visão geral rápida da integridade e da performance da sua infraestrutura ou personalizar um painel, use painéis pré-criados.
Para necessidades específicas de monitoramento, crie painéis personalizados.
Para conferir as métricas de carga de trabalho de ML, consulte a documentação sobre como configurar o monitoramento da sua carga de trabalho.
Para ver os registros da detecção de atrasos, acesse os registros de detecção de atrasos.
Se você encontrar problemas ao usar um painel, consulte Resolver problemas de desempenho lento.
Usar painéis predefinidos
Use os painéis do Monitoring pré-criados para o AI Hypercomputer e veja as métricas das instâncias de computação e dos clusters do Slurm. Também é possível criar uma cópia de um painel predefinido e modificá-lo para atender às suas necessidades.
Para usar um painel predefinido para o AI Hypercomputer, faça o seguinte:
-
No console Google Cloud , acesse a página Painéis:
Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo Monitoring.
Na coluna Nome, clique no nome de um dos seguintes painéis com base nas métricas que você quer visualizar:
Para monitorar a integridade da instância de computação, o desempenho da GPU e a detecção de atrasos, use o painel Monitoramento da integridade do Cluster Director.
Para mais informações sobre como usar essas métricas para identificar e analisar problemas, use também o painel do Playbook interativo do GCE: monitoramento da integridade do diretor de cluster.
Para monitorar a eficiência da transmissão de rede, use o painel Eficiência de transmissão do Cluster Director.
Para monitorar a eficiência da rede entre blocos e sub-blocos, use o painel Rede de blocos do Cluster Director.
Para mais informações sobre como usar essas métricas para identificar e analisar problemas, use também o painel do playbook GCE Interactive Playbook - Cluster Director Block Network.
A página de detalhes do painel escolhido é aberta. Use o seletor de período na barra de ferramentas para mudar o período dos dados.
Opcional: para criar uma cópia de um painel e personalizar de acordo com suas necessidades, clique em Copiar painel.
Criar painéis personalizados
Para criar um painel personalizado do Monitoring, faça o seguinte:
Escolha as métricas a serem monitoradas. Se ainda não fez isso, consulte Métricas disponíveis neste documento.
Ver registros de detecção de stragglers
Para conferir os registros de detecção de valores discrepantes usando o Explorador de registros, siga estas etapas:
-
No console do Google Cloud , acesse a página Análise de registros:
Acessar a Análise de registros
Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo Logging.
Por padrão, a página consulta todos os registros no seu projeto. Clique em Interromper consulta.
Use o seletor de período na barra de ferramentas para escolher o período que você quer analisar.
No painel Consulta, insira uma consulta para registros de detecção de atrasados.
Selecione Executar consulta.
Confira a seguir um exemplo de entrada de registro de detecção de atrasados.
{
...
"jsonPayload": {
...
"@type": "type.googleapis.com/ml.aitelemetry.performancedebugging.output.NetworkStragglersOutput",
"suspectedStragglersDetection": {
"numNodes": 4,
"nodes": [
{
"latencyMs": 9,
"instanceId": "INSTANCE_ID_1"
},
{
"latencyMs": 9,
"instanceId": "INSTANCE_ID_2"
},
{
"instanceId": "INSTANCE_ID_3",
"latencyMs": 4
},
{
"instanceId": "INSTANCE_ID_4",
"latencyMs": 0
}
],
"message": "Suspected stragglers detected."
}
},
"resource": {
"type": "project",
"labels": {
"project_id": "PROJECT_NUMBER"
}
},
...
"severity": "INFO",
"logName": "projects/PROJECT_ID/logs/compute.googleapis.com%2Fworkload_diagnostic",
...
}
A entrada de registro inclui os seguintes campos:
numNodes: o número de instâncias de computação suspeitas de serem lentas detectadas no projeto. No exemplo, foram detectadas quatro instâncias de computação suspeitas.instanceId: o ID de uma instância de computação detectada como um possível elemento atrasado.
A seguir
- Observar e monitorar VMs
- Testar clusters usando o scanner de integridade do cluster
- Personalizar painéis para Google Cloud serviços
- Resolver problemas de lentidão de desempenho