Adaptateur Elastic Fabric pour les charges de travail ML HPC et ML sur Amazon EC2 - Amazon Elastic Compute Cloud

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Adaptateur Elastic Fabric pour les charges de travail ML HPC et ML sur Amazon EC2

Un adaptateur Elastic Fabric (EFA) est un périphérique réseau que vous pouvez connecter à votre EC2 instance Amazon pour accélérer les applications de calcul haute performance (HPC) et d'apprentissage automatique. EFAvous permet d'atteindre les performances applicatives d'un HPC cluster sur site, grâce à l'évolutivité, à la flexibilité et à l'élasticité offertes par le AWS cloud.

EFAsfournissent une latence plus faible et plus constante et un débit plus élevé que le TCP transport traditionnellement utilisé dans les HPC systèmes basés sur le cloud. Il améliore les performances de la communication entre instances, essentielle pour le dimensionnement HPC et les applications d'apprentissage automatique. Il est optimisé pour fonctionner sur l'infrastructure AWS réseau existante et peut évoluer en fonction des exigences de l'application.

EFAss'intègre à Libfabric 1.7.0 et versions ultérieures et prend en charge Open MPI 5 et versions ultérieures, Intel MPI 2019 Update 5 et versions ultérieures pour les HPC applications, et Nvidia Collective Communications Library (NCCL) pour les applications d'apprentissage automatique.

Note

Les fonctionnalités de contournement du système d'exploitation de ne EFAs sont pas prises en charge sur les instances Windows. Si vous attachez un EFA à une instance Windows, celle-ci fonctionne comme un adaptateur réseau élastique, sans les EFA fonctionnalités supplémentaires.

EFAles bases

An EFA est un adaptateur réseau élastique (ENA) doté de fonctionnalités supplémentaires. Il fournit toutes les fonctionnalités d'unENA, avec une fonctionnalité supplémentaire de contournement du système d'exploitation. OS-Bypass est un modèle d'accès qui permet aux applications d'apprentissage automatique de communiquer directement avec le matériel d'interface réseau afin de fournir des fonctionnalités de transport fiables HPC et à faible latence.

Comparaison entre une pile HPC logicielle traditionnelle et une pile qui utilise unEFA.

Traditionnellement, HPC les applications utilisent l'interface de passage de message (MPI) pour s'interfacer avec le transport réseau du système. Dans le AWS cloud, cela signifie que les applications s'interfacent avecMPI, qui utilise ensuite la pile TCP /IP du système d'exploitation et le pilote de ENA périphérique pour permettre la communication réseau entre les instances.

Avec unEFA, HPC les applications utilisent MPI ou NCCL pour s'interfacer avec le Libfabric. API Le Libfabric API contourne le noyau du système d'exploitation et communique directement avec le EFA périphérique pour mettre des paquets sur le réseau. Cela réduit les frais généraux et permet à l'HPCapplication de fonctionner plus efficacement.

Note

Libfabric est un composant essentiel du framework OpenFabrics Interfaces (OFI), qui définit et exporte l'espace utilisateur API de. OFI Pour plus d'informations, consultez le OpenFabrics site Web de Libfabric.

Différences entre EFAs et ENAs

Les adaptateurs réseau Elastic (ENAs) fournissent les fonctionnalités de réseau IP traditionnelles requises pour prendre en charge la VPC mise en réseau. EFAsfournissent toutes les mêmes fonctionnalités de réseau IP traditionnelles queENAs, et ils prennent également en charge les fonctionnalités de contournement du système d'exploitation. OS-Bypass permet HPC aux applications d'apprentissage automatique de contourner le noyau du système d'exploitation et de communiquer directement avec l'EFAappareil.

Interfaces et bibliothèques prises en charge

EFAsprend en charge les interfaces et bibliothèques suivantes :

  • Open MPI 5 et versions ultérieures

  • Open MPI 4.0 ou version ultérieure est préférable pour Graviton

  • Intel MPI 2019 Update 5 et versions ultérieures

  • NVIDIACollective Communications Library (NCCL) 2.4.2 et versions ultérieures

Types d’instance pris en charge

Les types d'instance suivants prennent en charge EFAs :

  • Usage général : m5dn.24xlarge m5dn.metal m5n.24xlarge | m5n.metal m5zn.12xlarge | m5zn.metal | m6a.48xlarge | m6a.metal | m6i.32xlarge m6i.metal | m6id.32xlarge | m6id.metal | m6idn.32xlarge | m6idn.metal | m6in.32xlarge m6in.metal | m7a.48xlarge | m7a.metal-48xl | m7g.16xlarge | m7g.metal m7gd.16xlarge | m7gd.metal | m7i.48xlarge | m7i.metal-48xl

  • Optimisé pour le calcul : c5n.9xlarge c5n.18xlarge c5n.metal c6a.48xlarge | c6a.metal | c6gn.16xlarge | c6i.32xlarge | c6i.metal c6id.32xlarge | c6id.metal | c6in.32xlarge | c6in.metal | c7a.48xlarge | c7a.metal-48xl | c7g.16xlarge | c7g.metal | c7gd.16xlarge | c7gd.metal | c7gn.16xlarge | c7gn.metal | c7i.48xlarge | c7i.metal-48xl

  • Mémoire optimisée : r5dn.24xlarge | r5dn.metal | r5n.24xlarge | r5n.metal | | r6a.48xlarge | r6a.metal | r6i.32xlarge | r6i.metal | r6idn.32xlarge | r6idn.metal | r6in.32xlarge | r6in.metal | r6id.32xlarge | r6id.metal | r7a.48xlarge | r7a.metal-48xl | r7g.16xlarge | | r7g.metal | r7gd.16xlarge | r7gd.metal | r7i.48xlarge | r7i.metal-48xl | r7iz.32xlarge | r7iz.metal-32xl | r8g.24xlarge | r8g.48xlarge | r8g.metal-24xl | r8g.metal-48xl | u7i-12tb.224xlarge | u7in-16tb.224xlarge | | u7in-24tb.224xlarge | u7in-32tb.224xlarge | x2idn.32xlarge | x2idn.metal | x2iedn.32xlarge | x2iedn.metal | x2iezn.12xlarge | x2iezn.metal

  • Stockage optimisé : i3en.12xlarge | i3en.24xlarge | i3en.metal | i4g.16xlarge | i4i.32xlarge | i4i.metal | im4gn.16xlarge

  • Calcul accéléré : dl1.24xlarge dl2q.24xlarge g4dn.8xlarge | g4dn.12xlarge | g4dn.16xlarge | g4dn.metal g5.8xlarge | g5.12xlarge | g5.16xlarge | g5.24xlarge | g5.48xlarge | g6.8xlarge | g6.12xlarge g6.16xlarge | g6.24xlarge | g6.48xlarge | g6e.8xlarge | g6e.12xlarge | g6e.16xlarge g6e.24xlarge | g6e.48xlarge | gr6.8xlarge | inf1.24xlarge | p3dn.24xlarge | p4d.24xlarge p4de.24xlarge | p5.48xlarge | trn1.32xlarge | trn1n.32xlarge | vt1.24xlarge

  • Calcul haute performance : hpc6a.48xlarge hpc6id.32xlarge | hpc7a.12xlarge | hpc7a.24xlarge | hpc7a.48xlarge | hpc7a.96xlarge | hpc7g.4xlarge | hpc7g.8xlarge | hpc7g.16xlarge

Pour voir les types d'instances disponibles compatibles EFAs dans une région spécifique

Les types d’instance disponibles varient selon la région. Pour voir les types d'instances disponibles qui sont pris EFAs en charge dans une région, utilisez la describe-instance-typescommande avec le --region paramètre. Incluez le --filters paramètre pour étendre les résultats aux types d'instances pris en charge EFA et le --query paramètre pour étendre la sortie à la valeur deInstanceType.

aws ec2 describe-instance-types --region us-east-1 --filters Name=network-info.efa-supported,Values=true --query "InstanceTypes[*].[InstanceType]" --output text | sort

Systèmes d’exploitation pris en charge

La prise en charge du système d'exploitation varie en fonction du type de processeur. Le tableau suivant indique les systèmes d'exploitation pris en charge.

Système d’exploitation Types d'instances Intel/ AMD (x86_64) AWS Types d'instances de Graviton (arm64)
Amazon Linux 2023
Amazon Linux 2
RHEL8 et 9
Debian 10 et 11
Rocky Linux 8 et 9
Ubuntu 20.04, 22.04 et 24.04
SUSELinux Enterprise 15 SP2 et versions ultérieures
Ouvrez SUSE Leap 15.5 et versions ultérieures
Note

Ubuntu 20.04 prend en charge l’assistance directe entre pairs lorsqu’il est utilisé avec les instances dl1.24xlarge.

EFAlimites

EFAsprésentent les limites suivantes :

  • Tous les types d'instances P4d et P5 prennent en charge l'accès direct NVIDIA GPUDirect à distance à la mémoire ()RDMA.

  • EFAle trafic entre les instances P4D/P4de/ et les autres types d'DL1instances n'est actuellement pas pris en charge.

  • Les types d'instance qui prennent en charge plusieurs cartes réseau peuvent être configurés avec EFA une seule carte réseau. Tous les autres types d'instances pris en charge n'en prennent en charge qu'une seule EFA par instance.

  • Pourc7g.16xlarge, m7g.16xlarge et les instances r7g.16xlarge dédiées et les hôtes dédiés ne sont pas pris en charge lorsqu'un EFA est attaché.

  • EFALe trafic de contournement du système d'exploitation ne peut pas traverser les zones de disponibilité ou VPCs AWS les comptes. En d'autres termes, le trafic de EFA contournement du système d'exploitation ne peut pas circuler d'une zone de disponibilité VPC (avec ou sans connexion d'VPCappairage) ou d'un AWS compte à un autre. Cela ne s'applique pas au trafic IP normal provenant duEFA.

  • EFALe trafic de contournement du système d'exploitation ne peut pas être envoyé via les sous-réseaux d'une zone locale.

  • EFALe trafic de contournement du système d'exploitation n'est pas routable. Le trafic IP normal en provenance du EFA reste routable.

  • EFAIl doit être membre d'un groupe de sécurité qui autorise tout le trafic entrant et sortant à destination et en provenance du groupe de sécurité lui-même.

  • EFAn'est pas pris en charge sur les instances Windows.

  • EFAn'est pas compatible avec AWS Outposts.

EFAtarification

EFAest disponible en tant que fonctionnalité EC2 réseau Amazon optionnelle que vous pouvez activer sur n'importe quelle instance prise en charge sans frais supplémentaires.