Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Definizioni di attività Amazon ECS per carichi di lavoro GPU
Amazon ECS supporta carichi di lavoro che utilizzano le GPU, quando crei cluster con istanze di container che supportano le GPU. Le istanze di GPU-based container Amazon EC2 che utilizzano i tipi di istanze p2, p3, p5, g3, g4 e g5 forniscono l'accesso alle GPU NVIDIA. Per maggiori informazioni, consultare Linux Accelerated Computing Instances nella Guida ai tipi di istanze Amazon EC2.
Amazon ECS fornisce un' GPU-optimized AMI che include driver kernel NVIDIA preconfigurati e un runtime per GPU Docker. Per ulteriori informazioni, consulta AMI Amazon ECS-optimized Linux.
Puoi designare un certo numero di GPU nella definizione di attività per considerazioni di posizionamento del processo a livello di container. Amazon ECS esegue la programmazione verso le istanze di container disponibili che supportano le GPU e vincolano le GPU fisiche ai container corretti per garantire prestazioni ottimali.
Sono supportati i seguenti tipi di GPU-based istanze Amazon EC2. Per ulteriori informazioni, consultare Istanze Amazon EC2 P2
| Tipo di istanza | GPU | Memoria GPU (GiB) | vCPUs | Memoria (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.x grande | 1 | 24 | 64 | 256 |
| g6.12xlarge | 4 | 96 | 48 | 192 |
| g6.24xlarge | 4 | 96 | 96 | 384 |
| g6.48xlarge | 8 | 192 | 192 | 768 |
| g6.metal | 8 | 192 | 192 | 768 |
| gr6.4xlarge | 1 | 24 | 16 | 128 |
| g6e.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.8xlarge | 1 | 24 | 32 | 256 |
Puoi recuperare l'ID Amazon Machine Image (AMI) per le AMI Amazon interrogando l' ECS-optimized API AWS Systems Manager Parameter Store. Utilizzando questo parametro, non è necessario cercare manualmente gli ID Amazon ECS-optimized AMI. Per ulteriori informazioni sull'API Systems Manager Parameter Store, vedere GetParameter. L'utente che utilizzi deve disporre dell'autorizzazione ssm:GetParameter IAM per recuperare i metadati di Amazon ECS-optimized AMI.
aws ssm get-parameters --names /aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended --regionus-east-1
Considerazioni
Nota
Il supporto per il tipo di famiglia di istanze g2 è obsoleto.
Il tipo di famiglia di istanze p2 è supportato solo nelle versioni precedenti 20230912 all'AMI Amazon ECS GPU-optimized . Per continuare a utilizzare le istanze p2, consulta Operazioni da eseguire per utilizzare un'istanza P2.
In-place gli aggiornamenti dei NVIDIA/CUDA driver su entrambi questi tipi di famiglie di istanze causeranno potenziali guasti del carico di lavoro della GPU.
È consigliabile considerare le informazioni seguenti prima di iniziare a utilizzare le GPU su Amazon ECS.
-
I cluster possono contenere una combinazione di istanze di container GPU e non GPU.
-
Puoi eseguire carichi di lavoro GPU su istanze esterne. Durante la registrazione di un'istanza esterna nel tuo cluster, assicurati che il flag
--enable-gpusia incluso nello script di installazione. Per ulteriori informazioni, consulta Registrazione di un'istanza esterna in un cluster Amazon ECS. -
È necessario impostare
ECS_ENABLE_GPU_SUPPORTsutruenel file di configurazione dell'agente. Per ulteriori informazioni, consulta Configurazione dell'agente del container Amazon ECS. -
Durante l'esecuzione di un'attività o la creazione di un servizio, puoi utilizzare gli attributi del tipo di istanza quando configuri i vincoli di posizionamento delle attività per garantire su quali istanze di container verrà avviata l'attività. In questo modo, puoi utilizzare in modo più efficiente le risorse. Per ulteriori informazioni, consulta In che modo Amazon ECS colloca le attività sulle istanze dei container.
L'esempio seguente avvia un'attività su un'istanza di container
g4dn.xlargenel cluster predefinito.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 -
Per ogni container che ha un requisito di risorsa GPU specificato nella definizione di container, Amazon ECS imposta il runtime del container in modo che sia il runtime del container NVIDIA.
-
Il runtime del container NVIDIA richiede per poter funzionare l'impostazione di alcune variabili di ambiente nel container. Per un elenco di queste variabili di ambiente, consultare Specialized Configurations with Docker
. Amazon ECS imposta il valore della variabile di ambiente NVIDIA_VISIBLE_DEVICEScome un elenco di ID dispositivo GPU che Amazon ECS assegna al container. Le altre variabili di ambiente richieste non vengono impostate da, Amazon ECS. Quindi, assicurati che siano impostate dall'immagine del container o nella definizione di quest'ultimo. -
La famiglia di tipi di istanze p5 è supportata nella versione
20230929e nelle successive dell'AMI Amazon ECS GPU-optimized . -
La famiglia di tipi di istanze g4 è supportata nella versione
20230913e nelle successive dell'AMI Amazon ECS GPU-optimized . Per ulteriori informazioni, consulta AMI Amazon ECS-optimized Linux. Non è supportata nel flusso di lavoro Crea cluster nella console Amazon ECS. Per utilizzare questi tipi di istanze, devi utilizzare la console o l'API di Amazon EC2 e registrare manualmente le istanze nel cluster. AWS CLI -
Il tipo di istanza p4d.24xlarge funziona solo con CUDA 11 o versioni successive.
-
L' GPU-optimized AMI Amazon ECS è abilitato per IPv6, il che causa problemi durante l'utilizzo.
yumQuesto può essere risolto configurandoyumin modo da utilizzare IPv4 con il seguente comando.echo "ip_resolve=4" >> /etc/yum.conf -
Quando crei un'immagine del contenitore che non utilizza le immagini di NVIDIA/CUDA base, devi impostare la variabile di runtime del
NVIDIA_DRIVER_CAPABILITIEScontenitore su uno dei seguenti valori:-
utility,compute -
all
Per informazioni su come impostare la variabile, consulta Controllo del runtime del container NVIDIA
sul sito Web di NVIDIA. -
-
Le GPU non sono supportate nei container Windows.
Condividi GPU
Quando si desidera condividere le GPU, è necessario configurare quanto segue.
-
Rimuovere i requisiti delle risorse GPU dalle definizioni delle attività in modo che Amazon ECS non riservi alcuna GPU da condividere.
-
Aggiungere i seguenti dati utente alle istanze quando si desidera condividere le GPU. Ciò renderà nvidia il runtime predefinito del container Docker sull'istanza di container in modo che tutti i container Amazon ECS possano utilizzare le GPU. Per ulteriori informazioni, consultare Run commands when you launch an EC2 instance with user data input nella Guida per l'utente di 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', ); -
Impostare la variabile di ambiente
NVIDIA_VISIBLE_DEVICESsul container. È possibile eseguire questa operazione specificando la variabile di ambiente nella definizione dell'attività. Per informazioni sui valori validi, consultare GPU Enumerationsul sito di documentazione di NVIDIA.
Operazioni da eseguire per utilizzare un'istanza P2
Per continuare a lavorare con le istanze P2, puoi utilizzare una delle seguenti opzioni.
È necessario modificare i dati utente dell'istanza per entrambe le opzioni. Per ulteriori informazioni, consultare Run commands when you launch an EC2 instance with user data input nella Guida per l'utente di Amazon EC2.
Usa l'ultima GPU-optimized AMI supportata
Puoi utilizzare la 20230906 versione dell' GPU-optimized AMI e aggiungere quanto segue ai dati utente dell'istanza.
Sostituire cluster-name con il nome del cluster.
#!/bin/bash echo "exclude=*nvidia* *cuda*" >> /etc/yum.conf echo "ECS_CLUSTER=cluster-name" >> /etc/ecs/ecs.config
Usa l' GPU-optimized AMI più recente e aggiorna i dati utente
Puoi aggiungere i comandi seguenti ai dati utente dell'istanza. Questo disinstalla i driver Nvidia 535/Cuda12 .2, quindi installa i driver Nvidia 470/Cuda11 .4 e corregge la versione.
#!/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
Crea la tua AMI compatibile con GPU-optimized P2
Puoi creare un' GPU-optimized AMI Amazon ECS personalizzata compatibile con le istanze P2 e quindi avviare istanze P2 utilizzando l'AMI.
-
Esegui il comando seguente per clonare
amazon-ecs-ami repo.git clone https://github.com/aws/amazon-ecs-ami -
Imposta l'agente Amazon ECS richiesto e le versioni dell'AMI Amazon Linux di origine in
release.auto.pkrvars.hclooverrides.auto.pkrvars.hcl. -
Esegui il comando seguente per creare un'AMI EC2 privata compatibile con P2.
Sostituisci la regione con la regione dell'istanza.
REGION=regionmake al2keplergpu -
Utilizza l'AMI con i seguenti dati utente dell'istanza per connetterti al cluster Amazon ECS.
Sostituire cluster-name con il nome del cluster.
#!/bin/bash echo "ECS_CLUSTER=cluster-name" >> /etc/ecs/ecs.config