Elastic Fabric Adapter - 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.

Elastic Fabric Adapter

Elastic Fabric Adapter (EFA) est un périphérique réseau que vous pouvez attacher vos instances Amazon EC2 pour accélérer les applications de calcul haute performance (HPC) et machine learning. EFA vous permet d'atteindre les performances applicatives d'un cluster HPC sur site, grâce à l'évolutivité, à la flexibilité et à l'élasticité offertes par le cloud. AWS

Les EFA offrent une latence plus faible et plus cohérente avec un débit plus élevé que le transport TCP utilisé traditionnellement dans les systèmes HPC basés sur le cloud. Il améliore les performances des communications entre instances, ce qui est essentiel pour la mise à l’échelle des applications HPC et de Machine Learning. Il est optimisé pour fonctionner sur l'infrastructure AWS réseau existante et peut évoluer en fonction des exigences de l'application.

Les EFA s’intègrent à Libfabric 1.7.0 et aux versions ultérieures et prennent en charge Open MPI 5 et les versions ultérieures, ainsi que Intel MPI 2019 Update 5 et les versions ultérieures pour les applications HPC, et Nvidia Collective Communications Library (NCCL) pour les applications de machine learning.

Note

Les capacités de contournement du système d’exploitation d’EFAs ne sont pas prises en charge sur des instances Windows. Si vous attachez un EFA à une instance Windows, l’instance fonctionne en tant qu’adaptateur Elastic Network Adapter sans les capacités EFA ajoutées.

Principes de base EFA

Un EFA est un adaptateur Elastic Network Adapter (ENA) avec des capacités ajoutées. Il offre toutes les fonctionnalités d’un ENA, avec des capacités de contournement du système d’exploitation supplémentaires. Le contournement du système d’exploitation est un modèle d’accès qui permet aux applications HPC et de Machine Learning de communiquer directement avec le matériel de l’interface réseau pour offrir des fonctionnalités de transport fiable à faible latence.


				Comparaison d’une pile de logiciels HPC traditionnelle avec une pile qui utilise un EFA.

Traditionnellement, les applications HPC utilisent Message Passing Interface (MPI) pour servir d’interface avec le transport réseau du système. Dans le AWS cloud, cela signifie que les applications interagissent avec MPI, qui utilise ensuite la pile TCP/IP du système d'exploitation et le pilote de périphérique ENA pour permettre la communication réseau entre les instances.

Avec EFA, les applications HPC ou NCCL utilisent MPI pour servir d’interface avec l’API Libfabric. L’API Libfabric contourne le noyau du système d’exploitation et communique directement avec l’appareil EFA pour placer les paquets sur le réseau. Cela réduit la surcharge et permet à l’application HPC de s’exécuter plus efficacement.

Note

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

Différences entre les EFAs et les adaptateurs ENA

Les adaptateurs Elastic Network Adapter (ENAs) fournissent les fonctions de réseaux IP classiques qui sont requises pour prendre en charge les réseaux VPC. Les EFA fournissent les mêmes fonctions de réseaux IP classiques que les ENA, mais ils prennent également en charge les capacités de contournement du système d’exploitation. Le contournement du système d’exploitation permet aux applications HPC et de Machine Learning de contourner le noyau du système d’exploitation et de communiquer directement avec l’appareil EFA.

Interfaces et bibliothèques prises en charge

Les EFA prennent en charge les interfaces et bibliothèques suivantes :

  • Open MPI 5 et versions ultérieures

  • Une version Open MPI 4.0 ou plus récente est privilégiée pour Graviton

  • Intel MPI 2019 Update 5 et ultérieure

  • NVIDIA Collective 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

  • Optimisées pour la mémoire : 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 | 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 | gr6.8xlarge | inf1.24xlarge | p3dn.24xlarge | p4d.24xlarge | p4de.24xlarge | p5.48xlarge | trn1.32xlarge | trn1n.32xlarge | vt1.24xlarge

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

Pour consulter les types d’instance disponibles qui prennent en charge les EFA dans une région spécifique

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

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

Les systèmes d’exploitation suivants prennent en charge les EFA avec les types d’instance Intel/AMD x86 :

  • Amazon Linux 2023

  • Amazon Linux 2

  • CentOS 7

  • RHEL 7, 8 et 9

  • Debian 10 et 11

  • Rocky Linux 8 et 9

  • Ubuntu 20.04 et 22.04

  • SUSE Linux Enterprise 15 SP2 ou version ultérieure

  • OpenSUSE Leap 15.4 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.

Les systèmes d’exploitation suivants prennent en charge les EFA avec les types d’instance ARM (Graviton) :

  • Amazon Linux 2023

  • Amazon Linux 2

  • RHEL 8/9 et Rocky Linux 8/9

  • Debian 10 et 11

  • Ubuntu 20.04 et 22.04

  • SUSE Linux Enterprise 15 SP2 ou version ultérieure

Restrictions liées à EFA

Les EFA présentent les limitations suivantes :

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

  • Le trafic EFA entre les instances P4d/P4de/DL1 et les autres types d’instances n’est actuellement pas pris en charge.

  • Les types d’instance qui prennent en charge plusieurs cartes réseau peuvent être configurés avec un EFA par carte réseau. Tous les autres types d’instance pris en charge ne prennent en charge qu’un EFA par instance.

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

  • Le trafic de contournement du système d’exploitation EFA est limité à un seul sous-réseau. En d’autres termes, le trafic EFA ne peut pas être envoyé d’un sous-réseau à un autre. Le trafic IP normal de l’EFA peut être envoyé d’un sous-réseau à un autre.

  • Le trafic de contournement du système d’exploitation EFA n’est pas routable. Le trafic IP normal de l’EFA reste routable.

  • L’EFA doit appartenir à un groupe de sécurité qui autorise tout le trafic entrant et sortant vers et depuis le groupe de sécurité proprement dit.

  • L'EFA n'est pas pris en charge sur AWS Outposts.

Tarification EFA

EFA est disponible en tant que fonctionnalité de mise en réseau Amazon EC2 optionnelle que vous pouvez activer sur n’importe quelle instance prise en charge sans frais supplémentaires.