

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.

# Moniteur GPUs avec CloudWatch
<a name="tutorial-gpu-monitoring-gpumon"></a>

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é)](#tutorial-gpu-monitoring-gpumon-cloudwatch-agent-guide)
+ [Configurer les métriques avec le script préinstallé `gpumon.py`](#tutorial-gpu-monitoring-gpumon-script)

## Configurer les métriques avec l' AWS CloudWatch agent (recommandé)
<a name="tutorial-gpu-monitoring-gpumon-cloudwatch-agent-guide"></a>

Intégrez votre DLAMI à l'agent [ CloudWatch unifié pour configurer les](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Install-CloudWatch-Agent.html) 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](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Agent-NVIDIA-GPU.html) avec votre DLAMI :
+ [Configurer des métriques GPU minimales](#tutorial-gpu-monitoring-gpumon-cloudwatch-agent-minimal)
+ [Configurer des métriques partielles du GPU](#tutorial-gpu-monitoring-gpumon-cloudwatch-agent-partial)
+ [Configurer toutes les métriques GPU disponibles](#tutorial-gpu-monitoring-gpumon-cloudwatch-agent-all)
+ [Configurer des métriques GPU personnalisées](#tutorial-gpu-monitoring-gpumon-cloudwatch-agent-custom)

Pour plus d'informations sur les mises à jour et les correctifs de sécurité, voir [Correctifs de sécurité pour l'agent AWS CloudWatch](#tutorial-gpu-monitoring-gpumon-cloudwatch-agent-security)

### Conditions préalables
<a name="tutorial-gpu-monitoring-gpumon-cloudwatch-agent-prerequisites"></a>

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](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/create-iam-roles-for-cloudwatch-agent.html).

### Configurer des métriques GPU minimales
<a name="tutorial-gpu-monitoring-gpumon-cloudwatch-agent-minimal"></a>

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
<a name="tutorial-gpu-monitoring-gpumon-cloudwatch-agent-partial"></a>

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
<a name="tutorial-gpu-monitoring-gpumon-cloudwatch-agent-all"></a>

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 trouverez 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
<a name="tutorial-gpu-monitoring-gpumon-cloudwatch-agent-custom"></a>

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é
<a name="tutorial-gpu-monitoring-gpumon-cloudwatch-agent-custom-create"></a>

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](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Agent-Configuration-File-Details.html).

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é
<a name="tutorial-gpu-monitoring-gpumon-cloudwatch-agent-custom-configure"></a>

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
<a name="tutorial-gpu-monitoring-gpumon-cloudwatch-agent-security"></a>

Les nouvelles versions DLAMIs sont configurées 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
<a name="tutorial-gpu-monitoring-gpumon-cloudwatch-agent-security-al2"></a>

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

```
 sudo yum update
```

#### Ubuntu
<a name="tutorial-gpu-monitoring-gpumon-cloudwatch-agent-security-ubuntu"></a>

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](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/install-CloudWatch-Agent-commandline-fleet.html).

## Configurer les métriques avec le script préinstallé `gpumon.py`
<a name="tutorial-gpu-monitoring-gpumon-script"></a>

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 : PutMetricData ». La stratégie qui est ajoutée est la suivante :

------
#### [ JSON ]

****  

   ```
   {
      "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](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/create-iam-roles-for-cloudwatch-agent.html).

1. Sur votre DLAMI, [AWS exécutez](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html#cli-quick-configuration) configure et spécifiez les informations d'identification de l'utilisateur IAM. 

   ```
   $ aws configure
   ```

1. 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.](https://s3.amazonaws.com/aws-bigdata-blog/artifacts/GPUMonitoring/gpumon.py)

   ```
   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 avec`store_reso`.

1. 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
   ```

1. Exécutez l'utilitaire gpumon en arrière-plan.

   ```
   (python3)$ python gpumon.py &
   ```

1. Ouvrez votre navigateur à l'adresse [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/), puis sélectionnez la métrique. Il aura un espace de noms « DeepLearningTrain ». 
**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](http://docs.aws.amazon.com/fr_fr/dlami/latest/devguide/images/gpumon.png)


Les rubriques suivantes relatives à la surveillance et l'optimisation des GPU peuvent vous intéresser :
+ [Contrôle](tutorial-gpu-monitoring.md)
  + [Moniteur GPUs avec CloudWatch](#tutorial-gpu-monitoring-gpumon)
+ [Optimisation](tutorial-gpu-opt.md)
  + [Prétraitement](tutorial-gpu-opt-preprocessing.md)
  + [Entraînement](tutorial-gpu-opt-training.md)