

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Pemantauan dan Optimasi GPU
<a name="tutorial-gpu"></a>

Bagian berikut akan memandu Anda melalui opsi pengoptimalan dan pemantauan GPU. Bagian ini diatur seperti alur kerja biasa dengan pemantauan mengawasi prapemrosesan dan pelatihan. 
+ [Memantau](tutorial-gpu-monitoring.md)
  + [Monitor GPUs dengan CloudWatch](tutorial-gpu-monitoring-gpumon.md)
+ [Pengoptimalan](tutorial-gpu-opt.md)
  + [Pemrosesan awal](tutorial-gpu-opt-preprocessing.md)
  + [Pelatihan](tutorial-gpu-opt-training.md)

# Memantau
<a name="tutorial-gpu-monitoring"></a>

DLAMI Anda sudah diinstal sebelumnya dengan beberapa alat pemantauan GPU. Panduan ini juga menyebutkan alat yang tersedia untuk diunduh dan dipasang.
+ [Monitor GPUs dengan CloudWatch](tutorial-gpu-monitoring-gpumon.md)- utilitas prainstal yang melaporkan statistik penggunaan GPU ke Amazon. CloudWatch
+ [nvidia-smi CLI](https://developer.nvidia.com/nvidia-system-management-interface) - utilitas untuk memantau komputasi GPU secara keseluruhan dan pemanfaatan memori. Ini sudah diinstal sebelumnya pada AWS Deep Learning AMIs (DLAMI) Anda.
+ [Pustaka NVMLC](https://developer.nvidia.com/nvidia-management-library-nvml) - API berbasis C untuk mengakses fungsi pemantauan dan manajemen GPU secara langsung. Ini digunakan oleh CLI nvidia-smi di bawah tenda dan sudah diinstal sebelumnya pada DLAMI Anda. Ini juga memiliki ikatan Python dan Perl untuk memfasilitasi pengembangan dalam bahasa-bahasa tersebut. Utilitas gpumon.py yang sudah diinstal sebelumnya pada DLAMI Anda menggunakan paket pynvml. dari. [nvidia-ml-py](https://pypi.org/project/nvidia-ml-py/)
+ [NVIDIA DCGM](https://developer.nvidia.com/data-center-gpu-manager-dcgm) - Alat manajemen cluster. Kunjungi halaman pengembang untuk mempelajari cara menginstal dan mengkonfigurasi alat ini.

**Tip**  
Lihat blog pengembang NVIDIA untuk info terbaru tentang penggunaan alat CUDA yang diinstal DLAMI Anda:  
[Pemantauan TensorCore pemanfaatan menggunakan Nsight IDE dan nvprof](https://devblogs.nvidia.com/using-nsight-compute-nvprof-mixed-precision-deep-learning-models/).

# Monitor GPUs dengan CloudWatch
<a name="tutorial-gpu-monitoring-gpumon"></a>

Saat Anda menggunakan DLAMI dengan GPU, Anda mungkin menemukan bahwa Anda mencari cara untuk melacak penggunaannya selama pelatihan atau inferensi. Ini dapat berguna untuk mengoptimalkan pipeline data Anda, dan menyetel jaringan pembelajaran mendalam Anda. 

Ada dua cara untuk mengonfigurasi metrik GPU dengan: CloudWatch
+ [Konfigurasikan metrik dengan AWS CloudWatch agen (Disarankan)](#tutorial-gpu-monitoring-gpumon-cloudwatch-agent-guide)
+ [Konfigurasikan metrik dengan skrip yang sudah diinstal sebelumnya `gpumon.py`](#tutorial-gpu-monitoring-gpumon-script)

## Konfigurasikan metrik dengan AWS CloudWatch agen (Disarankan)
<a name="tutorial-gpu-monitoring-gpumon-cloudwatch-agent-guide"></a>

Integrasikan DLAMI Anda dengan agen [ CloudWatch terpadu](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Install-CloudWatch-Agent.html) untuk mengonfigurasi metrik GPU dan memantau pemanfaatan proses bersama GPU di instans akselerasi Amazon EC2.

Ada empat cara untuk mengonfigurasi [metrik GPU](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Agent-NVIDIA-GPU.html) dengan DLAMI Anda:
+ [Konfigurasikan metrik GPU minimal](#tutorial-gpu-monitoring-gpumon-cloudwatch-agent-minimal)
+ [Konfigurasikan metrik GPU sebagian](#tutorial-gpu-monitoring-gpumon-cloudwatch-agent-partial)
+ [Konfigurasikan semua metrik GPU yang tersedia](#tutorial-gpu-monitoring-gpumon-cloudwatch-agent-all)
+ [Konfigurasikan metrik GPU khusus](#tutorial-gpu-monitoring-gpumon-cloudwatch-agent-custom)

Untuk informasi tentang pembaruan dan patch keamanan, lihat [Penambalan keamanan untuk agen AWS CloudWatch](#tutorial-gpu-monitoring-gpumon-cloudwatch-agent-security)

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

Untuk memulai, Anda harus mengonfigurasi izin IAM instans Amazon EC2 yang memungkinkan instans Anda mendorong metrik. CloudWatch Untuk langkah-langkah mendetail, lihat [Membuat peran IAM dan pengguna untuk digunakan dengan CloudWatch agen](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/create-iam-roles-for-cloudwatch-agent.html).

### Konfigurasikan metrik GPU minimal
<a name="tutorial-gpu-monitoring-gpumon-cloudwatch-agent-minimal"></a>

Konfigurasikan metrik GPU minimal menggunakan layanan. `dlami-cloudwatch-agent@minimal` `systemd` Layanan ini mengonfigurasi metrik berikut:
+ `utilization_gpu`
+ `utilization_memory`

Anda dapat menemukan `systemd` layanan untuk metrik GPU minimal yang telah dikonfigurasi sebelumnya di lokasi berikut:

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

Aktifkan dan mulai `systemd` layanan dengan perintah berikut:

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

### Konfigurasikan metrik GPU sebagian
<a name="tutorial-gpu-monitoring-gpumon-cloudwatch-agent-partial"></a>

Konfigurasikan metrik GPU sebagian menggunakan layanan. `dlami-cloudwatch-agent@partial` `systemd` Layanan ini mengonfigurasi metrik berikut:
+ `utilization_gpu`
+ `utilization_memory`
+ `memory_total`
+ `memory_used`
+ `memory_free`

Anda dapat menemukan `systemd` layanan untuk metrik GPU sebagian yang telah dikonfigurasi sebelumnya di lokasi berikut:

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

Aktifkan dan mulai `systemd` layanan dengan perintah berikut:

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

### Konfigurasikan semua metrik GPU yang tersedia
<a name="tutorial-gpu-monitoring-gpumon-cloudwatch-agent-all"></a>

Konfigurasikan semua metrik GPU yang tersedia menggunakan layanan. `dlami-cloudwatch-agent@all` `systemd` Layanan ini mengonfigurasi metrik berikut:
+ `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`

Anda dapat menemukan `systemd` layanan untuk semua metrik GPU yang telah dikonfigurasi sebelumnya di lokasi berikut:

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

Aktifkan dan mulai `systemd` layanan dengan perintah berikut:

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

### Konfigurasikan metrik GPU khusus
<a name="tutorial-gpu-monitoring-gpumon-cloudwatch-agent-custom"></a>

Jika metrik yang telah dikonfigurasi sebelumnya tidak memenuhi persyaratan Anda, Anda dapat membuat file konfigurasi CloudWatch agen kustom.

#### Buat file konfigurasi khusus
<a name="tutorial-gpu-monitoring-gpumon-cloudwatch-agent-custom-create"></a>

Untuk membuat file konfigurasi khusus, lihat langkah-langkah terperinci di [Buat atau edit file konfigurasi CloudWatch agen secara manual](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Agent-Configuration-File-Details.html).

Untuk contoh ini, asumsikan bahwa definisi skema terletak di`/opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json`.

#### Konfigurasikan metrik dengan file kustom Anda
<a name="tutorial-gpu-monitoring-gpumon-cloudwatch-agent-custom-configure"></a>

Jalankan perintah berikut untuk mengkonfigurasi CloudWatch agen sesuai dengan file kustom Anda:

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

### Penambalan keamanan untuk agen AWS CloudWatch
<a name="tutorial-gpu-monitoring-gpumon-cloudwatch-agent-security"></a>

Baru dirilis DLAMIs dikonfigurasi dengan patch keamanan AWS CloudWatch agen terbaru yang tersedia. Lihat bagian berikut untuk memperbarui DLAMI Anda saat ini dengan patch keamanan terbaru tergantung pada sistem operasi pilihan Anda.

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

Gunakan `yum` untuk mendapatkan patch keamanan AWS CloudWatch agen terbaru untuk Amazon Linux 2 DLAMI.

```
 sudo yum update
```

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

Untuk mendapatkan patch AWS CloudWatch keamanan terbaru untuk DLAMI dengan Ubuntu, Anda perlu menginstal ulang agen AWS CloudWatch menggunakan tautan unduhan Amazon S3.

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

Untuk informasi selengkapnya tentang menginstal AWS CloudWatch agen menggunakan tautan unduhan Amazon S3, lihat [Menginstal dan menjalankan CloudWatch agen di server Anda](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/install-CloudWatch-Agent-commandline-fleet.html).

## Konfigurasikan metrik dengan skrip yang sudah diinstal sebelumnya `gpumon.py`
<a name="tutorial-gpu-monitoring-gpumon-script"></a>

Sebuah utilitas yang disebut gpumon.py sudah diinstal pada DLAMI Anda. Ini terintegrasi dengan CloudWatch dan mendukung pemantauan penggunaan per-GPU: memori GPU, suhu GPU, dan Daya GPU. Script secara berkala mengirimkan data yang dipantau ke CloudWatch. Anda dapat mengonfigurasi tingkat granularitas untuk data yang dikirim CloudWatch dengan mengubah beberapa pengaturan dalam skrip. Namun, sebelum memulai skrip, Anda harus mengatur CloudWatch untuk menerima metrik. 

**Cara mengatur dan menjalankan pemantauan GPU dengan CloudWatch**

1. Buat pengguna IAM, atau ubah pengguna yang sudah ada agar memiliki kebijakan untuk menerbitkan metrik. CloudWatch Jika Anda membuat pengguna baru, harap perhatikan kredensialnya karena Anda akan membutuhkannya di langkah berikutnya. 

   Kebijakan IAM untuk mencari adalah “cloudwatch:”. PutMetricData Kebijakan yang ditambahkan adalah sebagai berikut:

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

****  

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

------
**Tip**  
Untuk informasi selengkapnya tentang membuat pengguna IAM dan menambahkan kebijakan untuk CloudWatch, lihat [ CloudWatch dokumentasi](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/create-iam-roles-for-cloudwatch-agent.html).

1. Pada DLAMI Anda, [AWS jalankan](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html#cli-quick-configuration) configure dan tentukan kredenal pengguna IAM. 

   ```
   $ aws configure
   ```

1. Anda mungkin perlu membuat beberapa modifikasi pada utilitas gpumon sebelum menjalankannya. Anda dapat menemukan utilitas gpumon dan README di lokasi yang ditentukan dalam blok kode berikut. Untuk informasi selengkapnya tentang `gpumon.py` skrip, lihat [lokasi skrip Amazon S3.](https://s3.amazonaws.com/aws-bigdata-blog/artifacts/GPUMonitoring/gpumon.py)

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

   Opsi:
   + Ubah wilayah di gpumon.py jika instance Anda TIDAK ada di us-east-1.
   + Ubah parameter lain seperti CloudWatch `namespace` atau periode pelaporan dengan`store_reso`.

1. Saat ini skrip hanya mendukung Python 3. Aktifkan lingkungan Python 3 kerangka kerja pilihan Anda atau aktifkan lingkungan umum Python 3 DLAMI. 

   ```
   $ source activate python3
   ```

1. Jalankan utilitas gpumon di latar belakang.

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

1. Buka browser Anda ke metrik [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/)lalu pilih. Ini akan memiliki namespace ''. DeepLearningTrain 
**Tip**  
Anda dapat mengubah namespace dengan memodifikasi gpumon.py. Anda juga dapat mengubah interval pelaporan dengan menyesuaikan`store_reso`. 

Berikut ini adalah contoh CloudWatch bagan pelaporan pada menjalankan gpumon.py memantau pekerjaan pelatihan pada instance p2.8xlarge. 

![\[Pemantauan GPU pada CloudWatch\]](http://docs.aws.amazon.com/id_id/dlami/latest/devguide/images/gpumon.png)


Anda mungkin tertarik dengan topik lain tentang pemantauan dan pengoptimalan GPU ini:
+ [Memantau](tutorial-gpu-monitoring.md)
  + [Monitor GPUs dengan CloudWatch](#tutorial-gpu-monitoring-gpumon)
+ [Pengoptimalan](tutorial-gpu-opt.md)
  + [Pemrosesan awal](tutorial-gpu-opt-preprocessing.md)
  + [Pelatihan](tutorial-gpu-opt-training.md)

# Pengoptimalan
<a name="tutorial-gpu-opt"></a>

Untuk memaksimalkan GPUs, Anda dapat mengoptimalkan pipeline data dan menyetel jaringan pembelajaran mendalam Anda. Seperti yang dijelaskan bagan berikut, implementasi naif atau dasar dari jaringan saraf mungkin menggunakan GPU secara tidak konsisten dan tidak secara maksimal. Saat Anda mengoptimalkan preprocessing dan pemuatan data, Anda dapat mengurangi hambatan dari CPU ke GPU Anda. Anda dapat menyesuaikan jaringan saraf itu sendiri, dengan menggunakan hibridisasi (bila didukung oleh kerangka kerja), menyesuaikan ukuran batch, dan menyinkronkan panggilan. Anda juga dapat menggunakan pelatihan presisi ganda (float16 atau int8) di sebagian besar kerangka kerja, yang dapat memiliki efek dramatis pada peningkatan throughput. 

Bagan berikut menunjukkan peningkatan kinerja kumulatif saat menerapkan pengoptimalan yang berbeda. Hasil Anda akan tergantung pada data yang Anda proses dan jaringan yang Anda optimalkan.

![\[Peningkatan kinerja untuk GPUs\]](http://docs.aws.amazon.com/id_id/dlami/latest/devguide/images/performance-enhancements.png)


Panduan berikut memperkenalkan opsi yang akan bekerja dengan DLAMI Anda dan membantu Anda meningkatkan kinerja GPU.

**Topics**
+ [Pemrosesan awal](tutorial-gpu-opt-preprocessing.md)
+ [Pelatihan](tutorial-gpu-opt-training.md)

# Pemrosesan awal
<a name="tutorial-gpu-opt-preprocessing"></a>

Preprocessing data melalui transformasi atau augmentasi seringkali dapat menjadi proses yang terikat CPU, dan ini bisa menjadi hambatan dalam keseluruhan pipeline Anda. Kerangka kerja memiliki operator bawaan untuk pemrosesan gambar, tetapi DALI (Data Augmentation Library) menunjukkan peningkatan kinerja dibandingkan opsi bawaan kerangka kerja.
+ Perpustakaan Augmentasi Data NVIDIA (DALI): DALI membongkar augmentasi data ke GPU. Ini tidak diinstal sebelumnya pada DLAMI, tetapi Anda dapat mengaksesnya dengan menginstalnya atau memuat wadah kerangka kerja yang didukung pada DLAMI Anda atau instans Amazon Elastic Compute Cloud lainnya. Lihat [halaman proyek DALI](https://docs.nvidia.com/deeplearning/sdk/dali-install-guide/index.html) di situs web NVIDIA untuk detailnya. Untuk contoh kasus penggunaan dan untuk mengunduh sampel kode, lihat contoh Kinerja [Pelatihan SageMaker Preprocessing](https://github.com/aws-samples/sagemaker-cv-preprocessing-training-performance).
+ NVJPEG: perpustakaan dekoder JPEG yang dipercepat GPU untuk pemrogram C. [Ini mendukung decoding gambar tunggal atau batch serta operasi transformasi berikutnya yang umum dalam pembelajaran mendalam. nvJPEG dilengkapi built-in dengan DALI, atau Anda dapat mengunduh dari halaman nvjpeg situs web NVIDIA dan menggunakannya secara terpisah.](https://developer.nvidia.com/nvjpeg)

Anda mungkin tertarik dengan topik lain tentang pemantauan dan pengoptimalan GPU ini:
+ [Memantau](tutorial-gpu-monitoring.md)
  + [Monitor GPUs dengan CloudWatch](tutorial-gpu-monitoring-gpumon.md)
+ [Pengoptimalan](tutorial-gpu-opt.md)
  + [Pemrosesan awal](#tutorial-gpu-opt-preprocessing)
  + [Pelatihan](tutorial-gpu-opt-training.md)

# Pelatihan
<a name="tutorial-gpu-opt-training"></a>

Dengan pelatihan presisi campuran, Anda dapat menggunakan jaringan yang lebih besar dengan jumlah memori yang sama, atau mengurangi penggunaan memori dibandingkan dengan jaringan presisi tunggal atau ganda Anda, dan Anda akan melihat peningkatan kinerja komputasi. Anda juga mendapatkan manfaat dari transfer data yang lebih kecil dan lebih cepat, faktor penting dalam pelatihan terdistribusi beberapa node. Untuk memanfaatkan pelatihan presisi campuran, Anda perlu menyesuaikan pengecoran data dan penskalaan kerugian. Berikut ini adalah panduan yang menjelaskan cara melakukan ini untuk kerangka kerja yang mendukung presisi campuran.
+ [NVIDIA Deep Learning SDK](https://docs.nvidia.com/deeplearning/sdk/mixed-precision-training/) - dokumen di situs web NVIDIA yang menjelaskan implementasi presisi campuran untuk,, dan. MXNet PyTorch TensorFlow

**Tip**  
Pastikan untuk memeriksa situs web untuk kerangka pilihan Anda, dan cari “presisi campuran” atau “fp16" untuk teknik pengoptimalan terbaru. Berikut adalah beberapa panduan presisi campuran yang mungkin berguna bagi Anda:  
[Pelatihan presisi campuran dengan TensorFlow (video)](https://devblogs.nvidia.com/mixed-precision-resnet-50-tensor-cores/) - di situs blog NVIDIA.
[Pelatihan presisi campuran menggunakan float16 dengan MXNet - artikel](https://mxnet.apache.org/api/faq/float16) FAQ di situs web. MXNet 
[NVIDIA Apex: alat untuk pelatihan presisi campuran yang mudah dengan PyTorch](https://devblogs.nvidia.com/apex-pytorch-easy-mixed-precision-training/) - artikel blog di situs web NVIDIA.

Anda mungkin tertarik dengan topik lain tentang pemantauan dan pengoptimalan GPU ini:
+ [Memantau](tutorial-gpu-monitoring.md)
  + [Monitor GPUs dengan CloudWatch](tutorial-gpu-monitoring-gpumon.md)
+ [Pengoptimalan](tutorial-gpu-opt.md)
  + [Pemrosesan awal](tutorial-gpu-opt-preprocessing.md)
  + [Pelatihan](#tutorial-gpu-opt-training)