Partager via


En savoir plus sur les métriques GPU NVIDIA pour optimiser les performances et l’utilisation du GPU sur Azure Kubernetes Service (AKS)

Un positionnement et une optimisation efficaces des charges de travail GPU nécessitent souvent une visibilité sur l’utilisation et les performances des ressources. Les métriques GPU managées sur AKS (préversion) fournissent une collecte et une exposition automatisées de l’utilisation du GPU, de la mémoire et des données de performances sur les pools de nœuds compatibles GPU NVIDIA. Cela permet aux administrateurs de plateforme d’optimiser les ressources de cluster et les développeurs pour régler et déboguer des charges de travail avec une instrumentation manuelle limitée.

Dans cet article, vous allez découvrir les métriques GPU collectées par l’exportateur NVIDIA Data Center GPU Manager (DCGM) avec un pool de nœuds entièrement managé avec GPU (préversion) dans Azure Kubernetes Service (AKS).

Important

Les fonctionnalités d’évaluation AKS sont disponibles en libre-service et font l’objet d’un abonnement. Les versions d'essai sont fournies « en l’état » et « selon disponibilité », et elles sont exclues des contrats de niveau de service et de la garantie limitée. Les versions préliminaires AKS sont, dans la mesure du possible, partiellement couvertes par le service clientèle. Par conséquent, ces fonctionnalités ne sont pas destinées à une utilisation en production. Pour plus d’informations, consultez les articles de support suivants :

Conditions préalables

Limites

Vérifier que les composants GPU managés sont installés

Après avoir créé votre pool de nœuds GPU NVIDIA managé (préversion) en suivant ces instructions, vérifiez que les composants logiciels GPU ont été installés avec la commande az aks nodepool show :

az aks nodepool show \
    --resource-group <resource-group-name> \
    --cluster-name <cluster-name> \
    --name <node-pool-name> \

Votre sortie doit inclure les valeurs suivantes :

...
...
"gpuInstanceProfile": …
    "gpuProfile": {
      "driver": "Install"
    },
...
...

Présentation des métriques GPU

Métriques d’utilisation du GPU

Les métriques d’utilisation du GPU indiquent le pourcentage de temps que les cœurs du GPU traitent activement. Les valeurs élevées indiquent que le GPU est fortement utilisé, ce qui est généralement souhaitable pour les charges de travail telles que l’entraînement ou le traitement des données. L’interprétation de cette métrique doit prendre en compte le type de charge de travail : l’apprentissage IA conserve généralement un taux d’utilisation élevé, alors que l’inférence peut avoir une utilisation intermittente en raison du trafic en rafale.

Utilisation de la mémoire : indique le pourcentage de mémoire GPU en cours d’utilisation. Une utilisation élevée de la mémoire sans utilisation élevée du GPU peut indiquer des charges de travail liées à la mémoire où le GPU attend les transferts de mémoire. Une faible utilisation de la mémoire peut suggérer que la charge de travail est trop petite pour tirer pleinement parti du GPU.

Efficacité de SM (multiprocesseur de streaming) : mesure l’efficacité avec laquelle les cœurs du GPU sont utilisés. Une faible efficacité de SM indique que les cœurs sont inactifs ou sous-utilisés en raison d’un déséquilibre de charge de travail ou d’une conception de noyau non optimal. L’efficacité élevée est idéale pour les applications lourdes de calcul.

Métriques de mémoire

Utilisation de la bande passante mémoire : reflète la quantité de bande passante mémoire théorique consommée. Une utilisation élevée de la bande passante avec une faible utilisation du calcul peut indiquer une charge de travail liée à la mémoire. À l’inverse, une utilisation élevée dans la bande passante de calcul et de mémoire suggère une charge de travail bien équilibrée.

Erreurs de mémoire : effectue le suivi des erreurs ECC (Error-Correcting Code) si elle est activée. Un grand nombre d’erreurs peut indiquer une dégradation matérielle ou des problèmes thermiques et doit être surveillé pour la fiabilité.

Métriques de température et d’alimentation

Température du GPU : indique la température d’exploitation du GPU. Des températures élevées persistantes peuvent déclencher une réduction thermique, ce qui réduit les performances. L’interprétation idéale de cette métrique implique l’observation de la température par rapport aux limites thermiques du GPU et à la capacité de refroidissement.

Utilisation de l'énergie : affiche une consommation instantanée. La comparaison de l’utilisation de l’alimentation à TDP (puissance thermique) permet de comprendre si le GPU est poussé à ses limites. Des chutes soudaines de puissance peuvent indiquer un throttling ou une sous-utilisation.

Horloges et métriques de fréquence

Horloge GPU : fréquence d’exploitation réelle du GPU. Combiné à l’utilisation, cela permet de déterminer si le GPU subit une réduction de performances ou fonctionne en contreperformance par rapport à son potentiel.

Horloge mémoire : fréquence d’exploitation de la mémoire GPU. Les charges de travail liées à la mémoire peuvent bénéficier d’horloges de mémoire supérieures ; une incompatibilité entre la mémoire et l’utilisation du calcul peut mettre en évidence les goulots d’étranglement.

Bande passante PCIe : mesure le débit sur le bus PCIe. Une faible utilisation avec des charges de travail lourdes peut suggérer que la communication entre le CPU et le GPU n’est pas un goulot d’étranglement. Une utilisation élevée peut pointer vers des limitations de transfert de données ayant un impact sur les performances.

Bande passante NVLink : cette métrique est similaire à la bande passante PCIe, mais spécifique aux interconnexions NVLink et pertinente dans les systèmes multi-GPU pour la communication entre GPU. Une utilisation élevée de NVLink avec une faible utilisation de SM peut indiquer des retards de synchronisation ou de transfert de données.

Métriques d’erreur et de fiabilité

Pages mises hors service et erreurs XID : suivez les erreurs de mémoire GPU et les échecs critiques. Les occurrences fréquentes signalent des erreurs matérielles potentielles et nécessitent une attention particulière pour les charges de travail longues.

Conseils d’interprétation

Les métriques DCGM doivent toujours être interprétées en contexte avec le type de votre charge de travail sur AKS. Une charge de travail nécessitant beaucoup de ressources de calcul devrait idéalement se caractériser par une utilisation élevée du GPU et des SM, une utilisation élevée de la bande passante de la mémoire, des températures stables en dessous des seuils de throttling, et une alimentation proche, mais en dessous de l'indice de puissance thermique (TDP).

Les charges de travail liées à la mémoire peuvent afficher une utilisation élevée de la mémoire et de la bande passante, mais une faible utilisation du calcul. Les anomalies telles que l’utilisation faible avec une consommation d’énergie ou une température élevée indiquent souvent une limitation, une planification inefficace ou des goulots d’étranglement au niveau du système.

La surveillance des tendances au fil du temps plutôt que des instantanés uniques est essentielle. Les baisses soudaines d’utilisation ou de pics d’erreurs révèlent souvent des problèmes sous-jacents avant qu’elles n’affectent les charges de travail de production. La comparaison des métriques entre plusieurs GPU peut également aider à identifier les valeurs hors norme ou les appareils mal gérés dans un cluster. La compréhension de ces métriques en combinaison, plutôt que l’isolation, fournit un aperçu clair de l’efficacité du GPU et des performances des charges de travail.

Métriques GPU courantes

Les métriques NVIDIA DCGM suivantes sont généralement évaluées pour les performances des pools de nœuds GPU sur Kubernetes :

Nom de la métrique GPU Meaning Plage typique / Indicateur Conseil d’utilisation
DCGM_FI_DEV_GPU_UTIL Utilisation du GPU (% temps que les cœurs GPU sont actifs) 0 à 100% (plus élevé est meilleur) Surveiller par nœud et par pod ; les valeurs faibles peuvent indiquer des goulots d’étranglement de la CPU ou des E/S
DCGM_FI_DEV_SM_UTIL Efficacité du multiprocesseur de streaming (% cœurs actifs) 0 à 100% Les valeurs faibles avec une utilisation élevée de la mémoire indiquent une charge de travail liée à la mémoire
DCGM_FI_DEV_FB_USED Mémoire Framebuffer utilisée (octets) de 0 à la mémoire totale Utiliser les limites de mémoire GPU pour les pods et suivre l'utilisation de la mémoire par pod.
DCGM_FI_DEV_FB_FREE Mémoire GPU gratuite (octets) de 0 à la mémoire totale Utile pour la planification et pour éviter les erreurs OOM
DCGM_FI_DEV_MEMORY_UTIL Utilisation de la mémoire (%) 0 à 100% Combiner avec l’utilisation du GPU/SM pour déterminer les charges de travail liées à la mémoire
DCGM_FI_DEV_MEMORY_CLOCK Fréquence d’horloge de mémoire actuelle (MHz) De 0 à l’horloge mémoire maximale Les faibles valeurs en cas d'utilisation élevée de la mémoire peuvent indiquer un ralentissement.
DCGM_FI_DEV_POWER_USAGE Utilisation instantanée de l’alimentation (Watts) 0 à TDP Les baisses pendant une utilisation élevée peuvent indiquer un bridage.
DCGM_FI_DEV_TEMPERATURE Température gpu (°C) ~30 à 85°C normal Alerte sur les températures élevées soutenues
DCGM_FI_DEV_NVLINK_RX Utilisation de la bande passante de réception NVLink (%) 0 à 100% Goulot d’étranglement de synchronisation à plusieurs GPU s’il est élevé avec une faible utilisation de SM
DCGM_FI_DEV_XID_ERRORS Erreurs critiques GPU signalées par le pilote En général, 0 Enquête immédiate requise, peut teinter le nœud dans Kubernetes

Pour en savoir plus sur la suite complète de métriques GPU, consultez la documentation NVIDIA DCGM En amont.

Étapes suivantes