Comment résoudre les erreurs Xid sur mon instance Linux EC2 accélérée par le GPU NVIDIA ?

Lecture de 7 minute(s)
1

Lorsque j'exécute mon application sur une instance Linux Amazon Elastic Compute Cloud (Amazon EC2) accélérée par GPU NVIDIA, mon application se bloque. De plus, je reçois des erreurs Xid spécifiques au GPU dans le journal système. Je souhaite récupérer les informations de diagnostic du GPU et résoudre les erreurs Xid liées au GPU.

Résolution

Remarque : La résolution suivante permet de résoudre les problèmes liés aux types d'instances G4, G5 et G6. Les GPU sont transmis aux instances invitées pour toutes les familles d'instances EC2 accélérées par GPU.

Récupérer vos diagnostics nvidia-smi

Utilisez l'outil nvidia-smi pour récupérer des statistiques et des diagnostics sur l'état et les performances des GPU NVIDIA attachés à votre instance. Le pilote GPU NVIDIA fournit automatiquement l'outil et inclut toutes les options AWS Deep Learning Amazon Machine Image (DLAMI). Pour plus d'informations sur l'installation du pilote GPU NVIDIA pour n'importe quelle famille d'instances GPU, consultez la section Options d'installation.

Pour interroger les statistiques, exécutez la commande sudo nvidia-smi -q.

Exemple de statistiques de mémoire :

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

Toutes les générations de GPU NVIDIA enregistrent des statistiques de mémoire agrégées et volatiles du matériel GPU. Les compteurs d’erreurs ECC agrégés persistent tout au long de la durée de vie du GPU. Comme la valeur positive peut provenir d'un problème antérieur, vous devez également vérifier les métriques volatiles. Cependant, les erreurs ECC volatiles sont incrémentées à partir de zéro, et ce à compter du dernier rechargement du pilote GPU.

Les erreurs ECC que vous ne corrigez pas augmentent pendant la durée de vie de l'instance. Toutefois, vous pouvez corriger les erreurs ECC. Pour réinitialiser leur compteur, redémarrez l'instance ou réinitialisez le GPU. En fonction du type d'instance et de la génération du GPU, le redémarrage déclenche un retrait de pages ou un remappage de lignes en cas de mémoire insuffisante pour certaines pages.

Instances P3, P3dn, G4dn :

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

Les premières générations de GPU NVIDIA utilisent le retrait dynamique des pages. Vous pouvez ignorer les erreurs sur un seul bit, car elles ne sont généralement pas à l'origine de problèmes.

Si le microprogramme du GPU détecte des erreurs sur deux bits, le GPU arrêtera le traitement et provoquera la fermeture brutale de l'application. Si des erreurs sur deux bits se produisent, le système d'exploitation (OS) journalise une erreur Xid et le statut de Liste noire des pages en attente est Oui. Pour résoudre ces erreurs, redémarrez l'instance afin de retirer l'emplacement où la mémoire est insuffisante. Après le redémarrage, le statut de Liste noire des pages en attente repassera à Non.

Remarque : Les erreurs sont comptées tout au long de la durée de vie du GPU. Un compteur différent de zéro au lancement de l'instance ne signifie pas qu'il y ait un problème matériel actif ou un GPU défaillant.

Instances P4d, P4de, G5, G5g et G6 :

    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.

Les familles d'instances ultérieures incluant des GPU A100 et A10G isolent et contiennent des erreurs de mémoire grâce au remappage de lignes qui empêche la réutilisation des emplacements de mémoire dégradés connus. Le remappage des lignes remplace le schéma de retrait des pages des GPU de génération précédente.

Vous pouvez ignorer les erreurs de mémoire qui peuvent être corrigées. Les erreurs non corrigeables peuvent provoquer des erreurs ou la fermeture abrupte de l'application et sont enregistrées dans le journal du système d'exploitation en tant qu'erreurs Xid.

Lorsqu'une erreur non corrigible active des lignes remappées en attente, vous devez réinitialiser le GPU pour supprimer l'emplacement mémoire incorrect. Redémarrez l'instance pour réinitialiser le GPU. Vous pouvez également exécuter la commande suivante pour réinitialiser manuellement le GPU :

sudo nvidia-smi -i GPU_UUID -r

Remarque : Remplacez GPU_UUID par votre ID de GPU.

En cas d'échec de remappage, arrêtez et démarrez l'instance pour la migrer vers un nouvel hôte sous-jacent incluant un GPU sain.

Remarque : AWS effectue régulièrement des diagnostics pour détecter et remplacer automatiquement les GPU non sains.

Résoudre les modes d’échec

Le pilote GPU de toutes les générations de GPU NVIDIA enregistre les erreurs dans les journaux du système d'exploitation sous forme d'erreurs Xid. Pour plus d'informations sur ces erreurs, consultez la section Erreurs Xid sur le site Web de NVIDIA.

Nombre incorrect de GPU ou GPU manquants

Pour afficher tous les GPU attachés, exécutez la commande suivante :

nvidia-smi --list-gpus | wc -l

Dans la sortie de commande, assurez-vous que le nombre de GPU attachés correspond au nombre de GPU attendu pour votre type d'instance. Si un GPU est manquant, consultez la section Arrêter et démarrer l'instance.

Vous pouvez également suivre les étapes de dépannage précédentes pour résoudre les exemples d'erreurs ECC suivants :

  • « Xid 48: A DBE has occurred »
  • « Xid 63: A page has successfully been retired »
  • « Xid 64: A page has failed retirement due to an error »

NVRM: Xid 79 (PCI:0000:00:00): GPU has fallen off the bus.

L'erreur Xid 79 se produit lorsque l'instance perd la communication avec le GPU sous-jacent. Pour résoudre ce problème, redémarrez l'instance. Si le problème persiste après le redémarrage, consultez la section Arrêter et démarrer l'instance.

WARNING: infoROM is corrupted at gpu 0000:00:00.0

L'erreur infoROM est endommagé lorsqu'une partie du microprogramme du GPU est endommagée. Pour résoudre ce problème, redémarrez l'instance ou réinitialisez le GPU. Si le problème persiste après le redémarrage, consultez la section Arrêter et démarrer l'instance.

NVRM: Xid 119 PCI:0000:00:00): Timeout waiting for RPC from GSP

-ou-

NVRM: Xid 120 PCI:0000:00:00): GSP Error: Task 1 raised error code

Les erreurs précédentes se produisent lorsque vous activez Processeur système GPU (GSP). Pour résoudre ce problème, désactivez le GSP depuis le pilote GPU ou le module du noyau. Pour obtenir des instructions sur la désactivation du GSP, consultez la section 4.2.6. Désactivation du microprogramme GSP sur le site Web de NVIDIA.

Éviter les futures erreurs Xid

Dans la mesure du possible, utilisez le dernier pilote et le moteur d'exécution CUDA. Les versions de pilotes GPU introduisent fréquemment des correctifs, des améliorations et des optimisations. Toutefois, les mises à jour peuvent également contenir des modifications fonctionnelles. Commencez par préparer et tester les mises à jour des pilotes sur les instances GPU non destinées à la production.

Les GPU ont une fréquence de cœur et d'horloge mémoire qui change de façon dynamique en fonction de la charge. Pour de meilleures performances, réglez constamment la vitesse de cœur et d'horloge mémoire du GPU au maximum.

Désactivez le GSP. Sur les dernières générations d'instances, les GPU NVIDIA incluent la fonctionnalité du microprogramme du GPU. Pour obtenir des instructions sur la désactivation du GSP, reportez-vous à la page 4.2.6. Désactivation du microprogramme GSP sur le site Web de NVIDIA.

Utilisez également l'agent Amazon CloudWatch pour surveiller les métriques de votre GPU.

Si vous effectuez les étapes de dépannage précédentes et que vous rencontrez toujours des erreurs Xid, ouvrez un dossier AWS Support. Indiquez l'ID de votre instance et la sortie de la commande nvidia-smi -q. Puis, exécutez la commande sudo nvidia-bug-report.sh qui est incluse dans le pilote GPU NVIDIA. Le script nvidia-bug-report.sh capture les journaux de clés et d'autres informations de diagnostic dans votre répertoire de travail actuel. Joignez le fichier journal compressé nvidia-bug-report.log.gz à votre demande de support.

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 3 mois