Solution CloudWatch : charge de travail du GPU NVIDIA sur Amazon EC2
Cette solution vous aide à configurer la collecte de métriques prête à l’emploi à l’aide des agents CloudWatch pour les charges de travail du GPU NVIDIA s’exécutant sur des instances EC2. En outre, elle vous aide à mettre en place un tableau de bord CloudWatch préconfiguré. Pour des informations générales sur toutes les solutions d’observabilité CloudWatch, consultez Solutions d’observabilité CloudWatch.
Rubriques
Prérequis
Cette solution est pertinente pour les conditions suivantes :
-
Calcul : Amazon EC2
-
Supporte jusqu’à 500 GPU sur l’ensemble des instances EC2 dans une Région AWS donnée
-
Dernière version de l’agent CloudWatch
-
Agent SSM installé sur l’instance EC2
-
Un pilote NVIDIA doit être installé sur l’instance EC2. Les pilotes NVIDIA sont préinstallés sur certaines Amazon Machine Image (AMI). Sinon, vous pouvez installer le pilote manuellement. Pour plus d'informations, consultez Installer les pilotes NVIDIA sur des instances Linux.
Note
L’agent AWS Systems Manager (SSM) est préinstallé sur certaines Amazon Machine Image (AMI) fournies par AWS et des tiers approuvés. Si l’agent n’est pas installé, vous pouvez l’installer manuellement à l’aide de la procédure correspondant à votre type de système d’exploitation.
Avantages
La solution assure la surveillance de NVIDIA et fournit des informations précieuses pour les cas d’utilisation suivants :
-
Analyser l’utilisation du GPU et de la mémoire pour détecter les goulots d’étranglement ou le besoin de ressources supplémentaires.
-
Surveiller la température et la consommation d’énergie pour s’assurer que les GPU fonctionnent dans des limites sûres.
-
Évaluer les performances de l’encodeur pour les charges de travail vidéo du GPU.
-
Vérifier la connectivité PCIe en fonction de la génération et de la largeur attendues.
-
Surveiller les vitesses d’horloge des GPU pour détecter les problèmes de mise à l’échelle et de limitation.
Vous trouverez ci-dessous les principaux avantages de la solution :
-
Automatise la collecte des métriques pour NVIDIA à l’aide de la configuration de l’agent CloudWatch, éliminant ainsi l’instrumentation manuelle.
-
Fournit un tableau de bord CloudWatch consolidé et préconfiguré pour les métriques NVIDIA. Le tableau de bord traitera automatiquement les métriques des nouvelles instances EC2 NVIDIA configurées à l’aide de la solution, même si ces métriques n’existent pas lorsque vous créez le tableau de bord pour la première fois.
L’image suivante est un exemple de tableau de bord pour cette solution.
Coûts
Cette solution crée et utilise des ressources dans votre compte. Les coûts d’utilisation standard vous sont facturés, y compris les éléments suivants :
-
Toutes les métriques collectées par l’agent CloudWatch sont facturées en tant que métriques personnalisées. Le nombre de métriques utilisées par cette solution dépend du nombre d’hôtes EC2.
-
Chaque hôte EC2 configuré pour la solution publie un total de 17 métriques par GPU.
-
-
Un tableau de bord personnalisé.
-
Les opérations API demandées par l’opérateur CloudWatch pour publier les métriques. Avec la configuration par défaut de cette solution, l’agent CloudWatch appelle PutMetricData une fois par minute pour chaque hôte EC2. Cela signifie que l’API PutMetricData sera appelée
30*24*60=43,200au cours d’un mois de 30 jours pour chaque hôte EC2.
Pour plus d'informations sur la tarification CloudWatch, consultez Tarification d'Amazon CloudWatch
Le calculateur de prix peut vous aider à estimer les coûts mensuels approximatifs de l’utilisation de cette solution.
Pour utiliser le calculateur de prix afin d’estimer les coûts mensuels de votre solution
-
Ouvrez le calculateur de prix Amazon CloudWatch
. -
Dans la section Choisir une région, sélectionnez la région dans laquelle vous souhaitez déployer la solution.
-
Dans la section Métriques, pour Nombre de métriques, entrez
17 * average number of GPUs per EC2 host * number of EC2 instances configured for this solution. -
Dans la section API, pour Nombre de demandes d’API, entrez
43200 * number of EC2 instances configured for this solution. -
Par défaut, l’agent CloudWatch effectue une opération PutMetricData chaque minute pour chaque hôte EC2.
-
Dans la section Tableaux de bord et alarmes, pour Nombre de tableaux de bord, entrez
1. -
Vous pouvez voir vos coûts mensuels estimés en bas du calculateur de prix.
Configuration de l’agent CloudWatch pour cette solution
L’agent CloudWatch est un logiciel qui s’exécute en continu et de manière autonome sur vos serveurs et dans les environnements conteneurisés. Il collecte des métriques, des journaux et des traces à partir de votre infrastructure et de vos applications et les envoie à CloudWatch et X-Ray.
Pour plus d’informations sur l’agent CloudWatch, consultez Collecte des métriques, des journaux et des suivis à l’aide de l’agent CloudWatch.
La configuration de l’agent dans cette solution collecte un ensemble de métriques pour vous aider à démarrer la surveillance et l’observation de votre GPU NVIDIA. L’agent CloudWatch peut être configuré pour collecter plus de métriques du GPU NVIDIA que le tableau de bord n’en affiche par défaut. Pour obtenir une liste de toutes les métriques du GPU NVIDIA que vous pouvez collecter, consultez Collecter des métriques GPU NVIDIA .
Configuration de l’agent pour cette solution
Les métriques collectées par l’agent sont définies dans la configuration de l’agent. La solution fournit des configurations d’agent pour collecter les métriques recommandées avec des dimensions appropriées pour le tableau de bord de la solution.
Utilisez la configuration suivante de l’agent CloudWatch sur les instances EC2 dotées du GPU NVIDIA. La configuration sera stockée en tant que paramètre dans le magasin de paramètres de SSM, comme détaillé plus loin dans Étape 2 : stockez le fichier de configuration recommandé de l’agent CloudWatch dans le magasin de paramètres de Systems Manager..
{ "metrics": { "namespace": "CWAgent", "append_dimensions": { "InstanceId": "${aws:InstanceId}" }, "metrics_collected": { "nvidia_gpu": { "measurement": [ "utilization_gpu", "temperature_gpu", "power_draw", "utilization_memory", "fan_speed", "memory_total", "memory_used", "memory_free", "pcie_link_gen_current", "pcie_link_width_current", "encoder_stats_session_count", "encoder_stats_average_fps", "encoder_stats_average_latency", "clocks_current_graphics", "clocks_current_sm", "clocks_current_memory", "clocks_current_video" ], "metrics_collection_interval": 60 } } }, "force_flush_interval": 60 }
Déployer l’agent pour votre solution
Il existe plusieurs approches pour installer l’agent CloudWatch, en fonction du cas d’utilisation. Nous vous recommandons d’utiliser Systems Manager pour cette solution. Il offre une expérience de console et simplifie la gestion d’une flotte de serveurs gérés au sein d’un seul compte AWS. Les instructions de cette section utilisent Systems Manager et sont destinées aux cas où vous n’avez pas l’agent CloudWatch en cours d’exécution avec les configurations existantes. Vous pouvez vérifier si l’agent CloudWatch est en cours d’exécution en suivant les étapes de la section Vérification de l'exécution de l'agent CloudWatch.
Si vous exécutez déjà l’agent CloudWatch sur les hôtes EC2 où la charge de travail est déployée et que vous gérez les configurations de l’agent, vous pouvez ignorer les instructions de cette section et suivre votre mécanisme de déploiement existant pour mettre à jour la configuration. Veillez à fusionner la configuration de l’agent de GPU NVIDIA avec votre configuration d’agent existante, puis déployez la configuration fusionnée. Si vous utilisez Systems Manager pour stocker et gérer la configuration de l’agent CloudWatch, vous pouvez fusionner la configuration avec la valeur de paramètre existante. Pour plus d’informations, consultez Gestion des fichiers de configuration de l’agent CloudWatch.
Note
L’utilisation de Systems Manager pour déployer les configurations suivantes de l’agent CloudWatch remplacera ou écrasera toute configuration existante de l’agent CloudWatch sur vos instances EC2. Vous pouvez modifier cette configuration pour l’adapter à votre environnement unique ou à votre cas d’utilisation. Les métriques définies dans la configuration sont le minimum requis pour le tableau de bord fourni la solution.
Le processus de déploiement comprend les étapes suivantes :
-
Étape 1 : assurez-vous que les instances EC2 cibles disposent des autorisations IAM requises.
-
Étape 2 : stockez le fichier de configuration de l’agent recommandé dans le magasin de paramètres de Systems Manager.
-
Étape 3 : installez l’agent CloudWatch sur une ou plusieurs instances EC2 à l’aide d’une pile CloudFormation.
-
Étape 4 : vérifiez que l’installation de l’agent est configurée correctement.
Étape 1 : assurez-vous que les instances EC2 cibles disposent des autorisations IAM requises.
Vous devez accorder l’autorisation à Systems Manager d’installer et de configurer l’agent CloudWatch. Vous devez également accorder l’autorisation à l’agent CloudWatch de publier la télémétrie de votre instance EC2 vers CloudWatch. Assurez-vous que le rôle IAM attaché à l’instance dispose des politiques IAM CloudWatchAgentServerPolicy et AmazonSSMManagedInstanceCore.
-
Une fois le rôle créé, attachez-le à vos instances EC2. Pour attacher un rôle à une instance EC2, suivez les étapes de la section Attacher un rôle IAM à une instance.
Étape 2 : stockez le fichier de configuration recommandé de l’agent CloudWatch dans le magasin de paramètres de Systems Manager.
Le magasin de paramètres simplifie l’installation de l’agent CloudWatch sur une instance EC2 en stockant et en gérant de manière sécurisée les paramètres de configuration, éliminant ainsi le besoin de valeurs codées en dur. Cela garantit un processus de déploiement plus sûr et plus flexible, permettant une gestion centralisée et des mises à jour plus faciles des configurations sur plusieurs instances.
Suivez les étapes suivantes pour stocker le fichier de configuration de l’agent CloudWatch recommandé en tant que paramètre dans le magasin de paramètres.
Pour créer le fichier de configuration de l’agent CloudWatch en tant que paramètre
Ouvrez la console AWS Systems Manager à l’adresse https://console.aws.amazon.com/systems-manager/
. -
Vérifiez que la région sélectionnée dans la console est celle où la charge de travail du GPU NVIDIA s’exécute.
-
Dans le volet de navigation, sélectionnez Gestion des applications, Magasin de paramètres.
-
Suivez ces étapes pour créer un nouveau paramètre pour la configuration.
-
Sélectionnez Create parameter (Créer un paramètre).
-
Dans la zone Nom, entrez un nom que vous utiliserez pour référencer le fichier de configuration de l’agent CloudWatch dans les étapes suivantes. Par exemple,
AmazonCloudWatch-NVIDIA-GPU-Configuration. -
(Facultatif) Dans la zone Description, saisissez une description pour le paramètre.
-
Pour Niveau de paramètre, choisissez Standard.
-
Pour Type, choisissez String (Chaîne).
-
Pour Type de données, choisissez texte.
-
Dans la case Valeur, collez le bloc JSON correspondant qui a été répertorié dans Configuration de l’agent pour cette solution.
-
Sélectionnez Create parameter (Créer un paramètre).
-
Étape 3 : installez l’agent CloudWatch et appliquez la configuration à l’aide d’un modèle CloudFormation.
Vous pouvez utiliser AWS CloudFormation pour installer l’agent et le configurer pour utiliser la configuration de l’agent CloudWatch que vous avez créée dans les étapes précédentes.
Pour installer et configurer l’agent CloudWatch pour cette solution
-
Ouvrez l’assistant Création rapide de pile d’CloudFormation à l’aide de ce lien : https://console.aws.amazon.com/cloudformation/home?#/stacks/quickcreate?templateURL=https://aws-observability-solutions-prod-us-east-1.s3.us-east-1.amazonaws.com/CloudWatchAgent/CFN/v1.0.0/cw-agent-installation-template-1.0.0.json
. -
Vérifiez que la région sélectionnée dans la console est celle où la charge de travail du GPU NVIDIA s’exécute.
-
Pour Nom de la pile, entrez un nom pour identifier cette pile, par exemple
CWAgentInstallationStack. -
Dans la section Paramètres, indiquez les éléments suivants :
-
Pour CloudWatchAgentConfigSSM, entrez le nom du paramètre Systems Manager pour la configuration de l’agent que vous avez créé précédemment, tel que
AmazonCloudWatch-NVIDIA-GPU-Configuration. -
Pour sélectionner les instances cibles, vous avez deux options.
-
Pour InstanceIds, indiquez une liste d’identifiants d’instance délimitée par des virgules où vous voulez installer l’agent CloudWatch avec cette configuration. Vous pouvez répertorier une seule instance ou plusieurs instances.
-
Si vous effectuez un déploiement à grande échelle, vous pouvez spécifier la TagKey et la TagValue correspondante pour cibler toutes les instances EC2 avec ce balisage et cette valeur. Si vous spécifiez une TagKey, vous devez spécifier une TagValue correspondante. (Pour un groupe Auto Scaling, spécifiez
aws:autoscaling:groupNamepour la TagKey et spécifiez le nom du groupe Auto Scaling pour la TagValue afin de déployer vers toutes les instances au sein du groupe Auto Scaling).
-
-
-
Examinez les paramètres, puis choisissez Créer la pile.
Si vous voulez d’abord modifier le fichier modèle pour le personnaliser, choisissez l’option Charger un fichier modèle sous Assistant de création de pile pour charger le modèle modifié. Pour plus d’informations, consultez Création d’une pile sur la console CloudFormation.
Note
Une fois cette étape terminée, ce paramètre Systems Manager sera associé aux agents CloudWatch exécutés dans les instances ciblées. Cela signifie que :
-
Si le paramètre Systems Manager est supprimé, l’agent s’arrêtera.
-
Si le paramètre Systems Manager est modifié, les modifications de configuration s’appliqueront automatiquement à l’agent à la fréquence planifiée qui est de 30 jours par défaut.
-
Si vous voulez appliquer immédiatement les modifications apportées à ce paramètre Systems Manager, vous devez exécuter à nouveau cette étape. Pour plus d’informations sur les associations, consultez Travailler avec des associations dans Systems Manager.
Étape 4 : vérifiez que la configuration de l’agent est correcte
Vous pouvez vérifier si l’agent CloudWatch est installé en suivant les étapes de l’étape Vérification de l'exécution de l'agent CloudWatch. Si l’agent CloudWatch n’est pas installé et ne fonctionne pas, assurez-vous que vous avez tout configuré correctement.
-
Assurez-vous d’avoir attaché un rôle avec les autorisations correctes pour l’instance EC2, comme décrit dans Étape 1 : assurez-vous que les instances EC2 cibles disposent des autorisations IAM requises..
-
Assurez-vous d’avoir correctement configuré le fichier JSON pour le paramètre Systems Manager. Suivez les étapes de Résolution des problèmes d'installation de l'agent CloudWatch avec CloudFormation.
Si tout est configuré correctement, vous devriez alors voir les métriques du GPU NVIDIA être publiées sur CloudWatch. Vous pouvez consulter la console CloudWatch pour vérifier qu’elles sont bien publiées.
Pour vérifier que les métriques du GPU NVIDIA sont publiées sur CloudWatch, procédez comme suit
Ouvrez la console CloudWatch à l’adresse https://console.aws.amazon.com/cloudwatch/
. -
Choisissez Métriques, Toutes les métriques.
-
Assurez-vous d’avoir sélectionné la région dans laquelle vous avez déployé la solution et choisissez Espaces de noms personnalisés, CWAgent.
-
Recherchez les métriques mentionnées dans Configuration de l’agent pour cette solution, par exemple
nvidia_smi_utilization_gpu. Si vous voyez des résultats pour ces métriques, c’est qu’elles sont publiées sur CloudWatch.
Créer le tableau de bord de la solution de GPU NVIDIA
Le tableau de bord fourni par cette solution présente les métriques des GPU NVIDIA en regroupant et en présentant les métriques de toutes les instances. Le tableau de bord présente une répartition des principaux contributeurs (les 10 premiers par widget de métrique) pour chaque métrique. Cela vous aide à identifier rapidement les valeurs aberrantes ou les instances qui contribuent de manière significative aux métriques observées.
Pour créer le tableau de bord, vous pouvez utiliser les options suivantes :
Utilisez la console CloudWatch pour créer le tableau de bord.
Utilisez la console AWS CloudFormation pour déployer le tableau de bord.
Téléchargez l’infrastructure en tant que code d’AWS CloudFormation et intégrez-la dans le cadre de votre automatisation d’intégration continue (CI).
En utilisant la console CloudWatch pour créer un tableau de bord, vous pouvez prévisualiser le tableau de bord avant de le créer et de le facturer.
Note
Le tableau de bord créé avec CloudFormation dans cette solution affiche les métriques de la Région où la solution est déployée. Veillez à créer la pile CloudFormation dans la région où vos métriques du GPU NVIDIA sont publiées.
Si vous avez spécifié un espace de noms personnalisé autre que CWAgent dans la configuration de l’agent CloudWatch, vous devrez modifier le modèle CloudFormation pour le tableau de bord afin de remplacer CWAgent par l’espace de noms personnalisé que vous utilisez.
Pour créer le tableau de bord via la console CloudWatch
-
Ouvrez la console CloudWatch Créer un tableau de bord à l’aide de ce lien : https://console.aws.amazon.com/cloudwatch/home?#dashboards?dashboardTemplate=NvidiaGpuOnEc2&referrer=os-catalog
. -
Vérifiez que la région sélectionnée dans la console est celle où la charge de travail du GPU NVIDIA s’exécute.
-
Saisissez le nom du tableau de bord, puis choisissez Créer le tableau de bord.
Pour différencier facilement ce tableau de bord de tableaux de bord similaires dans d’autres régions, nous vous recommandons d’inclure le nom de la région dans le nom du tableau de bord, par exemple
NVIDIA-GPU-Dashboard-us-east-1. -
Prévisualisez le tableau de bord et cliquez sur Enregistrer pour créer le tableau de bord.
Pour créer le tableau de bord via CloudFormation, procédez comme suit.
-
Ouvrez l’assistant de Création rapide d’une pile d’CloudFormation à l’aide de ce lien : https://console.aws.amazon.com/cloudformation/home?#/stacks/quickcreate?templateURL=https://aws-observability-solutions-prod-us-east-1.s3.us-east-1.amazonaws.com/NVIDIA_GPU_EC2/CloudWatch/CFN/v1.0.0/dashboard-template-1.0.0.json
. -
Vérifiez que la région sélectionnée dans la console est celle où la charge de travail du GPU NVIDIA s’exécute.
-
Pour Nom de la pile, entrez un nom pour identifier cette pile, par exemple
NVIDIA-GPU-DashboardStack. -
Dans la section Paramètres, indiquez le nom du tableau de bord dans le paramètre DashboardName.
-
Pour différencier facilement ce tableau de bord de tableaux de bord similaires dans d’autres régions, nous vous recommandons d’inclure le nom de la région dans le nom du tableau de bord, par exemple
NVIDIA-GPU-Dashboard-us-east-1. -
Validez les capacités d’accès pour les transformateurs sous Capacités et transformateurs. Notez qu’CloudFormation n’ajoute aucune ressource IAM.
-
Examinez les paramètres, puis choisissez Créer la pile.
-
Une fois que le statut de la pile est CREATE_COMPLETE, sélectionnez l’onglet Ressources sous la pile créée, puis cliquez sur le lien sous ID physique pour accéder au tableau de bord. Vous pouvez également accéder au tableau de bord dans la console CloudWatch en choisissant Tableaux de bord dans le volet de navigation gauche de la console, et en trouvant le nom du tableau de bord sous Tableaux de bord personnalisés.
Si vous voulez modifier le fichier modèle pour l’adapter à vos besoins, vous pouvez utiliser l’option Charger un fichier modèle sous Assistant de création de pile pour charger le modèle modifié. Pour plus d’informations, consultez Création d’une pile sur la console CloudFormation. Vous pouvez utiliser ce lien pour télécharger le modèle : https://aws-observability-solutions-prod-us-east-1.s3.us-east-1.amazonaws.com/NVIDIA_GPU_EC2/CloudWatch/CFN/v1.0.0/dashboard-template-1.0.0.json
Démarrer avec le tableau de bord du GPU NVIDIA
Voici quelques tâches que vous pouvez essayer avec le nouveau tableau de bord du GPU NVIDIA. Ces tâches vous permettront de vérifier que le tableau de bord fonctionne correctement et de vous familiariser avec son utilisation pour surveiller vos GPU NVIDIA. Au fur et à mesure de vos essais, vous vous familiariserez avec la navigation dans le tableau de bord et l’interprétation des métriques visualisées.
Examiner l’utilisation du GPU
Dans la section Utilisation, trouvez les widgets Utilisation du GPU et Utilisation de la mémoire. Ils indiquent le pourcentage de temps pendant lequel le GPU est activement utilisé pour les calculs et le pourcentage de mémoire globale en cours de lecture ou d’écriture, respectivement. Une utilisation élevée peut indiquer des goulets d’étranglement potentiels au niveau des performances ou le besoin de ressources GPU supplémentaires.
Analyser l’utilisation de la mémoire du GPU
Dans la section Mémoire, vous trouverez les widgets Mémoire totale, Mémoire utilisée et Mémoire libre. Ces widgets fournissent des informations sur la capacité de mémoire globale des GPU et sur la quantité de mémoire actuellement consommée ou disponible. La sollicitation de la mémoire peut entraîner des problèmes de performances ou des erreurs hors mémoire. Il est donc important de surveiller ces métriques et de s’assurer que la mémoire disponible est suffisante pour vos charges de travail.
Surveiller la température et la consommation d’énergie
Dans la section Température/Puissance, vous trouverez les widgets Température du GPU et Consommation d’énergie. Ces métriques sont essentielles pour s’assurer que vos GPU fonctionnent dans des limites thermiques et de puissance sûres.
Identifier les performances de l’encodeur
Dans la section Encodeur, vous trouverez les widgets Nombre de sessions d’encodage, FPS moyen et Latence moyenne. Ces métriques sont importantes si vous exécutez des charges de travail d’encodage vidéo sur vos GPU. Surveillez ces métriques pour vous assurer que vos encodeurs fonctionnent de manière optimale et pour identifier tout goulot d’étranglement potentiel ou problème de performance.
Contrôler le statut de la liaison PCIe
Dans la section PCIe, vous trouverez les widgets Génération de lien PCIe et Largeur de lien PCIe. Ces métriques fournissent des informations sur la liaison PCIe qui relie le GPU au système hôte. Assurez-vous que le lien fonctionne à la génération et à la largeur attendues afin d’éviter d’éventuelles limitations de performances dues à des goulots d’étranglement PCIe.
Examiner les horloges du GPU
Dans la section Horloge, vous trouverez les widgets Horloge graphique, Horloge SM, Horloge mémoire et Horloge vidéo. Ces métriques indiquent les fréquences de fonctionnement actuelles des différents composants du GPU. La surveillance de ces horloges peut aider à identifier les problèmes potentiels liés à la mise à l’échelle de l’horloge du GPU ou au limiteur de fréquence, qui pourraient avoir un impact sur les performances.