Como soluciono erros de Xid na minha instância EC2 Linux acelerada por GPU NVIDIA?

8 minuto de leitura
0

Ao executar meu aplicativo em uma instância Linux Amazon Elastic Compute Cloud (Amazon EC2) acelerada por GPU NVIDIA, meu aplicativo falhou e eu encontrei erros de Xid específicos da GPU no log do sistema. Quero recuperar informações de diagnóstico da GPU e solucionar erros de Xid relacionados à GPU.

Breve descrição

A AWS oferece várias famílias de instâncias do EC2 com aceleração de GPU. As GPUs são passadas para instâncias convidadas de todas as famílias de instâncias EC2 aceleradas por GPU. Isso permite que você use todos os recursos do hardware da GPU.

Resolução

Leitura e interpretação de diagnósticos nvidia-smi

Use a ferramenta nvidia-smi para recuperar estatísticas e diagnósticos sobre a integridade e o desempenho das GPUs NVIDIA que estão conectadas à sua instância. O driver da GPU NVIDIA fornece automaticamente essa ferramenta, incluindo qualquer variante do aprendizado profundo da Amazon Machine Image (AMI). Para obter detalhes sobre a instalação do driver da GPU NVIDIA para qualquer família de instâncias da GPU, consulte Instalar drivers NVIDIA em instâncias Linux.

Execute o comando sudo nvidia-smi -q para consultar estatísticas.

Exemplo de estatísticas de memória

ECC Errors
        Volatile                              # Errors counted since last GPU driver reload
            SRAM Correctable            : 0
            SRAM Uncorrectable          : 0
            DRAM Correctable            : 0
            DRAM Uncorrectable          : 0
        Aggregate                             # Errors counted for the life of the GPU
            SRAM Correctable            : 0
            SRAM Uncorrectable          : 0
            DRAM Correctable            : 0
            DRAM Uncorrectable          : 0

Todas as gerações de GPUs NVIDIA registram estatísticas de memória agregadas e voláteis do hardware da GPU. Observe que os contadores de erros ECC agregados persistem durante a vida útil da GPU. Um valor positivo não indica que a instância está enfrentando um problema de hardware ou uma GPU com defeito. O valor positivo pode ser do passado, por isso é importante revisar as métricas voláteis.

No entanto, os erros voláteis de ECC são incrementados do zero, a partir da última vez em que o driver da GPU foi recarregado. Erros de ECC incorrigíveis são incrementados durante a vida útil da instância. Se os erros de ECC forem voláteis, talvez seja necessário reinicializar a instância ou redefinir a GPU. Dependendo do tipo de instância e da geração da GPU, a reinicialização inicia a retirada da página ou o remapeamento de linhas para páginas com memória ruim.

Instâncias P3, P3dn, G4dn

    Retired Pages
        Single Bit ECC              : 0
        Double Bit ECC              : 0
        Pending Page Blacklist      : No

As primeiras gerações de GPUs NVIDIA usam a retirada dinâmica de páginas. Você pode ignorar erros de um único bit porque eles geralmente são benignos. O firmware da GPU identifica erros de dois bits.

Se o firmware da GPU identificar erros de dois bits, a GPU interromperá o processamento e fará com que o aplicativo seja encerrado abruptamente. Se ocorrerem erros de dois bits, um erro Xid será registrado no log do sistema operacional (SO) e o status da Lista de proibições de páginas pendentes será Sim. Para resolver esses erros, reinicialize a instância para retirar o local de memória incorreto. Após a reinicialização, o status da Lista de proibições de páginas pendentes é redefinido para Não.

Observação: os contadores de erros persistem por toda a vida útil da GPU. Portanto, um contador diferente de zero na inicialização da instância não é indicativo de um problema de hardware ativo ou de uma GPU com defeito.

**Instâncias P4d, P4de, G5 e G5g **

    Remapped Rows
        Correctable Error                 : 0 # Can safely ignore.
        Uncorrectable Error               : 0 # If > 0, review system logs for Xid errors
        Pending                           : No # If Yes, an instance reboot or GPU reset is required.
        Remapping Failure Occurred        : No # Should always be No. If Yes, please stop/start the instance.

Famílias de instâncias posteriores com GPUs A100 e A10G isolam e contêm erros de memória por meio do remapeamento de linha. Semelhante à retirada dinâmica de páginas, o remapeamento de linhas impede a reutilização de locais de memória conhecidos com degradação. O remapeamento de linhas substitui o esquema de retirada da página nas GPUs de gerações anteriores.

Você pode ignorar erros de memória corrigíveis. Erros incorrigíveis podem causar erros ou encerramentos abruptos do aplicativo. Erros incorrigíveis são registrados no registro do sistema operacional como erros Xid.

As linhas remapeadas pendentes que são ativadas após um erro incorrigível exigem uma redefinição da GPU para retirar a localização incorreta da memória. Reinicialize a instância para redefinir a GPU. Ou execute o seguinte comando para redefinir manualmente a GPU:

sudo nvidia-smi -i <GPU UUID> -r

Se ocorrer uma falha no remapeamento, interrompa e inicie a instância. Interromper e iniciar a instância migra a instância para um novo host subjacente com uma GPU íntegra.

Detecção de GPUs não íntegras

A AWS usa a automação para realizar diagnósticos regularmente e detectar GPUs não íntegras. Todas as GPUs que estão em um estado não íntegro devido a erros de hardware são eventualmente identificadas e substituídas automaticamente.

Modos de falha

O driver da GPU de todas as gerações de GPUs NVIDIA grava erros nos logs do sistema operacional como erros Xid. Para categorizar e descrever esses erros, consulte Erros Xid no site da NVIDIA.

A lista a seguir de erros comuns do Xid inclui as práticas recomendadas para resolver os problemas:

Número incorreto de GPUs ou faltam GPUs

Execute o seguinte comando:

nvidia-smi —list-gpus | wc -l

Na saída do comando, certifique-se de que o número de GPUs conectadas corresponda ao número esperado de GPUs para seu tipo de instância. Se uma GPU estiver faltando, pare e inicie a instância.

Xid 48: Ocorreu um DBE.
Xid 63: Uma página foi retirada com sucesso.
Xid 64: Uma página falhou na retirada devido a um erro.

Os erros anteriores indicam que ocorreu um erro de ECC. Para resolver esse problema, realize as etapas na seção Número incorreto de GPUs ou faltam GPUs.

NVRM: Xid 79 (PCI:0000:00:00): A GPU caiu do barramento.

O erro Xid 79 indica que a instância perdeu a comunicação com a GPU subjacente. Para resolver esse problema, reinicialize a instância. Se o problema persistir após a reinicialização, interrompa e inicie sua instância.

AVISO: o InfoROM está corrompido na gpu 0000:00:00.0

O erro InfoROM corrompido indica que uma parte do firmware da GPU está corrompida. Para resolver esse problema, reinicialize a instância ou redefina a GPU. Se o problema persistir após a reinicialização, interrompa e inicie sua instância.

NVRM: Xid 119 PCI:0000:00:00): Tempo limite esperando o RPC do GSP!
NVRM: Xid 120 PCI:0000:00:00): Erro de GSP: A tarefa 1 gerou o código de erro...

Os erros anteriores ocorrem quando o processador de sistemas da GPU (GSP) está ligado. Verifique se o GSP está desativado no driver da GPU ou no módulo do kernel.

Práticas recomendadas

  • Quando possível, use o driver e o tempo de execução CUDA mais recentes. Correções, melhorias e otimizações são frequentemente introduzidas nas versões mais recentes do driver da GPU. No entanto, essas atualizações podem conter alterações funcionais. Organize e teste primeiro as atualizações de drivers em instâncias de GPU que não são de produção.
  • Semelhante às CPUs x86 comuns com turbo boost, as GPUs têm uma velocidade de núcleo e clock de memória que muda dinamicamente dependendo da carga. Para obter o melhor desempenho, defina constantemente as velocidades do núcleo da GPU e do clock de memória para suas velocidades máximas. Para mais informações, consulte Otimizar as configurações da GPU.
  • Desative o GSP. Nas gerações recentes de instâncias, as GPUs NVIDIA possuem o recurso de firmware GSP. O GSP foi projetado para eliminar a inicialização da GPU e outras tarefas de gerenciamento. Para obter mais informações, consulte Como desativar o firmware do GSP no site da NVIDIA.
  • Use o agente Amazon CloudWatch para monitorar suas GPUs. O agente do CloudWatch oferece suporte nativo às métricas de GPU NVIDIA que você pode coletar e monitorar a partir do CloudWatch. Para obter mais informações, consulte Coletar métricas de GPU da NVIDIA.

Entre em contato com o AWS Support

Forneça o ID da instância e a saída do comando nvidia-smi -q no seu caso de suporte.

Além disso, execute o comando sudo nvidia-bug-report.sh incluído no driver da GPU NVIDIA. O script nvidia-bug-report.sh captura os principais logs e outras informações de diagnóstico. O script cria um arquivo de log compactado chamado ** nvidia-bug-report.log.gz** em seu diretório de trabalho atual que você pode recuperar e fornecer ao AWS Support.

AWS OFICIAL
AWS OFICIALAtualizada há 10 meses