Come posso risolvere gli errori Xid sulla mia istanza Linux EC2 accelerata da GPU NVIDIA?

7 minuti di lettura
0

Durante l'esecuzione della mia applicazione su un'istanza Linux Amazon Elastic Compute Cloud (Amazon EC2) accelerata da GPU NVIDIA, la mia applicazione si è bloccata e ho trovato errori Xid specifici della GPU nel log di sistema. Desidero recuperare informazioni diagnostiche dalla GPU e risolvere gli errori Xid relativi alla GPU.

Breve descrizione

AWS offre diverse famiglie di istanze EC2 con accelerazione GPU. Le GPU vengono trasferite alle istanze guest per tutte le famiglie di istanze EC2 accelerate da GPU. Ciò consente di utilizzare tutte le funzionalità dell'hardware della GPU.

Risoluzione

Lettura e interpretazione della diagnostica nvidia-smi

Usa lo strumento nvidia-smi per recuperare statistiche e diagnostica sullo stato e le prestazioni delle GPU NVIDIA collegate alla tua istanza. Il driver della GPU NVIDIA fornisce automaticamente questo strumento, inclusa qualsiasi variante dell'Amazon Machine Image (AMI) di Deep Learning. Per i dettagli sull'installazione del driver GPU NVIDIA per qualsiasi famiglia di istanze GPU, consulta Installazione dei driver NVIDIA su istanze Linux.

Esegui il comando sudo nvidia-smi -q per interrogare le statistiche.

Esempio di statistiche sulla memoria

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

Tutte le generazioni di GPU NVIDIA registrano statistiche aggregate e volatili sulla memoria dell'hardware della GPU. Nota che i contatori di errori ECC aggregati persistono per tutta la durata della GPU. Un valore positivo non indica che l'istanza sta riscontrando un problema hardware o una GPU difettosa. Il valore positivo potrebbe provenire dal passato, quindi è importante rivedere le metriche volatili.

Tuttavia, gli errori ECC volatili vengono incrementati da zero, a partire dall'ultima volta che il driver della GPU è stato ricaricato. Gli errori ECC non correggibili vengono incrementati durante la vita dell'istanza. Se gli errori ECC sono volatili, potrebbe essere necessario riavviare l'istanza o reimpostare la GPU. A seconda del tipo di istanza e della generazione della GPU, il riavvio avvia il ritiro della pagina o la rimappatura delle righe per le pagine con memoria danneggiata.

Istanze P3, P3dn, G4dn

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

Le prime generazioni di GPU NVIDIA utilizzano il ritiro dinamico delle pagine. È possibile ignorare gli errori a bit singolo perché sono generalmente benigni. Il firmware della GPU identifica gli errori a doppio bit.

Se il firmware della GPU identifica errori a doppio bit, la GPU interrompe l'elaborazione e causa la chiusura improvvisa dell'applicazione. Se si verificano errori a doppio bit, viene registrato un errore Xid nel log del sistema operativo (OS) e lo stato della lista nera delle pagine in sospeso è . Per risolvere questi errori, riavvia l'istanza per ritirare la posizione di memoria danneggiata. Dopo il riavvio, lo stato della lista nera delle pagine in sospeso viene reimpostato su No.

Nota: I contatori di errore persistono per tutta la durata della GPU. Pertanto, un contatore diverso da zero all'avvio dell'istanza non è indicativo di un problema hardware attivo o di una GPU difettosa.

Istanze 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.

Le famiglie di istanze successive con GPU A100 e A10G isolano e contengono gli errori di memoria mediante la rimappatura delle righe. Analogamente al ritiro dinamico delle pagine, la modifica della mappatura delle righe impedisce il riutilizzo di posizioni di memoria degradate note. La modifica della rimappatura delle righe sostituisce lo schema di ritiro delle pagine nelle GPU di generazione precedente.

È possibile ignorare gli errori di memoria correggibili. Errori non correggibili possono causare errori o uscite improvvise dell'applicazione. Gli errori non correggibili vengono registrati nel registro del sistema operativo come errori Xid.

Le righe rimappate in sospeso che vengono attivate dopo un errore non correggibile richiedono un ripristino della GPU per rimuovere la posizione di memoria danneggiata. Riavvia l'istanza per ripristinare la GPU. Oppure, esegui il seguente comando per reimpostare manualmente la GPU:

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

Se si verifica un errore di rimappatura, arresta e avvia l'istanza. L'arresto e l'avvio dell'istanza eseguono la migrazione dell'istanza su un nuovo host sottostante con una GPU integra.

Rilevamento di GPU non integre

AWS utilizza l'automazione per eseguire regolarmente la diagnostica e rilevare GPU non integre. Tutte le GPU che si trovano in uno stato non integro a causa di errori hardware vengono infine identificate e sostituite automaticamente.

Modalità di guasto

Il driver GPU per tutte le generazioni di GPU NVIDIA scrive gli errori nei log del sistema operativo come errori Xid. Per la categorizzazione e la descrizione di questi errori, vedere Errori Xid sul sito Web di NVIDIA.

Il seguente elenco di errori Xid comuni include le migliori pratiche per risolvere i problemi:

Numero errato di GPU o mancano GPU

Esegui il seguente comando:

nvidia-smi —list-gpus | wc -l

Nell'output del comando, assicurati che il numero di GPU collegate corrisponda al numero previsto di GPU per il tuo tipo di istanza. Se manca una GPU, interrompi e avvia l'istanza.

Xid 48: Si è verificato un DBE.
Xid 63: Una pagina è stata ritirata con successo.
Xid 64: Una pagina non è stata ritirata a causa di un errore.

Gli errori precedenti indicano che si è verificato un errore ECC. Per risolvere questo problema, completa i passaggi nella sezione Numero errato di GPU o GPU mancanti.

NVRM: Xid 79 (PCI:0000:00:00): La GPU è caduta dal bus.

L'errore Xid 79 indica che l'istanza ha perso la comunicazione con la GPU sottostante. Per risolvere questo problema, riavvia l'istanza. Se il problema persiste dopo il riavvio, interrompi e avvia l'istanza.

ATTENZIONE: l'infoROM è corrotta nella gpu 0000:00:00.0

L'errore infoROM is corrupted indica che una parte del firmware della GPU è danneggiata. Per risolvere questo problema, riavvia l'istanza o ripristina la GPU. Se il problema persiste dopo il riavvio, interrompi e avvia l'istanza.

NVRM: Xid 119 PCI:0000:00:00): Timeout in attesa dell'RPC da parte di GSP!
NVRM: Xid 120 PCI:0000:00:00): Errore GSP: L'attività 1 ha generato un codice di errore...

Gli errori precedenti si verificano quando GPU Systems Processor (GSP) è acceso. Verifica che il GSP sia disattivato dal driver della GPU o dal modulo del kernel.

Best practice

  • Quando possibile, usa il driver e il runtime CUDA più recenti. Correzioni, miglioramenti e ottimizzazioni vengono spesso introdotti con le versioni più recenti del driver GPU. Tuttavia, questi aggiornamenti potrebbero contenere modifiche funzionali. Prima gli aggiornamenti dei driver di fase e test sulle istanze GPU non di produzione.
  • Simili alle comuni CPU x86 con turbo boost, le GPU hanno un core e una velocità di clock della memoria che cambiano dinamicamente a seconda del carico. Per prestazioni ottimali, imposta in modo persistente la velocità massima del core della GPU e della memoria. Per ulteriori informazioni, consulta Ottimizzare le impostazioni della GPU.
  • Disattiva il GSP. Nelle ultime generazioni di istanze, le GPU NVIDIA includono la funzionalità firmware GSP. Il GSP è progettato per ridurre il carico di inizializzazione della GPU e altre attività di gestione. Per ulteriori informazioni, vedere Disattivazione del firmware GSP sul sito Web di NVIDIA.
  • Usa l'agente Amazon CloudWatch per monitorare le tue GPU. L'agente CloudWatch supporta nativamente i parametri della GPU NVIDIA che puoi raccogliere e monitorare da CloudWatch. Per ulteriori informazioni, consulta Raccogli i parametri della GPU NVIDIA.

Contatta il Supporto AWS

Fornisci il tuo ID di istanza e l'output del comando nvidia-smi -q nel tuo caso di supporto.

Inoltre, esegui il comando sudo nvidia-bug-report.sh incluso nel driver della GPU NVIDIA. Lo script nvidia-bug-report.sh acquisisce i log delle chiavi e altre informazioni diagnostiche. Lo script crea un file di log compresso denominato nvidia-bug-report.log.gz nella tua directory di lavoro corrente che puoi recuperare e fornire al Supporto AWS.

AWS UFFICIALE
AWS UFFICIALEAggiornata 10 mesi fa