View a markdown version of this page

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 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, Instans Amazon EC2 P3, Instans Amazon EC2 P4d, Instans Amazon EC2 P5, Instans Amazon EC2 G3, Instans Amazon EC2 G4, Instans Amazon EC2 G5, Instans Amazon EC2 G6, Instans Amazon EC2 G6e, dan Instans Amazon EC2 G6f. https://aws.amazon.com/ec2/instance-types/g6e/ https://aws.amazon.com/ec2/instance-types/g6f/

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 --region us-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-gpu bendera disertakan pada skrip instalasi. Untuk informasi selengkapnya, lihat Mendaftarkan instans eksternal ke cluster 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 Cara Amazon ECS Menempatkan Tugas di 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 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_DEVICES 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 Amazon ECS AMI 20230929 dan versi yang lebih baru GPU-optimized .

  • Keluarga tipe instans g4 didukung pada versi Amazon ECS AMI 20230913 dan 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. yum Hal ini dapat diatasi dengan mengonfigurasi yum untuk 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_CAPABILITIES container 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.

  1. Hapus persyaratan sumber daya GPU dari definisi tugas Anda sehingga Amazon ECS tidak memesan GPU apa pun yang harus dibagikan.

  2. 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', );
  3. Tetapkan variabel NVIDIA_VISIBLE_DEVICES lingkungan pada wadah Anda. Anda dapat melakukan ini dengan menentukan variabel lingkungan dalam definisi tugas Anda. Untuk informasi tentang nilai yang valid, lihat Penc acatan GPU di 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.

  1. Jalankan perintah berikut untuk mengkloningamazon-ecs-ami repo.

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

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

    Ganti wilayah dengan Region dengan instance Region.

    REGION=region make al2keplergpu
  4. 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