

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Monitora le GPU con CloudWatch
<a name="tutorial-gpu-monitoring-gpumon"></a>

Quando si utilizza la DLAMI con una GPU, è possibile che si stiano cercando modi per tenere traccia del suo utilizzo durante il training o l'inferenza. Questo può essere utile per ottimizzare la data pipeline e regolare la rete di deep learning. 

Esistono due modi per configurare le metriche della GPU con: CloudWatch
+ [Configura le metriche con AWS CloudWatch agente (consigliato)](#tutorial-gpu-monitoring-gpumon-cloudwatch-agent-guide)
+ [Configura le metriche con lo script gpumon.py preinstallato ``](#tutorial-gpu-monitoring-gpumon-script)

## Configura le metriche con AWS CloudWatch agente (consigliato)
<a name="tutorial-gpu-monitoring-gpumon-cloudwatch-agent-guide"></a>

Integra il tuo DLAMI con l' CloudWatch agente [ unificato ](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Install-CloudWatch-Agent.html) per configurare le metriche della GPU e monitorare l'utilizzo dei coprocessi GPU nelle istanze accelerate di Amazon EC2.

Esistono quattro modi per configurare le metriche della GPU con il tuo DLAMI: [https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Agent-NVIDIA-GPU.html](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Agent-NVIDIA-GPU.html)
+ [Configura le metriche minime della GPU](#tutorial-gpu-monitoring-gpumon-cloudwatch-agent-minimal)
+ [Configura le metriche parziali della GPU](#tutorial-gpu-monitoring-gpumon-cloudwatch-agent-partial)
+ [Configura tutte le metriche GPU disponibili](#tutorial-gpu-monitoring-gpumon-cloudwatch-agent-all)
+ [Configura metriche GPU personalizzate](#tutorial-gpu-monitoring-gpumon-cloudwatch-agent-custom)

Per informazioni sugli aggiornamenti e le patch di sicurezza, consulta [Patch di sicurezza per AWS CloudWatch agente](#tutorial-gpu-monitoring-gpumon-cloudwatch-agent-security)

### Prerequisiti
<a name="tutorial-gpu-monitoring-gpumon-cloudwatch-agent-prerequisites"></a>

Per iniziare, devi configurare le autorizzazioni IAM dell'istanza Amazon EC2 che consentano all'istanza di inviare le metriche a. CloudWatch Per passaggi dettagliati, consulta [ Creare ruoli e utenti IAM da utilizzare con l'agente. CloudWatch ](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/create-iam-roles-for-cloudwatch-agent.html)

### Configura le metriche minime della GPU
<a name="tutorial-gpu-monitoring-gpumon-cloudwatch-agent-minimal"></a>

Configura le metriche minime della GPU utilizzando il servizio. `dlami-cloudwatch-agent@minimal` `systemd` Questo servizio configura le seguenti metriche:
+ `utilization_gpu`
+ `utilization_memory`

È possibile trovare il `systemd` servizio per le metriche minime preconfigurate della GPU nella seguente posizione:

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

Abilita e avvia il `systemd` servizio con i seguenti comandi:

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

### Configura le metriche parziali della GPU
<a name="tutorial-gpu-monitoring-gpumon-cloudwatch-agent-partial"></a>

Configura le metriche parziali della GPU utilizzando il servizio. `dlami-cloudwatch-agent@partial` `systemd` Questo servizio configura le seguenti metriche:
+ `utilization_gpu`
+ `utilization_memory`
+ `memory_total`
+ `memory_used`
+ `memory_free`

È possibile trovare il `systemd` servizio per le metriche GPU preconfigurate parziali nella seguente posizione:

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

Abilita e avvia il `systemd` servizio con i seguenti comandi:

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

### Configura tutte le metriche GPU disponibili
<a name="tutorial-gpu-monitoring-gpumon-cloudwatch-agent-all"></a>

Configura tutte le metriche GPU disponibili utilizzando il servizio. `dlami-cloudwatch-agent@all` `systemd` Questo servizio configura le seguenti metriche:
+ `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`

Puoi trovare il `systemd` servizio per tutte le metriche GPU preconfigurate disponibili nella seguente posizione:

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

Abilita e avvia il `systemd` servizio con i seguenti comandi:

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

### Configura metriche GPU personalizzate
<a name="tutorial-gpu-monitoring-gpumon-cloudwatch-agent-custom"></a>

Se le metriche preconfigurate non soddisfano i tuoi requisiti, puoi creare un file di configurazione dell'agente personalizzato CloudWatch .

#### Crea un file di configurazione personalizzato
<a name="tutorial-gpu-monitoring-gpumon-cloudwatch-agent-custom-create"></a>

Per creare un file di configurazione personalizzato, consulta i passaggi dettagliati in Creare o modificare [ manualmente il file di configurazione CloudWatch dell'agente](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Agent-Configuration-File-Details.html).

Per questo esempio, supponiamo che la definizione dello schema si trovi in`/opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json`.

#### Configura le metriche con il tuo file personalizzato
<a name="tutorial-gpu-monitoring-gpumon-cloudwatch-agent-custom-configure"></a>

Esegui il comando seguente per configurare l' CloudWatch agente in base al tuo file personalizzato:

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

### Patch di sicurezza per AWS CloudWatch agente
<a name="tutorial-gpu-monitoring-gpumon-cloudwatch-agent-security"></a>

I DLAMI appena rilasciati sono configurati con le ultime patch di sicurezza disponibili per gli AWS CloudWatch agenti. Fai riferimento alle seguenti sezioni per aggiornare il tuo attuale DLAMI con le patch di sicurezza più recenti a seconda del sistema operativo scelto.

#### Amazon Linux 2
<a name="tutorial-gpu-monitoring-gpumon-cloudwatch-agent-security-al2"></a>

Usala `yum` per ottenere le ultime patch di sicurezza degli AWS CloudWatch agenti per un DLAMI di Amazon Linux 2.

```
 sudo yum update
```

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

Per ottenere le patch AWS CloudWatch di sicurezza più recenti per un DLAMI con Ubuntu, è necessario reinstallare l' AWS CloudWatch agente utilizzando un link per il download di Amazon S3.

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

Per ulteriori informazioni sull'installazione AWS CloudWatch dell'agente tramite i link per il download di Amazon S3, consulta [ Installazione ed esecuzione dell'agente sui tuoi server. CloudWatch ](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/install-CloudWatch-Agent-commandline-fleet.html)

## Configura le metriche con lo script gpumon.py preinstallato ``
<a name="tutorial-gpu-monitoring-gpumon-script"></a>

Un'utilità denominata gpumon.py è preinstallata sulla DLAMI. Si integra CloudWatch e supporta il monitoraggio dell'utilizzo per GPU: memoria GPU, temperatura della GPU e potenza della GPU. Lo script invia periodicamente i dati monitorati a. CloudWatch È possibile configurare il livello di granularità dei dati inviati CloudWatch modificando alcune impostazioni nello script. Prima di avviare lo script, tuttavia, dovrai configurare la ricezione delle CloudWatch metriche. 

**Come configurare ed eseguire il monitoraggio della GPU con CloudWatch**

1. Crea un utente IAM o modificane uno esistente per avere una policy su cui pubblicare la metrica. CloudWatch Se crei un nuovo utente, prendi nota delle credenziali poiché saranno necessarie nella fase successiva. 

   La policy IAM da cercare è «cloudwatch:». PutMetricData La policy che viene aggiunta è la seguente:

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

****  

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

------
**Suggerimento**  
Per ulteriori informazioni sulla creazione di un utente IAM e sull'aggiunta di policy per CloudWatch, consulta la [ CloudWatch documentazione. ](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/create-iam-roles-for-cloudwatch-agent.html)

1. Sul tuo DLAMI, esegui [AWS configure ](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html#cli-quick-configuration) e specifica le credenziali utente IAM. 

   ```
   $ aws configure
   ```

1. Potrebbe essere necessario apportare alcune modifiche all'utilità gpumon prima di eseguirla. Puoi trovare l'utilità gpumon e README nella posizione definita nel seguente blocco di codice. Per ulteriori informazioni sullo `gpumon.py` script, consulta la posizione [ dello script in Amazon S3. ](https://s3.amazonaws.com/aws-bigdata-blog/artifacts/GPUMonitoring/gpumon.py)

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

   Opzioni:
   + Cambia la regione in gpumon.py se l'istanza NON è in us-east-1.
   + Modifica altri parametri come il CloudWatch `namespace` o il periodo di riferimento con`store_reso`.

1. Attualmente lo script supporta solo Python 3. Attiva l'ambiente Python 3 del tuo framework preferito o attiva l'ambiente Python 3 generale DLAMI. 

   ```
   $ source activate python3
   ```

1. Esegui l'utilità gpumon in background.

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

1. Apri il browser nella [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) quindi seleziona il parametro. Avrà un namespace ''. DeepLearningTrain 
**Suggerimento**  
Puoi cambiare lo spazio dei nomi modificando gpumon.py. Puoi anche modificare l'intervallo di reporting regolando `store_reso`. 

Di seguito è riportato un CloudWatch grafico di esempio che riporta l'esecuzione di gpumon.py che monitora un processo di addestramento sull'istanza p2.8xlarge. 

![Monitoraggio GPU attivo CloudWatch](https://docs.aws.amazon.com/it_it/dlami/latest/devguide/images/gpumon.png)


Questi altri argomenti sul monitoraggio e l'ottimizzazione GPU potrebbero essere interessanti:
+ [Monitoraggio](tutorial-gpu-monitoring.md)
  + [Monitora le GPU con CloudWatch](#tutorial-gpu-monitoring-gpumon)
+ [Ottimizzazione](tutorial-gpu-opt.md)
  + [Pre-elaborazione](tutorial-gpu-opt-preprocessing.md)
  + [Addestramento](tutorial-gpu-opt-training.md)