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. Instans GPU-based container Amazon EC2 yang menggunakan tipe instance p2, p3, p4d, p5, g3, g4, g5, g6, g6e, dan g6f menyediakan akses ke GPU NVIDIA. Untuk informasi selengkapnya, lihat Instans Komputasi Berakselerasi 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 AMI Amazon ECS-optimized Linux.
Anda dapat menetapkan sejumlah GPU dalam definisi tugas Anda untuk pertimbangan penempatan tugas di tingkat kontainer. Amazon ECS menjadwalkan ke instans kontainer yang tersedia yang mendukung GPU dan menyematkan GPU fisik ke wadah yang tepat untuk kinerja optimal.
Jenis GPU-based instans Amazon EC2 berikut didukung. Untuk informasi selengkapnya, 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 AMI Amazon dengan ECS-optimized menanyakan API Penyimpanan AWS Systems Manager Parameter. Dengan menggunakan parameter ini, Anda tidak perlu mencari ID ECS-optimized AMI Amazon secara manual. Untuk informasi selengkapnya tentang API Penyimpanan Parameter Manajer Sistem, lihat GetParameter. Pengguna yang Anda gunakan harus memiliki izin ssm:GetParameter IAM untuk mengambil metadata Amazon ECS-optimized 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 instans p2 hanya didukung pada versi yang lebih awal 20230912 dari Amazon ECS GPU-optimized AMI. Jika Anda perlu terus menggunakan instance p2, lihatApa yang harus dilakukan jika Anda memerlukan instance P2.
In-place pembaruan 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_SUPPORTketruedalam 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 Khus us dengan Docker
. Amazon ECS menetapkan nilai variabel NVIDIA_VISIBLE_DEVICESlingkungan 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 Amazon ECS AMI
20230929dan versi yang lebih baru GPU-optimized . -
Keluarga tipe instans g4 didukung pada versi Amazon ECS AMI
20230913dan versi yang lebih baru GPU-optimized . Untuk informasi selengkapnya, lihat AMI Amazon ECS-optimized 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 instans secara manual ke cluster Anda. -
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.
yumHal ini dapat diatasi dengan mengonfigurasiyumuntuk menggunakan IPv4 dengan perintah berikut.echo "ip_resolve=4" >> /etc/yum.conf -
Saat Anda membuat image wadah yang tidak menggunakan gambar NVIDIA/CUDA dasar, Anda harus mengatur variabel runtime
NVIDIA_DRIVER_CAPABILITIEScontainer ke salah satu nilai berikut:-
utility,compute -
all
Untuk informasi tentang cara mengatur variabel, lihat Mengon trol NVIDIA Container Runtime
di situs web NVIDIA. -
-
GPU tidak didukung pada wadah Windows.
Bagikan GPU
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 selengkapnya, lihat Men jalankan perintah saat Anda meluncurkan instans 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', ); -
Tetapkan variabel
NVIDIA_VISIBLE_DEVICESlingkungan pada wadah Anda. Anda dapat melakukan ini dengan menentukan variabel lingkungan dalam definisi tugas Anda. Untuk informasi tentang nilai yang valid, lihat Penc acatan 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 selengkapnya, lihat Men jalankan perintah saat Anda meluncurkan instans EC2 dengan input data pengguna di Panduan Pengguna Amazon EC2.
Gunakan GPU-optimized AMI terakhir yang didukung
Anda dapat menggunakan 20230906 versi GPU-optimized AMI, dan menambahkan yang berikut ini 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 GPU-optimized AMI terbaru, dan perbarui data pengguna
Anda dapat menambahkan yang berikut ini ke data pengguna instance. Ini menghapus driver Nvidia 535/Cuda12 .2, dan kemudian menginstal driver Nvidia 470/Cuda11 .4 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 GPU-optimized AMI Anda sendiri yang kompatibel dengan P2
Anda dapat membuat Amazon ECS GPU-optimized AMI kustom Anda sendiri yang kompatibel dengan instans P2, lalu 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 Region dengan instance Region.
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