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

Lecture de 8 minute(s)
0

Lors de l'exécution de mon application sur une instance Linux Amazon Elastic Compute Cloud (Amazon EC2) accélérée par le GPU NVIDIA, mon application s'est bloquée et, dans le journal système, j'ai trouvé des erreurs Xid spécifiques au GPU. Je souhaite récupérer les informations de diagnostic du GPU et résoudre les erreurs Xid liées au GPU.

Brève description

AWS propose plusieurs familles d'instances EC2 accélérées par GPU. Les GPU sont transmis aux instances invitées pour toutes les familles d'instances EC2 accélérées par GPU. Cela vous permet d'utiliser toutes les capacités du matériel GPU.

Résolution

Lecture et interprétation des diagnostics nvidia-smi

Utilisez l'outil nvidia-smi pour récupérer des statistiques et des diagnostics sur l'état de santé et les performances des GPU NVIDIA connectés à votre instance. Le pilote GPU NVIDIA fournit automatiquement cet outil, notamment toute variante Amazon Machine Image (AMI) de Deep Learning. Pour plus de détails sur l'installation du pilote GPU NVIDIA pour n'importe quelle famille d'instances GPU, consultez la section Installation de pilotes NVIDIA sur des instances Linux.

Exécutez la commande sudo nvidia-smi -q pour interroger les statistiques.

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. Notez que les erreurs ECC agrégées sont comptées tout au long de la durée de vie du GPU. Une valeur positive n'indique pas que l'instance rencontre un problème matériel ou un GPU défectueux. La valeur positive pouvant provenir du passé, il est important de passer en revue 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 non corrigibles sont incrémentées tout au long de la durée de vie de l'instance. Si les erreurs ECC sont volatiles, vous devrez peut-être redémarrer l'instance ou réinitialiser le GPU. En fonction du type d'instance et de la génération du GPU, le redémarrage déclenchera 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 sont généralement bénignes. Le microprogramme du GPU identifie les erreurs sur deux bits.

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, une erreur Xid sera enregistrée dans le journal du système d'exploitation (OS) et le statut de Liste noire des pages en attente sera 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. Ainsi, un compte différent de zéro au lancement de l'instance n'indique ni un problème de matériel actif ni un GPU défectueux.

Instances P4d, P4de, G5 et 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.

Les dernières familles d'instances GPU A100 et A10G isolent et contiennent les erreurs de mémoire par remappage des lignes. À l'instar du retrait dynamique des pages, le remappage des lignes empêche de réutiliser des emplacements connus pour leur mémoire insuffisante. 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 corrigibles peuvent provoquer d'autres erreurs ou des sorties brusques de l'application. Les erreurs non corrigibles sont enregistrées dans le journal du système d'exploitation sous forme d'erreurs Xid.

Les lignes remappées, des pages en attente, qui sont activées après une erreur non corrigible nécessitent une réinitialisation du GPU pour retirer l'emplacement où la mémoire est insuffisante. 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

En cas d'échec du remappage, consultez la section Arrêt et démarrage de l'instance. L'arrêt et le démarrage de l'instance font migrer cette dernière vers un nouvel hôte sous-jacent doté d'un GPU sain.

Détection de GPU défectueux

AWS utilise l'automatisation pour effectuer régulièrement des diagnostics et détecter les GPU défectueux. Tous les GPU défectueux en raison d'erreurs matérielles sont finalement identifiés et automatiquement remplacés.

Modes de défaillance

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 la catégorisation et la description de ces erreurs, consultez la section Erreurs Xid sur le site Web de NVIDIA.

La liste d'erreurs Xid courantes ci-après inclut les bonnes pratiques de résolution des problèmes :

Nombre incorrect de GPU ou GPU manquants

Exécutez la commande suivante :

nvidia-smi —list-gpus | wc -l

Dans la sortie de commande, assurez-vous que le nombre de GPU connectés correspond au nombre attendu de GPU pour votre type d'instance. S'il manque un GPU, consultez la section Arrêt et démarrage de l'instance.

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.

Les erreurs précédentes indiquent qu'une erreur ECC s'est produite. Pour résoudre ce problème, suivez les étapes décrites dans la section Nombre incorrect de GPU ou GPU manquants.

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

L'erreur Xid 79 indique que l'instance ne communique plus 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, voir Arrêt et démarrage de l'instance.

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

L'erreur InfoRoom is corrupted indique qu'une partie du microprogramme du GPU est corrompue. 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, voir Arrêt et démarrage de l'instance.

NVRM: Xid 119 PCI:0000:00:00): Timeout waiting for RPC from GSP!
NVRM: Xid 120 PCI:0000:00:00): GSP Error: Task 1 raised error code ...

Les erreurs précédentes se produisent lorsque le Processeur système GPU (GSP) est activé. Vérifiez que le GSP est désactivé depuis le pilote GPU ou le module du noyau.

Bonnes pratiques

  • Dans la mesure du possible, utilisez le dernier pilote et le moteur d'exécution CUDA. Des correctifs, des améliorations et des optimisations sont fréquemment introduits dans les nouvelles versions du pilote GPU. Toutefois, ces mises à jour peuvent contenir des modifications fonctionnelles. Commencez par préparer et tester les mises à jour des pilotes sur les instances GPU non destinées à la production.
  • À l'instar des processeurs x86 classiques dotés de la technologie Turbo Boost, les GPU ont une vitesse de cœur et d'horloge mémoire qui change de manière 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. Pour en savoir plus, consultez la section Optimisation des paramètres GPU.
  • Éteignez le GSP. Sur les dernières générations d'instances, les GPU NVIDIA incluent la fonctionnalité du microprogramme du GPU. Le GSP est conçu pour décharger l'initialisation du GPU et d'autres tâches de gestion. Pour en savoir plus, consultez la section Éteindre le microprogramme du GPU sur le site Web de NVIDIA.
  • Utilisez l'agent Amazon CloudWatch pour surveiller vos GPU. L'agent CloudWatch prend en charge de manière native les métriques GPU NVIDIA que vous pouvez collecter et surveiller depuis CloudWatch. Pour en savoir plus, consultez la section Collecter les métriques GPU NVIDIA.

Pour contacter AWS Support

Indiquez l'ID de votre instance et le résultat de la commande nvidia-smi -q dans votre demande d'assistance.

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. Le script crée un fichier journal compressé nommé nvidia-bug-report.log.gz dans votre répertoire de travail en cours, fichier que vous pouvez récupérer et fournir à AWS Support.

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