Surveillez les GPU avec CloudWatch - AMI d'apprentissage profond

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Surveillez les GPU avec CloudWatch

Lorsque vous utilisez vos DLAMI avec un GPU, vous pouvez avoir envie d'effectuer le suivi de l'utilisation lors de la formation ou de l'inférence. Cela peut s'avérer utile pour optimiser votre pipeline de données et régler votre réseau de deep learning.

Il existe deux manières de configurer les métriques du GPU avec CloudWatch :

Configurer les métriques avec l' AWS CloudWatch agent (recommandé)

Intégrez votre DLAMI à l'agent CloudWatch unifié pour configurer les métriques du GPU et surveiller l'utilisation des coprocessus du GPU dans les instances accélérées Amazon EC2.

Il existe quatre méthodes pour configurer les métriques du GPU avec votre DLAMI :

Pour plus d'informations sur les mises à jour et les correctifs de sécurité, voir Correctifs de sécurité pour l'agent AWS CloudWatch

Prérequis

Pour commencer, vous devez configurer les autorisations IAM de l'instance Amazon EC2 qui permettent à votre instance d'envoyer des métriques. CloudWatch Pour connaître les étapes détaillées, voir Création de rôles et d'utilisateurs IAM à utiliser avec l' CloudWatch agent.

Configurer des métriques GPU minimales

Configurez des métriques GPU minimales à l'aide du dlami-cloudwatch-agent@minimal systemd service. Ce service configure les métriques suivantes :

  • utilization_gpu

  • utilization_memory

Vous pouvez trouver le systemd service pour les métriques GPU préconfigurées minimales à l'emplacement suivant :

/opt/aws/amazon-cloudwatch-agent/etc/dlami-amazon-cloudwatch-agent-minimal.json

Activez et démarrez le systemd service à l'aide des commandes suivantes :

sudo systemctl enable dlami-cloudwatch-agent@minimal sudo systemctl start dlami-cloudwatch-agent@minimal

Configurer des métriques partielles du GPU

Configurez des métriques partielles du GPU à l'aide du dlami-cloudwatch-agent@partial systemd service. Ce service configure les métriques suivantes :

  • utilization_gpu

  • utilization_memory

  • memory_total

  • memory_used

  • memory_free

Vous pouvez trouver le systemd service pour les métriques GPU partiellement préconfigurées à l'emplacement suivant :

/opt/aws/amazon-cloudwatch-agent/etc/dlami-amazon-cloudwatch-agent-partial.json

Activez et démarrez le systemd service à l'aide des commandes suivantes :

sudo systemctl enable dlami-cloudwatch-agent@partial sudo systemctl start dlami-cloudwatch-agent@partial

Configurer toutes les métriques GPU disponibles

Configurez toutes les métriques GPU disponibles à l'aide du dlami-cloudwatch-agent@all systemd service. Ce service configure les métriques suivantes :

  • utilization_gpu

  • utilization_memory

  • memory_total

  • memory_used

  • memory_free

  • temperature_gpu

  • power_draw

  • fan_speed

  • 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

Vous pouvez trouver le systemd service pour toutes les métriques GPU préconfigurées disponibles à l'emplacement suivant :

/opt/aws/amazon-cloudwatch-agent/etc/dlami-amazon-cloudwatch-agent-all.json

Activez et démarrez le systemd service à l'aide des commandes suivantes :

sudo systemctl enable dlami-cloudwatch-agent@all sudo systemctl start dlami-cloudwatch-agent@all

Configurer des métriques GPU personnalisées

Si les métriques préconfigurées ne répondent pas à vos exigences, vous pouvez créer un fichier de configuration d' CloudWatch agent personnalisé.

Création d'un fichier de configuration personnalisé

Pour créer un fichier de configuration personnalisé, reportez-vous aux étapes détaillées de la section Création ou modification manuelle du fichier de configuration de l' CloudWatch agent.

Pour cet exemple, supposons que la définition du schéma se trouve à/opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json.

Configurez les métriques avec votre fichier personnalisé

Exécutez la commande suivante pour configurer l' CloudWatch agent en fonction de votre fichier personnalisé :

sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl \ -a fetch-config -m ec2 -s -c \ file:/opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json

Correctifs de sécurité pour l'agent AWS CloudWatch

Les DLAMI récemment publiés sont configurés avec les derniers correctifs de sécurité des AWS CloudWatch agents disponibles. Reportez-vous aux sections suivantes pour mettre à jour votre DLAMI actuel avec les derniers correctifs de sécurité en fonction du système d'exploitation de votre choix.

Amazon Linux 2

yumÀ utiliser pour obtenir les derniers correctifs de sécurité des AWS CloudWatch agents pour un DLAMI Amazon Linux 2.

sudo yum update

Ubuntu

Pour obtenir les derniers correctifs AWS CloudWatch de sécurité pour un DLAMI avec Ubuntu, il est nécessaire de réinstaller l'agent à AWS CloudWatch l'aide d'un lien de téléchargement Amazon S3.

wget https://s3.region.amazonaws.com/amazoncloudwatch-agent-region/ubuntu/arm64/latest/amazon-cloudwatch-agent.deb

Pour plus d'informations sur l'installation de l' AWS CloudWatch agent à l'aide des liens de téléchargement Amazon S3, consultez Installation et exécution de l' CloudWatch agent sur vos serveurs.

Configurer les métriques avec le script préinstallé gpumon.py

Un utilitaire appelée gpumon.py est préinstallé sur vos DLAMI. Il s'intègre CloudWatch et prend en charge la surveillance de l'utilisation par processeur graphique : mémoire du processeur graphique, température du processeur graphique et puissance du processeur graphique. Le script envoie régulièrement les données surveillées à CloudWatch. Vous pouvez configurer le niveau de granularité des données envoyées CloudWatch en modifiant quelques paramètres dans le script. Avant de démarrer le script, vous devez toutefois vous configurer CloudWatch pour recevoir les métriques.

Comment configurer et exécuter la surveillance du GPU avec CloudWatch
  1. Créez un utilisateur IAM ou modifiez un utilisateur existant pour disposer d'une politique de publication de la métrique sur. CloudWatch Si vous créez un nouvel utilisateur, notez les informations d'identification. Vous en aurez besoin à l'étape suivante.

    La politique IAM à rechercher est « cloudwatch : PutMetric Data ». La stratégie qui est ajoutée est la suivante :

    { "Version": "2012-10-17", "Statement": [ { "Action": [ "cloudwatch:PutMetricData" ], "Effect": "Allow", "Resource": "*" } ] }
    Astuce

    Pour plus d'informations sur la création d'un utilisateur IAM et l'ajout de politiques pour CloudWatch, consultez la CloudWatch documentation.

  2. Sur votre DLAMI, AWS exécutez configure et spécifiez les informations d'identification de l'utilisateur IAM.

    $ aws configure
  3. Vous devrez peut-être modifier l'utilitaire gpumon avant de l'exécuter. Vous trouverez l'utilitaire gpumon et le fichier README à l'emplacement défini dans le bloc de code suivant. Pour plus d'informations sur le gpumon.py script, consultez l'emplacement du script sur Amazon S3.

    Folder: ~/tools/GPUCloudWatchMonitor Files: ~/tools/GPUCloudWatchMonitor/gpumon.py ~/tools/GPUCloudWatchMonitor/README

    Options :

    • Si votre instance N'est PAS située dans la région us-east-1, modifiez la région dans gpumon.py.

    • Modifiez d'autres paramètres tels que le CloudWatch namespace ou la période de référence avecstore_reso.

  4. Actuellement, le script prend uniquement en charge Python 3. Activez l'environnement Python 3 de votre framework préféré ou activez l'environnement Python 3 général DLAMI.

    $ source activate python3
  5. Exécutez l'utilitaire gpumon en arrière-plan.

    (python3)$ python gpumon.py &
  6. Ouvrez votre navigateur sur le site https://console.aws.amazon.com/cloudwatch/, puis sélectionnez métrique. Il aura un espace de noms « DeepLearning Train ».

    Astuce

    Vous pouvez modifier l'espace de noms en modifiant gpumon.py. Vous pouvez également modifier l'intervalle de création des rapports en ajustant store_reso.

Voici un exemple de CloudWatch graphique illustrant une exécution de gpumon.py surveillant une tâche de formation sur une instance p2.8xlarge.

Surveillance du GPU activée CloudWatch

Les rubriques suivantes relatives à la surveillance et l'optimisation des GPU peuvent vous intéresser :