Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Definisi tugas Amazon ECS untuk beban kerja GPU
Amazon ECS mendukung beban kerja yang menggunakan GPU, saat Anda membuat cluster dengan instance kontainer yang mendukung GPU. Amazon EC2 GPU-based instance kontainer yang menggunakan tipe instance p2, p3, p4d, p5, g3, g4, g5, g6, g6e, dan g6f menyediakan akses ke GPU NVIDIA. Untuk informasi lebih lanjut, lihat Instans Komputasi Dipercepat Linux di Panduan Jenis Instans Amazon EC2.
Amazon ECS menyediakan GPU-optimized AMI yang dilengkapi dengan driver kernel NVIDIA pra-konfigurasi dan runtime GPU Docker. Untuk informasi selengkapnya, lihat Amazon ECS-optimized AMI Linux.
Anda dapat menetapkan sejumlah GPU dalam definisi tugas Anda untuk pertimbangan penempatan tugas di tingkat wadah. Amazon ECS menjadwalkan ke instans kontainer yang tersedia yang mendukung GPU dan menyematkan GPU fisik ke wadah yang tepat untuk kinerja optimal.
Berikut ini Amazon EC2 GPU-based Jenis instance didukung. Untuk informasi lebih lanjut, lihat Instans Amazon EC2 P2
| Tipe instans | GPU | Memori GPU (GiB) | vCPU | Memori (GiB) |
|---|---|---|---|---|
|
p3.2xlarge |
1 |
16 |
8 |
61 |
|
p3.8xlarge |
4 |
64 |
32 |
244 |
|
p3.16xlarge |
8 |
128 |
64 |
488 |
|
p3dn.24xlarge |
8 |
256 |
96 |
768 |
|
p4d.24xlarge |
8 | 320 | 96 | 1152 |
| p5.48xlarge | 8 | 640 | 192 | 2048 |
|
g3s.xlarge |
1 |
8 |
4 |
30.5 |
|
g3.4xlarge |
1 |
8 |
16 |
122 |
|
g3.8xlarge |
2 |
16 |
32 |
244 |
|
g3.16xlarge |
4 |
32 |
64 |
488 |
|
g4dn.xlarge |
1 |
16 |
4 |
16 |
|
g4dn.2xlarge |
1 |
16 |
8 |
32 |
|
g4dn.4xlarge |
1 |
16 |
16 |
64 |
|
g4dn.8xlarge |
1 |
16 |
32 |
128 |
|
g4dn.12xlarge |
4 |
64 |
48 |
192 |
|
g4dn.16xlarge |
1 |
16 |
64 |
256 |
|
g5.xlarge |
1 |
24 |
4 |
16 |
|
g5.2xlarge |
1 |
24 |
8 |
32 |
|
g5.4xlarge |
1 |
24 |
16 |
64 |
|
g5.8xlarge |
1 |
24 |
32 |
128 |
|
g5.16xlarge |
1 |
24 |
64 |
256 |
|
g5.12xlarge |
4 |
96 |
48 |
192 |
|
g5.24xlarge |
4 |
96 |
96 |
384 |
|
g5.48xlarge |
8 |
192 |
192 |
768 |
| g6.xbesar | 1 | 24 | 4 | 16 |
| g6.2xbesar | 1 | 24 | 8 | 32 |
| g6.4xbesar | 1 | 24 | 16 | 64 |
| g6.8xbesar | 1 | 24 | 32 | 128 |
| g6.16.xbesar | 1 | 24 | 64 | 256 |
| g6.12xbesar | 4 | 96 | 48 | 192 |
| g6.24xbesar | 4 | 96 | 96 | 384 |
| g6.48xbesar | 8 | 192 | 192 | 768 |
| g6.logam | 8 | 192 | 192 | 768 |
| gr6.4xbesar | 1 | 24 | 16 | 128 |
| g6e.xlarge | 1 | 48 | 4 | 32 |
| g6e.2xbesar | 1 | 48 | 8 | 64 |
| g6e.4xbesar | 1 | 48 | 16 | 128 |
| g6e.8xbesar | 1 | 48 | 32 | 256 |
| g6e16.xbesar | 1 | 48 | 64 | 512 |
| g6e12.xbesar | 4 | 192 | 48 | 384 |
| g6e24.xbesar | 4 | 192 | 96 | 768 |
| g6e48.xbesar | 8 | 384 | 192 | 1536 |
| gr6.8xbesar | 1 | 24 | 32 | 256 |
| g6f.besar | 1/8 (0.125) | 3 | 2 | 8 |
| g6f.xlarge | 1/8 (0.125) | 3 | 4 | 16 |
| g6f.2xbesar | 1/4 (0.25) | 6 | 8 | 32 |
| g6f.4xbesar | 1/2 (0.5) | 12 | 16 | 64 |
| gr6f.4xbesar | 1/2 (0.5) | 12 | 16 | 128 |
Anda dapat mengambil ID Amazon Machine Image (AMI) untuk Amazon ECS-optimized AMI dengan menanyakan AWS Systems Manager API Penyimpanan Parameter. Menggunakan parameter ini, Anda tidak perlu mencari Amazon secara manual ECS-optimized ID AMI. Untuk informasi selengkapnya tentang API Penyimpanan Parameter System Manager, lihat GetParameter. Pengguna yang Anda gunakan harus memiliki ssm:GetParameter Izin IAM untuk mengambil Amazon ECS-optimized Metadata AMI.
aws ssm get-parameters --names /aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended --regionus-east-1
Pertimbangan-pertimbangan
catatan
Dukungan untuk tipe keluarga instance g2 telah usang.
Jenis keluarga instance p2 hanya didukung pada versi yang lebih awal dari 20230912 dari Amazon ECS GPU-optimized TEMAN. Jika Anda perlu terus menggunakan instance p2, lihat Apa yang harus dilakukan jika Anda memerlukan instance P2.
In-place pembaruan dari NVIDIA/CUDA driver pada kedua jenis keluarga instance ini akan menyebabkan potensi kegagalan beban kerja GPU.
Kami menyarankan Anda mempertimbangkan hal berikut sebelum mulai bekerja dengan GPU di Amazon ECS.
-
Klaster Anda dapat terdiri dari campuran GPU dan instans kontainer non-GPU.
-
Anda dapat menjalankan beban kerja GPU pada instans eksternal. Saat mendaftarkan instance eksternal dengan cluster Anda, pastikan
--enable-gpubendera disertakan pada skrip instalasi. Untuk informasi selengkapnya, lihat Mendaftarkan instans eksternal ke cluster Amazon ECS. -
Anda harus mengatur
ECS_ENABLE_GPU_SUPPORTkepadatruedalam file konfigurasi agen Anda. Untuk informasi selengkapnya, lihat Konfigurasi agen kontainer Amazon ECS. -
Saat menjalankan tugas atau membuat layanan, Anda dapat menggunakan atribut tipe instance saat mengonfigurasi batasan penempatan tugas untuk menentukan instance kontainer tempat tugas akan diluncurkan. Dengan melakukan hal tersebut, Anda bisa lebih efektif menggunakan sumber daya Anda. Untuk informasi selengkapnya, lihat Cara Amazon ECS Menempatkan Tugas di Instans Kontainer.
Contoh berikut meluncurkan tugas pada instans kontainer
g4dn.xlargedi klaster default Anda.aws ecs run-task --cluster default --task-definition ecs-gpu-task-def \ --placement-constraints type=memberOf,expression="attribute:ecs.instance-type == g4dn.xlarge" --region us-east-2 -
Untuk setiap wadah yang memiliki persyaratan sumber daya GPU yang ditentukan dalam definisi wadah, Amazon ECS menetapkan runtime container menjadi runtime wadah NVIDIA.
-
Runtime wadah NVIDIA memerlukan beberapa variabel lingkungan untuk diatur dalam wadah agar berfungsi dengan baik. Untuk daftar variabel lingkungan ini, lihat Konfigurasi Khusus dengan Docker
. Amazon ECS menetapkan NVIDIA_VISIBLE_DEVICESnilai variabel lingkungan menjadi daftar ID perangkat GPU yang ditetapkan Amazon ECS ke wadah. Untuk variabel lingkungan lain yang diperlukan, Amazon ECS tidak menyetelnya. Jadi, pastikan bahwa gambar kontainer Anda menyetelnya atau disetel dalam definisi wadah. -
Keluarga tipe instans p5 didukung pada versi
20230929dan kemudian dari Amazon ECS GPU-optimized TEMAN. -
Keluarga tipe instance g4 didukung pada versi
20230913dan kemudian dari Amazon ECS GPU-optimized TEMAN. Untuk informasi selengkapnya, lihat Amazon ECS-optimized AMI Linux. Ini tidak didukung dalam alur kerja Buat Cluster di konsol Amazon ECS. Untuk menggunakan jenis instans ini, Anda harus menggunakan konsol Amazon EC2, AWS CLI, atau API dan mendaftarkan instance ke cluster Anda secara manual. -
Tipe instans p4d.24xlarge hanya bekerja dengan CUDA 11 atau yang lebih baru.
-
Amazon ECS GPU-optimized AMI mengaktifkan IPv6, yang menyebabkan masalah saat menggunakan
yum. Hal ini dapat diatasi dengan mengonfigurasiyumuntuk menggunakan IPv4 dengan perintah berikut.echo "ip_resolve=4" >> /etc/yum.conf -
Saat Anda membuat gambar kontainer yang tidak menggunakan NVIDIA/CUDA gambar dasar, Anda harus mengatur
NVIDIA_DRIVER_CAPABILITIESvariabel runtime container ke salah satu nilai berikut:-
utility,compute -
all
Untuk informasi tentang cara mengatur variabel, lihat Mengontrol NVIDIA Container Runtime
di situs web NVIDIA. -
-
GPU tidak didukung pada wadah Windows.
Bagikan GPU secara manual di Amazon ECS di Amazon EC2
Untuk berbagi GPU secara manual di Amazon ECS di Amazon EC2, Anda mengatur dan mengelola berbagi GPU sendiri. Gunakan pendekatan terkelola sebagai gantinya, di mana Amazon ECS mengatur dan mengelola berbagi untuk Anda. Untuk informasi selengkapnya tentang pendekatan terkelola, lihat Bagikan GPU di Amazon ECS.
Saat Anda ingin berbagi GPU, Anda perlu mengkonfigurasi yang berikut ini.
-
Hapus persyaratan sumber daya GPU dari definisi tugas Anda sehingga Amazon ECS tidak memesan GPU apa pun yang harus dibagikan.
-
Tambahkan data pengguna berikut ke instans Anda saat Anda ingin berbagi GPU. Ini akan menjadikan nvidia runtime container Docker default pada instance container sehingga semua wadah Amazon ECS dapat menggunakan GPU. Untuk informasi lebih lanjut lihat Jalankan perintah saat Anda meluncurkan instance EC2 dengan input data pengguna di Panduan Pengguna Amazon EC2.
const userData = ec2.UserData.forLinux(); userData.addCommands( 'sudo rm /etc/sysconfig/docker', 'echo DAEMON_MAXFILES=1048576 | sudo tee -a /etc/sysconfig/docker', 'echo OPTIONS="--default-ulimit nofile=32768:65536 --default-runtime nvidia" | sudo tee -a /etc/sysconfig/docker', 'echo DAEMON_PIDFILE_TIMEOUT=10 | sudo tee -a /etc/sysconfig/docker', 'sudo systemctl restart docker', ); -
Atur
NVIDIA_VISIBLE_DEVICESvariabel lingkungan pada wadah Anda. Anda dapat melakukan ini dengan menentukan variabel lingkungan dalam definisi tugas Anda. Untuk informasi tentang nilai yang valid, lihat Pencacahan GPUdi situs dokumentasi NVIDIA.
Apa yang harus dilakukan jika Anda memerlukan instance P2
Jika Anda perlu menggunakan instance P2, Anda dapat menggunakan salah satu opsi berikut untuk terus menggunakan instance.
Anda harus memodifikasi data pengguna instance untuk kedua opsi. Untuk informasi lebih lanjut lihat Jalankan perintah saat Anda meluncurkan instance EC2 dengan input data pengguna di Panduan Pengguna Amazon EC2.
Gunakan yang terakhir didukung GPU-optimized AMI
Anda dapat menggunakan 20230906 versi dari GPU-optimized AMI, dan tambahkan yang berikut ke data pengguna instance.
Ganti cluster-name dengan nama cluster Anda.
#!/bin/bash echo "exclude=*nvidia* *cuda*" >> /etc/yum.conf echo "ECS_CLUSTER=cluster-name" >> /etc/ecs/ecs.config
Gunakan yang terbaru GPU-optimized AMI, dan memperbarui data pengguna
Anda dapat menambahkan yang berikut ini ke data pengguna instance. Ini menghapus Nvidia 535/Cuda12.2 driver, dan kemudian menginstal Nvidia 470/Cuda11.4 driver dan memperbaiki versi.
#!/bin/bash yum remove -y cuda-toolkit* nvidia-driver-latest-dkms* tmpfile=$(mktemp) cat >$tmpfile <<EOF [amzn2-nvidia] name=Amazon Linux 2 Nvidia repository mirrorlist=\$awsproto://\$amazonlinux.\$awsregion.\$awsdomain/\$releasever/amzn2-nvidia/latest/\$basearch/mirror.list priority=20 gpgcheck=1 gpgkey=https://developer.download.nvidia.com/compute/cuda/repos/rhel7/x86_64/7fa2af80.pub enabled=1 exclude=libglvnd-* EOF mv $tmpfile /etc/yum.repos.d/amzn2-nvidia-tmp.repo yum install -y system-release-nvidia cuda-toolkit-11-4 nvidia-driver-latest-dkms-470.182.03 yum install -y libnvidia-container-1.4.0 libnvidia-container-tools-1.4.0 nvidia-container-runtime-hook-1.4.0 docker-runtime-nvidia-1 echo "exclude=*nvidia* *cuda*" >> /etc/yum.conf nvidia-smi
Buat P2 kompatibel Anda sendiri GPU-optimized AMI
Anda dapat membuat Amazon ECS kustom Anda sendiri GPU-optimized AMI yang kompatibel dengan instans P2, dan kemudian meluncurkan instans P2 menggunakan AMI.
-
Jalankan perintah berikut untuk mengkloning
amazon-ecs-ami repo.git clone https://github.com/aws/amazon-ecs-ami -
Setel agen Amazon ECS yang diperlukan dan versi Amazon Linux AMI sumber di
release.auto.pkrvars.hclatauoverrides.auto.pkrvars.hcl. -
Jalankan perintah berikut untuk membangun AMI EC2 yang kompatibel dengan P2 pribadi.
Ganti wilayah dengan Wilayah dengan Region instance.
REGION=regionmake al2keplergpu -
Gunakan AMI dengan data pengguna instans berikut untuk terhubung ke cluster Amazon ECS.
Ganti cluster-name dengan nama cluster Anda.
#!/bin/bash echo "ECS_CLUSTER=cluster-name" >> /etc/ecs/ecs.config