Definisi tugas Amazon ECS untuk beban kerja GPU - Amazon Elastic Container Service

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 digunakan GPUs, saat Anda membuat klaster dengan instans penampung yang mendukung. GPUs Instans container EC2 berbasis GPU Amazon yang menggunakan tipe instans p2, p3, p5, g3, g4, dan g5 menyediakan akses ke NVIDIA. GPUs Untuk informasi selengkapnya, lihat Instans Komputasi Akselerasi Linux di panduan Jenis EC2 Instans Amazon.

Amazon ECS menyediakan AMI yang dioptimalkan untuk GPU yang dilengkapi dengan driver kernel NVIDIA yang telah dikonfigurasi sebelumnya dan runtime GPU Docker. Untuk informasi selengkapnya, lihat Linux Amazon ECS yang dioptimalkan AMIs.

Anda dapat menunjuk sejumlah definisi GPUs tugas Anda untuk pertimbangan penempatan tugas di tingkat kontainer. Amazon ECS menjadwalkan instans kontainer yang tersedia yang mendukung GPUs dan menyematkan fisik GPUs ke wadah yang tepat untuk kinerja optimal.

Jenis instans EC2 berbasis GPU Amazon berikut didukung. Untuk informasi selengkapnya, lihat Instans Amazon EC2 P2, InstansAmazon EC2 P3, Instans Amazon P4d, Instans EC2 AmazonP5, Instans EC2 Amazon G3, Instans Amazon G4, Instans EC2 Amazon G5 EC2 , Instans Amazon G6, dan Instans EC2 Amazon G6e. EC2 EC2

Jenis instans GPUs Memori GPU (GiB) v CPUs 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.xlarge 1 24 4 16
g6.2xlarge 1 24 8 32
g6.4xlarge 1 24 16 64
g6.8xlarge 1 24 32 128
g6.16.xlarge 1 24 64 256
g6.12xlarge 4 96 48 192
g6.24xlarge 4 96 96 384
g6.48xlarge 8 192 192 768
g6.logam 8 192 192 768
gr6.4xbesar 1 24 16 128
gr6e.xlarge 1 48 4 32
g6e.2xlarge 1 48 8 64
g6e.4xlarge 1 48 16 128
g6e.8xlarge 1 48 32 256
g6e16.xlarge 1 48 64 512
g6e12.xlarge 4 192 48 384
g6e24.xlarge 4 192 96 768
g6e48.xlarge 8 384 192 1536
gr6.8xbesar 1 24 32 256

Anda dapat mengambil ID Amazon Machine Image (AMI) untuk Amazon ECS yang dioptimalkan AMIs dengan menanyakan Parameter Store API. AWS Systems Manager Dengan menggunakan parameter ini, Anda tidak perlu mencari AMI yang dioptimalkan Amazon ECS secara manual. IDs Untuk informasi selengkapnya tentang Systems Manager Parameter Store API, lihat GetParameter. Pengguna yang Anda gunakan harus memiliki izin ssm:GetParameter IAM untuk mengambil metadata AMI Amazon ECS yang dioptimalkan.

aws ssm get-parameters --names /aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended --region us-east-1

Pertimbangan

catatan

Dukungan untuk tipe keluarga instans g2 telah usang.

Jenis keluarga instans p2 hanya didukung pada versi yang lebih awal dari AMI yang 20230912 dioptimalkan untuk GPU Amazon ECS. Jika Anda perlu terus menggunakan instance p2, lihat. Apa yang harus dilakukan jika Anda membutuhkan instance P2

Pembaruan driver NVIDIA/CUDA di tempat pada kedua jenis keluarga instance ini akan menyebabkan potensi kegagalan beban kerja GPU.

Kami menyarankan Anda mempertimbangkan hal berikut sebelum Anda mulai bekerja dengan GPUs Amazon ECS.

  • Klaster Anda dapat terdiri dari campuran GPU dan instans kontainer non-GPU.

  • Anda dapat menjalankan beban kerja GPU pada instance eksternal. Saat mendaftarkan instance eksternal dengan cluster Anda, pastikan --enable-gpu flag disertakan pada skrip instalasi. Untuk informasi selengkapnya, lihat Mendaftarkan instans eksternal ke kluster Amazon ECS.

  • Anda harus mengatur ECS_ENABLE_GPU_SUPPORT ke true dalam 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 Bagaimana Amazon ECS menempatkan tugas pada instans kontainer.

    Contoh berikut meluncurkan tugas pada instans kontainer g4dn.xlarge di 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 kontainer yang memiliki persyaratan sumber daya GPU yang ditentukan dalam definisi kontainer, Amazon ECS menetapkan runtime kontainer menjadi runtime kontainer NVIDIA.

  • Runtime kontainer NVIDIA membutuhkan beberapa variabel lingkungan untuk disetel dalam wadah agar berfungsi dengan baik. Untuk daftar variabel lingkungan ini, lihat Konfigurasi Khusus dengan Docker. Amazon ECS menetapkan nilai variabel NVIDIA_VISIBLE_DEVICES lingkungan menjadi daftar perangkat GPU yang ditetapkan IDs Amazon ECS ke wadah. Untuk variabel lingkungan lain yang diperlukan, Amazon ECS tidak mengaturnya. Jadi, pastikan gambar kontainer Anda menyetelnya atau disetel dalam definisi kontainer.

  • Keluarga tipe instans p5 didukung pada versi 20230929 dan yang lebih baru dari AMI yang dioptimalkan untuk GPU Amazon ECS.

  • Keluarga tipe instans g4 didukung pada versi 20230913 dan yang lebih baru dari AMI yang dioptimalkan untuk GPU Amazon ECS. Untuk informasi selengkapnya, lihat Linux Amazon ECS yang dioptimalkan AMIs. Ini tidak didukung dalam alur kerja Create Cluster di konsol Amazon ECS. Untuk menggunakan jenis instance ini, Anda harus menggunakan EC2 konsol Amazon AWS CLI, atau API dan mendaftarkan instance secara manual ke klaster Anda.

  • Tipe instans p4d.24xlarge hanya bekerja dengan CUDA 11 atau yang lebih baru.

  • AMI yang dioptimalkan oleh GPU Amazon ECS IPv6 telah diaktifkan, yang menyebabkan masalah saat menggunakan. yum Ini dapat diatasi dengan mengkonfigurasi yum untuk digunakan IPv4 dengan perintah berikut.

    echo "ip_resolve=4" >> /etc/yum.conf
  • Saat Anda membuat gambar kontainer yang tidak menggunakan gambar dasar NVIDIA/CUDA, Anda harus menyetel variabel runtime NVIDIA_DRIVER_CAPABILITIES kontainer ke salah satu nilai berikut:

    • utility,compute

    • all

    Untuk informasi tentang cara mengatur variabel, lihat Mengontrol Runtime Kontainer NVIDIA di situs web NVIDIA.

  • GPUs tidak didukung pada wadah Windows.

Bagikan GPUs

Tambahkan data pengguna berikut ke instance Anda saat Anda ingin beberapa kontainer berbagi 1 GPU. Untuk informasi selengkapnya, lihat Menjalankan perintah saat Anda meluncurkan EC2 instance dengan input data pengguna di Panduan EC2 Pengguna Amazon.

Gunakan AMI yang dioptimalkan untuk GPU terakhir yang didukung

Anda dapat menggunakan 20230906 versi AMI yang dioptimalkan untuk GPU, dan menambahkan yang berikut ini ke data pengguna instance.

Ganti nama cluster dengan nama cluster Anda.

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', );

Apa yang harus dilakukan jika Anda membutuhkan 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 Menjalankan perintah saat Anda meluncurkan EC2 instance dengan input data pengguna di Panduan EC2 Pengguna Amazon.

Gunakan AMI yang dioptimalkan untuk GPU terakhir yang didukung

Anda dapat menggunakan 20230906 versi AMI yang dioptimalkan untuk GPU, dan menambahkan yang berikut ini ke data pengguna instance.

Ganti nama cluster dengan nama cluster Anda.

#!/bin/bash echo "exclude=*nvidia* *cuda*" >> /etc/yum.conf echo "ECS_CLUSTER=cluster-name" >> /etc/ecs/ecs.config

Gunakan AMI terbaru yang dioptimalkan untuk GPU, dan perbarui data pengguna

Anda dapat menambahkan berikut ini ke data pengguna instance. Ini menghapus instalasi 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 AMI yang dioptimalkan dengan GPU yang kompatibel dengan P2 Anda sendiri

Anda dapat membuat AMI yang dioptimalkan untuk GPU Amazon ECS kustom Anda sendiri yang kompatibel dengan instans P2, lalu meluncurkan instans P2 menggunakan AMI.

  1. Jalankan perintah berikut untuk mengkloning file. amazon-ecs-ami repo

    git clone https://github.com/aws/amazon-ecs-ami
  2. Tetapkan agen Amazon ECS yang diperlukan dan sumber versi AMI Amazon Linux di release.auto.pkrvars.hcl atauoverrides.auto.pkrvars.hcl.

  3. Jalankan perintah berikut untuk membangun EC2 AMI yang kompatibel dengan P2 pribadi.

    Ganti region dengan Region dengan instance Region.

    REGION=region make al2keplergpu
  4. Gunakan AMI dengan data pengguna instans berikut untuk menyambung ke klaster Amazon ECS.

    Ganti nama cluster dengan nama cluster Anda.

    #!/bin/bash echo "ECS_CLUSTER=cluster-name" >> /etc/ecs/ecs.config