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 i carichi di lavoro che utilizzano GPUs, quando crei cluster con istanze di container che supportano. GPUs Le istanze di container EC2 basate su Amazon GPU che utilizzano i tipi di istanze p2, p3, p5, g3, g4 e g5 forniscono l'accesso a NVIDIA. GPUs Per ulteriori informazioni, consulta Linux Accelerated Computing Instances nella guida Amazon EC2 Instance Types.
Amazon ECS fornisce un'AMI ottimizzata per GPU che dispone di driver del kernel NVIDIA pre-configurati e un runtime del GPU Docker. Per ulteriori informazioni, consulta Linux ottimizzato per Amazon ECS AMIs.
Puoi designarne alcune nella definizione dell'attività da prendere GPUs in considerazione a livello di contenitore. Amazon ECS pianifica le istanze di container disponibili che supportano GPUs e collegano contenitori fisici GPUs a contenitori appropriati per prestazioni ottimali.
Sono supportati i seguenti tipi di istanze EC2 basate su Amazon GPU. Per ulteriori informazioni, consulta Istanze Amazon EC2 P2, Istanze
Tipo di istanza | GPUs | Memoria GPU (GiB) | v CPUs | 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.x grande | 1 | 24 | 4 | 16 |
g6,2 x grande | 1 | 24 | 8 | 32 |
g 6,4 x grande | 1 | 24 | 16 | 64 |
g 6,8 x grande | 1 | 24 | 32 | 128 |
g6,16.x grande | 1 | 24 | 64 | 256 |
g6.12 x grande | 4 | 96 | 48 | 192 |
g6,24 x grande | 4 | 96 | 96 | 384 |
g6,48 x grande | 8 | 192 | 192 | 768 |
g6. metallo | 8 | 192 | 192 | 768 |
gr 6,4 x grande | 1 | 24 | 16 | 128 |
g6e.xlarge | 1 | 48 | 4 | 32 |
g6e.2x grande | 1 | 48 | 8 | 64 |
g6e.4x grande | 1 | 48 | 16 | 128 |
g6e.8x grande | 1 | 48 | 32 | 256 |
g6e16.x grande | 1 | 48 | 64 | 512 |
g6e12.x grande | 4 | 192 | 48 | 384 |
g6e24.x grande | 4 | 192 | 96 | 768 |
g6e48.x grande | 8 | 384 | 192 | 1536 |
gr 6,8 x grande | 1 | 24 | 32 | 256 |
Puoi recuperare l'ID Amazon Machine Image (AMI) per Amazon ECS ottimizzato per Amazon ECS AMIs interrogando l' AWS Systems Manager API Parameter Store. Utilizzando questo parametro, non è necessario cercare manualmente le AMI ottimizzate per Amazon ECS. IDs Per ulteriori informazioni sull'API Systems Manager Parameter Store, vedere GetParameter. Il principale IAM che utilizzi deve disporre dell'autorizzazione IAM ssm:GetParameter
per recuperare i metadati dell'AMI ottimizzata per Amazon ECS.
aws ssm get-parameters --names /aws/service/ecs/optimized-ami/amazon-linux-2/gpu/recommended --region
us-east-1
Considerazioni
Nota
Il supporto per il tipo di famiglia di istanze g2 è obsoleto.
La famiglia di istanze p2 è supportata solo nelle versioni precedenti a 20230912
dell'AMI Amazon ECS ottimizzata per GPU. Per continuare a utilizzare le istanze p2, consulta Operazioni da eseguire per utilizzare un'istanza P2.
Gli aggiornamenti locali dei driver NVIDIA/CUDA su entrambi i tipi di famiglie di istanze causano potenziali errori nel carico di lavoro della GPU.
Ti consigliamo di considerare quanto segue prima di iniziare a lavorare GPUs 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-gpu
sia incluso nello script di installazione. Per ulteriori informazioni, consulta Registrazione di un'istanza esterna in un cluster Amazon ECS. -
È necessario impostare
ECS_ENABLE_GPU_SUPPORT
sutrue
nel 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 di container.
L'esempio seguente avvia un'attività su un'istanza di container
g4dn.xlarge
nel 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, consulta Configurazioni specializzate con Docker
. Amazon ECS imposta il valore della variabile di NVIDIA_VISIBLE_DEVICES
ambiente in modo che sia un elenco dei dispositivi GPU che IDs Amazon ECS assegna al contenitore. 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 del tipo di istanza p5 è supportata nella versione
20230929
e successive dell'AMI Amazon ECS ottimizzata per GPU. -
La famiglia del tipo di istanza g4 è supportata nella versione
20230913
e successive dell'AMI Amazon ECS ottimizzata per GPU. Per ulteriori informazioni, consulta Linux ottimizzato per Amazon ECS AMIs. Non è supportata nel flusso di lavoro Crea cluster nella console Amazon ECS. Per utilizzare questi tipi di istanze, devi utilizzare la EC2 console Amazon o l'API e registrare manualmente le istanze nel tuo cluster. AWS CLI -
Il tipo di istanza p4d.24xlarge funziona solo con CUDA 11 o versioni successive.
-
L'AMI Amazon ECS ottimizzata per GPU IPv6 è abilitata, il che causa problemi durante l'utilizzo.
yum
Questo problema può essere risolto configurandolo per l'uso IPv4 conyum
il seguente comando.echo "ip_resolve=4" >> /etc/yum.conf
-
Quando si crea un'immagine di container che non utilizza le immagini di base NVIDIA/CUDA, è necessario impostare la variabile di runtime del container
NVIDIA_DRIVER_CAPABILITIES
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. -
-
GPUs non sono supportati nei contenitori Windows.
Condividi GPUs
Quando vuoi condividere GPUs, devi configurare quanto segue.
Rimuovi i requisiti di risorse GPU dalle definizioni delle tue attività in modo che Amazon ECS non riservi quelle GPUs che devono essere condivise.
Aggiungi i seguenti dati utente alle tue istanze quando desideri condividerli. GPUs Ciò renderà nvidia il runtime del contenitore Docker predefinito sull'istanza del contenitore in modo che tutti i contenitori Amazon ECS possano utilizzare il. GPUs Per ulteriori informazioni, consulta Esegui comandi all'avvio di un' EC2 istanza con immissione di dati utente nella Amazon EC2 User Guide.
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', );
Imposta la variabile di
NVIDIA_VISIBLE_DEVICES
ambiente sul tuo contenitore. Puoi farlo specificando la variabile di ambiente nella definizione dell'attività. Per informazioni sui valori validi, consulta GPU Enumeration nel sito di documentazionedi 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, consulta Esegui comandi all'avvio di un' EC2 istanza con immissione di dati utente nella Amazon EC2 User Guide.
Usa l'ultima AMI ottimizzata per GPU supportata
Puoi utilizzare la versione 20230906
dell'AMI ottimizzata per GPU 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'AMI ottimizzata per GPU più recente e aggiorna i dati utente
Puoi aggiungere i comandi seguenti ai dati utente dell'istanza. Questa operazione consente di disinstallare i driver Nvidia 535/Cuda12.2 e installare i driver Nvidia 470/Cuda11.4, correggendo 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 ottimizzata per GPU compatibile con P2
Puoi creare un'AMI Amazon ECS ottimizzata per GPU personalizzata e compatibile con le istanze P2, quindi avviare le 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.hcl
ooverrides.auto.pkrvars.hcl
. -
Esegui il comando seguente per creare un EC2 AMI privato compatibile con P2.
Sostituisci la regione con la regione dell'istanza.
REGION=
region
make 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