

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 AI/ML les charges de travail HPC sur Amazon EC2
<a name="efa"></a>

Un Elastic Fabric Adapter (EFA) est un périphérique réseau que vous pouvez attacher à votre instance Amazon EC2 pour accélérer l’intelligence artificielle (IA), de machine learning (ML) et de calcul haute performance (HPC). L’EFA vous permet d’atteindre les performances d’application d’un cluster AI/ML ou HPC sur site, avec la capacité de mise à l’échelle, la flexibilité et l’élasticité offertes par le AWS Cloud.

EFA offre une latence plus faible et plus cohérente avec un débit plus élevé que le transport TCP utilisé traditionnellement dans des systèmes HPC basés sur le cloud. Il améliore les performances de la communication entre instances, essentielle à la mise à l'échelle AI/ML et aux applications HPC. Il est optimisé pour fonctionner sur l'infrastructure AWS réseau existante et peut évoluer en fonction des exigences de l'application.

EFA s'intègre à Libfabric et prend en charge la bibliothèque Nvidia Collective Communications (NCCL) et la bibliothèque NVIDIA Inference Xfer (NIXL) pour les applications d'IA et de ML, ainsi que Open MPI 4.1 et versions ultérieures et Intel MPI 2019 Update 5 et versions ultérieures pour les applications HPC. NCCL et MPI s'intègrent à Libfabric 1.7.0 et versions ultérieures. NIXL s'intègre à Libfabric 1.21.0 et versions ultérieures.

EFA prend en charge l’écriture RDMA (Remote Direct Memory Access) sur la plupart des types d’instances compatibles dotés de Nitro version 4 ou ultérieure. La lecture RDMA est prise en charge sur toutes les instances dotées de Nitro version 4 ou ultérieure. Pour de plus amples informations, veuillez consulter [Types d’instance pris en charge](#efa-instance-types).

**Topics**
+ [Principes de base EFA](#efa-basics)
+ [Interfaces et bibliothèques prises en charge](#efa-mpi)
+ [Types d’instance pris en charge](#efa-instance-types)
+ [Systèmes d’exploitation pris en charge](#efa-os)
+ [Restrictions liées à EFA](#efa-limits)
+ [Tarification EFA](#efa-pricing)
+ [Commencer avec EFA et MPI](efa-start.md)
+ [Commencer avec EFA et NCCL](efa-start-nccl.md)
+ [Commencez avec EFA et NIXL](efa-start-nixl.md)
+ [Maximisez la bande passante du réseau](efa-acc-inst-types.md)
+ [Créez et attachez un EFA](create-efa.md)
+ [Détachez et supprimez un EFA](detach-efa.md)
+ [Surveillez un EFA](efa-working-monitor.md)
+ [Vérifier le programme d’installation de EFA](efa-verify.md)
+ [Notes de mise à jour](efa-changelog.md)

## Principes de base EFA
<a name="efa-basics"></a>

Un périphérique EFA peut être attaché à une instance EC2 de deux manières :

1. Utilisation d’une interface EFA traditionnelle, également appelée EFA avec ENA, qui crée à la fois un appareil EFA et celui ENA.

1. Utilisation d’une interface EFA-unique, qui ne crée que le dispositif EFA.

Le dispositif EFA offre des fonctionnalités telles que le contournement intégré du système d’exploitation et le contrôle de la congestion par le biais du protocole de datagramme de fiabilité évolutive (SRD). Les fonctionnalités de l’EFA permettent un transport fiable à faible latence qui permet à l’interface EFA d’améliorer les performances des applications HPC et ML sur Amazon EC2. Alors que l’appareil ENA propose un réseau IP traditionnel.

![\[Comparaison d’une pile de logiciels HPC traditionnelle avec une pile qui utilise un EFA.\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/images/efa_stack.png)


Traditionnellement, AI/ML les applications utilisent NCCL et NIXL (pour l'inférence désagrégée). Les applications HPC utilisent l'interface MPI (Message Passing Interface) pour s'interfacer avec le transport réseau du système. Dans le AWS cloud, cela signifie que les applications s'interfacent avec NCCL, NIXL ou MPI, qui utilisent ensuite la TCP/IP pile du système d'exploitation et le pilote de périphérique ENA pour permettre la communication réseau entre les instances.

Avec une interface EFA traditionnelle (EFA avec ENA) ou EFA uniquement, les AI/ML applications utilisent NCCL et NIXL (pour l'inférence désagrégée). Les applications HPC utilisent MPI pour s'interfacer directement 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 les frais généraux AI/ML et permet aux applications HPC de fonctionner 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](https://ofiwg.github.io/libfabric/).

### Différences entre les interfaces réseau ENA, EFA et EFA-unique
<a name="efa-differences"></a>

Amazon EC2 offre deux types d’interfaces réseau :
+ les interfaces **ENA** fournissent toutes les fonctionnalités de réseau et de routage IP traditionnelles requises pour prendre en charge le réseau IP d’un VPC. Pour de plus amples informations, veuillez consulter [Activez la mise en réseau améliorée grâce à l’ENA sur vos instances EC2](enhanced-networking-ena.md).
+ Les interfaces **EFA** (EFA avec ENA) fournissent à la fois le dispositif ENA pour les réseaux IP et le dispositif EFA pour les communications à faible latence et haut débit.
+ **Les interfaces-unique** EFA ne prennent en charge que les fonctionnalités des appareils EFA, sans le périphérique ENA pour les réseaux IP traditionnels.

Le tableau suivant offre une comparaison des interfaces réseau ENA, EFA et EFA uniquement.


|  | ENA | EFA (EFA avec ENA) | EFA-unique | 
| --- | --- | --- | --- | 
| Prend en charge les fonctionnalités de réseau IP | Oui | Oui | Non | 
| Peut être attribué à IPv4 des IPv6 adresses | Oui | Oui | Non | 
| Peut être utilisé comme interface réseau principale pour l’instance | Oui | Oui | Non | 
| Compte pour la limite d’attachement de l’ENI, pour l’instance | Oui | Oui | Oui | 
| Prise en charge de types d’instances | Pris en charge sur tous les types d’instances basées sur Nitro | [Types d’instance pris en charge](#efa-instance-types) | [Types d’instance pris en charge](#efa-instance-types) | 
| Dénomination des paramètres dans EC2 APIs | interface | efa | efa-only | 
| Dénomination des champs dans la console EC2 | Aucune sélection | EFA avec ENA | EFA-unique | 

## Interfaces et bibliothèques prises en charge
<a name="efa-mpi"></a>

EFAs supporte les interfaces et bibliothèques suivantes :
+ Ouvrez MPI 4.1 et versions ultérieures
+ Intel MPI 2019 Update 5 et ultérieure
+ NVIDIA Collective Communications Library (NCCL) 2.4.2 et versions ultérieures
+ NVIDIA Inference Xfer Library (NIXL) 1.0.0 et versions ultérieures
+ AWS Neuron SDK version 2.3 et versions ultérieures

## Types d’instance pris en charge
<a name="efa-instance-types"></a>

Tous les types d’instance suivants prennent en charge EFA. En outre, les tableaux indiquent la prise en charge de la lecture RDMA et de l’écriture RDMA pour les types d’instances.

------
#### [ Nitro v6 ]


| Type d’instance | Prise en charge de lecture RDMA | Prise en charge de l’écriture RDMA | 
| --- |--- |--- |
| Usage général | 
| --- |
| 8 m x 48 x large | Oui | Oui | 
| m8a.metal-48xl | Oui | Oui | 
| m8azn. 24 x large | Oui | Oui | 
| m8azn.metal-24xl | Oui | Oui | 
| 8 Go, 16 x large | Oui | Oui | 
| 8 Go, 24 x large | Oui | Oui | 
| 8 Go, 48 x large | Oui | Oui | 
| m8gb.metal-24xl | Oui | Oui | 
| m8gb.metal-48xl | Oui | Oui | 
| 8 mm x 16 x large | Oui | Oui | 
| 8 mm, 24 x large | Oui | Oui | 
| 8 mm x 48 x large | Oui | Oui | 
| m8gn.metal-24xl | Oui | Oui | 
| m8gn.metal-48xl | Oui | Oui | 
| m8i.48xlarge | Oui | Oui | 
| m8i.96xlarge | Oui | Oui | 
| m8i.metal-48xl | Oui | Oui | 
| m8i.metal-96xl | Oui | Oui | 
| m 8 id.48 x large | Oui | Oui | 
| M8 id.96 x large | Oui | Oui | 
| m8id.metal-48xl | Oui | Oui | 
| m8id.metal-96xl | Oui | Oui | 
| Calcul optimisé | 
| --- |
| environ 8 x 48 x large | Oui | Oui | 
| c8a.metal-48xl | Oui | Oui | 
| 8 Go, 16 x large | Oui | Oui | 
| 8 Go, 24 x large | Oui | Oui | 
| 8 Go, 48 x large | Oui | Oui | 
| c8gb.metal-24xl | Oui | Oui | 
| c8gb.metal-48xl | Oui | Oui | 
| c8gn.16xlarge | Oui | Oui | 
| c8gn.24xlarge | Oui | Oui | 
| c8gn.48xlarge | Oui | Oui | 
| c8gn.metal-24xl | Oui | Oui | 
| c8gn.metal-48xl | Oui | Oui | 
| 8 x 48 x large | Oui | Oui | 
| c8i.96xlarge | Oui | Oui | 
| c8i.metal-48xl | Oui | Oui | 
| c8i.metal-96xl | Oui | Oui | 
| C8 id.48 x large | Oui | Oui | 
| C8 id.96 x large | Oui | Oui | 
| c8id.metal-48xl | Oui | Oui | 
| c8id.metal-96xl | Oui | Oui | 
| Mémoire optimisée | 
| --- |
| r8a. 48 x large | Oui | Oui | 
| r8a.metal-48xl | Oui | Oui | 
| r8gb.16xlarge | Oui | Oui | 
| r8gb.24xlarge | Oui | Oui | 
| 8 Go, 48 x large | Oui | Oui | 
| r8gb.metal-24xl | Oui | Oui | 
| r8gb.metal-48xl | Oui | Oui | 
| r8gn.16xlarge | Oui | Oui | 
| r8gn.24xlarge | Oui | Oui | 
| r8gn.48xlarge | Oui | Oui | 
| r8gn.metal-24xl | Oui | Oui | 
| r8gn.metal-48xl | Oui | Oui | 
| r8i.48xlarge | Oui | Oui | 
| r8i.96xlarge | Oui | Oui | 
| r8i.metal-48xl | Oui | Oui | 
| r8i.metal-96xl | Oui | Oui | 
| R8id.48xlarge | Oui | Oui | 
| 8 id.96 x large | Oui | Oui | 
| r8id.metal-48xl | Oui | Oui | 
| r8id.metal-96xl | Oui | Oui | 
| x 8 aedz. 24 x large | Oui | Oui | 
| x8aedz.metal-24xl | Oui | Oui | 
| 8 x 48 x large | Oui | Oui | 
| x 8 x 64 x large | Oui | Oui | 
| x 8 x 96 x large | Oui | Oui | 
| x8i.metal-48xl | Oui | Oui | 
| x8i.metal-96xl | Oui | Oui | 
| Stockage optimisé | 
| --- |
| i8ge.48xlarge | Oui | Non | 
| i8ge.metal-48xl | Oui | Non | 
| Calcul accéléré | 
| --- |
| 7e x 8 x large | Oui | Oui | 
| G7E, 12 x large | Oui | Oui | 
| g7e x 24 x large | Oui | Oui | 
| g7e 48 x large | Oui | Oui | 
| p6-b200.48xlarge | Oui | Oui | 
| p6-b 300,48 x large | Oui | Oui | 
| Calcul haute performance | 
| --- |
| HP C8A. 96 x large | Oui | Oui | 

------
#### [ Nitro v5 ]


| Type d’instance | Prise en charge de lecture RDMA | Prise en charge de l’écriture RDMA | 
| --- |--- |--- |
| Usage général | 
| --- |
| m8g.24xlarge | Oui | Non | 
| m8g.48xlarge | Oui | Non | 
| m8g.metal-24xl | Oui | Non | 
| m8g.metal-48xl | Oui | Non | 
| m8gd.24xlarge | Non | Non | 
| m8gd.48xlarge | Non | Non | 
| m8gd.metal-24xl | Non | Non | 
| m8gd.metal-48xl | Non | Non | 
| Calcul optimisé | 
| --- |
| c7gn.16xlarge | Oui | Non | 
| c7gn.metal | Oui | Non | 
| c8g.24xlarge | Oui | Non | 
| c8g.48xlarge | Oui | Non | 
| c8g.metal-24xl | Oui | Non | 
| c8g.metal-48xl | Oui | Non | 
| c8gd.24xlarge | Non | Non | 
| c8gd.48xlarge | Non | Non | 
| c8gd.metal-24xl | Non | Non | 
| c8gd.metal-48xl | Non | Non | 
| Mémoire optimisée | 
| --- |
| r8g.24xlarge | Non | Non | 
| r8g.48xlarge | Non | Non | 
| r8g.metal-24xl | Non | Non | 
| r8g.metal-48xl | Non | Non | 
| r8gd.24xlarge | Non | Non | 
| r8gd.48xlarge | Non | Non | 
| r8gd.metal-24xl | Non | Non | 
| r8gd.metal-48xl | Non | Non | 
| x8g.24xlarge | Non | Non | 
| x8g.48xlarge | Non | Non | 
| x8g.metal-24xl | Non | Non | 
| x8g.metal-48xl | Non | Non | 
| Stockage optimisé | 
| --- |
| i7ie.48xlarge | Oui | Non | 
| i7ie.metal-48xl | Oui | Non | 
| i8g.48xlarge | Non | Non | 
| i8g.metal-48xl | Non | Non | 
| Calcul accéléré | 
| --- |
| p5en.48xlarge | Oui | Oui | 
| p6e-gb200.36xlarge | Oui | Oui | 
| trn 2,3 x large | Oui | Oui | 
| trn2.48xlarge | Oui | Oui | 
| trn2u.48xlarge | Oui | Oui | 
| Calcul haute performance | 
| --- |
| hpc7g.4xlarge | Oui | Non | 
| hpc7g.8xlarge | Oui | Non | 
| hpc7g.16xlarge | Oui | Non | 

------
#### [ Nitro v4 ]


| Type d’instance | Prise en charge de lecture RDMA | Prise en charge de l’écriture RDMA | 
| --- |--- |--- |
| Usage général | 
| --- |
| m6a.48xlarge | Oui | Oui | 
| m6a.metal | Oui | Oui | 
| m6i.32xlarge | Oui | Oui | 
| m6i.metal | Oui | Oui | 
| m6id.32xlarge | Oui | Oui | 
| m6id.metal | Oui | Oui | 
| m6idn.32xlarge | Oui | Oui | 
| m6idn.metal | Oui | Oui | 
| m6in.32xlarge | Oui | Oui | 
| m6in.metal | Oui | Oui | 
| m7a.48xlarge | Oui | Non | 
| m7a.metal-48xl | Oui | Non | 
| m7g.16xlarge | Oui | Non | 
| m7g.metal | Oui | Non | 
| m7gd.16xlarge | Oui | Non | 
| m7gd.metal | Oui | Non | 
| m7i.48xlarge | Oui | Non | 
| m7i.metal-48xl | Oui | Non | 
| Calcul optimisé | 
| --- |
| c6a.48xlarge | Oui | Oui | 
| c6a.metal | Oui | Oui | 
| c6gn.16xlarge | Oui | Oui | 
| c6i.32xlarge | Oui | Oui | 
| c6i.metal | Oui | Oui | 
| c6id.32xlarge | Oui | Oui | 
| c6id.metal | Oui | Oui | 
| c6in.32xlarge | Oui | Oui | 
| c6in.metal | Oui | Oui | 
| c7a.48xlarge | Oui | Non | 
| c7a.metal-48xl | Oui | Non | 
| c7g.16xlarge | Oui | Oui | 
| c7g.metal | Oui | Oui | 
| c7gd.16xlarge | Oui | Non | 
| c7gd.metal | Oui | Non | 
| c7i.48xlarge | Oui | Non | 
| c7i.metal-48xl | Oui | Non | 
| Mémoire optimisée | 
| --- |
| r6a.48xlarge | Oui | Oui | 
| r6a.metal | Oui | Oui | 
| r6i.32xlarge | Oui | Oui | 
| r6i.metal | Oui | Oui | 
| r6id.32xlarge | Oui | Oui | 
| r6id.metal | Oui | Oui | 
| r6idn.32xlarge | Oui | Oui | 
| r6idn.metal | Oui | Oui | 
| r6in.32xlarge | Oui | Oui | 
| r6in.metal | Oui | Oui | 
| r7a.48xlarge | Non | Non | 
| r7a.metal-48xl | Non | Non | 
| r7g.16xlarge | Non | Non | 
| r7g.metal | Non | Non | 
| r7gd.16xlarge | Non | Non | 
| r7gd.metal | Non | Non | 
| r7i.48xlarge | Non | Non | 
| r7i.metal-48xl | Non | Non | 
| r7iz.32xlarge | Non | Non | 
| r7iz.metal-32xl | Non | Non | 
| u7i-6tb.112xlarge | Oui | Oui | 
| u7i-8tb.112xlarge | Oui | Oui | 
| u7i-12tb.224xlarge | Oui | Oui | 
| u7in-16tb.224xlarge | Oui | Oui | 
| u7in-24tb.224xlarge | Oui | Oui | 
| u7in-32tb.224xlarge | Oui | Oui | 
| u7inh-32tb.480xlarge | Oui | Oui | 
| x2idn.32xlarge | Oui | Oui | 
| x2idn.metal | Oui | Oui | 
| x2iedn.32xlarge | Oui | Oui | 
| x2iedn.metal | Oui | Oui | 
| Stockage optimisé | 
| --- |
| i4g.16xlarge | Oui | Oui | 
| i4i.32xlarge | Oui | Oui | 
| i4i.metal | Oui | Oui | 
| i7i.24xlarge | Oui | Non | 
| i7i.48xlarge | Oui | Non | 
| i7i.metal-48xl | Oui | Non | 
| im4gn.16xlarge | Oui | Oui | 
| Calcul accéléré | 
| --- |
| f2.48xlarge | Oui | Oui | 
| g6.8xlarge | Oui | Oui | 
| g6.12xlarge | Oui | Oui | 
| g6.16xlarge | Oui | Oui | 
| g6.24xlarge | Oui | Oui | 
| g6.48xlarge | Oui | Oui | 
| g6e.8xlarge | Oui | Oui | 
| g6e.12xlarge | Oui | Oui | 
| g6e.16xlarge | Oui | Oui | 
| g6e.24xlarge | Oui | Oui | 
| g6e.48xlarge | Oui | Oui | 
| gr6.8xlarge | Oui | Oui | 
| p5.4xlarge | Oui | Oui | 
| p5.48xlarge | Oui | Oui | 
| p5e.48xlarge | Oui | Oui | 
| trn1.32xlarge | Oui | Oui | 
| trn1n.32xlarge | Oui | Oui | 
| Calcul haute performance | 
| --- |
| hpc6a.48xlarge | Oui | Oui | 
| hpc6id.32xlarge | Oui | Oui | 
| hpc7a.12xlarge | Oui | Non | 
| hpc7a.24xlarge | Oui | Non | 
| hpc7a.48xlarge | Oui | Non | 
| hpc7a.96xlarge | Oui | Non | 

------
#### [ Nitro v3 ]


| Type d’instance | Prise en charge de lecture RDMA | Prise en charge de l’écriture RDMA | 
| --- |--- |--- |
| Usage général | 
| --- |
| m5dn.24xlarge | Non | Non | 
| m5dn.metal | Non | Non | 
| m5n.24xlarge | Non | Non | 
| m5n.metal | Non | Non | 
| m5zn.12xlarge | Non | Non | 
| m5zn.metal | Non | Non | 
| Calcul optimisé | 
| --- |
| c5n.9xlarge | Non | Non | 
| c5n.18xlarge | Non | Non | 
| c5n.metal | Non | Non | 
| Mémoire optimisée | 
| --- |
| r5dn.24xlarge | Non | Non | 
| r5dn.metal | Non | Non | 
| r5n.24xlarge | Non | Non | 
| r5n.metal | Non | Non | 
| x2iezn.12xlarge | Non | Non | 
| x2iezn.metal | Non | Non | 
| Stockage optimisé | 
| --- |
| i3en.12xlarge | Non | Non | 
| i3en.24xlarge | Non | Non | 
| i3en.metal | Non | Non | 
| Calcul accéléré | 
| --- |
| dl1.24xlarge | Oui | Non | 
| dl2q.24xlarge | Non | Non | 
| g4dn.8xlarge | Non | Non | 
| g4dn.12xlarge | Non | Non | 
| g4dn.16xlarge | Non | Non | 
| g4dn.metal | Non | Non | 
| g5.8xlarge | Non | Non | 
| g5.12xlarge | Non | Non | 
| g5.16xlarge | Non | Non | 
| g5.24xlarge | Non | Non | 
| g5.48xlarge | Non | Non | 
| inf1.24xlarge | Non | Non | 
| p3dn.24xlarge | Non | Non | 
| p4d.24xlarge | Oui | Non | 
| p4de.24xlarge | Oui | Non | 
| vt1.24xlarge | Non | Non | 
| Génération précédente | 
| --- |
| p3dn.24xlarge | Non | Non | 

------

**Pour voir les types d'instances disponibles qui sont pris EFAs en charge 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-types](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instance-types.html)commande avec le `--region` paramètre. Incluez le paramètre `--filters`pour é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
<a name="efa-os"></a>

La prise en charge du système d’exploitation varie en fonction du type de processeur. Le tableau suivant présente 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 | ✓ | ✓ | 
| RHEL 8 et 9 | ✓ | ✓ | 
| Debian 11, 12 et 13 | ✓ | ✓ | 
| Rocky Linux 8 et 9 | ✓ | ✓ | 
| Ubuntu 22.04 et 24.04 | ✓ | ✓ | 
| SUSE Linux Enterprise 15 SP2 et versions ultérieures | ✓ | ✓ | 
| OpenSUSE Leap 15.5 et versions ultérieures | ✓ |  | 

**Note**  
Certains des systèmes d’exploitation énumérés peuvent ne pas être pris en charge par Intel MPI. Si vous utilisez Intel MPI, reportez-vous à la [documentation Intel MPI](https://www.intel.com/content/www/us/en/developer/articles/system-requirements/mpi-library-system-requirements.html) pour vérifier si votre système d’exploitation est compatible avec celui-ci.

## Restrictions liées à EFA
<a name="efa-limits"></a>

EFAs présentent les limites suivantes :
+ L’écriture RDMA n’est pas prise en charge avec tous les types d’instances. Pour de plus amples informations, veuillez consulter [Types d’instance pris en charge](#efa-instance-types).
+ Le trafic EFA 1 entre les instances P4 d/P4de/DL 1 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](using-eni.md#network-cards) 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.
+ Les instances dédiées `c7g.16xlarge`, `m7g.16xlarge` et `r7g.16xlarge`, de même que les hôtes dédiés, ne sont pas pris en charge lorsqu’un EFA est attaché.
+ Le trafic EFA 1 ne peut pas traverser les zones de disponibilité ou VPCs. Cela ne s’applique pas au trafic IP normal provenant du périphérique ENA d’une interface EFA.
+ Le trafic EFA1 n’est pas routable. Le trafic IP normal de l’appareil ENA d’une interface EFA reste routable.
+ L'EFA n'est pas pris en charge sur AWS Outposts.
+ Le périphérique EFA d'une interface EFA (EFA avec ENA) est pris en charge sur les instances Windows uniquement pour les applications basées sur le kit de développement AWS Cloud Digital Interface logiciel (AWS CDI SDK). Si vous associez une interface EFA (EFA avec ENA) à une instance Windows pour des applications non basées sur le SDK CDI, elle fonctionne comme une interface ENA, sans les fonctionnalités supplémentaires du périphérique EFA. L'interface EFA uniquement n'est pas prise en charge par les applications AWS CDI basées sur Windows ou Linux. Pour plus d'informations, consultez le [guide de l'utilisateur du kit de développement AWS Cloud Digital Interface logiciel (AWS CDI SDK)](https://docs.aws.amazon.com/CDI-SDK/latest/ug/what-is.html).

1Le *trafic EFA* fait référence au trafic transmis via le dispositif EFA d’une interface EFA (EFA avec ENA) ou EFA uniquement.

## Tarification EFA
<a name="efa-pricing"></a>

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.

# Commencez avec EFA et MPI pour les charges de travail HPC sur Amazon EC2
<a name="efa-start"></a>

Ce didacticiel vous permet de lancer un cluster d’instances EFA et compatible MPI pour les charges de travail HPC.

**Note**  
Les instances `u7i-12tb.224xlarge`, `u7in-16tb.224xlarge`, `u7in-24tb.224xlarge` et `u7in-32tb.224xlarge` peuvent exécuter jusqu’à 128 processus MPI parallèles avec Open MPI ou jusqu’à 256 processus MPI parallèles avec Intel MPI.

**Topics**
+ [Étape 1 : Préparer un groupe de sécurité activé pour les EFA](#efa-start-security)
+ [Étape 2 : Lancer une instance temporaire](#efa-start-tempinstance)
+ [Étape 3 : Installer le logiciel EFA](#efa-start-enable)
+ [Étape 4 : (*Facultatif*) Activer Open MPI 5](#efa-start-ompi5)
+ [Étape 5 : (*Facultatif*) Installer Intel MPI](#efa-start-impi)
+ [Étape 6 : Désactiver la protection ptrace](#efa-start-ptrace)
+ [Étape 7. Confirmer l’installation](#efa-start-test)
+ [Étape 8 : Installer votre application HPC](#efa-start-hpc-app)
+ [Étape 9 : Créer une AMI activée pour EFA](#efa-start-ami)
+ [Étape 10 : Lancer des instances activées pour EFA dans un groupe de placement du cluster](#efa-start-instances)
+ [Étape 11 : Résilier l’instance temporaire](#efa-start-terminate)
+ [Étape 12 : Activer SSH sans mot de passe](#efa-start-passwordless)

## Étape 1 : Préparer un groupe de sécurité activé pour les EFA
<a name="efa-start-security"></a>

Un EFA a besoin d’un groupe de sécurité qui autorise tout le trafic entrant et sortant vers et depuis le groupe de sécurité proprement dit. La procédure suivante crée un groupe de sécurité qui autorise tout le trafic entrant et sortant à destination et en provenance de lui-même, et qui autorise le trafic SSH entrant depuis n'importe quelle IPv4 adresse pour la connectivité SSH.

**Important**  
Ce groupe de sécurité n’est destiné qu’à des fins de test. Pour vos environnements de production, nous vous recommandons de créer une règle SSH entrante qui autorise le trafic uniquement à partir de l’adresse IP à partir de laquelle vous vous connectez, telle que l’adresse IP de votre ordinateur ou une plage d’adresses IP de votre réseau local.

Pour d’autres scénarios, consultez [Règles de groupe de sécurité pour différents cas d’utilisation](security-group-rules-reference.md).

**Pour créer un groupe de sécurité activé pour EFA**

1. Ouvrez la console Amazon EC2 à l’adresse [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Dans le panneau de navigation, choisissez **Security Groups (Groupes de sécurité)**, puis **Create security group (Créer un groupe de sécurité)**.

1. Dans la fenêtre **Create security group (Créer un groupe de sécurité)**, procédez comme suit :

   1. Pour **Nom du groupe de sécurité**, saisissez un nom descriptif pour le groupe de sécurité, tel que `EFA-enabled security group`.

   1. (Facultatif) Pour **Description**, saisissez une brève description du groupe de sécurité.

   1. Pour **VPC**, sélectionnez le VPC dans lequel vous prévoyez de lancer vos instances activées pour EFA.

   1. Sélectionnez **Create security group** (Créer un groupe de sécurité).

1. Sélectionnez le groupe de sécurité que vous avez créé et dans l’onglet **Details** (Détails), copiez le **Security group ID** (ID du groupe de sécurité).

1. En conservant la sélection du groupe de sécurité, choisissez **Actions**, **Edit inbound rules** (Modifier les règles entrantes), puis procédez comme suit :

   1. Choisissez **Ajouter une règle**.

   1. Pour **Type**, sélectionnez **Tout le trafic**.

   1. Pour **Source type** (Type de source), choisissez **Custom** (Personnalisée) et collez l’ID du groupe de sécurité que vous avez copié dans le champ.

   1. Choisissez **Ajouter une règle**.

   1. Pour **Type**, choisissez **SSH**.

   1. Pour **Type de source**, choisissez **N'importe où- IPv4**.

   1. Sélectionnez **Enregistrer les règles**.

1. En conservant la sélection du groupe de sécurité, choisissez **Actions**, **Edit outbound rules** (Modifier les règles sortantes), puis procédez comme suit :

   1. Choisissez **Ajouter une règle**.

   1. Pour **Type**, sélectionnez **Tout le trafic**.

   1. Pour **Destination type** (Type de destination), choisissez **Custom** (Personnalisée) et collez l’ID du groupe de sécurité que vous avez copié dans le champ.

   1. Sélectionnez **Enregistrer les règles**.

## Étape 2 : Lancer une instance temporaire
<a name="efa-start-tempinstance"></a>

Lancez une instance temporaire que vous pouvez utiliser pour installer et configurer les composants logiciels EFA. Vous utilisez cette instance pour créer une AMI activée pour EFA depuis laquelle vous pouvez lancer vos instances activées pour EFA. 

**Pour lancer une instance temporaire**

1. Ouvrez la console Amazon EC2 à l’adresse [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Dans le volet de navigation, choisissez **Instances**, puis **Launch Instances** (Lancer des instances) pour ouvrir le nouvel assistant de lancement d’instance.

1. (*Facultatif*) Dans la section **Name and tags** (Noms et identifications), fournissez un nom pour l’instance, tel que `EFA-instance`. Le nom est attribué à l’instance en tant qu’identification de ressource (`Name=EFA-instance`).

1. Dans la section **Application and OS Images** (Images d’applications et de systèmes d’exploitation), sélectionnez une AMI pour l’un des [systèmes d’exploitation pris en charge](efa.md#efa-os).

1. Dans la section **Instance type** (Type d’instance), sélectionnez un [type d’instance pris en charge](efa.md#efa-instance-types).

1. Dans la section **Key pair** (Paire de clés), sélectionnez la paire de clés à utiliser pour l’instance.

1. Dans la section **Network settings** (Paramètres réseau), choisissez **Edit** (Modifier), puis procédez comme suit :

   1. Pour **Sous-réseau**, choisissez le sous-réseau dans lequel lancer l’instance. Si vous ne sélectionnez pas de sous-réseau, vous ne pouvez pas activer l’instance pour EFA.

   1. Pour **Firewall (security groups)** (Pare-feu (groupes de sécurité)), choisissez **Sélectionner un groupe de sécurité existant** (Select existing security group), puis sélectionnez le groupe de sécurité que vous avez créé à l’étape précédente.

   1. Développez la section **Configuration du réseau avancée**.

      Pour **l’interface réseau 1**, sélectionnez **Index de la carte réseau = 0**, **Index du périphérique = 0** et **Type d’interface = EFA avec ENA**.

      (Facultatif) Si vous utilisez un type d’instance multicarte, tel que `p4d.24xlarge` ou`p5.48xlarge`, pour chaque interface réseau supplémentaire requise, choisissez **Ajouter une interface réseau**, pour Index de **carte réseau, sélectionnez le prochain index** non utilisé, puis sélectionnez Index du **périphérique = 1 et Type d’interface =** **EFA avec ENA ou **EFA**** uniquement.

1. Dans la section **Storage** (Stockage), configurez les volumes selon vos besoins.

1. Dans le panneau **Summary** (Récapitulatif) à droite, choisissez **Launch instance** (Lancer l’instance).

**Note**  
Envisagez d'exiger l'utilisation IMDSv2 de l'instance temporaire ainsi que de l'AMI que vous allez créer à l'[étape 9](#efa-start-ami), sauf si vous [l'avez déjà définie IMDSv2 comme valeur par défaut pour le compte](configuring-IMDS-new-instances.md#set-imdsv2-account-defaults). Pour plus d'informations sur les étapes IMDSv2 de configuration, consultez[Configurer les options de métadonnées d’instance pour les nouvelles instances](configuring-IMDS-new-instances.md). 

## Étape 3 : Installer le logiciel EFA
<a name="efa-start-enable"></a>

Installez le noyau activé pour EFA, les pilotes EFA, Libfabric et la pile Open MPI requis pour prendre en charge EFA sur votre instance temporaire.

Les étapes varient selon que vous avez l’intention d’utiliser EFA avec Open MPI ou avec Intel MPI, ou avec Open MPI et Intel MPI.

**Note**  
Certains systèmes d’exploitation peuvent ne pas être compatibles avec Intel MPI. Si vous utilisez Intel MPI, reportez-vous à la [documentation Intel MPI](https://www.intel.com/content/www/us/en/developer/articles/system-requirements/mpi-library-system-requirements.html) pour vérifier si votre système d’exploitation est compatible avec celui-ci.

**Pour installer le logiciel EFA**

1. Connectez-vous à l’instance que vous avez lancée. Pour de plus amples informations, veuillez consulter [Se connecter à votre instance Linux à l’aide de SSH](connect-to-linux-instance.md).

1. Pour vous assurer que tous vos packages logiciels sont mis à jour, effectuez une mise à jour logicielle rapide sur votre instance. Ce processus peut prendre quelques minutes.
   + Amazon Linux 2023, Amazon Linux 2, RHEL 8/9, Rocky Linux 8/9

     ```
     $ sudo yum update -y
     ```
   + Ubuntu et Debian

     ```
     $ sudo apt-get update && sudo apt-get upgrade -y
     ```
   + SUSE Linux Enterprise

     ```
     $ sudo zypper update -y
     ```

1. Redémarrez l’instance et reconnectez-vous à celle-ci.

1. Téléchargez les fichiers d’installation du logiciel EFA. Les fichiers d’installation du logiciel sont packagés dans un fichier d’archive compressé (`.tar.gz`). Pour télécharger la version *stable* la plus récente, utilisez la commande suivante.

   Vous pouvez aussi obtenir la dernière version en remplaçant le numéro de version par `latest` dans la commande ci-dessus.

   ```
   $ curl -O https://efa-installer.amazonaws.com/aws-efa-installer-1.47.0.tar.gz
   ```

1. (*Facultatif*) Vérifiez l’authenticité et l’intégrité du fichier tarball EFA (`.tar.gz`).

   Nous vous recommandons de le faire pour vérifier l’identité de l’éditeur du logiciel et pour vérifier que le fichier n’a pas été modifié ou endommagé depuis sa publication. Si vous ne souhaitez pas vérifier le fichier d’archive, ignorez cette étape.
**Note**  
Sinon, si vous préférez vérifier le fichier tarball en utilisant plutôt une SHA256 somme de contrôle MD5 ou, consultez. [Vérification du programme d’installation EFA à l’aide d’un total de contrôle](efa-verify.md)

   1. Téléchargez la clé publique GPG et importez-la dans votre porte-clés.

      ```
      $ wget https://efa-installer.amazonaws.com/aws-efa-installer.key && gpg --import aws-efa-installer.key
      ```

      La commande doit renvoyer une valeur clé. Notez la valeur clé, car vous en aurez besoin lors de l’étape suivante.

   1. Vérifiez l’empreinte digitale de la clé GPG. Exécutez la commande suivante et spécifiez la valeur clé que vous avez obtenue à l’étape précédente.

      ```
      $ gpg --fingerprint key_value
      ```

      La commande doit renvoyer une empreinte digitale identique à `4E90 91BC BB97 A96B 26B1 5E59 A054 80B1 DD2D 3CCC`. Si l’empreinte digitale ne correspond pas, n’exécutez pas le script d’installation EFA et contactez Support.

   1. Téléchargez le fichier SIGNATURE et vérifiez la signature du fichier d’archive EFA.

      ```
      $ wget https://efa-installer.amazonaws.com/aws-efa-installer-1.47.0.tar.gz.sig && gpg --verify ./aws-efa-installer-1.47.0.tar.gz.sig
      ```

      Voici un exemple de sortie.

      ```
      gpg: Signature made Wed 29 Jul 2020 12:50:13 AM UTC using RSA key ID DD2D3CCC
      gpg: Good signature from "Amazon EC2 EFA <ec2-efa-maintainers@amazon.com>"
      gpg: WARNING: This key is not certified with a trusted signature!
      gpg:          There is no indication that the signature belongs to the owner.
      Primary key fingerprint: 4E90 91BC BB97 A96B 26B1  5E59 A054 80B1 DD2D 3CCC
      ```

      Si le résultat inclut `Good signature` et que l’empreinte digitale correspond à l’empreinte digitale renvoyée à l’étape précédente, passez à l’étape suivante. Si ce n’est pas le cas, n’exécutez pas le script d’installation EFA et contactez Support.

1. Procédez à l’extraction des fichiers à partir du fichier compressé `.tar.gz` et accédez au répertoire extrait.

   ```
   $ tar -xf aws-efa-installer-1.47.0.tar.gz && cd aws-efa-installer
   ```

1. Installez le logiciel EFA. Effectuez l’une des actions suivantes en fonction de votre cas d’utilisation.
**Note**  
**EFA ne prend pas en charge NVIDIA GPUDirect avec SUSE Linux.** Si vous utilisez SUSE Linux, vous devez également spécifier l’option `--skip-kmod` pour empêcher l’installation de kmod. Par défaut, SUSE Linux n'autorise pas les modules out-of-tree du noyau.

------
#### [ Open MPI and Intel MPI ]

   Si vous avez l’intention d’utiliser EFA avec Open MPI et Intel MPI, vous devez installer le logiciel EFA avec Libfabric et Open MPI, et vous **devez réaliser l’Étape 5 : Installer Intel MPI**.

   Pour installer le logiciel EFA avec Libfabric et Open MPI, exécutez la commande suivante.

**Note**  
Depuis EFA 1.30.0, Open MPI 4.1 et Open MPI 5 sont installés par défaut. Vous pouvez éventuellement spécifier la version d’Open MPI que vous souhaitez installer. Pour installer uniquement Open MPI 4.1, incluez`--mpi=openmpi4`. Pour installer uniquement Open MPI 5, incluez `--mpi=openmpi5`. Pour installer les deux, omettez l’option `--mpi`.

   ```
   $ sudo ./efa_installer.sh -y
   ```

   Libfabric est installé dans `/opt/amazon/efa`. Open MPI 4.1 est installé sur. `/opt/amazon/openmpi` Open MPI 5 est installé dans `/opt/amazon/openmpi5`.

------
#### [ Open MPI only ]

   Si vous avez l’intention d’utiliser EFA avec Open MPI uniquement, vous devez installer le logiciel EFA avec Libfabric et Open MPI, et vous pouvez **ignorer l’Étape 5 : Installer Intel MPI**. Pour installer le logiciel EFA avec Libfabric et Open MPI, exécutez la commande suivante.

**Note**  
Depuis EFA 1.30.0, Open MPI 4.1 et Open MPI 5 sont installés par défaut. Vous pouvez éventuellement spécifier la version d’Open MPI que vous souhaitez installer. Pour installer uniquement Open MPI 4.1, incluez`--mpi=openmpi4`. Pour installer uniquement Open MPI 5, incluez `--mpi=openmpi5`. Pour installer les deux, omettez l’option `--mpi`.

   ```
   $ sudo ./efa_installer.sh -y
   ```

   Libfabric est installé dans `/opt/amazon/efa`. Open MPI 4.1 est installé sur. `/opt/amazon/openmpi` Open MPI 5 est installé dans `/opt/amazon/openmpi5`.

------
#### [ Intel MPI only ]

   Si vous avez l’intention d’utiliser EFA uniquement avec Intel MPI, vous pouvez installer le logiciel EFA sans Libfabric ni Open MPI. Dans ce cas, Intel MPI utilise son Libfabric intégré. Si vous optez pour cette solution, vous **devez réaliser l’Étape 5 : Installer Intel MPI**. 

   Pour installer le logiciel EFA sans Libfabric ni Open MPI, exécutez la commande suivante.

   ```
   $ sudo ./efa_installer.sh -y --minimal
   ```

------

1. Si le programme d’installation d’EFA vous invite à redémarrer l’instance, faites-le et reconnectez-vous à l’instance. Sinon, déconnectez-vous de l’instance, puis reconnectez-vous pour terminer l’installation.

1. Supprimez l’archive (tarball) non compressée et l’archive elle-même. Sinon, elles seront incluses dans l’AMI compatible EFA que vous créez, augmentant ainsi sa taille.

## Étape 4 : (*Facultatif*) Activer Open MPI 5
<a name="efa-start-ompi5"></a>

**Note**  
Vous ne devez effectuer cette étape que si vous avez l’intention d’utiliser Intel MPI 5.

Depuis EFA 1.30.0, Open MPI 4.1 et Open MPI 5 sont installés par défaut. Vous pouvez également choisir d'installer uniquement Open MPI 4.1 ou Open MPI 5.

Si vous avez choisi d’installer Open MPI 5 à l’**Étape 3 : Installer le logiciel EFA** et que vous avez l’intention de l’utiliser, vous devez effectuer les étapes suivantes pour l’activer.

**Activation d’Open MPI 5**

1. Ajoutez Open MPI 5 à la variable d’environnement PATH.

   ```
   $ module load openmpi5
   ```

1. Vérifiez qu’Open MPI 5 est activé pour être utilisé.

   ```
   $ which mpicc
   ```

   La commande doit renvoyer le répertoire d’installation Open MPI 5 : `/opt/amazon/openmpi5`.

1. (*Facultatif*) Pour vous assurer qu’Open MPI 5 est ajouté à la variable d’environnement PATH à chaque démarrage de l’instance, procédez comme suit :

------
#### [ bash shell ]

   Ajoutez `module load openmpi5` à `/home/username/.bashrc` et `/home/username/.bash_profile`.

------
#### [ csh and tcsh shells ]

   Ajoutez `module load openmpi5` à `/home/username/.cshrc`.

------

Si vous devez supprimer Open MPI 5 de la variable d’environnement PATH, exécutez la commande suivante et supprimez-la des scripts de démarrage du shell.

```
$ module unload openmpi5
```

## Étape 5 : (*Facultatif*) Installer Intel MPI
<a name="efa-start-impi"></a>

**Important**  
Vous ne devez effectuer cette étape que si vous avez l’intention d’utiliser Intel MPI. Si vous avez l’intention d’utiliser uniquement Open MPI, passez cette étape. 

Intel MPI nécessite une installation et une configuration de variable d’environnement supplémentaires.

**Prérequis**  
Vérifiez que l’utilisateur qui exécute les étapes suivantes dispose des autorisations sudo.

**Pour installer Intel MPI**

1. Pour télécharger le script d’installation d’Intel MPI, procédez comme suit :

   1. Visitez le [site web d’Intel](https://www.intel.com/content/www/us/en/developer/articles/tool/oneapi-standalone-components.html#mpi).

   1. Dans la section **Intel MPI Library** (Bibliothèque MPI Intel) de la page web, choisissez le lien du programme d’installation **Offline** (Hors ligne) de **Intel MPI Library for Linux**.

1. Exécutez le script d’installation que vous avez téléchargé à l’étape précédente.

   ```
   $ sudo bash installation_script_name.sh
   ```

1. Dans le programme d’installation, choisissez **Accept & install** (Accepter et installer).

1. Lisez le programme Intel Improvement Program, choisissez l’option appropriée, puis choisissez **Begin Installation** (Démarrer l’installation).

1. Une fois l’installation terminée, choisissez **Fermer**.

1. Par défaut, Intel MPI utilise sa bibliothèque embarquée (interne) Libfabric. Vous pouvez configurer Intel MPI pour qu’il utilise plutôt la bibliothèque Libfabric livrée avec le programme d’installation d’EFA. Généralement, le programme d’installation d’EFA est livré avec une version de Libfabric plus récente que celle d’Intel MPI. Dans certains cas, la bibliothèque Libfabric fournie avec le programme d’installation d’EFA est plus performante que celle d’Intel MPI. Pour configurer Intel MPI afin qu’il utilise la bibliothèque Libfabric fournie avec le programme d’installation d’EFA, effectuez l’une des opérations suivantes en fonction de votre shell.

------
#### [ bash shells ]

   Ajoutez la déclaration suivante à `/home/username/.bashrc` et `/home/username/.bash_profile`.

   ```
   export I_MPI_OFI_LIBRARY_INTERNAL=0
   ```

------
#### [ csh and tcsh shells ]

   Ajoutez la déclaration suivante à `/home/username/.cshrc`.

   ```
   setenv I_MPI_OFI_LIBRARY_INTERNAL 0
   ```

------

1. Ajoutez la commande **source** suivante à votre script shell afin d’extraire le script `vars.sh` du répertoire d’installation pour configurer l’environnement du compilateur à chaque démarrage de l’instance. Effectuez l’une des actions suivantes en fonction de votre shell.

------
#### [ bash shells ]

   Ajoutez la déclaration suivante à `/home/username/.bashrc` et `/home/username/.bash_profile`.

   ```
   source /opt/intel/oneapi/mpi/latest/env/vars.sh
   ```

------
#### [ csh and tcsh shells ]

   Ajoutez la déclaration suivante à `/home/username/.cshrc`.

   ```
   source /opt/intel/oneapi/mpi/latest/env/vars.csh
   ```

------

1. Par défaut, si EFA n'est pas disponible en raison d'une mauvaise configuration, Intel MPI utilise par défaut la pile TCP/IP réseau, ce qui peut ralentir les performances des applications. Vous pouvez empêcher cela en définissant `I_MPI_OFI_PROVIDER` sur `efa`. Cela entraîne l’échec d’Intel MPI avec l’erreur suivante si l’EFA n’est pas disponible :

   ```
   Abort (XXXXXX) on node 0 (rank 0 in comm 0): Fatal error in PMPI_Init: OtherMPI error,
   MPIR_Init_thread (XXX)........:	
   MPID_Init (XXXX)..............:
   MPIDI_OFI_mpi_init_hook (XXXX):
   open_fabric (XXXX)............:
   find_provider (XXXX)..........:
   OFI fi_getinfo() failed (ofi_init.c:2684:find_provider:
   ```

   Effectuez l’une des actions suivantes en fonction de votre shell.

------
#### [ bash shells ]

   Ajoutez la déclaration suivante à `/home/username/.bashrc` et `/home/username/.bash_profile`.

   ```
   export I_MPI_OFI_PROVIDER=efa
   ```

------
#### [ csh and tcsh shells ]

   Ajoutez la déclaration suivante à `/home/username/.cshrc`.

   ```
   setenv I_MPI_OFI_PROVIDER efa
   ```

------

1. Par défaut, Intel MPI n’imprime pas d’informations de débogage. Vous pouvez spécifier différents niveaux de verbosité pour contrôler les informations de débogage. Les valeurs possibles (dans l’ordre de la quantité de détails qu’elles fournissent) sont : `0` (par défaut), `1`, `2`, `3`, `4`, `5`. Le niveau `1` et les niveaux supérieurs impriment le résultat de `libfabric version` et de `libfabric provider`. Utilisez `libfabric version` pour vérifier si Intel MPI utilise la bibliothèque Libfabric interne ou celle fournie avec le programme d’installation d’EFA. S’il utilise la bibliothèque Libfabric interne, la version est suffixée par `impi`. `libfabric provider`À utiliser pour vérifier si Intel MPI utilise EFA ou le TCP/IP réseau. S’il utilise EFA, la valeur est `efa`. S’il utilise TCP/IP, la valeur est `tcp;ofi_rxm`.

   Pour activer les informations de débogage, effectuez l’une des opérations suivantes en fonction de votre shell.

------
#### [ bash shells ]

   Ajoutez la déclaration suivante à `/home/username/.bashrc` et `/home/username/.bash_profile`.

   ```
   export I_MPI_DEBUG=value
   ```

------
#### [ csh and tcsh shells ]

   Ajoutez la déclaration suivante à `/home/username/.cshrc`.

   ```
   setenv I_MPI_DEBUG value
   ```

------

1. Par défaut, Intel MPI utilise la mémoire partagée du système d’exploitation (`shm`) pour la communication intra-nœud, et elle utilise Libfabric (`ofi`) uniquement pour la communication inter-nœuds. En général, cette configuration fournit les meilleures performances. Toutefois, dans certains cas, la structure shm d’Intel MPI peut provoquer le blocage indéfini de certaines applications.

   Pour résoudre ce problème, vous pouvez forcer Intel MPI à utiliser Libfabric pour les communications intra-nœud et inter-nœuds. Pour ce faire, effectuez l’une des opérations suivantes en fonction de votre shell.

------
#### [ bash shells ]

   Ajoutez la déclaration suivante à `/home/username/.bashrc` et `/home/username/.bash_profile`.

   ```
   export I_MPI_FABRICS=ofi
   ```

------
#### [ csh and tcsh shells ]

   Ajoutez la déclaration suivante à `/home/username/.cshrc`.

   ```
   setenv I_MPI_FABRICS ofi
   ```

------
**Note**  
Le fournisseur Libfabric d’EFA utilise la mémoire partagée du système d’exploitation pour la communication intra-nœud. Cela signifie que la définition de `I_MPI_FABRICS` sur `ofi` donne des performances similaires à la configuration par défaut `shm:ofi`.

1. Déconnectez-vous de l’instance, puis reconnectez-vous.

Si vous ne souhaitez plus utiliser Intel MPI, supprimez les variables d’environnement des scripts de démarrage de shell.

## Étape 6 : Désactiver la protection ptrace
<a name="efa-start-ptrace"></a>

Pour améliorer les performances de votre application HPC, Libfabric utilise la mémoire locale de l’instance pour les communications interprocessus lorsque les processus s’exécutent sur la même instance. 

La fonction de mémoire partagée utilise Cross Memory Attach (CMA), non pris en charge avec la *protection ptrace*. Si vous utilisez une distribution Linux dans laquelle la protection ptrace est activée par défaut, telle que Ubuntu, vous devez la désactiver. Si la protection ptrace n’est pas activée par défaut dans votre distribution Linux, ignorez cette étape.

**Pour désactiver la protection ptrace**  
Effectuez l’une des actions suivantes :
+ Pour désactiver temporairement la protection ptrace à des fins de test, exécutez la commande suivante.

  ```
  $ sudo sysctl -w kernel.yama.ptrace_scope=0
  ```
+ Pour désactiver définitivement la protection ptrace, ajoutez `kernel.yama.ptrace_scope = 0`à `/etc/sysctl.d/10-ptrace.conf` et redémarrez l’instance.

## Étape 7. Confirmer l’installation
<a name="efa-start-test"></a>

**Pour confirmer la réussite de l’installation**

1. Pour confirmer que MPI a été installé avec succès, exécutez la commande suivante :

   ```
   $ which mpicc
   ```
   + Pour Open MPI, le chemin renvoyé doit inclure `/opt/amazon/`.
   + Pour Intel MPI, le chemin renvoyé doit inclure`/opt/intel/`. Si vous n’obtenez pas le résultat attendu, assurez-vous d’avoir obtenu le script Intel MPI `vars.sh`.

1. Pour vérifier que les composants du logiciel EFA et Libfabric ont été correctement installés, exécutez la commande suivante.

   ```
   $ fi_info -p efa -t FI_EP_RDM
   ```

   La commande doit renvoyer des informations sur les interfaces EFA Libfabric. L’exemple suivant illustre la sortie de la commande.

   ```
   provider: efa
       fabric: EFA-fe80::94:3dff:fe89:1b70
       domain: efa_0-rdm
       version: 2.0
       type: FI_EP_RDM
       protocol: FI_PROTO_EFA
   ```

## Étape 8 : Installer votre application HPC
<a name="efa-start-hpc-app"></a>

Installez l’application HPC sur l’instance temporaire. La procédure d’installation varie selon l’application HPC. Pour plus d'informations, consultez la section [Gérer le logiciel sur votre AL2 instance](https://docs.aws.amazon.com/linux/al2/ug/managing-software.html) dans le *guide de l'utilisateur Amazon Linux 2*.

**Note**  
Reportez-vous à la documentation de votre application HPC pour obtenir des instructions d’installation.

## Étape 9 : Créer une AMI activée pour EFA
<a name="efa-start-ami"></a>

Une fois que vous avez installé les composants logiciels requis, vous devez créer une AMI que vous pouvez réutiliser pour lancer vos instances activées pour EFA.

**Pour créer une AMI à partir de votre instance temporaire**

1. Ouvrez la console Amazon EC2 à l’adresse [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Dans le panneau de navigation, choisissez **Instances**.

1. Sélectionnez l’instance temporaire que vous avez créée et choisissez **Actions**, **Image**, **Créer une image**.

1. Pour **Créer une image**, procédez comme suit :

   1. Pour **Nom de l’image**, entrez un nom descriptif pour l’AMI.

   1. (Facultatif) Pour **Description de l’image**, saisissez une brève description de l’objectif de l’AMI.

   1. Choisissez **Create image (Créer une image)**.

1. Dans le panneau de navigation, sélectionnez **AMIs**.

1. Recherchez l’AMI que vous avez créée dans la liste. Attendez que le statut passe de `pending` à `available` avant de poursuivre avec l’étape suivante.

## Étape 10 : Lancer des instances activées pour EFA dans un groupe de placement du cluster
<a name="efa-start-instances"></a>

Lancez vos instances activées pour EFA dans un groupe de placement de cluster à l'aide de l'AMI activée pour EFA que vous avez créée à l'**Étape 7** et le groupe de sécurité activé pour EFA que vous avez créé à l'**Étape 1**.

**Note**  
Vous ne devez pas impérativement lancer vos instances EFA dans un groupe de placement de cluster. Toutefois, nous vous recommandons d’exécuter vos instances activées pour EFA dans un groupe de placement de cluster, car cela lance celles-ci dans un groupe à faible latence au sein d’une zone de disponibilité unique.
Pour vous assurer que la capacité est disponible lorsque vous mettez à l’échelle les instances de votre cluster, vous pouvez créer une réserve de capacité pour votre groupe de placement du cluster. Pour de plus amples informations, veuillez consulter [Utilisation des réserves de capacité avec les groupes de placement du cluster](cr-cpg.md).

**Pour lancer une instance**

1. Ouvrez la console Amazon EC2 à l’adresse [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Dans le volet de navigation, choisissez **Instances**, puis **Launch Instances** (Lancer des instances) pour ouvrir le nouvel assistant de lancement d’instance.

1. (*Facultatif*) Dans la section **Name and tags** (Noms et identifications), fournissez un nom pour l’instance, tel que `EFA-instance`. Le nom est attribué à l’instance en tant qu’identification de ressource (`Name=EFA-instance`).

1. Dans la section **Images de l'application et du système d'exploitation**AMIs, choisissez **My**, puis sélectionnez l'AMI que vous avez créée à l'étape précédente.

1. Dans la section **Instance type** (Type d’instance), sélectionnez un [type d’instance pris en charge](efa.md#efa-instance-types).

1. Dans la section **Key pair** (Paire de clés), sélectionnez la paire de clés à utiliser pour l’instance.

1. Dans la section **Network settings** (Paramètres réseau), choisissez **Edit** (Modifier), puis procédez comme suit :

   1. Pour **Sous-réseau**, choisissez le sous-réseau dans lequel lancer l’instance. Si vous ne sélectionnez pas de sous-réseau, vous ne pouvez pas activer l’instance pour EFA.

   1. Pour **Firewall (security groups)** (Pare-feu (groupes de sécurité)), choisissez **Sélectionner un groupe de sécurité existant** (Select existing security group), puis sélectionnez le groupe de sécurité que vous avez créé à l’étape précédente.

   1. Développez la section **Configuration du réseau avancée**.

      Pour **l’interface réseau 1**, sélectionnez **Index de la carte réseau = 0**, **Index du périphérique = 0** et **Type d’interface = EFA avec ENA**.

      (*Facultatif*) Si vous utilisez un type d’instance multicarte, tel que `p4d.24xlarge` ou`p5.48xlarge`, pour chaque interface réseau supplémentaire requise, choisissez **Ajouter une interface réseau**, pour Index de **carte réseau, sélectionnez le prochain index** non utilisé, puis sélectionnez Index du **périphérique = 1 et Type d’interface =** **EFA avec ENA ou **EFA**** uniquement.

1. (*Facultatif*) Dans la section **Storage** (Stockage), configurez les volumes selon vos besoins.

1. Dans la section **Advanced details** (Détails avancés), pour **Placement group name** (Nom du groupe de placement), sélectionnez le groupe de placement du cluster dans lequel lancer les instances. Si vous avez besoin de créer un groupe de placement du cluster, choisissez **Create new placement group** (Créer un groupe de placement).

1. Dans le panneau **Summary** (Récapitulatif) à droite, pour **Number of instances** (Nombre d’instances), saisissez le nombre d’instances activées pour EFA que vous souhaitez lancer, puis choisissez **Launch instance** (Lancer l’instance).

## Étape 11 : Résilier l’instance temporaire
<a name="efa-start-terminate"></a>

À ce stade, vous n’avez plus besoin de l’instance que vous avez lancée à l’[étape 2](#efa-start-tempinstance). Vous pouvez résilier l’instance pour arrêter d’être facturé pour celle-ci.

**Pour résilier l’instance temporaire**

1. Ouvrez la console Amazon EC2 à l’adresse [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Dans le panneau de navigation, choisissez **Instances**.

1. Sélectionnez l’instance temporaire que vous avez créée puis choisissez **Actions**, **État de l’instance**, **Résilier (supprimer) l’instance**.

1. Lorsque vous êtes invité à confirmer, choisissez **Terminate (supprimer)**.

## Étape 12 : Activer SSH sans mot de passe
<a name="efa-start-passwordless"></a>

Pour permettre à vos applications de s’exécuter sur toutes les instances de votre cluster, vous devez activer l’accès SSH sans mot de passe du nœud principal aux nœuds membres. Le nœud principal est l’instance à partir de laquelle vous exécutez vos applications. Les instances restantes du cluster sont les nœuds membres.

**Pour activer SSH sans mot de passe entre les instances du cluster**

1. Sélectionnez une instance dans le cluster en tant que nœud principal et connectez-vous à celle-ci.

1. Désactivez `strictHostKeyChecking` et activez `ForwardAgent` sur le nœud principal. Ouvrez le fichier `~/.ssh/config` à l’aide de l’éditeur de texte de votre choix et ajoutez ce qui suit.

   ```
   Host *
       ForwardAgent yes
   Host *
       StrictHostKeyChecking no
   ```

1. Générez une paire de clés RSA

   ```
   $ ssh-keygen -t rsa -N "" -f ~/.ssh/id_rsa
   ```

   La paire de clés est créée dans le répertoire `$HOME/.ssh/`.

1. Modifiez les autorisations de la clé privée sur le nœud principal.

   ```
   $ chmod 600 ~/.ssh/id_rsa
   chmod 600 ~/.ssh/config
   ```

1. Ouvrez `~/.ssh/id_rsa.pub` à l’aide de l’éditeur de texte de votre choix et copiez la clé.

1. Pour chaque nœud membre du cluster, procédez comme suit :

   1. Connectez-vous à l’instance.

   1. Ouvrez `~/.ssh/authorized_keys` à l’aide de l’éditeur de texte de votre choix et ajoutez la clé publique que vous avez copiée plus tôt.

1. Pour tester que le SSH sans mot de passe fonctionne comme prévu, connectez-vous à votre nœud principal et exécutez la commande suivante.

   ```
   $ ssh member_node_private_ip
   ```

   Vous devez vous connecter au nœud membre sans être invité à entrer une clé ou un mot de passe.

# Démarrez avec EFA et NCCL pour les charges de travail EFA et ML sur Amazon EC2
<a name="efa-start-nccl"></a>

La bibliothèque de communications collectives NVIDIA (NCCL) est une bibliothèque de routines de communication collective standard pour plusieurs nœuds GPUs sur un ou plusieurs nœuds. La NCCL peut être utilisée conjointement avec EFA, Libfabric et MPI pour prendre en charge différentes charges de travail de Machine Learning. Pour plus d’informations, consultez le site web [NCCL](https://developer.nvidia.com/nccl).

**Exigences**
+ Seuls les types d’instances de calcul accéléré de la série P sont pris en charge. Pour plus d’informations, consultez la section [Instances de calcul accéléré Amazon EC2](https://docs.aws.amazon.com/ec2/latest/instancetypes/ac.html#ac-sizes).
+ Seuls Amazon Linux 2023, Amazon Linux 2, Ubuntu 24.04 et Ubuntu 22.04 base AMIs sont pris en charge.
+ Seule NCCL 2.4.2 et les versions ultérieures sont prises en charge avec EFA.

*Pour plus d'informations sur l'exécution de charges de travail d'apprentissage automatique avec EFA et NCCL à l'aide d'un AWS Apprentissage profond (deep learning) AMIs, consultez la section [Utilisation d'EFA sur le DLAMI dans le manuel du développeur](https://docs.aws.amazon.com/dlami/latest/devguide/tutorial-efa-using.html).AWS Apprentissage profond (deep learning) AMIs *

**Topics**
+ [Étape 1 : Préparer un groupe de sécurité activé pour les EFA](#nccl-start-base-setup)
+ [Étape 2 : Lancer une instance temporaire](#nccl-start-base-temp)
+ [Étape 3 : Installer les pilotes GPU Nvidia, le Nvidia CUDA Toolkit et cuDNN](#nccl-start-base-drivers)
+ [Étape 4 : Installation GDRCopy](#nccl-start-base-gdrcopy)
+ [Étape 5 : Installer le logiciel EFA](#nccl-start-base-enable)
+ [Étape 6 : Installer NCCL](#nccl-start-base-nccl)
+ [Étape 7 : Installer les tests NCCL](#nccl-start-base-tests)
+ [Étape 8 : Tester votre configuration EFA et NCCL](#nccl-start-base-test)
+ [Étape 9 : Installer vos applications de Machine Learning](#nccl-start-base-app)
+ [Étape 10 : Créer une AMI activée pour EFA et NCCL](#nccl-start-base-ami)
+ [Étape 11 : Résilier l'instance temporaire](#nccl-start-base-terminate)
+ [Étape 12 : Lancer les instances activées pour EFA et NCCL dans un groupe de placement de cluster](#nccl-start-base-cluster)
+ [Étape 13 : Activer SSH sans mot de passe](#nccl-start-base-passwordless)

## Étape 1 : Préparer un groupe de sécurité activé pour les EFA
<a name="nccl-start-base-setup"></a>

Un EFA a besoin d’un groupe de sécurité qui autorise tout le trafic entrant et sortant vers et depuis le groupe de sécurité proprement dit. La procédure suivante crée un groupe de sécurité qui autorise tout le trafic entrant et sortant à destination et en provenance de lui-même, et qui autorise le trafic SSH entrant depuis n'importe quelle IPv4 adresse pour la connectivité SSH.

**Important**  
Ce groupe de sécurité n’est destiné qu’à des fins de test. Pour vos environnements de production, nous vous recommandons de créer une règle SSH entrante qui autorise le trafic uniquement à partir de l’adresse IP à partir de laquelle vous vous connectez, telle que l’adresse IP de votre ordinateur ou une plage d’adresses IP de votre réseau local.

Pour d’autres scénarios, consultez [Règles de groupe de sécurité pour différents cas d’utilisation](security-group-rules-reference.md).

**Pour créer un groupe de sécurité activé pour EFA**

1. Ouvrez la console Amazon EC2 à l’adresse [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Dans le panneau de navigation, choisissez **Security Groups (Groupes de sécurité)**, puis **Create security group (Créer un groupe de sécurité)**.

1. Dans la fenêtre **Create security group (Créer un groupe de sécurité)**, procédez comme suit :

   1. Pour **Nom du groupe de sécurité**, saisissez un nom descriptif pour le groupe de sécurité, tel que `EFA-enabled security group`.

   1. (Facultatif) Pour **Description**, saisissez une brève description du groupe de sécurité.

   1. Pour **VPC**, sélectionnez le VPC dans lequel vous prévoyez de lancer vos instances activées pour EFA.

   1. Sélectionnez **Create security group** (Créer un groupe de sécurité).

1. Sélectionnez le groupe de sécurité que vous avez créé et dans l’onglet **Details** (Détails), copiez le **Security group ID** (ID du groupe de sécurité).

1. En conservant la sélection du groupe de sécurité, choisissez **Actions**, **Edit inbound rules** (Modifier les règles entrantes), puis procédez comme suit :

   1. Choisissez **Ajouter une règle**.

   1. Pour **Type**, sélectionnez **Tout le trafic**.

   1. Pour **Source type** (Type de source), choisissez **Custom** (Personnalisée) et collez l’ID du groupe de sécurité que vous avez copié dans le champ.

   1. Choisissez **Ajouter une règle**.

   1. Pour **Type**, choisissez **SSH**.

   1. Pour **Type de source**, choisissez **N'importe où- IPv4**.

   1. Sélectionnez **Enregistrer les règles**.

1. En conservant la sélection du groupe de sécurité, choisissez **Actions**, **Edit outbound rules** (Modifier les règles sortantes), puis procédez comme suit :

   1. Choisissez **Ajouter une règle**.

   1. Pour **Type**, sélectionnez **Tout le trafic**.

   1. Pour **Destination type** (Type de destination), choisissez **Custom** (Personnalisée) et collez l’ID du groupe de sécurité que vous avez copié dans le champ.

   1. Sélectionnez **Enregistrer les règles**.

## Étape 2 : Lancer une instance temporaire
<a name="nccl-start-base-temp"></a>

Lancez une instance temporaire que vous pouvez utiliser pour installer et configurer les composants logiciels EFA. Vous utilisez cette instance pour créer une AMI activée pour EFA depuis laquelle vous pouvez lancer vos instances activées pour EFA.

**Pour lancer une instance temporaire**

1. Ouvrez la console Amazon EC2 à l’adresse [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Dans le volet de navigation, choisissez **Instances**, puis **Launch Instances** (Lancer des instances) pour ouvrir le nouvel assistant de lancement d’instance.

1. (*Facultatif*) Dans la section **Name and tags** (Noms et identifications), fournissez un nom pour l’instance, tel que `EFA-instance`. Le nom est attribué à l’instance en tant qu’identification de ressource (`Name=EFA-instance`).

1. Dans la section **Images d’applications et de systèmes d’exploitation**, sélectionnez une AMI pour l’un des systèmes d’exploitation pris en charge.

1. Dans la section **Type d’instance**, sélectionnez un type d’instance pris en charge.

1. Dans la section **Key pair** (Paire de clés), sélectionnez la paire de clés à utiliser pour l’instance.

1. Dans la section **Network settings** (Paramètres réseau), choisissez **Edit** (Modifier), puis procédez comme suit :

   1. Pour **Sous-réseau**, choisissez le sous-réseau dans lequel lancer l’instance. Si vous ne sélectionnez pas de sous-réseau, vous ne pouvez pas activer l’instance pour EFA.

   1. Pour **Firewall (security groups)** (Pare-feu (groupes de sécurité)), choisissez **Sélectionner un groupe de sécurité existant** (Select existing security group), puis sélectionnez le groupe de sécurité que vous avez créé à l’étape précédente.

   1. Développez la section **Configuration du réseau avancée**.

      Pour **l’interface réseau 1**, sélectionnez **Index de la carte réseau = 0**, **Index du périphérique = 0** et **Type d’interface = EFA avec ENA**.

      (*Facultatif*) Si vous utilisez un type d’instance multicarte, tel que `p4d.24xlarge` ou`p5.48xlarge`, pour chaque interface réseau supplémentaire requise, choisissez **Ajouter une interface réseau**, pour Index de **carte réseau, sélectionnez le prochain index** non utilisé, puis sélectionnez Index du **périphérique = 1 et Type d’interface =** **EFA avec ENA ou **EFA**** uniquement.

1. Dans la section **Storage** (Stockage), configurez les volumes selon vos besoins.
**Note**  
Vous devez provisionner un stockage supplémentaire de 10 à 20 GiB pour le Nvidia CUDA Toolkit. Si vous ne disposez pas d’un espace de stockage suffisant, le message d’erreur `insufficient disk space` s’affichera lors de la tentative d’installation des pilotes Nvidia et de la boîte à outils CUDA.

1. Dans le panneau **Summary** (Récapitulatif) à droite, choisissez **Launch instance** (Lancer l’instance).

## Étape 3 : Installer les pilotes GPU Nvidia, le Nvidia CUDA Toolkit et cuDNN
<a name="nccl-start-base-drivers"></a>

------
#### [ Amazon Linux 2023 and Amazon Linux 2 ]

**Pour installer les pilotes GPU Nvidia, le Nvidia CUDA Toolkit et cuDNN**

1. Pour vous assurer que tous vos packages logiciels sont mis à jour, effectuez une mise à jour logicielle rapide sur votre instance.

   ```
   $ sudo yum upgrade -y && sudo reboot
   ```

   Reconnectez-vous à votre instance après son redémarrage.

1. Installez les utilitaires nécessaires pour l’installation des pilotes GPU Nvidia et du Nvidia CUDA toolkit.

   ```
   $ sudo yum groupinstall 'Development Tools' -y
   ```

1. Désactiver le`nouveau`pilotes Open Source.

   1. Installez les utilitaires requis et le package d’en-têtes de noyau correspondant à la version du noyau que vous exécutez actuellement.

      ```
      $ sudo yum install -y wget kernel-devel-$(uname -r) kernel-headers-$(uname -r)
      ```

   1. Ajoutez `nouveau` au fichier de liste de refus `/etc/modprobe.d/blacklist.conf `.

      ```
      $ cat << EOF | sudo tee --append /etc/modprobe.d/blacklist.conf
      blacklist vga16fb
      blacklist nouveau
      blacklist rivafb
      blacklist nvidiafb
      blacklist rivatv
      EOF
      ```

   1. Ajouter`GRUB_CMDLINE_LINUX="rdblacklist=nouveau"`vers le`grub` fichier et générez à nouveau la configuration Grub.

      ```
      $ echo 'GRUB_CMDLINE_LINUX="rdblacklist=nouveau"' | sudo tee -a /etc/default/grub \
      && sudo grub2-mkconfig -o /boot/grub2/grub.cfg
      ```

1. Redémarrez l’instance et reconnectez-vous à celle-ci.

1. Préparer les référentiels requis

   1. Activez le référentiel EPEL et définissez la distribution sur `rhel7`.

      ```
      $ sudo amazon-linux-extras install epel \
      && distribution='rhel7'
      ```

   1. Configurez le référentiel réseau CUDA et mettez à jour le cache du référentiel.

      ```
      $ ARCH=$( /bin/arch ) \
      && sudo yum-config-manager --add-repo http://developer.download.nvidia.com/compute/cuda/repos/$distribution/${ARCH}/cuda-$distribution.repo \
      && sudo yum clean expire-cache
      ```

   1. (*Noyau version 5.10 uniquement*) Effectuez ces étapes uniquement si vous utilisez Amazon Linux 2 avec le noyau version 5.10. Si vous utilisez Amazon Linux 2 avec le noyau version 4.12, ignorez ces étapes. Pour vérifier la version de votre noyau, exécutez**uname -r**.

      1. Créez le fichier de configuration du pilote Nvidia nommé`/etc/dkms/nvidia.conf`.

         ```
         $ sudo mkdir -p /etc/dkms \
         && echo "MAKE[0]=\"'make' -j2 module SYSSRC=\${kernel_source_dir} IGNORE_XEN_PRESENCE=1 IGNORE_PREEMPT_RT_PRESENCE=1 IGNORE_CC_MISMATCH=1 CC=/usr/bin/gcc10-gcc\"" | sudo tee /etc/dkms/nvidia.conf
         ```

      1. (`p4d.24xlarge` et `p5.48xlarge` uniquement) Copiez le fichier de configuration du pilote Nvidia.

         ```
         $ sudo cp /etc/dkms/nvidia.conf /etc/dkms/nvidia-open.conf
         ```

1. Installer les pilotes GPU Nvidia, la boîte à outils NVIDIA CUDA et cuDNN.

   ```
   $ sudo yum clean all \
   && sudo yum -y install nvidia-driver-latest-dkms \
   && sudo yum -y install cuda-drivers-fabricmanager cuda libcudnn8-devel
   ```

1. Redémarrez l’instance et reconnectez-vous à celle-ci.

1. (`p4d.24xlarge` et `p5.48xlarge` uniquement) Démarrez le service Nvidia Fabric Manager et assurez-vous qu’il démarre automatiquement au démarrage de l’instance. Nvidia Fabric Manager est requis pour la gestion des commutateurs NV.

   ```
   $ sudo systemctl enable nvidia-fabricmanager && sudo systemctl start nvidia-fabricmanager
   ```

1. Assurez-vous que les chemins d’accès CUDA sont définis chaque fois que l’instance démarre.
   + Pour les shells *bash* , ajoutez les instructions suivantes à `/home/username/.bashrc` et `/home/username/.bash_profile`. 

     ```
     export PATH=/usr/local/cuda/bin:$PATH
     export LD_LIBRARY_PATH=/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64:$LD_LIBRARY_PATH
     ```
   + Pour les shells *tcsh* , ajoutez les instructions suivantes à `/home/username/.cshrc`.

     ```
     setenv PATH=/usr/local/cuda/bin:$PATH
     setenv LD_LIBRARY_PATH=/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64:$LD_LIBRARY_PATH
     ```

1. Pour vérifier que les pilotes GPU Nvidia sont fonctionnels, exécutez la commande suivante.

   ```
   $ nvidia-smi -q | head
   ```

   La commande doit renvoyer des informations sur Nvidia GPUs, les pilotes GPU Nvidia et le kit d'outils Nvidia CUDA.

------
#### [ Ubuntu 24.04 and Ubuntu 22.04 ]

**Pour installer les pilotes GPU Nvidia, le Nvidia CUDA Toolkit et cuDNN**

1. Pour vous assurer que tous vos packages logiciels sont mis à jour, effectuez une mise à jour logicielle rapide sur votre instance.

   ```
   $ sudo apt-get update && sudo apt-get upgrade -y
   ```

1. Installez les utilitaires nécessaires pour l’installation des pilotes GPU Nvidia et du Nvidia CUDA toolkit.

   ```
   $ sudo apt-get update && sudo apt-get install build-essential -y
   ```

1. Pour utiliser le pilote GPU Nvidia, vous devez d’abord désactiver les pilotes open source `nouveau`.

   1. Installez les utilitaires requis et le package d’en-têtes de noyau correspondant à la version du noyau que vous exécutez actuellement.

      ```
      $ sudo apt-get install -y gcc make linux-headers-$(uname -r)
      ```

   1. Ajoutez `nouveau` au fichier de liste de refus `/etc/modprobe.d/blacklist.conf `.

      ```
      $ cat << EOF | sudo tee --append /etc/modprobe.d/blacklist.conf
      blacklist vga16fb
      blacklist nouveau
      blacklist rivafb
      blacklist nvidiafb
      blacklist rivatv
      EOF
      ```

   1. Ouvrez le fichier `/etc/default/grub` à l’aide de l’éditeur de texte de votre choix et ajoutez ce qui suit. 

      ```
      GRUB_CMDLINE_LINUX="rdblacklist=nouveau"
      ```

   1. Générez à nouveau la configuration Grub.

      ```
      $ sudo update-grub
      ```

1. Redémarrez l’instance et reconnectez-vous à celle-ci.

1. Ajoutez le référentiel CUDA et installez les pilotes de GPU Nvidia, la boîte à outils NVIDIA CUDA et cuDNN.
   + `p3dn.24xlarge`

     ```
     $ sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu2004/x86_64/7fa2af80.pub \
     && wget -O /tmp/deeplearning.deb http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu2004/x86_64/nvidia-machine-learning-repo-ubuntu2004_1.0.0-1_amd64.deb \
     && sudo dpkg -i /tmp/deeplearning.deb \
     && wget -O /tmp/cuda.pin https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin \
     && sudo mv /tmp/cuda.pin /etc/apt/preferences.d/cuda-repository-pin-600 \
     && sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/3bf863cc.pub \
     && sudo add-apt-repository 'deb http://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/ /' \
     && sudo apt update \
     && sudo apt install nvidia-dkms-535 \
     && sudo apt install -o Dpkg::Options::='--force-overwrite' cuda-drivers-535 cuda-toolkit-12-3 libcudnn8 libcudnn8-dev -y
     ```
   + `p4d.24xlarge` et `p5.48xlarge`

     ```
     $ sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu2004/x86_64/7fa2af80.pub \
     && wget -O /tmp/deeplearning.deb http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu2004/x86_64/nvidia-machine-learning-repo-ubuntu2004_1.0.0-1_amd64.deb \
     && sudo dpkg -i /tmp/deeplearning.deb \
     && wget -O /tmp/cuda.pin https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin \
     && sudo mv /tmp/cuda.pin /etc/apt/preferences.d/cuda-repository-pin-600 \
     && sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/3bf863cc.pub \
     && sudo add-apt-repository 'deb http://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/ /' \
     && sudo apt update \
     && sudo apt install nvidia-kernel-open-535 \
     && sudo apt install -o Dpkg::Options::='--force-overwrite' cuda-drivers-535 cuda-toolkit-12-3 libcudnn8 libcudnn8-dev -y
     ```

1. Redémarrez l’instance et reconnectez-vous à celle-ci.

1. (`p4d.24xlarge` et `p5.48xlarge` uniquement) Installez Nvidia Fabric Manager.

   1. Vous devez installer la version de Nvidia Fabric Manager qui correspond à la version du module de noyau Nvidia que vous avez installée à l’étape précédente.

      Exécutez la commande suivante pour déterminer la version du module de noyau Nvidia.

      ```
      $ cat /proc/driver/nvidia/version | grep "Kernel Module"
      ```

      Voici un exemple de sortie.

      ```
      NVRM version: NVIDIA UNIX x86_64 Kernel Module  450.42.01  Tue Jun 15 21:26:37 UTC 2021
      ```

      Dans l’exemple ci-dessus, la version principale `450` du module de noyau a été installée. Cela signifie que vous devez installer la version `450` de Nvidia Fabric Manager.

   1. Installez Nvidia Fabric Manager. Exécutez la commande suivante et spécifiez la version principale identifiée à l’étape précédente.

      ```
      $ sudo apt install -o Dpkg::Options::='--force-overwrite' nvidia-fabricmanager-major_version_number
      ```

      Par exemple, si la version majeure `450` du module de noyau a été installée, utilisez la commande suivante pour installer la version correspondante de Nvidia Fabric Manager.

      ```
      $ sudo apt install -o Dpkg::Options::='--force-overwrite' nvidia-fabricmanager-450
      ```

   1. Démarrez le service et assurez-vous qu’il démarre automatiquement au démarrage de l’instance. Nvidia Fabric Manager est requis pour la gestion des commutateurs NV.

      ```
      $ sudo systemctl start nvidia-fabricmanager && sudo systemctl enable nvidia-fabricmanager
      ```

1. Assurez-vous que les chemins d’accès CUDA sont définis chaque fois que l’instance démarre.
   + Pour les shells *bash* , ajoutez les instructions suivantes à `/home/username/.bashrc` et `/home/username/.bash_profile`. 

     ```
     export PATH=/usr/local/cuda/bin:$PATH
     export LD_LIBRARY_PATH=/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64:$LD_LIBRARY_PATH
     ```
   + Pour les shells *tcsh* , ajoutez les instructions suivantes à `/home/username/.cshrc`.

     ```
     setenv PATH=/usr/local/cuda/bin:$PATH
     setenv LD_LIBRARY_PATH=/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64:$LD_LIBRARY_PATH
     ```

1. Pour vérifier que les pilotes GPU Nvidia sont fonctionnels, exécutez la commande suivante.

   ```
   $ nvidia-smi -q | head
   ```

   La commande doit renvoyer des informations sur Nvidia GPUs, les pilotes GPU Nvidia et le kit d'outils Nvidia CUDA.

------

## Étape 4 : Installation GDRCopy
<a name="nccl-start-base-gdrcopy"></a>

Installez GDRCopy pour améliorer les performances de Libfabric. Pour plus d'informationsGDRCopy, consultez le [GDRCopy référentiel](https://github.com/NVIDIA/gdrcopy).

------
#### [ Amazon Linux 2023 and Amazon Linux 2 ]

**Pour installer GDRCopy**

1. Installez les dépendances obligatoires.

   ```
   $ sudo yum -y install dkms rpm-build make check check-devel subunit subunit-devel
   ```

1. Téléchargez et extrayez le GDRCopy package.

   ```
   $ wget https://github.com/NVIDIA/gdrcopy/archive/refs/tags/v2.4.tar.gz \
   && tar xf v2.4.tar.gz ; cd gdrcopy-2.4/packages
   ```

1. Créez le package GDRCopy RPM.

   ```
   $ CUDA=/usr/local/cuda ./build-rpm-packages.sh
   ```

1. Installez le package GDRCopy RPM.

   ```
   $ sudo rpm -Uvh gdrcopy-kmod-2.4-1dkms.noarch*.rpm \
   && sudo rpm -Uvh gdrcopy-2.4-1.x86_64*.rpm \
   && sudo rpm -Uvh gdrcopy-devel-2.4-1.noarch*.rpm
   ```

------
#### [ Ubuntu 24.04 and Ubuntu 22.04 ]

**Pour installer GDRCopy**

1. Installez les dépendances obligatoires.

   ```
   $ sudo apt -y install build-essential devscripts debhelper check libsubunit-dev fakeroot pkg-config dkms
   ```

1. Téléchargez et extrayez le GDRCopy package.

   ```
   $ wget https://github.com/NVIDIA/gdrcopy/archive/refs/tags/v2.4.tar.gz \
   && tar xf v2.4.tar.gz \
   && cd gdrcopy-2.4/packages
   ```

1. Créez le package GDRCopy RPM.

   ```
   $ CUDA=/usr/local/cuda ./build-deb-packages.sh
   ```

1. Installez le package GDRCopy RPM.

   ```
   $ sudo dpkg -i gdrdrv-dkms_2.4-1_amd64.*.deb \
   && sudo dpkg -i libgdrapi_2.4-1_amd64.*.deb \
   && sudo dpkg -i gdrcopy-tests_2.4-1_amd64.*.deb \
   && sudo dpkg -i gdrcopy_2.4-1_amd64.*.deb
   ```

------

## Étape 5 : Installer le logiciel EFA
<a name="nccl-start-base-enable"></a>

Installez le noyau compatible EFA, les pilotes EFA, Libfabric, le aws-ofi-nccl plugin et la pile Open MPI nécessaires pour prendre en charge EFA sur votre instance.

**Pour installer le logiciel EFA**

1. Connectez-vous à l’instance que vous avez lancée. Pour de plus amples informations, veuillez consulter [Se connecter à votre instance Linux à l’aide de SSH](connect-to-linux-instance.md).

1. Téléchargez les fichiers d’installation du logiciel EFA. Les fichiers d’installation du logiciel sont packagés dans un fichier d’archive compressé (`.tar.gz`). Pour télécharger la version *stable* la plus récente, utilisez la commande suivante.

   Vous pouvez aussi obtenir la dernière version en remplaçant le numéro de version par `latest` dans la commande ci-dessus.

   ```
   $ curl -O https://efa-installer.amazonaws.com/aws-efa-installer-1.47.0.tar.gz
   ```

1. (*Facultatif*) Vérifiez l’authenticité et l’intégrité du fichier tarball EFA (`.tar.gz`).

   Nous vous recommandons de le faire pour vérifier l’identité de l’éditeur du logiciel et pour vérifier que le fichier n’a pas été modifié ou endommagé depuis sa publication. Si vous ne souhaitez pas vérifier le fichier d’archive, ignorez cette étape.
**Note**  
Sinon, si vous préférez vérifier le fichier tarball en utilisant plutôt une SHA256 somme de contrôle MD5 ou, consultez. [Vérification du programme d’installation EFA à l’aide d’un total de contrôle](efa-verify.md)

   1. Téléchargez la clé publique GPG et importez-la dans votre porte-clés.

      ```
      $ wget https://efa-installer.amazonaws.com/aws-efa-installer.key && gpg --import aws-efa-installer.key
      ```

      La commande doit renvoyer une valeur clé. Notez la valeur clé, car vous en aurez besoin lors de l’étape suivante.

   1. Vérifiez l’empreinte digitale de la clé GPG. Exécutez la commande suivante et spécifiez la valeur clé que vous avez obtenue à l’étape précédente.

      ```
      $ gpg --fingerprint key_value
      ```

      La commande doit renvoyer une empreinte digitale identique à `4E90 91BC BB97 A96B 26B1 5E59 A054 80B1 DD2D 3CCC`. Si l’empreinte digitale ne correspond pas, n’exécutez pas le script d’installation EFA et contactez Support.

   1. Téléchargez le fichier SIGNATURE et vérifiez la signature du fichier d’archive EFA.

      ```
      $ wget https://efa-installer.amazonaws.com/aws-efa-installer-1.47.0.tar.gz.sig && gpg --verify ./aws-efa-installer-1.47.0.tar.gz.sig
      ```

      Voici un exemple de sortie.

      ```
      gpg: Signature made Wed 29 Jul 2020 12:50:13 AM UTC using RSA key ID DD2D3CCC
      gpg: Good signature from "Amazon EC2 EFA <ec2-efa-maintainers@amazon.com>"
      gpg: WARNING: This key is not certified with a trusted signature!
      gpg:          There is no indication that the signature belongs to the owner.
      Primary key fingerprint: 4E90 91BC BB97 A96B 26B1  5E59 A054 80B1 DD2D 3CCC
      ```

      Si le résultat inclut `Good signature` et que l’empreinte digitale correspond à l’empreinte digitale renvoyée à l’étape précédente, passez à l’étape suivante. Si ce n’est pas le cas, n’exécutez pas le script d’installation EFA et contactez Support.

1. Procédez à l’extraction des fichiers à partir du fichier compressé `.tar.gz` et accédez au répertoire extrait.

   ```
   $ tar -xf aws-efa-installer-1.47.0.tar.gz && cd aws-efa-installer
   ```

1. Exécutez le script d’installation du logicielEFA.
**Note**  
Depuis EFA 1.30.0, Open MPI 4.1 et Open MPI 5 sont installés par défaut. À moins que vous n'ayez besoin d'Open MPI 5, nous vous recommandons de n'installer qu'Open MPI 4.1. La commande suivante installe Open MPI 4.1 uniquement. Si vous souhaitez installer Open MPI 4.1 et Open MPI 5, supprimez-les. `--mpi=openmpi4`

   ```
   $ sudo ./efa_installer.sh -y --mpi=openmpi4
   ```

   **Libfabric** est installé dans le répertoire `/opt/amazon/efa`. Le **aws-ofi-nccl plugin** est installé dans le `/opt/amazon/ofi-nccl` répertoire. **Open MPI** est installé dans le répertoire `/opt/amazon/openmpi`.

1. Si le programme d’installation d’EFA vous invite à redémarrer l’instance, faites-le et reconnectez-vous à l’instance. Sinon, déconnectez-vous de l’instance, puis reconnectez-vous pour terminer l’installation.

1. Vérifiez que les composants logiciels EFA ont été installés avec succès.

   ```
   $ fi_info -p efa -t FI_EP_RDM
   ```

   La commande doit renvoyer des informations sur les interfaces EFA Libfabric. L’exemple suivant illustre la sortie de la commande.
   + `p3dn.24xlarge` avec interface réseau unique

     ```
     provider: efa
     fabric: EFA-fe80::94:3dff:fe89:1b70
     domain: efa_0-rdm
     version: 2.0
     type: FI_EP_RDM
     protocol: FI_PROTO_EFA
     ```
   + `p4d.24xlarge` et `p5.48xlarge` avec plusieurs interfaces réseau

     ```
     provider: efa
     fabric: EFA-fe80::c6e:8fff:fef6:e7ff
     domain: efa_0-rdm
     version: 111.0
     type: FI_EP_RDM
     protocol: FI_PROTO_EFA
     provider: efa
     fabric: EFA-fe80::c34:3eff:feb2:3c35
     domain: efa_1-rdm
     version: 111.0
     type: FI_EP_RDM
     protocol: FI_PROTO_EFA
     provider: efa
     fabric: EFA-fe80::c0f:7bff:fe68:a775
     domain: efa_2-rdm
     version: 111.0
     type: FI_EP_RDM
     protocol: FI_PROTO_EFA
     provider: efa
     fabric: EFA-fe80::ca7:b0ff:fea6:5e99
     domain: efa_3-rdm
     version: 111.0
     type: FI_EP_RDM
     protocol: FI_PROTO_EFA
     ```

## Étape 6 : Installer NCCL
<a name="nccl-start-base-nccl"></a>

Installez la NCCL. Pour plus d’informations sur la NCCL, consultez le [référentiel NCCL](https://github.com/NVIDIA/nccl).

**Pour installer la NCCL.**

1. Accédez au répertoire `/opt`.

   ```
   $ cd /opt
   ```

1. Clonez le référentiel officiel de la NCCL dans l’instance et accédez au référentiel cloné local.

   ```
   $ sudo git clone https://github.com/NVIDIA/nccl.git -b v2.23.4-1 && cd nccl
   ```

1. Créez et installez la NCCL et spécifiez le répertoire d’installation CUDA.

   ```
   $ sudo make -j src.build CUDA_HOME=/usr/local/cuda
   ```

## Étape 7 : Installer les tests NCCL
<a name="nccl-start-base-tests"></a>

Installez les tests NCCL. Les tests NCCL vous permettent de vous assurer que NCCL a été installée correctement et qu’elle fonctionne normalement. Pour plus d’informations sur les tests NCCL, consultez le [référentiel nccl-tests](https://github.com/NVIDIA/nccl-tests).

**Pour installer les tests NCCL**

1. Accédez à votre répertoire de base.

   ```
   $ cd $HOME
   ```

1. Clonez le référentiel officiel nccl-tests dans l’instance et accédez au référentiel cloné local.

   ```
   $ git clone https://github.com/NVIDIA/nccl-tests.git && cd nccl-tests
   ```

1. Ajoutez le répertoire Libfabric à la variable `LD_LIBRARY_PATH`. 
   + Amazon Linux 2023 et Amazon Linux 2

     ```
     $ export LD_LIBRARY_PATH=/opt/amazon/efa/lib64:$LD_LIBRARY_PATH
     ```
   + Ubuntu 24.04 et Ubuntu 22.04

     ```
     $ export LD_LIBRARY_PATH=/opt/amazon/efa/lib:$LD_LIBRARY_PATH
     ```

1. Installez les tests NCCL et spécifiez les répertoires d'installation MPI, NCCL et CUDA.

   ```
   $ make MPI=1 MPI_HOME=/opt/amazon/openmpi NCCL_HOME=/opt/nccl/build CUDA_HOME=/usr/local/cuda
   ```

## Étape 8 : Tester votre configuration EFA et NCCL
<a name="nccl-start-base-test"></a>

Exécutez un test afin de vous assurer que votre instance temporaire est configurée correctement pour EFA et NCCL. 

**Pour tester votre configuration EFA et NCCL**

1. Créez un fichier hôte qui spécifie les hôtes sur lesquels les tests doivent être exécutés. La commande suivante crée un fichier hôte nommé `my-hosts` qui inclut une référence à l’instance elle-même.

------
#### [ IMDSv2 ]

   ```
   [ec2-user ~]$ TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` \
   && curl -H "X-aws-ec2-metadata-token: $TOKEN" -v http://169.254.169.254/latest/meta-data/local-ipv4 >> my-hosts
   ```

------
#### [ IMDSv1 ]

   ```
   [ec2-user ~]$ curl http://169.254.169.254/latest/meta-data/local-ipv4 >> my-hosts
   ```

------

1. Exécutez le test et spécifiez le fichier hôte (`--hostfile`) et le nombre de fichiers GPUs à utiliser (`-n`). La commande suivante exécute le `all_reduce_perf` test sur 8 GPUs sur l'instance elle-même et spécifie les variables d'environnement suivantes.
   + `FI_EFA_USE_DEVICE_RDMA=1` : (`p4d.24xlarge` uniquement) utilise la fonctionnalité RDMA du périphérique pour le transfert unilatéral et bilatéral.
   + `NCCL_DEBUG=INFO` : permet des sorties de débogage détaillées. Vous pouvez également spécifier `VERSION` pour imprimer uniquement la version NCCL au début du test ou `WARN` pour recevoir uniquement des messages d’erreur.

   Pour plus d’informations sur les arguments de test NCCL, consultez le [LISEZ-MOI sur les tests NCCL](https://github.com/NVIDIA/nccl-tests/blob/master/README.md) dans le référentiel nccl-tests officiel.
   + `p3dn.24xlarge`

     ```
     $ /opt/amazon/openmpi/bin/mpirun \
     -x LD_LIBRARY_PATH=/opt/nccl/build/lib:/usr/local/cuda/lib64:/opt/amazon/efa/lib:/opt/amazon/openmpi/lib:/opt/amazon/ofi-nccl/lib:$LD_LIBRARY_PATH \
     -x NCCL_DEBUG=INFO \
     --hostfile my-hosts -n 8 -N 8 \
     --mca pml ^cm --mca btl tcp,self --mca btl_tcp_if_exclude lo,docker0 --bind-to none \
     $HOME/nccl-tests/build/all_reduce_perf -b 8 -e 1G -f 2 -g 1 -c 1 -n 100
     ```
   + `p4d.24xlarge` et `p5.48xlarge`

     ```
     $ /opt/amazon/openmpi/bin/mpirun \
     -x FI_EFA_USE_DEVICE_RDMA=1 \
     -x LD_LIBRARY_PATH=/opt/nccl/build/lib:/usr/local/cuda/lib64:/opt/amazon/efa/lib:/opt/amazon/openmpi/lib:/opt/amazon/ofi-nccl/lib:$LD_LIBRARY_PATH \
     -x NCCL_DEBUG=INFO \
     --hostfile my-hosts -n 8 -N 8 \
     --mca pml ^cm --mca btl tcp,self --mca btl_tcp_if_exclude lo,docker0 --bind-to none \
     $HOME/nccl-tests/build/all_reduce_perf -b 8 -e 1G -f 2 -g 1 -c 1 -n 100
     ```

1. Vous pouvez confirmer que EFA est actif en tant que fournisseur sous-jacent pour NCCL lorsque le journal `NCCL_DEBUG` est imprimé.

   ```
   ip-192-168-2-54:14:14 [0] NCCL INFO NET/OFI Selected Provider is efa*
   ```

   Les informations supplémentaires suivantes s'affichent lors de l'utilisation d'une instance `p4d.24xlarge`.

   ```
   ip-192-168-2-54:14:14 [0] NCCL INFO NET/OFI Running on P4d platform, Setting NCCL_TOPO_FILE environment variable to /home/ec2-user/install/plugin/share/aws-ofi-nccl/xml/p4d-24xl-topo.xml
   ```

## Étape 9 : Installer vos applications de Machine Learning
<a name="nccl-start-base-app"></a>

Installez les applications de machine learning sur l'instance temporaire. La procédure d’installation varie selon l’application de machine learning spécifique. Pour plus d’informations sur l’installation de logiciels sur votre instance Linux, consultez [Gérer les logiciels sur votre instance Amazon Linux 2](https://docs.aws.amazon.com/linux/al2/ug/managing-software.html).

**Note**  
Reportez-vous à la documentation de votre application de machine learning pour obtenir des instructions d’installation.

## Étape 10 : Créer une AMI activée pour EFA et NCCL
<a name="nccl-start-base-ami"></a>

Une fois que vous avez installé les composants logiciels requis, vous devez créer une AMI que vous pouvez réutiliser pour lancer vos instances activées pour EFA.

**Pour créer une AMI à partir de votre instance temporaire**

1. Ouvrez la console Amazon EC2 à l’adresse [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Dans le panneau de navigation, choisissez **Instances**.

1. Sélectionnez l’instance temporaire que vous avez créée et choisissez **Actions**, **Image**, **Créer une image**.

1. Pour **Créer une image**, procédez comme suit :

   1. Pour **Nom de l’image**, entrez un nom descriptif pour l’AMI.

   1. (Facultatif) Pour **Description de l’image**, saisissez une brève description de l’objectif de l’AMI.

   1. Choisissez **Create image (Créer une image)**.

1. Dans le panneau de navigation, sélectionnez **AMIs**.

1. Recherchez l’AMI que vous avez créée dans la liste. Attendez que le statut passe de `pending` à `available` avant de poursuivre avec l'étape suivante.

## Étape 11 : Résilier l'instance temporaire
<a name="nccl-start-base-terminate"></a>

À ce stade, vous n'avez plus besoin de l'instance temporaire que vous avez lancée. Vous pouvez résilier l’instance pour arrêter d’être facturé pour celle-ci.

**Pour résilier l’instance temporaire**

1. Ouvrez la console Amazon EC2 à l’adresse [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Dans le panneau de navigation, choisissez **Instances**.

1. Sélectionnez l’instance temporaire que vous avez créée puis choisissez **Actions**, **État de l’instance**, **Résilier l’instance**.

1. Lorsque vous êtes invité à confirmer, choisissez **Terminate (Mettre fin)**.

## Étape 12 : Lancer les instances activées pour EFA et NCCL dans un groupe de placement de cluster
<a name="nccl-start-base-cluster"></a>

Lancez vos instances activées pour EFA et NCCL dans un groupe de placement du cluster à l'aide de l'AMI activée pour EFA et du groupe de sécurité activé pour EFA que vous avez créés précédemment.

**Note**  
Vous ne devez pas impérativement lancer vos instances EFA dans un groupe de placement de cluster. Toutefois, nous vous recommandons d’exécuter vos instances activées pour EFA dans un groupe de placement de cluster, car cela lance celles-ci dans un groupe à faible latence au sein d’une zone de disponibilité unique.
Pour vous assurer que la capacité est disponible lorsque vous mettez à l’échelle les instances de votre cluster, vous pouvez créer une réserve de capacité pour votre groupe de placement du cluster. Pour plus d’informations, consultez [Utilisation des réserves de capacité avec les groupes de placement du cluster](cr-cpg.md).

------
#### [ New console ]

**Pour lancer une instance temporaire**

1. Ouvrez la console Amazon EC2 à l’adresse [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Dans le volet de navigation, choisissez **Instances**, puis **Launch Instances** (Lancer des instances) pour ouvrir le nouvel assistant de lancement d’instance.

1. (*Facultatif*) Dans la section **Name and tags** (Noms et identifications), fournissez un nom pour l’instance, tel que `EFA-instance`. Le nom est attribué à l’instance en tant qu’identification de ressource (`Name=EFA-instance`).

1. Dans la section **Images de l'application et du système d'exploitation**AMIs, choisissez **My**, puis sélectionnez l'AMI que vous avez créée à l'étape précédente.

1. Dans la section **Instance type** (Type d’instance), sélectionnez `p3dn.24xlarge` ou `p4d.24xlarge`.

1. Dans la section **Key pair** (Paire de clés), sélectionnez la paire de clés à utiliser pour l’instance.

1. Dans la section **Network settings** (Paramètres réseau), choisissez **Edit** (Modifier), puis procédez comme suit :

   1. Pour **Sous-réseau**, choisissez le sous-réseau dans lequel lancer l’instance. Si vous ne sélectionnez pas de sous-réseau, vous ne pouvez pas activer l’instance pour EFA.

   1. Pour **Firewall (security groups)** (Pare-feu (groupes de sécurité)), choisissez **Sélectionner un groupe de sécurité existant** (Select existing security group), puis sélectionnez le groupe de sécurité que vous avez créé à l’étape précédente.

   1. Développez la section **Configuration du réseau avancée**.

      Pour **l’interface réseau 1**, sélectionnez **Index de la carte réseau = 0**, **Index du périphérique = 0** et **Type d’interface = EFA avec ENA**.

      (Facultatif) Si vous utilisez un type d’instance multicarte, tel que `p4d.24xlarge` ou`p5.48xlarge`, pour chaque interface réseau supplémentaire requise, choisissez **Ajouter une interface réseau**, pour Index de **carte réseau, sélectionnez le prochain index** non utilisé, puis sélectionnez Index du **périphérique = 1 et Type d’interface =** **EFA avec ENA ou **EFA**** uniquement.

1. (*Facultatif*) Dans la section **Storage** (Stockage), configurez les volumes selon vos besoins.

1. Dans la section **Advanced details** (Détails avancés), pour **Placement group name** (Nom du groupe de placement), sélectionnez le groupe de placement du cluster dans lequel lancer l’instance. Si vous avez besoin de créer un groupe de placement du cluster, choisissez **Create new placement group** (Créer un groupe de placement).

1. Dans le panneau **Summary** (Récapitulatif) à droite, pour **Number of instances** (Nombre d’instances), saisissez le nombre d’instances activées pour EFA que vous souhaitez lancer, puis choisissez **Launch instance** (Lancer l’instance).

------
#### [ Old console ]

**Pour lancer vos instances activées pour EFA et NCCL dans un groupe de placement du cluster**

1. Ouvrez la console Amazon EC2 à l’adresse [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Choisissez **Launch Instances** (Lancer les instances).

1. Sur la page **Choisir une AMI**, choisissez **Mon AMIs**, recherchez l'AMI que vous avez créée précédemment, puis sélectionnez **Sélectionner**.

1. Sur la page **Choisir un type d’instance**, sélectionnez **p3dn.24xlarge**, puis choisissez **Suivant : configurer les détails d’instance**.

1. Sur la page **Configurer les détails de l’instance**, procédez de la façon suivante :

   1. Pour **Nombre d’instances**, saisissez le nombre d’instances activées pour EFA et NCCL que vous voulez lancer.

   1. Pour **Réseau** et **Sous-réseau**, sélectionnez le VPC et le sous-réseau dans lesquels lancer les instances.

   1. Pour le **Groupe de placement**, sélectionnez **Ajoutez une instance au groupe de placement**.

   1. Pour **Nom du groupe de placement**, sélectionnez **Ajouter à un nouveau groupe de placement**, puis saisissez un nom descriptif pour le groupe de placement. Ensuite, pour **Stratégie du groupe de placement**, sélectionnez **Cluster**.

   1. Pour **EFA**, choisissez **Enable (Activer)**.

   1. Dans la section **Interfaces réseau**, pour l’appareil **eth0**, choisissez **Nouvelle interface réseau**. Vous pouvez éventuellement spécifier une IPv4 adresse principale et une ou plusieurs IPv4 adresses secondaires. Si vous lancez l'instance dans un sous-réseau auquel est associé un bloc IPv6 CIDR, vous pouvez éventuellement spécifier une IPv6 adresse principale et une ou plusieurs adresses secondaires IPv6 .

   1. Choisissez **Suivant : Ajouter un stockage**.

1. Sur la page **Ajouter un stockage**, spécifiez les volumes à attacher aux instances, outre ceux spécifiés par l’AMI (par exemple, le volume du périphérique racine). Choisissez ensuite **Suivant : Ajouter des balises**.

1. Sur la page **Ajouter des balises**, spécifiez des balises pour l’instance, par exemple un nom évocateur, puis sélectionnez **Suivant : Configurer le groupe de sécurité**.

1. Sur la page **Configurer le groupe de sécurité**, cliquez sur **Attribuer un groupe de sécurité**, choisissez **Sélectionner un groupe de sécurité existant**, puis le groupe de sécurité que vous avez créé précédemment.

1. Choisissez **Vérifier et lancer**.

1. Sur la page **Examiner le lancement de l'instance**, vérifiez les paramètres, puis choisissez **Lancer** pour sélectionner une paire de clés et lancer votre instance.

------

## Étape 13 : Activer SSH sans mot de passe
<a name="nccl-start-base-passwordless"></a>

Pour permettre à vos applications de s'exécuter sur toutes les instances de votre cluster, vous devez activer l'accès SSH sans mot de passe du nœud principal aux nœuds membres. Le nœud principal est l’instance à partir de laquelle vous exécutez vos applications. Les instances restantes du cluster sont les nœuds membres.

**Pour activer SSH sans mot de passe entre les instances du cluster**

1. Sélectionnez une instance dans le cluster en tant que nœud principal et connectez-vous à celle-ci.

1. Désactivez `strictHostKeyChecking` et activez `ForwardAgent` sur le nœud principal. Ouvrez le fichier `~/.ssh/config` à l’aide de l’éditeur de texte de votre choix et ajoutez ce qui suit.

   ```
   Host *
       ForwardAgent yes
   Host *
       StrictHostKeyChecking no
   ```

1. Générez une paire de clés RSA

   ```
   $ ssh-keygen -t rsa -N "" -f ~/.ssh/id_rsa
   ```

   La paire de clés est créée dans le répertoire `$HOME/.ssh/`.

1. Modifiez les autorisations de la clé privée sur le nœud principal.

   ```
   $ chmod 600 ~/.ssh/id_rsa
   chmod 600 ~/.ssh/config
   ```

1. Ouvrez `~/.ssh/id_rsa.pub` à l’aide de l’éditeur de texte de votre choix et copiez la clé.

1. Pour chaque nœud membre du cluster, procédez comme suit :

   1. Connectez-vous à l’instance.

   1. Ouvrez `~/.ssh/authorized_keys` à l’aide de l’éditeur de texte de votre choix et ajoutez la clé publique que vous avez copiée plus tôt.

1. Pour tester que le SSH sans mot de passe fonctionne comme prévu, connectez-vous à votre nœud principal et exécutez la commande suivante.

   ```
   $ ssh member_node_private_ip
   ```

   Vous devez vous connecter au nœud membre sans être invité à entrer une clé ou un mot de passe.

# Commencez à utiliser EFA et NIXL pour les charges de travail d'inférence sur Amazon EC2
<a name="efa-start-nixl"></a>

La bibliothèque NVIDIA Inference Xfer (NIXL) est une bibliothèque de communication à haut débit et à faible latence conçue spécifiquement pour les charges de travail d'inférence désagrégées. NIXL peut être utilisé avec EFA et Libfabric pour prendre en charge le transfert de cache KV entre les nœuds de préremplissage et de décodage, et il permet un déplacement efficace du cache KV entre les différentes couches de stockage. Pour plus d'informations, consultez le site Web de [NIXL](https://github.com/ai-dynamo/nixl).

**Exigences**
+ Seuls Ubuntu 24.04 et Ubuntu 22.04 base AMIs sont pris en charge.
+ EFA prend uniquement en charge NIXL 1.0.0 et versions ultérieures.

**Topics**

## Étape 1 : Préparer un groupe de sécurité activé pour les EFA
<a name="nixl-start-base-setup"></a>

Un EFA a besoin d’un groupe de sécurité qui autorise tout le trafic entrant et sortant vers et depuis le groupe de sécurité proprement dit. La procédure suivante crée un groupe de sécurité qui autorise tout le trafic entrant et sortant à destination et en provenance de lui-même, et qui autorise le trafic SSH entrant depuis n'importe quelle IPv4 adresse pour la connectivité SSH.

**Important**  
Ce groupe de sécurité n’est destiné qu’à des fins de test. Pour vos environnements de production, nous vous recommandons de créer une règle SSH entrante qui autorise le trafic uniquement à partir de l’adresse IP à partir de laquelle vous vous connectez, telle que l’adresse IP de votre ordinateur ou une plage d’adresses IP de votre réseau local.

Pour d’autres scénarios, consultez [Règles de groupe de sécurité pour différents cas d’utilisation](security-group-rules-reference.md).

**Pour créer un groupe de sécurité activé pour EFA**

1. Ouvrez la console Amazon EC2 à l’adresse [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Dans le panneau de navigation, choisissez **Security Groups (Groupes de sécurité)**, puis **Create security group (Créer un groupe de sécurité)**.

1. Dans la fenêtre **Create security group (Créer un groupe de sécurité)**, procédez comme suit :

   1. Pour **Nom du groupe de sécurité**, saisissez un nom descriptif pour le groupe de sécurité, tel que `EFA-enabled security group`.

   1. (Facultatif) Pour **Description**, saisissez une brève description du groupe de sécurité.

   1. Pour **VPC**, sélectionnez le VPC dans lequel vous prévoyez de lancer vos instances activées pour EFA.

   1. Sélectionnez **Create security group** (Créer un groupe de sécurité).

1. Sélectionnez le groupe de sécurité que vous avez créé et dans l’onglet **Details** (Détails), copiez le **Security group ID** (ID du groupe de sécurité).

1. En conservant la sélection du groupe de sécurité, choisissez **Actions**, **Edit inbound rules** (Modifier les règles entrantes), puis procédez comme suit :

   1. Choisissez **Ajouter une règle**.

   1. Pour **Type**, sélectionnez **Tout le trafic**.

   1. Pour **Source type** (Type de source), choisissez **Custom** (Personnalisée) et collez l’ID du groupe de sécurité que vous avez copié dans le champ.

   1. Choisissez **Ajouter une règle**.

   1. Pour **Type**, choisissez **SSH**.

   1. Pour **Type de source**, choisissez **N'importe où- IPv4**.

   1. Sélectionnez **Enregistrer les règles**.

1. En conservant la sélection du groupe de sécurité, choisissez **Actions**, **Edit outbound rules** (Modifier les règles sortantes), puis procédez comme suit :

   1. Choisissez **Ajouter une règle**.

   1. Pour **Type**, sélectionnez **Tout le trafic**.

   1. Pour **Destination type** (Type de destination), choisissez **Custom** (Personnalisée) et collez l’ID du groupe de sécurité que vous avez copié dans le champ.

   1. Sélectionnez **Enregistrer les règles**.

## Étape 2 : Lancer une instance temporaire
<a name="nixl-start-base-temp"></a>

Lancez une instance temporaire que vous pouvez utiliser pour installer et configurer les composants logiciels EFA. Vous utilisez cette instance pour créer une AMI activée pour EFA depuis laquelle vous pouvez lancer vos instances activées pour EFA.

**Pour lancer une instance temporaire**

1. Ouvrez la console Amazon EC2 à l’adresse [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Dans le volet de navigation, choisissez **Instances**, puis **Launch Instances** (Lancer des instances) pour ouvrir le nouvel assistant de lancement d’instance.

1. (*Facultatif*) Dans la section **Name and tags** (Noms et identifications), fournissez un nom pour l’instance, tel que `EFA-instance`. Le nom est attribué à l’instance en tant qu’identification de ressource (`Name=EFA-instance`).

1. Dans la section **Images d’applications et de systèmes d’exploitation**, sélectionnez une AMI pour l’un des systèmes d’exploitation pris en charge. Vous pouvez également sélectionner un DLAMI compatible sur la page des notes de mise à jour du [DLAMI.](https://docs.aws.amazon.com/dlami/latest/devguide/appendix-ami-release-notes)

1. Dans la section **Type d’instance**, sélectionnez un type d’instance pris en charge.

1. Dans la section **Key pair** (Paire de clés), sélectionnez la paire de clés à utiliser pour l’instance.

1. Dans la section **Network settings** (Paramètres réseau), choisissez **Edit** (Modifier), puis procédez comme suit :

   1. Pour **Sous-réseau**, choisissez le sous-réseau dans lequel lancer l’instance. Si vous ne sélectionnez pas de sous-réseau, vous ne pouvez pas activer l’instance pour EFA.

   1. Pour **Firewall (security groups)** (Pare-feu (groupes de sécurité)), choisissez **Sélectionner un groupe de sécurité existant** (Select existing security group), puis sélectionnez le groupe de sécurité que vous avez créé à l’étape précédente.

   1. Développez la section **Configuration du réseau avancée**.

      Pour **l’interface réseau 1**, sélectionnez **Index de la carte réseau = 0**, **Index du périphérique = 0** et **Type d’interface = EFA avec ENA**.

      (*Facultatif*) Si vous utilisez un type d’instance multicarte, tel que `p4d.24xlarge` ou`p5.48xlarge`, pour chaque interface réseau supplémentaire requise, choisissez **Ajouter une interface réseau**, pour Index de **carte réseau, sélectionnez le prochain index** non utilisé, puis sélectionnez Index du **périphérique = 1 et Type d’interface =** **EFA avec ENA ou **EFA**** uniquement.

1. Dans la section **Storage** (Stockage), configurez les volumes selon vos besoins.
**Note**  
Vous devez provisionner un stockage supplémentaire de 10 à 20 GiB pour le Nvidia CUDA Toolkit. Si vous ne disposez pas d’un espace de stockage suffisant, le message d’erreur `insufficient disk space` s’affichera lors de la tentative d’installation des pilotes Nvidia et de la boîte à outils CUDA.

1. Dans le panneau **Summary** (Récapitulatif) à droite, choisissez **Launch instance** (Lancer l’instance).

**Important**  
Ignorez l'étape 3 si votre AMI inclut déjà les pilotes GPU Nvidia, le kit d'outils CUDA et cuDNN, ou si vous utilisez une instance autre que le GPU.

## Étape 3 : Installer les pilotes GPU Nvidia, le Nvidia CUDA Toolkit et cuDNN
<a name="nixl-start-base-drivers"></a>

**Pour installer les pilotes GPU Nvidia, le Nvidia CUDA Toolkit et cuDNN**

1. Pour vous assurer que tous vos packages logiciels sont mis à jour, effectuez une mise à jour logicielle rapide sur votre instance.

   ```
   $ sudo apt-get update && sudo apt-get upgrade -y
   ```

1. Installez les utilitaires nécessaires pour l’installation des pilotes GPU Nvidia et du Nvidia CUDA toolkit.

   ```
   $ sudo apt-get install build-essential -y
   ```

1. Pour utiliser le pilote GPU Nvidia, vous devez d’abord désactiver les pilotes open source `nouveau`.

   1. Installez les utilitaires requis et le package d’en-têtes de noyau correspondant à la version du noyau que vous exécutez actuellement.

      ```
      $ sudo apt-get install -y gcc make linux-headers-$(uname -r)
      ```

   1. Ajoutez `nouveau` au fichier de liste de refus `/etc/modprobe.d/blacklist.conf `.

      ```
      $ cat << EOF | sudo tee --append /etc/modprobe.d/blacklist.conf
      blacklist vga16fb
      blacklist nouveau
      blacklist rivafb
      blacklist nvidiafb
      blacklist rivatv
      EOF
      ```

   1. Ouvrez le fichier `/etc/default/grub` à l’aide de l’éditeur de texte de votre choix et ajoutez ce qui suit.

      ```
      GRUB_CMDLINE_LINUX="rdblacklist=nouveau"
      ```

   1. Générez à nouveau la configuration Grub.

      ```
      $ sudo update-grub
      ```

1. Redémarrez l’instance et reconnectez-vous à celle-ci.

1. Ajoutez le référentiel CUDA et installez les pilotes de GPU Nvidia, la boîte à outils NVIDIA CUDA et cuDNN.

   ```
   $ sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu2004/x86_64/7fa2af80.pub \
   && wget -O /tmp/deeplearning.deb http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu2004/x86_64/nvidia-machine-learning-repo-ubuntu2004_1.0.0-1_amd64.deb \
   && sudo dpkg -i /tmp/deeplearning.deb \
   && wget -O /tmp/cuda.pin https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin \
   && sudo mv /tmp/cuda.pin /etc/apt/preferences.d/cuda-repository-pin-600 \
   && sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/3bf863cc.pub \
   && sudo add-apt-repository 'deb http://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/ /' \
   && sudo apt update \
   && sudo apt install nvidia-dkms-535 \
   && sudo apt install -o Dpkg::Options::='--force-overwrite' cuda-drivers-535 cuda-toolkit-12-3 libcudnn8 libcudnn8-dev -y
   ```

1. Redémarrez l’instance et reconnectez-vous à celle-ci.

1. (`p4d.24xlarge` et `p5.48xlarge` uniquement) Installez Nvidia Fabric Manager.

   1. Vous devez installer la version de Nvidia Fabric Manager qui correspond à la version du module de noyau Nvidia que vous avez installée à l’étape précédente.

      Exécutez la commande suivante pour déterminer la version du module de noyau Nvidia.

      ```
      $ cat /proc/driver/nvidia/version | grep "Kernel Module"
      ```

      Voici un exemple de sortie.

      ```
      NVRM version: NVIDIA UNIX x86_64 Kernel Module  450.42.01  Tue Jun 15 21:26:37 UTC 2021
      ```

      Dans l’exemple ci-dessus, la version principale `450` du module de noyau a été installée. Cela signifie que vous devez installer la version `450` de Nvidia Fabric Manager.

   1. Installez Nvidia Fabric Manager. Exécutez la commande suivante et spécifiez la version principale identifiée à l’étape précédente.

      ```
      $ sudo apt install -o Dpkg::Options::='--force-overwrite' nvidia-fabricmanager-major_version_number
      ```

      Par exemple, si la version majeure `450` du module de noyau a été installée, utilisez la commande suivante pour installer la version correspondante de Nvidia Fabric Manager.

      ```
      $ sudo apt install -o Dpkg::Options::='--force-overwrite' nvidia-fabricmanager-450
      ```

   1. Démarrez le service et assurez-vous qu’il démarre automatiquement au démarrage de l’instance. Nvidia Fabric Manager est requis pour la gestion des commutateurs NV.

      ```
      $ sudo systemctl start nvidia-fabricmanager && sudo systemctl enable nvidia-fabricmanager
      ```

1. Assurez-vous que les chemins d’accès CUDA sont définis chaque fois que l’instance démarre.
   + Pour les shells *bash* , ajoutez les instructions suivantes à `/home/username/.bashrc` et `/home/username/.bash_profile`.

     ```
     export PATH=/usr/local/cuda/bin:$PATH
     export LD_LIBRARY_PATH=/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64:$LD_LIBRARY_PATH
     ```
   + Pour les shells *tcsh* , ajoutez les instructions suivantes à `/home/username/.cshrc`.

     ```
     setenv PATH=/usr/local/cuda/bin:$PATH
     setenv LD_LIBRARY_PATH=/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64:$LD_LIBRARY_PATH
     ```

1. Pour vérifier que les pilotes GPU Nvidia sont fonctionnels, exécutez la commande suivante.

   ```
   $ nvidia-smi -q | head
   ```

   La commande doit renvoyer des informations sur Nvidia GPUs, les pilotes GPU Nvidia et le kit d'outils Nvidia CUDA.

**Important**  
Ignorez l'étape 4 si votre AMI inclut GDRCopy déjà une instance sans GPU ou si vous utilisez une instance autre que le GPU.

## Étape 4 : Installation GDRCopy
<a name="nixl-start-base-gdrcopy"></a>

Installez GDRCopy pour améliorer les performances de Libfabric sur les plateformes basées sur des GPU. Pour plus d'informations à ce sujetGDRCopy, consultez le [GDRCopy référentiel](https://github.com/NVIDIA/gdrcopy).

**Pour installer GDRCopy**

1. Installez les dépendances obligatoires.

   ```
   $ sudo apt -y install build-essential devscripts debhelper check libsubunit-dev fakeroot pkg-config dkms
   ```

1. Téléchargez et extrayez le GDRCopy package.

   ```
   $ wget https://github.com/NVIDIA/gdrcopy/archive/refs/tags/v2.4.tar.gz \
   && tar xf v2.4.tar.gz \
   && cd gdrcopy-2.4/packages
   ```

1. Construisez les packages GDRCopy DEB.

   ```
   $ CUDA=/usr/local/cuda ./build-deb-packages.sh
   ```

1. Installez les packages GDRCopy DEB.

   ```
   $ sudo dpkg -i gdrdrv-dkms_2.4-1_amd64.*.deb \
   && sudo dpkg -i libgdrapi_2.4-1_amd64.*.deb \
   && sudo dpkg -i gdrcopy-tests_2.4-1_amd64.*.deb \
   && sudo dpkg -i gdrcopy_2.4-1_amd64.*.deb
   ```

**Important**  
Ignorez l'étape 5 si votre AMI inclut déjà le dernier programme d'installation d'EFA.

## Étape 5 : Installer le logiciel EFA
<a name="nixl-start-base-enable"></a>

Installez le noyau compatible EFA, les pilotes EFA et la pile Libfabric nécessaires pour prendre en charge EFA sur votre instance.

**Pour installer le logiciel EFA**

1. Connectez-vous à l’instance que vous avez lancée. Pour de plus amples informations, veuillez consulter [Se connecter à votre instance Linux à l’aide de SSH](connect-to-linux-instance.md).

1. Téléchargez les fichiers d’installation du logiciel EFA. Les fichiers d’installation du logiciel sont packagés dans un fichier d’archive compressé (`.tar.gz`). Pour télécharger la version *stable* la plus récente, utilisez la commande suivante.

   ```
   $ curl -O https://efa-installer.amazonaws.com/aws-efa-installer-1.47.0.tar.gz
   ```

1. Extrayez les fichiers du `.tar.gz` fichier compressé, supprimez l'archive tar et naviguez dans le répertoire extrait.

   ```
   $ tar -xf aws-efa-installer-1.47.0.tar.gz && rm -rf aws-efa-installer-1.47.0.tar.gz && cd aws-efa-installer
   ```

1. Exécutez le script d’installation du logicielEFA.

   ```
   $ sudo ./efa_installer.sh -y
   ```

   **Libfabric** est installé dans le répertoire `/opt/amazon/efa`.

1. Si le programme d’installation d’EFA vous invite à redémarrer l’instance, faites-le et reconnectez-vous à l’instance. Sinon, déconnectez-vous de l’instance, puis reconnectez-vous pour terminer l’installation.

1. Vérifiez que les composants logiciels EFA ont été installés avec succès.

   ```
   $ fi_info -p efa -t FI_EP_RDM
   ```

   La commande doit renvoyer des informations sur les interfaces EFA Libfabric. L’exemple suivant illustre la sortie de la commande.
   + `p3dn.24xlarge` avec interface réseau unique

     ```
     provider: efa
     fabric: EFA-fe80::94:3dff:fe89:1b70
     domain: efa_0-rdm
     version: 2.0
     type: FI_EP_RDM
     protocol: FI_PROTO_EFA
     ```
   + `p4d.24xlarge` et `p5.48xlarge` avec plusieurs interfaces réseau

     ```
     provider: efa
     fabric: EFA-fe80::c6e:8fff:fef6:e7ff
     domain: efa_0-rdm
     version: 111.0
     type: FI_EP_RDM
     protocol: FI_PROTO_EFA
     provider: efa
     fabric: EFA-fe80::c34:3eff:feb2:3c35
     domain: efa_1-rdm
     version: 111.0
     type: FI_EP_RDM
     protocol: FI_PROTO_EFA
     provider: efa
     fabric: EFA-fe80::c0f:7bff:fe68:a775
     domain: efa_2-rdm
     version: 111.0
     type: FI_EP_RDM
     protocol: FI_PROTO_EFA
     provider: efa
     fabric: EFA-fe80::ca7:b0ff:fea6:5e99
     domain: efa_3-rdm
     version: 111.0
     type: FI_EP_RDM
     protocol: FI_PROTO_EFA
     ```

## Étape 6 : installer NIXL
<a name="nixl-start-base-nixl"></a>

Installez NIXL. Pour plus d'informations sur NIXL, consultez le référentiel [NIXL](https://github.com/ai-dynamo/nixl).

------
#### [ Pre-built distributions ]

**Pour installer NIXL à l'aide de PyPI**

1. Installez les dépendances obligatoires.

   ```
   $ sudo apt install pip
   ```

1. Installez NIXL.

   ```
   $ pip install nixl
   ```

------
#### [ Build from source ]

**Pour compiler et installer NIXL à partir des sources**

1. Installez les dépendances obligatoires.

   ```
   $ sudo apt install cmake pkg-config meson pybind11-dev libaio-dev nvidia-cuda-toolkit pip libhwloc-dev \
   && pip install meson ninja pybind11
   ```

1. Accédez à votre répertoire de base.

   ```
   $ cd $HOME
   ```

1. Clonez le référentiel NIXL officiel sur l'instance et accédez au référentiel cloné local.

   ```
   $ sudo git clone https://github.com/ai-dynamo/nixl.git && cd nixl
   ```

1. Compilez et installez NIXL et spécifiez le chemin d'accès au répertoire d'installation de Libfabric.

   ```
   $ sudo meson setup . nixl --prefix=/usr/local/nixl -Dlibfabric_path=/opt/amazon/efa
   $ cd nixl && sudo ninja && sudo ninja install
   ```

------

## Étape 7 : Installez NIXL Benchmark et testez votre configuration EFA et NIXL
<a name="nixl-start-base-tests"></a>

Installez le NIXL Benchmark et effectuez un test pour vous assurer que votre instance temporaire est correctement configurée pour EFA et NIXL. Le NIXL Benchmark vous permet de confirmer que NIXL est correctement installé et qu'il fonctionne comme prévu. Pour plus d'informations, consultez le référentiel [nixlbench](https://github.com/ai-dynamo/nixl/tree/main/benchmark/nixlbench).

NIXL Benchmark (nixlbench) nécessite ETCD pour la coordination entre le client et le serveur. L'utilisation d'ETCD avec NIXL nécessite le serveur et le client ETCD, ainsi que l'API ETCD CPP.

------
#### [ Build from Docker ]

**Pour installer et tester NIXL Benchmark à l'aide de Docker**

1. Clonez le référentiel NIXL officiel sur l'instance et accédez au répertoire de construction nixlbench.

   ```
   $ git clone https://github.com/ai-dynamo/nixl.git
   $ cd nixl/benchmark/nixlbench/contrib
   ```

1. Générez le conteneur.

   ```
   $ ./build.sh
   ```

   Pour plus d'informations sur les options de compilation de Docker, consultez le référentiel [nixlbench](https://github.com/ai-dynamo/nixl/tree/main/benchmark/nixlbench).

1. Installez Docker.

   ```
   $ sudo apt install docker.io -y
   ```

1. Démarrez le serveur ETCD pour la coordination.

   ```
   $ docker run -d --name etcd-server \
       -p 2379:2379 -p 2380:2380 \
       quay.io/coreos/etcd:v3.5.18 \
       /usr/local/bin/etcd \
       --data-dir=/etcd-data \
       --listen-client-urls=http://0.0.0.0:2379 \
       --advertise-client-urls=http://0.0.0.0:2379 \
       --listen-peer-urls=http://0.0.0.0:2380 \
       --initial-advertise-peer-urls=http://0.0.0.0:2380 \
       --initial-cluster=default=http://0.0.0.0:2380
   ```

1. Vérifiez que le serveur ETCD est en cours d'exécution.

   ```
   $ curl -L http://localhost:2379/health
   ```

   Sortie attendue :

   ```
   {"health":"true"}
   ```

1. Ouvrez deux terminaux pour l'instance. Sur les deux terminaux, exécutez la commande suivante pour vérifier l'installation. La commande utilise le serveur ETCD sur la même instance, utilise Libfabric comme backend et fonctionne à l'aide de la mémoire du GPU.

   ```
   $ docker run -it --gpus all --network host nixlbench:latest \
       nixlbench --etcd_endpoints http://localhost:2379 \
       --backend LIBFABRIC \
       --initiator_seg_type VRAM \
       --target_seg_type VRAM
   ```
**Note**  
Utilisez la valeur `DRAM` plutôt que `VRAM` pour les instances autres que le GPU.

------
#### [ Build from source ]

**Important**  
Suivez cet onglet uniquement si vous avez choisi **Créer à partir du code source** à l'étape 6.

**Pour installer NIXL Benchmark**

1. Installez les dépendances système requises.

   ```
   $ sudo apt install libgflags-dev
   ```

1. Installez le serveur et le client ETCD.

   ```
   $ sudo apt install -y etcd-server etcd-client
   ```

1. Installez l'API ETCD CPP.

   1. Installez les dépendances requises pour l'API ETCD CPP.

      ```
      $ sudo apt install libboost-all-dev libssl-dev libgrpc-dev libgrpc++-dev libprotobuf-dev protobuf-compiler-grpc libcpprest-dev
      ```

   1. Clonez et installez l'API ETCD CPP.

      ```
      $ cd $HOME
      $ git clone https://github.com/etcd-cpp-apiv3/etcd-cpp-apiv3.git
      $ cd etcd-cpp-apiv3
      $ mkdir build && cd build
      $ cmake ..
      $ sudo make -j$(nproc) && sudo make install
      ```

1. Construisez et installez nixlbench.

   ```
   $ sudo meson setup . $HOME/nixl/benchmark/nixlbench -Dnixl_path=/usr/local/nixl/
   $ sudo ninja && sudo ninja install
   ```

**Pour tester votre configuration EFA et NIXL**

1. Démarrez le serveur ETCD sur l'instance.

   ```
   $ etcd --listen-client-urls "http://0.0.0.0:2379" \
       --advertise-client-urls "http://localhost:2379" &
   ```

1. Vérifiez que le serveur ETCD est en cours d'exécution.

   ```
   $ curl -L http://localhost:2379/health
   ```

   Sortie attendue :

   ```
   {"health":"true"}
   ```

1. Ouvrez deux terminaux pour l'instance. Sur les deux terminaux, effectuez les étapes suivantes pour exécuter nixlbench.

   1. Accédez au répertoire dans lequel nixlbench est installé.

      ```
      $ cd /usr/local/nixlbench/bin/
      ```

   1. Exécutez le test et spécifiez le backend, l'adresse du serveur ETCD et le type de segment initiateur. La commande suivante utilise le serveur ETCD sur la même instance, utilise Libfabric comme backend et utilise la mémoire du GPU. Les variables d'environnement configurent les éléments suivants :
      + `NIXL_LOG_LEVEL=INFO`— Permet une sortie de débogage détaillée. Vous pouvez également spécifier `WARN` de ne recevoir que les messages d'erreur.
      + `LD_LIBRARY_PATH`— Définit le chemin de la bibliothèque NIXL.

      Pour plus d'informations sur les arguments du NIXL Benchmark, consultez le [NIXLbenchfichier README](https://github.com/ai-dynamo/nixl/blob/main/benchmark/nixlbench/README.md) dans le référentiel officiel de nixlbench.

      ```
      $ export NIXL_LOG_LEVEL=INFO
      $ export LD_LIBRARY_PATH=/usr/local/nixl/lib/$(gcc -dumpmachine):$LD_LIBRARY_PATH
      
      $ nixlbench --etcd-endpoints 'http://localhost:2379' \
          --backend 'LIBFABRIC' \
          --initiator_seg_type 'VRAM' \
          --target_seg_type 'VRAM'
      ```
**Note**  
Utilisez la valeur `DRAM` plutôt que `VRAM` pour les instances autres que le GPU.

------

## Étape 8 : Installation de vos applications d'apprentissage automatique
<a name="nixl-start-base-app"></a>

Installez les applications de machine learning sur l’instance temporaire. La procédure d’installation varie selon l’application de machine learning spécifique.

**Note**  
Reportez-vous à la documentation de votre application d'apprentissage automatique pour obtenir des instructions d'installation.

## Étape 9 : Création d'une AMI compatible EFA et NIXL
<a name="nixl-start-base-ami"></a>

Une fois que vous avez installé les composants logiciels requis, vous devez créer une AMI que vous pouvez réutiliser pour lancer vos instances activées pour EFA.

**Pour créer une AMI à partir de votre instance temporaire**

1. Ouvrez la console Amazon EC2 à l’adresse [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Dans le panneau de navigation, choisissez **Instances**.

1. Sélectionnez l’instance temporaire que vous avez créée et choisissez **Actions**, **Image**, **Créer une image**.

1. Pour **Créer une image**, procédez comme suit :

   1. Pour **Nom de l’image**, entrez un nom descriptif pour l’AMI.

   1. (Facultatif) Pour **Description de l’image**, saisissez une brève description de l’objectif de l’AMI.

   1. Choisissez **Create image (Créer une image)**.

1. Dans le panneau de navigation, sélectionnez **AMIs**.

1. Recherchez l’AMI que vous avez créée dans la liste. Attendez que le statut passe de `pending` à `available` avant de poursuivre avec l’étape suivante.

## Étape 10 : Résilier l’instance temporaire
<a name="nixl-start-base-terminate"></a>

À ce stade, vous n’avez plus besoin de l’instance temporaire que vous avez lancée. Vous pouvez résilier l’instance pour arrêter d’être facturé pour celle-ci.

**Pour résilier l’instance temporaire**

1. Ouvrez la console Amazon EC2 à l’adresse [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Dans le panneau de navigation, choisissez **Instances**.

1. Sélectionnez l’instance temporaire que vous avez créée puis choisissez **Actions**, **État de l’instance**, **Résilier l’instance**.

1. Lorsque vous êtes invité à confirmer, choisissez **Terminate (Mettre fin)**.

## Étape 11 : Lancer les instances compatibles EFA et Nixl
<a name="nixl-start-base-cluster"></a>

**Lancez vos instances compatibles EFA et Nixl à l'aide de l'AMI compatible EFA que vous avez créée à l'**étape 9** et du groupe de sécurité compatible EFA que vous avez créé à l'étape 1.**

**Pour lancer des instances compatibles EFA et Nixl**

1. Ouvrez la console Amazon EC2 à l’adresse [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Dans le volet de navigation, choisissez **Instances**, puis **Launch Instances** (Lancer des instances) pour ouvrir le nouvel assistant de lancement d’instance.

1. (*Facultatif*) Dans la section **Name and tags** (Noms et identifications), fournissez un nom pour l’instance, tel que `EFA-instance`. Le nom est attribué à l’instance en tant qu’identification de ressource (`Name=EFA-instance`).

1. Dans la section **Images de l'application et du système d'exploitation**AMIs, choisissez **My**, puis sélectionnez l'AMI que vous avez créée à l'étape précédente.

1. Dans la section **Type d’instance**, sélectionnez un type d’instance pris en charge.

1. Dans la section **Key pair** (Paire de clés), sélectionnez la paire de clés à utiliser pour l’instance.

1. Dans la section **Network settings** (Paramètres réseau), choisissez **Edit** (Modifier), puis procédez comme suit :

   1. Pour **Sous-réseau**, choisissez le sous-réseau dans lequel lancer l’instance. Si vous ne sélectionnez pas de sous-réseau, vous ne pouvez pas activer l’instance pour EFA.

   1. Pour **Firewall (groupes de sécurité)**, choisissez **Sélectionner le groupe de sécurité existant**, puis sélectionnez le groupe de sécurité que vous avez créé à **l'étape 1**.

   1. Développez la section **Configuration du réseau avancée**.

      Pour **l’interface réseau 1**, sélectionnez **Index de la carte réseau = 0**, **Index du périphérique = 0** et **Type d’interface = EFA avec ENA**.

      (*Facultatif*) Si vous utilisez un type d’instance multicarte, tel que `p4d.24xlarge` ou`p5.48xlarge`, pour chaque interface réseau supplémentaire requise, choisissez **Ajouter une interface réseau**, pour Index de **carte réseau, sélectionnez le prochain index** non utilisé, puis sélectionnez Index du **périphérique = 1 et Type d’interface =** **EFA avec ENA ou **EFA**** uniquement.

1. (*Facultatif*) Dans la section **Storage** (Stockage), configurez les volumes selon vos besoins.

1. Dans le panneau **Summary** (Récapitulatif) à droite, pour **Number of instances** (Nombre d’instances), saisissez le nombre d’instances activées pour EFA que vous souhaitez lancer, puis choisissez **Launch instance** (Lancer l’instance).

## Étape 12 : Activer SSH sans mot de passe
<a name="nixl-start-base-passwordless"></a>

Pour permettre à vos applications de s’exécuter sur toutes les instances de votre cluster, vous devez activer l’accès SSH sans mot de passe du nœud principal aux nœuds membres. Le nœud principal est l’instance à partir de laquelle vous exécutez vos applications. Les instances restantes du cluster sont les nœuds membres.

**Pour activer SSH sans mot de passe entre les instances du cluster**

1. Sélectionnez une instance dans le cluster en tant que nœud principal et connectez-vous à celle-ci.

1. Désactivez `strictHostKeyChecking` et activez `ForwardAgent` sur le nœud principal. Ouvrez le fichier `~/.ssh/config` à l’aide de l’éditeur de texte de votre choix et ajoutez ce qui suit.

   ```
   Host *
       ForwardAgent yes
   Host *
       StrictHostKeyChecking no
   ```

1. Générez une paire de clés RSA

   ```
   $ ssh-keygen -t rsa -N "" -f ~/.ssh/id_rsa
   ```

   La paire de clés est créée dans le répertoire `$HOME/.ssh/`.

1. Modifiez les autorisations de la clé privée sur le nœud principal.

   ```
   $ chmod 600 ~/.ssh/id_rsa
   chmod 600 ~/.ssh/config
   ```

1. Ouvrez `~/.ssh/id_rsa.pub` à l’aide de l’éditeur de texte de votre choix et copiez la clé.

1. Pour chaque nœud membre du cluster, procédez comme suit :

   1. Connectez-vous à l’instance.

   1. Ouvrez `~/.ssh/authorized_keys` à l’aide de l’éditeur de texte de votre choix et ajoutez la clé publique que vous avez copiée plus tôt.

1. Pour tester que le SSH sans mot de passe fonctionne comme prévu, connectez-vous à votre nœud principal et exécutez la commande suivante.

   ```
   $ ssh member_node_private_ip
   ```

   Vous devez vous connecter au nœud membre sans être invité à entrer une clé ou un mot de passe.

**Important**  
Suivez l'étape 13 uniquement si vous avez suivi l'étape 7.

## Étape 13 : Testez votre configuration EFA et NIXL sur plusieurs instances
<a name="nixl-start-base-test-multi"></a>

Effectuez un test pour vous assurer que vos instances sont correctement configurées pour EFA et NIXL.

------
#### [ Build from Docker ]

**Pour tester votre configuration EFA et NIXL sur plusieurs instances à l'aide de Docker**

1. Sélectionnez deux hôtes pour exécuter le benchmark nixlbench. Utilisez l'adresse IP du premier hôte comme adresse IP du serveur ETCD pour l'échange de métadonnées.

1. Démarrez le serveur ETCD sur l'hôte 1.

   ```
   $ docker run -d --name etcd-server \
       -p 2379:2379 -p 2380:2380 \
       quay.io/coreos/etcd:v3.5.18 \
       /usr/local/bin/etcd \
       --data-dir=/etcd-data \
       --listen-client-urls=http://0.0.0.0:2379 \
       --advertise-client-urls=http://0.0.0.0:2379 \
       --listen-peer-urls=http://0.0.0.0:2380 \
       --initial-advertise-peer-urls=http://0.0.0.0:2380 \
       --initial-cluster=default=http://0.0.0.0:2380
   ```

1. Vérifiez que le serveur ETCD est en cours d'exécution.

   ```
   $ curl -L http://localhost:2379/health
   ```

   ```
   {"health":"true"}
   ```

1. Exécutez le benchmark nixlbench sur l'hôte 1.

   ```
   $ docker run -it --gpus all --network host nixlbench:latest \
       nixlbench --etcd_endpoints http://localhost:2379 \
       --backend LIBFABRIC \
       --initiator_seg_type VRAM
   ```

1. Exécutez le benchmark nixlbench sur l'hôte 2.

   ```
   $ docker run -it --gpus all --network host nixlbench:latest \
       nixlbench --etcd_endpoints http://ETCD_SERVER_IP:2379 \
       --backend LIBFABRIC \
       --initiator_seg_type VRAM
   ```

------
#### [ Build from source ]

**Important**  
Suivez cet onglet uniquement si vous avez choisi **Créer à partir du code source** à l'étape 6.

**Pour tester votre configuration EFA et NIXL sur plusieurs instances**

1. Sélectionnez deux hôtes pour exécuter le benchmark nixlbench. Utilisez l'adresse IP du premier hôte comme adresse IP du serveur ETCD pour l'échange de métadonnées.

1. Lancez le serveur ETCD sur l'hôte 1.

   ```
   $ etcd --listen-client-urls "http://0.0.0.0:2379" \
       --advertise-client-urls "http://localhost:2379" &
   ```

1. Vérifiez que le serveur ETCD est en cours d'exécution.

   ```
   $ curl -L http://localhost:2379/health
   ```

   ```
   {"health":"true"}
   ```

1. Exécutez le benchmark nixlbench sur l'hôte 1.

   ```
   $ export NIXL_LOG_LEVEL=INFO
   $ export LD_LIBRARY_PATH=$HOME/nixl/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH
   
   $ nixlbench \
       --etcd-endpoints http://localhost:2379 \
       --backend LIBFABRIC \
       --initiator_seg_type VRAM
   ```

1. Exécutez le benchmark nixlbench sur l'hôte 2.

   ```
   $ export NIXL_LOG_LEVEL=INFO
   $ export LD_LIBRARY_PATH=$HOME/nixl/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH
   
   $ nixlbench \
       --etcd-endpoints http://ETCD_SERVER_IP:2379 \
       --backend LIBFABRIC \
       --initiator_seg_type VRAM
   ```

------

## *Étape 14 : Tester le service d'inférence désagrégé via vLLM (facultatif)*
<a name="nixl-start-base-serve"></a>

Une fois NIXL installé, vous pouvez utiliser NIXL via l'inférence LLM et des frameworks de service tels que vLLM et TensorRT-LLM. SGLang

**Pour répondre à votre charge de travail d'inférence à l'aide de vLLM**

1. Installez vLLM.

   ```
   $ pip install vllm
   ```

1. Démarrez le serveur vLLM avec NIXL. Les exemples de commandes suivants créent une instance de préremplissage (producteur) et une instance de décodage (consommateur) pour la connexion NIXL Handshake, le connecteur KV, le rôle KV et le backend de transport. Pour des exemples détaillés et des scripts, consultez le [guide NIXLConnector d'utilisation](https://github.com/vllm-project/vllm/blob/2d977a7a9ead3179fde9ed55d69393ef7b6cec47/docs/features/nixl_connector_usage.md).

   Pour utiliser NIXL avec EFA, définissez les variables d'environnement en fonction de votre configuration et de votre cas d'utilisation.
   + Configuration du producteur (préremplisseur)

     ```
     $ vllm serve your-application \
         --port 8200 \
         --enforce-eager \
         --kv-transfer-config '{"kv_connector":"NixlConnector","kv_role":"kv_both","kv_buffer_device":"cuda","kv_connector_extra_config":{"backends":["LIBFABRIC"]}}'
     ```
   + Configuration du consommateur (décodeur)

     ```
     $ vllm serve your-application \
         --port 8200 \
         --enforce-eager \
         --kv-transfer-config '{"kv_connector":"NixlConnector","kv_role":"kv_both","kv_buffer_device":"cuda","kv_connector_extra_config":{"backends":["LIBFABRIC"]}}'
     ```

   L'exemple de configuration précédent définit les paramètres suivants :
   + `kv_role`à`kv_both`, qui permet une fonctionnalité symétrique dans laquelle le connecteur peut agir à la fois en tant que producteur et en tant que consommateur. Cela offre de la flexibilité pour les configurations expérimentales et les scénarios dans lesquels la distinction des rôles n'est pas prédéterminée.
   + `kv_buffer_device`à`cuda`, qui permet d'utiliser la mémoire du GPU.
   + Backend NIXL vers`LIBFABRIC`, qui permet au trafic NIXL de passer par EFA.

# Maximisez la bande passante du réseau sur des instances Amazon EC2 avec plusieurs cartes réseau
<a name="efa-acc-inst-types"></a>

De nombreux types d’instances compatibles avec EFA possèdent également plusieurs cartes réseau. Pour de plus amples informations, veuillez consulter [Cartes réseau](using-eni.md#network-cards). Si vous envisagez d’utiliser EFA avec l’un de ces types d’instances, nous recommandons la configuration de base suivante :
+ Pour l'interface réseau principale (index des cartes réseau`0`, index des appareils`0`), créez une interface ENA. Vous ne pouvez pas utiliser une interface réseau uniquement EFA comme interface réseau principale.
+ Si l'index 0 de la carte réseau prend en charge l'EFA, créez une interface réseau uniquement EFA pour l'index de la carte réseau et l'index des périphériques`0`. `1`
+ Pour chaque interface réseau supplémentaire, utilisez l'index de carte réseau non utilisé suivant, l'index des périphériques`0`, pour l'interface réseau EFA uniquement, l'index des and/or périphériques `1` pour l'interface réseau ENA, selon votre cas d'utilisation, comme les exigences en bande passante ENA ou l'espace d'adressage IP. Pour des exemples de cas d’utilisation, consultez [Configuration EFA pour les instances P5 et P5e](#efa-for-p5).

**Note**  
Les instances P5 nécessitent que les interfaces réseau soient configurées de manière spécifique pour permettre une bande passante du réseau maximale. Pour de plus amples informations, veuillez consulter [Configuration EFA pour les instances P5 et P5e](#efa-for-p5).

Les exemples suivants montrent comment lancer une instance en fonction de ces recommandations.

------
#### [ Instance launch ]

**Pour spécifier EFAs lors du lancement de l'instance à l'aide de l'assistant de lancement d'instance**

1. Dans la section **Paramètres réseau**, choisissez **Modifier**.

1. Développez **Configuration réseau avancée**.

1. Pour l'interface réseau principale (index des cartes réseau`0`, index des appareils`0`), créez une interface ENA. Vous ne pouvez pas utiliser une interface réseau uniquement EFA comme interface réseau principale.

1. Si l'index 0 de la carte réseau prend en charge l'EFA, créez une interface réseau uniquement EFA pour l'index de la carte réseau et l'index des périphériques`0`. `1`

1. Pour chaque interface réseau supplémentaire, utilisez l'index de carte réseau non utilisé suivant, l'index des périphériques`0`, pour l'interface réseau EFA uniquement, l'index des and/or périphériques `1` pour l'interface réseau ENA, selon votre cas d'utilisation, comme les exigences en bande passante ENA ou l'espace d'adressage IP. Pour des exemples de cas d’utilisation, consultez [Configuration EFA pour les instances P5 et P5e](#efa-for-p5).

**Pour spécifier EFAs lors du lancement de l'instance à l'aide de la commande [run-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html)**  
Pour`--network-interfaces`, préciser le nombre requis d’interfaces réseau. Pour l’interface réseau principale, précisez `NetworkCardIndex=0`, `DeviceIndex=0`, et `InterfaceType=interface`. Si l'index 0 de la carte réseau prend en charge l'EFA`NetworkCardIndex=0`, spécifiez`DeviceIndex=1`, et`InterfaceType=efa-only`. Pour toute interface réseau supplémentaire, pour `NetworkCardIndex` spécifiez le prochain index inutilisé, `DeviceIndex=0` pour`InterfaceType=efa-only`, and/or `DeviceIndex=1` pour`InterfaceType=interface`.

L’exemple de commande suivant montre une demande avec 32 appareils EFA et un appareil ENA.

```
$ aws ec2 run-instances \
 --instance-type p5.48xlarge \
 --count 1 \
 --key-name key_pair_name \
 --image-id ami-0abcdef1234567890 \
 --network-interfaces "NetworkCardIndex=0,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=interface" \
"NetworkCardIndex=0,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only" \
"NetworkCardIndex=1,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only" \
"NetworkCardIndex=2,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only" \
"NetworkCardIndex=3,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only" \
"NetworkCardIndex=4,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only" \
"NetworkCardIndex=5,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only" \
"NetworkCardIndex=6,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only" \
"NetworkCardIndex=7,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only" \
"NetworkCardIndex=8,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only" \
"NetworkCardIndex=9,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only" \
"NetworkCardIndex=10,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only" \
"NetworkCardIndex=11,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only" \
"NetworkCardIndex=12,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only" \
"NetworkCardIndex=13,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only" \
"NetworkCardIndex=14,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only" \
"NetworkCardIndex=15,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only" \
"NetworkCardIndex=16,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only" \
"NetworkCardIndex=17,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only" \
"NetworkCardIndex=18,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only" \
"NetworkCardIndex=19,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only" \
"NetworkCardIndex=20,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only" \
"NetworkCardIndex=21,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only" \
"NetworkCardIndex=22,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only" \
"NetworkCardIndex=23,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only" \
"NetworkCardIndex=24,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only" \
"NetworkCardIndex=25,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only" \
"NetworkCardIndex=26,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only" \
"NetworkCardIndex=27,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only" \
"NetworkCardIndex=28,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only" \
"NetworkCardIndex=29,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only" \
"NetworkCardIndex=30,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only" \
"NetworkCardIndex=31,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only"
...
```

------
#### [ Launch templates ]

**Pour ajouter EFA à un modèle de lancement à l’aide de la console Amazon EC2**

1. Dans la section **Paramètres réseau**, développez **Configuration réseau avancée**.

1. Pour l'interface réseau principale (index des cartes réseau`0`, index des appareils`0`), créez une interface ENA. Vous ne pouvez pas utiliser une interface réseau uniquement EFA comme interface réseau principale.

1. Si l'index 0 de la carte réseau prend en charge l'EFA, créez une interface réseau uniquement EFA pour l'index de la carte réseau et l'index des périphériques`0`. `1`

1. Pour chaque interface réseau supplémentaire, utilisez l'index de carte réseau non utilisé suivant, l'index des périphériques`0`, pour l'interface réseau EFA uniquement, l'index des and/or périphériques `1` pour l'interface réseau ENA, selon votre cas d'utilisation, comme les exigences en bande passante ENA ou l'espace d'adressage IP. Pour des exemples de cas d’utilisation, consultez [Configuration EFA pour les instances P5 et P5e](#efa-for-p5). 

**Pour ajouter EFAs à un modèle de lancement à l'aide de la [create-launch-template](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-launch-template.html)commande**  
Pour`NetworkInterfaces`, préciser le nombre requis d’interfaces réseau. Pour l’interface réseau principale, précisez `NetworkCardIndex=0`, `DeviceIndex=0`, et `InterfaceType=interface`. Si l'index 0 de la carte réseau prend en charge l'EFA`NetworkCardIndex=0`, spécifiez`DeviceIndex=1`, et`InterfaceType=efa-only`. Pour toute interface réseau supplémentaire, pour `NetworkCardIndex` spécifiez le prochain index inutilisé, `DeviceIndex=0` pour`InterfaceType=efa-only`, and/or `DeviceIndex=1` pour`InterfaceType=interface`.

L’extrait de code suivant montre un exemple avec 3 interfaces réseau sur 32 possibles.

```
"NetworkInterfaces":[
{
  "NetworkCardIndex":0,
  "DeviceIndex":0,
  "InterfaceType": "interface",
  "AssociatePublicIpAddress":false,
  "Groups":[
    "security_group_id"
  ],
  "DeleteOnTermination":true
},
{
  "NetworkCardIndex": 0,
  "DeviceIndex": 1,
  "InterfaceType": "efa-only",
  "AssociatePublicIpAddress":false,
  "Groups":[
    "security_group_id"
  ],
  "DeleteOnTermination":true
},
{
  "NetworkCardIndex": 1,
  "DeviceIndex": 0,
  "InterfaceType": "efa-only",
  "AssociatePublicIpAddress":false,
  "Groups":[
    "security_group_id"
  ],
  "DeleteOnTermination":true
},
{
  "NetworkCardIndex": 2,
  "DeviceIndex": 0,
  "InterfaceType": "efa-only",
  "AssociatePublicIpAddress":false,
  "Groups":[
    "security_group_id"
  ],
  "DeleteOnTermination":true
},
{
  "NetworkCardIndex": 3,
  "DeviceIndex": 0,
  "InterfaceType": "efa-only",
  "AssociatePublicIpAddress":false,
  "Groups":[
    "security_group_id"
  ],
  "DeleteOnTermination":true
}
...
```

------

## Configuration EFA pour les instances P5 et P5e
<a name="efa-for-p5"></a>

Les instances `p5.48xlarge` et `p5e.48xlarge` supportent 32 cartes réseau et ont une capacité totale de bande passante du réseau de 3 200 Gbit/s, dont 800 Gbit/s peuvent être utilisés pour le trafic réseau IP. Comme le trafic EFA et le trafic réseau IP partagent les mêmes ressources sous-jacentes, la bande passante utilisée par l’un réduira la bande passante disponible pour l’autre. Cela signifie que vous pouvez répartir la bande passante du réseau entre le trafic EFA et le trafic IP dans n’importe quelle combinaison, à condition que la bande passante totale ne dépasse pas 3 200 Gbit/s et que la bande passante IP ne dépasse pas 800 Gbit/s. Par exemple, si vous utilisez 400 Gbit/s pour une bande passante IP, vous pouvez atteindre jusqu’à 2 800 Gbit/s de bande passante EFA en même temps.

**Cas d’utilisation 1 : enregistrer les adresses IP et éviter les problèmes potentiels liés à l’adresse IP de Linux**

Cette configuration fournit jusqu’à 3 200 Gbit/s de bande passante du réseau EFA et jusqu’à 100 Gbit/s de bande passante du réseau IP avec une adresse IP privée. Cette configuration permet également d’éviter les problèmes potentiels liés aux adresses IP Linux, tels que l’attribution automatique non autorisée d’adresses IP publiques et les problèmes de routage IP (problèmes de mappage du nom d’hôte à l’adresse IP et incompatibilité des adresses IP source), qui peuvent survenir si une instance possède plusieurs interfaces réseau. 
+ Pour l'interface réseau principale (index de carte réseau 0, indice de périphérique 0), utilisez une interface ENA.
+ Pour l'index 0 de la carte réseau et l'index du périphérique 1, créez une interface réseau uniquement EFA.
+ Pour les interfaces réseau restantes (index de carte réseau 1 à 31, indice de périphérique 0), utilisez des interfaces réseau uniquement EFA.

**Cas d’utilisation 2 : bande passante maximale du réseau EFA et IP**

Cette configuration fournit jusqu’à 3 200 Gbit/s de bande passante du réseau EFA et jusqu’à 800 Gbit/s de bande passante du réseau IP avec 8 adresses IP privées. Vous ne pouvez pas attribuer automatiquement d’adresses IP publiques avec cette configuration. Vous pouvez toutefois associer une adresse IP élastique à l'interface réseau principale (carte réseau index 0, périphérique index 0) après le lancement pour assurer la connectivité internet.
+ Pour l'interface réseau principale (index de carte réseau 0, indice de périphérique 0), utilisez une interface réseau ENA.
+ Pour les interfaces restantes, procédez comme suit :
  + Spécifiez les interfaces réseau uniquement EFA sur l'index 0 de la carte réseau, index de périphérique 1, et pour les index de carte réseau 1, 2 et 3, utilisez l'index de périphérique 0.
  + Spécifiez une interface réseau ENA et quatre interfaces réseau uniquement EFA **dans chacun** des sous-ensembles d'index de cartes réseau suivants, et utilisez l'index de périphérique 1 pour l'interface réseau ENA et l'index de périphérique 0 pour les interfaces réseau uniquement EFA :
    + [4,5,6,7]
    + [8,9,10,11]
    + [12,13,14,15]
    + [16,17,18,19]
    + [20,21,22,23]
    + [24,25,26,27]
    + [28,29,30,31]

L’exemple suivant illustre cette configuration :

```
$ aws --region $REGION ec2 run-instances \
 --instance-type p5.48xlarge \
 --count 1 \
 --key-name key_pair_name \
 --image-id ami_id \
 --network-interfaces "NetworkCardIndex=0,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=interface" \
"NetworkCardIndex=0,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only" \
"NetworkCardIndex=1,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only" \
"NetworkCardIndex=2,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only" \
"NetworkCardIndex=3,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only" \
"NetworkCardIndex=4,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=interface" \
"NetworkCardIndex=4,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only" \
"NetworkCardIndex=5,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only" \
"NetworkCardIndex=6,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only" \
"NetworkCardIndex=7,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only" \
"NetworkCardIndex=8,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=interface" \
"NetworkCardIndex=8,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only" \
"NetworkCardIndex=9,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only" \
"NetworkCardIndex=10,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only" \
"NetworkCardIndex=11,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only" \
"NetworkCardIndex=12,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=interface" \
"NetworkCardIndex=12,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only" \
"NetworkCardIndex=13,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only" \
"NetworkCardIndex=14,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only" \
"NetworkCardIndex=15,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only" \
"NetworkCardIndex=16,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=interface" \
"NetworkCardIndex=16,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only" \
"NetworkCardIndex=17,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only" \
"NetworkCardIndex=18,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only" \
"NetworkCardIndex=19,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only" \
"NetworkCardIndex=20,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=interface" \
"NetworkCardIndex=20,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only" \
"NetworkCardIndex=21,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only" \
"NetworkCardIndex=22,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only" \
"NetworkCardIndex=23,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only" \
"NetworkCardIndex=24,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=interface" \
"NetworkCardIndex=24,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only" \
"NetworkCardIndex=25,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only" \
"NetworkCardIndex=26,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only" \
"NetworkCardIndex=27,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only" \
"NetworkCardIndex=28,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=interface" \
"NetworkCardIndex=28,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only" \
"NetworkCardIndex=29,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only" \
"NetworkCardIndex=30,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only" \
"NetworkCardIndex=31,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only"
...
```

## Configuration EFA pour une instance P6-B200
<a name="efa-for-p6-b200"></a>

Les instances P6-B200 ont une capacité totale de bande passante du réseau de 3 200 Gbit/s, dont 1 600 Gbit/s peuvent être utilisés pour le trafic réseau IP. Ils disposent de 8 GPUs et 8 cartes réseau, chaque carte réseau prenant en charge jusqu'à 400 Gbit/s de bande passante EFA et 200 Gbit/s de bande passante ENA. Étant donné que les trafics EFA et ENA partagent les mêmes ressources sous-jacentes, la bande passante utilisée par l’un réduira la bande passante disponible pour l’autre.

**Cas d’utilisation 1 : enregistrer les adresses IP**

Cette configuration consomme au moins une adresse IP privée par instance et prend en charge jusqu’à 3 200 Gbit/s de bande passante EFA et 200 Gbit/s de bande passante ENA.
+ Pour l'interface réseau principale (index de carte réseau 0, indice de périphérique 0), utilisez une interface ENA.
+ Pour l'index 0 de la carte réseau et l'index du périphérique 1, créez une interface réseau uniquement EFA.
+ Pour les 7 cartes réseau restantes (index de carte réseau 1 à 7, indice de périphérique 0), utilisez des interfaces réseau uniquement EFA.

**Cas d’utilisation 2 : bande passante maximale EFA et ENA**

Cette configuration consomme au moins 8 adresses IP privées par instance et prend en charge jusqu’à 3 200 Gbit/s de bande passante EFA et 1 600 Gbit/s de bande passante ENA.
+ Pour l'interface réseau principale (index de carte réseau 0, indice de périphérique 0), utilisez une interface ENA.
+ Pour l'index 0 de la carte réseau et l'index du périphérique 1, créez une interface réseau uniquement EFA.
+ Pour les 7 cartes réseau restantes (index de carte réseau 1 à 7), créez une interface réseau uniquement EFA sur l'index 0 du périphérique et une interface réseau ENA sur l'index 1 du périphérique.

## Configuration EFA pour une instance P6e- GB200
<a name="efa-for-p6e"></a>

Les GB200 instances P6e- peuvent être configurées avec un maximum de 17 cartes réseau. L'image suivante montre la disposition physique de la carte d'interface réseau (NIC) pour les GB200 instances P6e-, ainsi que le mappage des index des cartes réseau ()NCIs.

![\[Mappage de la carte d'interface réseau (NIC) physique et de l'index de carte réseau (NCI) pour les instances P6e-GB200 .\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/images/p6e.png)


Le NCI principal (indice 0) prend en charge jusqu'à 100 Gbit/s de bande passante ENA. NCIs avec les index suivants, prennent en charge les interfaces réseau uniquement EFA et une bande passante EFA de 400 Gbit/s : [1, 3, 5, 7, 9, 11, 13, 15]. NCIs avec les index suivants, prennent en charge une bande passante ENA ou EFA allant jusqu'à 200 Gbit/s : [2, 4, 6, 8, 10, 12, 14, 16].

Les NCIs groupes suivants partagent une carte réseau physique sous-jacente sur l'hôte :
+ [1 et 2]
+ [3 et 4]
+ [5 et 6]
+ [7 et 8]
+ [9 et 10]
+ [11 et 12]
+ [13 et 14]
+ [15 et 16]

Chaque NIC physique prend en charge jusqu’à 400 Gbit/s de bande passante. Étant donné que NCIs les membres de ces groupes partagent la même carte réseau physique sous-jacente, la bande passante utilisée par l'un réduira la bande passante disponible pour l'autre. Par exemple, si la NCI 2 utilise 200 Gbit/s de bande passante ENA, la NCI 1 peut utiliser jusqu’à 200 Gbit/s de bande passante EFA en même temps.

Chaque GPU sous-jacent de l'hôte peut envoyer du trafic directement via les paires suivantes NCIs :
+ [1 et 3]
+ [5 et 7]
+ [9 et 11]
+ [13 et 15]

Chaque GPU prend en charge jusqu’à 400 Gbit/s de bande passante EFA. Comme les cartes réseau de ces groupes partagent le même GPU, la bande passante utilisée par l’un réduira la bande passante disponible pour l’autre. Par exemple, si la NCI 1 utilise 200 Gbit/s de bande passante EFA, la NCI 3 peut utiliser jusqu’à 200 Gbit/s de bande passante EFA en même temps. Par conséquent, pour obtenir des performances EFA maximales, nous vous recommandons d’effectuer **l’une des opérations suivantes** pour atteindre un total de 1 600 Gbit/s de bande passante EFA :
+ Ajoutez une interface réseau uniquement EFA à une seule NCI par groupe pour atteindre 400 Gbit/s par interface réseau (*4 interfaces réseau EFA* x 400 Gbit/s).
+ Ajoutez une interface réseau uniquement EFA à chaque NCI de chaque groupe pour atteindre 200 Gbit/s par interface réseau (*8 interfaces réseau EFA x 200 Gbit/s*).

Par exemple, la configuration suivante fournit jusqu’à 1 600 Gbit/s de bande passante EFA en utilisant une seule interface réseau EFA uniquement dans chaque groupe NCI, et jusqu’à 100 Gbit/s de bande passante du réseau ENA en utilisant uniquement le NCI principal (index 0).
+ Pour l’interface réseau principale (index de carte réseau 0, index de périphérique 0), utilisez une interface réseau EFA (EFA avec ENA).
+ Ajoutez des interfaces réseau EFA uniquement aux éléments suivants :
  + NCI 1, index de périphérique 0
  + NCI 5, index de périphérique 0
  + NCI 9, index de périphérique 0
  + NCI 13, index de périphérique 0

## Configuration EFA pour une instance P6-B300
<a name="efa-for-p6-b300"></a>

Les instances P6-B300 ont une capacité totale de bande passante réseau allant jusqu'à 6 400 Gbit/s pour le trafic EFA et jusqu'à 3 870 Gbit/s pour le trafic ENA. Ils disposent de 8 GPUs et 17 cartes réseau, la carte réseau principale ne prenant en charge qu'une interface réseau ENA avec une bande passante maximale de 350 Gbit/s. Les cartes réseau secondaires prennent en charge jusqu'à 400 Gbit/s de bande passante EFA et 220 Gbit/s de bande passante ENA. Étant donné que les trafics EFA et ENA partagent les mêmes ressources sous-jacentes, la bande passante utilisée par l’un réduira la bande passante disponible pour l’autre.

![\[Mappage de la carte d'interface réseau (NIC) physique et de l'index de carte réseau (NCI) pour les instances P6-B300.\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/images/p6-b300.png)


**Cas d’utilisation 1 : enregistrer les adresses IP**

Cette configuration consomme au moins une adresse IP privée par instance et prend en charge jusqu'à 6 400 Gbit/s de bande passante EFA et jusqu'à 350 Gbit/s de bande passante ENA.
+ Pour l'interface réseau principale (index de carte réseau 0, indice de périphérique 0), utilisez une interface réseau ENA.
+ Pour les cartes réseau restantes (index de carte réseau 1 à 16, indice de périphérique 0), utilisez des interfaces réseau uniquement EFA.

```
--network-interfaces \
"NetworkCardIndex=0,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=interface" \
"NetworkCardIndex=1,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only" \
"NetworkCardIndex=2,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only" \
"NetworkCardIndex=3,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only" \
"NetworkCardIndex=4,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only" \
"NetworkCardIndex=5,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only" \
"NetworkCardIndex=6,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only" \
"NetworkCardIndex=7,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only" \
"NetworkCardIndex=8,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only" \
"NetworkCardIndex=9,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only" \
"NetworkCardIndex=10,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only" \
"NetworkCardIndex=11,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only" \
"NetworkCardIndex=12,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only" \
"NetworkCardIndex=13,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only" \
"NetworkCardIndex=14,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only" \
"NetworkCardIndex=15,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only" \
"NetworkCardIndex=16,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only"
```

**Cas d’utilisation 2 : bande passante maximale EFA et ENA**

Cette configuration consomme au moins 17 adresses IP privées par instance et prend en charge jusqu'à 6 400 Gbit/s de bande passante EFA et jusqu'à 3 870 Gbit/s de bande passante ENA.
+ Pour l'interface réseau principale (index de carte réseau 0, indice de périphérique 0), utilisez une interface réseau ENA.
+ Pour les autres cartes réseau, créez une interface EFA uniquement (index de carte réseau de 1 à 16 périphériques, index 0) et une interface ENA (index de carte réseau de 1 à 16 périphériques, index 1).

```
--network-interfaces \
"NetworkCardIndex=0,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=interface" \
"NetworkCardIndex=1,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only" \
"NetworkCardIndex=2,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only" \
"NetworkCardIndex=3,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only" \
"NetworkCardIndex=4,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only" \
"NetworkCardIndex=5,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only" \
"NetworkCardIndex=6,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only" \
"NetworkCardIndex=7,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only" \
"NetworkCardIndex=8,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only" \
"NetworkCardIndex=9,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only" \
"NetworkCardIndex=10,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only" \
"NetworkCardIndex=11,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only" \
"NetworkCardIndex=12,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only" \
"NetworkCardIndex=13,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only" \
"NetworkCardIndex=14,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only" \
"NetworkCardIndex=15,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only" \
"NetworkCardIndex=16,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa-only" \
"NetworkCardIndex=1,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=interface" \
"NetworkCardIndex=2,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=interface" \
"NetworkCardIndex=3,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=interface" \
"NetworkCardIndex=4,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=interface" \
"NetworkCardIndex=5,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=interface" \
"NetworkCardIndex=6,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=interface" \
"NetworkCardIndex=7,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=interface" \
"NetworkCardIndex=8,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=interface" \
"NetworkCardIndex=9,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=interface" \
"NetworkCardIndex=10,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=interface" \
"NetworkCardIndex=11,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=interface" \
"NetworkCardIndex=12,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=interface" \
"NetworkCardIndex=13,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=interface" \
"NetworkCardIndex=14,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=interface" \
"NetworkCardIndex=15,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=interface" \
"NetworkCardIndex=16,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=interface"
```

# Créez et attachez un Elastic Fabric Adapter à une instance Amazon EC2
<a name="create-efa"></a>

Vous pouvez créer une EFA et l’attacher à une instance Amazon EC2 comme n’importe quelle autre interface de réseau élastique dans Amazon EC2. Cependant, contrairement aux interfaces réseau élastiques, elles ne EFAs peuvent pas être attachées ou détachées d'une instance dans un `running` état.

**Considérations**
+  Vous pouvez modifier le groupe de sécurité associé à un EFA. Pour que vous puissiez activer la fonctionnalité de contournement du système d’exploitation, 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. Pour de plus amples informations, veuillez consulter [Étape 1 : Préparer un groupe de sécurité activé pour les EFA](efa-start.md#efa-start-security).

  Vous pouvez modifier le groupe de sécurité associé à un EFA comme vous le feriez pour un groupe de sécurité associé à une interface réseau Elastic. Pour de plus amples informations, veuillez consulter [Modifier les attributs d’interface réseau](modify-network-interface-attributes.md).
+ Vous attribuez une adresse IP élastique (IPv4) et une IPv6 adresse à une interface réseau EFA (EFA avec ENA) de la même manière que vous attribuez une adresse IP à une interface réseau élastique. Pour plus d’informations, consultez [ Gestion des adresses IP](managing-network-interface-ip-addresses.md).

  Vous ne pouvez pas attribuer d’adresse IP à une interface réseau uniquement EFA.

**Topics**
+ [Créer un EFA](#efa-create)
+ [Attacher un EFA à une instance arrêtée](#efa-attach)
+ [Attacher un EFA lors du lancement d’une instance](#efa-launch)
+ [Ajouter un EFA à un modèle de lancement](#efa-launch-template)

## Créer un EFA
<a name="efa-create"></a>

Vous pouvez créer un EFA dans un sous-réseau au sein d’un VPC. Vous ne pouvez pas déplacer l’EFA vers un autre sous-réseau une fois qu’il a été créé et vous pouvez uniquement l’attacher à des instances arrêtées dans la même zone de disponibilité.

------
#### [ Console ]

**Pour créer une interface réseau EFA (EFA avec ENA ou ENA uniquement)**

1. Ouvrez la console Amazon EC2 à l’adresse [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Dans le panneau de navigation, sélectionnez **Network Interfaces** (Interfaces réseau), puis sélectionnez **Create network interface** (Créer une interface réseau).

1. Pour **Description**, saisissez un nom descriptif pour l’EFA.

1. Pour **Sous-réseau**, sélectionnez le sous-réseau dans lequel créer l’EFA.

1. **Type d’interface**, choisissez l’une des options suivantes :
   + **EFA avec ENA** : pour créer une interface réseau prenant en charge à la fois les périphériques ENA et EFA.
   + **EFA uniquement** : pour créer une interface réseau avec un périphérique EFA uniquement.

1. (Pour EFA avec ENA uniquement) Configurez l’adresse IP et l’attribution du préfixe pour l’interface réseau. Le type d’adresses IP et de préfixes que vous pouvez attribuer dépend du sous-réseau sélectionné. Pour les sous-réseaux IPv4 uniquement, vous ne pouvez attribuer que des adresses IPv4 IP et des préfixes. Pour les sous-réseaux IPv6 uniquement, vous ne pouvez attribuer que des adresses IPv6 IP et des préfixes. Pour les sous-réseaux à double pile, vous pouvez attribuer à la fois des adresses IPv6 IP IPv4 et des préfixes. 
**Note**  
Vous ne pouvez pas attribuer d’adresse IP à une interface réseau uniquement EFA.

   1. Pour ** IPv4 Adresse d' and/or **IPv6 adresse** privée**, choisissez **Attribuer automatiquement** pour qu'Amazon EC2 attribue automatiquement une adresse IP à partir du sous-réseau sélectionné, ou **choisissez** Personnalisé pour spécifier manuellement l'adresse IP à attribuer.

   1. Si vous attribuez une IPv6 adresse, vous pouvez éventuellement activer l'option **Attribuer une IPv6 adresse IP principale**. Cela permet d'attribuer une adresse monodiffusion IPv6 globale (GUA) principale à l'interface réseau. L'attribution d'une IPv6 adresse principale vous permet d'éviter de perturber le trafic vers les instances ou. ENIs Pour plus d'informations, consultez la section [IPv6 adresses](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-ip-addressing.html#vpc-ipv6-addresses).

   1. **Pour la **délégation and/or IPv6 de IPv4 préfixes**, choisissez **Attribuer automatiquement** pour qu'Amazon EC2 attribue automatiquement un préfixe à partir du bloc d'adresse CIDR du sous-réseau, ou choisissez **Personnalisé** pour spécifier manuellement un préfixe à partir du bloc d'adresse CIDR du sous-réseau.** Si vous spécifiez un préfixe, vérifiez AWS qu'il n'est pas déjà attribué à une autre ressource. Pour de plus amples informations, consultez [Délégation de préfixes pour les interfaces EC2 réseau Amazon](ec2-prefix-eni.md).

   1. (Facultatif) Configurez les paramètres de **Délai d’expiration du suivi des connexions inactives**. Pour de plus amples informations, consultez [Délai de suivi d’inactivité de la connexion](security-group-connection-tracking.md#connection-tracking-timeouts).
      + **Délai d’expiration des connexions TCP établies** : délai d’expiration, en secondes, pour les connexions TCP inactives dans un état établi. Min. : 60 secondes. Max. : 432 000 secondes (5 jours). Par défaut : 432 000 secondes. Recommandé : moins de 432 000 secondes.
      + **Délai d’expiration UDP** : délai d’expiration, en secondes, pour les flux UDP inactifs qui n’ont vu du trafic que dans une seule direction ou une seule transaction requête-réponse. Min. : 30 secondes. Max. : 60 secondes. Par défaut : 30 secondes.
      + **Délai d’expiration des flux UDP** : délai d’expiration, en secondes, des flux UDP inactifs classés comme des flux ayant reçu plus d’une transaction requête-réponse. Min. : 60 secondes. Max. : 180 secondes (3 minutes). Par défaut : 180 secondes.

1. Pour **Security groups** (Groupes de sécurité), sélectionnez un ou plusieurs groupes de sécurité.

1. Sélectionnez **Create network interface** (Créer une interface réseau).

------
#### [ AWS CLI ]

**Pour créer un EFA**  
Utilisez la commande [create-network-interface](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-network-interface.html). Pour `--interface-type`, précisez `efa` pour une interface réseau EFA ou `efa-only` pour une interface réseau uniquement EFA.

```
aws ec2 create-network-interface \
    --subnet-id subnet-0abcdef1234567890 \
    --interface-type efa \
    --description "my efa"
```

------
#### [ PowerShell ]

**Pour créer un EFA**  
Utilisez l’applet de commande [New-EC2NetworkInterface](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2NetworkInterface.html). Pour `-InterfaceType`, précisez `efa` pour une interface réseau EFA ou `efa-only` pour une interface réseau uniquement EFA

```
New-EC2NetworkInterface `
    -SubnetId subnet-0abcdef1234567890 `
    -InterfaceType efa `
    -Description "my efa"
```

------

## Attacher un EFA à une instance arrêtée
<a name="efa-attach"></a>

Vous pouvez attacher un EFA à toute instance prise en charge à l’état `stopped`. Vous ne pouvez pas attacher un EFA à une instance à l’état `running`. Pour plus d’informations sur les types d’instance pris en charge, consultez [Types d’instance pris en charge](efa.md#efa-instance-types).

Vous attachez un EFA à une instance de la même manière que vous attachez une interface réseau à une instance. Pour plus d’informations, consultez [Attachez une interface réseau](network-interface-attachments.md#attach_eni).

## Attacher un EFA lors du lancement d’une instance
<a name="efa-launch"></a>

------
#### [ AWS CLI ]

**Pour attacher un EFA existant au lancement d’une instance**  
Utilisez la commande [run-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html) avec l’option `--network-interfaces`. Pour l’interface réseau principale, précisez une interface réseau EFA et `NetworkCardIndex=0`, `DeviceIndex=0`. Si vous attachez plusieurs interfaces réseau EFA, consultez la section [Maximisez la bande passante du réseau](efa-acc-inst-types.md).

```
--network-interfaces "NetworkCardIndex=0, \
    DeviceIndex=0, \
    NetworkInterfaceId=eni-1234567890abcdef0, \
    Groups=sg-1234567890abcdef0, \
    SubnetId=subnet-0abcdef1234567890"
```

**Pour attacher un nouvel EFA au lancement d’une instance**  
Utilisez la commande [run-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html) avec l’option `--network-interfaces`. Pour l’interface réseau principale, utilisez `NetworkCardIndex=0`, `DeviceIndex=0`, `InterfaceType=efa`. Si vous connectez plusieurs interfaces réseau EFA, consultez [Maximisez la bande passante du réseau](efa-acc-inst-types.md).

```
--network-interfaces "NetworkCardIndex=0, \
    DeviceIndex=0, \
    InterfaceType=efa, \
    Groups=sg-1234567890abcdef0, \
    SubnetId=subnet-0abcdef1234567890"
```

------
#### [ PowerShell ]

**Pour attacher un EFA existant au lancement d’une instance**  
Utilisez l'[New-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2Instance.html)applet de commande avec le `-NetworkInterfaces` paramètre.

```
-NetworkInterface $networkInterface
```

Définissez l’interface réseau comme suit.

```
$networkInterface = New-Object Amazon.EC2.Model.InstanceNetworkInterfaceSpecification
$networkInterface.DeviceIndex = 0
$networkInterface.NetworkInterfaceId = "eni-1234567890abcdef0"
$networkInterface.Groups = @("sg-1234567890abcdef0")
$networkInterface.SubnetId = "subnet-0abcdef1234567890"
```

**Pour attacher un nouvel EFA au lancement d’une instance**  
Utilisez l'[New-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2Instance.html)applet de commande avec le `-NetworkInterfaces` paramètre.

```
-NetworkInterface $networkInterface
```

Définissez l’interface réseau comme suit.

```
$networkInterface = New-Object Amazon.EC2.Model.InstanceNetworkInterfaceSpecification
$networkInterface.DeviceIndex = 0
$networkInterface.InterfaceType = "efa"
$networkInterface.Groups = @("sg-1234567890abcdef0")
$networkInterface.SubnetId = "subnet-0abcdef1234567890"
```

------

## Ajouter un EFA à un modèle de lancement
<a name="efa-launch-template"></a>

Vous pouvez créer un modèle de lancement contenant les informations de configuration nécessaires pour lancer des instances activées pour EFA. Vous pouvez préciser des interfaces réseau EFA et EFA uniquement dans le modèle de lancement. Pour créer un modèle de lancement activé pour EFA, créez un nouveau modèle de lancement, et spécifiez un type d’instance pris en charge, votre AMI activée pour EFA et un groupe de sécurité activé pour EFA. Pour`NetworkInterfaces`, spécifiez les interfaces réseau EFA à connecter. Pour l’interface réseau principale, utilisez `NetworkCardIndex=0`, `DeviceIndex=0`, `InterfaceType=efa`. Si vous connectez plusieurs interfaces réseau EFA, consultez [Maximisez la bande passante du réseau sur des instances Amazon EC2 avec plusieurs cartes réseau](efa-acc-inst-types.md).

Vous pouvez utiliser des modèles de lancement pour lancer des instances compatibles EFA avec d'autres AWS services, tels que ou. [AWS Batch[AWS ParallelCluster](https://docs.aws.amazon.com/parallelcluster/latest/ug/what-is-aws-parallelcluster.html)](https://docs.aws.amazon.com/batch/latest/userguide/what-is-batch.html)

Pour plus d’informations sur la création de modèles de lancement, consultez [Créer un modèle de lancement Amazon EC2](create-launch-template.md).

# Détachez et supprimer un EFA d’une instance Amazon EC2
<a name="detach-efa"></a>

Vous pouvez séparer un EFA d'une instance Amazon EC2 et le supprimer de la même manière que n'importe quelle autre interface de réseau élastique dans Amazon EC2.

## Détacher un EFA
<a name="efa-detach"></a>

Pour détacher un EFA d’une instance, vous devez d’abord arrêter l’instance. Vous ne pouvez pas détacher un EFA d’une instance à l’état d’exécution.

Vous détachez un EFA d’une instance tout comme vous détachez une interface réseau Elastic d’une instance. Pour de plus amples informations, veuillez consulter [Détachez une interface réseau](network-interface-attachments.md#detach_eni).

## Supprimer un EFA
<a name="efa-delete"></a>

Pour supprimer un EFA, vous devez d’abord le détacher de l’instance. Vous ne pouvez pas supprimer un EFA pendant qu’il est attaché à une instance.

Vous supprimez EFAs de la même manière que vous supprimez les interfaces réseau élastiques. Pour de plus amples informations, veuillez consulter [Supprimer une interface réseau](delete_eni.md).

# Surveillez un adaptateur Elastic Fabric sur Amazon EC2
<a name="efa-working-monitor"></a>

Vous pouvez utiliser les fonctions suivantes pour surveiller les performances de vos Elastic Fabric Adapters.

**Topics**
+ [Métriques du pilote EFA pour une instance Amazon EC2](#efa-driver-metrics)
+ [Journaux de flux Amazon VPC](#efa-flowlog)
+ [Amazon CloudWatch](#efa-cloudwatch)

## Métriques du pilote EFA pour une instance Amazon EC2
<a name="efa-driver-metrics"></a>

Le pilote Elastic Fabric Adapter (EFA) publie en temps réel plusieurs métriques provenant des instances auxquelles sont rattachées des interfaces EFA. Vous pouvez utiliser ces métriques pour résoudre les problèmes de performance et de mise en réseau des applications, choisir la bonne taille de cluster pour une charge de travail, planifier les activités de mise à l’échelle de manière proactive, et comparer les applications pour déterminer si elles maximisent la performance de l’EFA disponible sur une instance.

**Topics**
+ [Indicateurs EFA disponibles pour les conducteurs](#available-efa-metrics)
+ [Récupérez les métriques du pilote EFA pour votre instance](#view-efa-driver-metrics)

### Indicateurs EFA disponibles pour les conducteurs
<a name="available-efa-metrics"></a>

Le pilote de EFA publie en temps réel les métriques suivantes sur l’instance. Ils indiquent le nombre cumulé d’erreurs, d’événements de connexion et de paquets ou d’octets envoyés, reçus, retransmis ou abandonnés par les appareils EFA connectés depuis le lancement de l’instance ou la dernière réinitialisation du pilote.


| Métrique | Description | Types d’instance pris en charge | 
| --- | --- | --- | 
| tx\$1bytes |  Nombre d’octets transmis. Unité : octets  | Tous les types d’instances compatibles avec EFA | 
| rx\$1bytes |  Nombre d’octets reçus. Unité : octets  | Tous les types d’instances compatibles avec EFA | 
| tx\$1pkts |  Nombre de paquets transmis. Unité : nombre  | Tous les types d’instances compatibles avec EFA | 
| rx\$1pkts |  Nombre de paquets reçus. Unité : nombre  | Tous les types d’instances compatibles avec EFA | 
| rx\$1drops |  Nombre de paquets reçus puis supprimés. Unité : nombre  | Tous les types d’instances compatibles avec EFA | 
| send\$1bytes |  Nombre d’octets envoyés à l’aide d’opérations d’envoi. Unité : octets  | Tous les types d’instances compatibles avec EFA | 
| recv\$1bytes |  Nombre d’octets reçus par les opérations d’envoi. Unité : octets  | Tous les types d’instances compatibles avec EFA | 
| send\$1wrs |  Nombre de paquets envoyés à l’aide d’opérations d’envoi. Unité : nombre  | Tous les types d’instances compatibles avec EFA | 
| recv\$1wrs |  Nombre de paquets reçus par les opérations d’envoi. Unité : nombre  | Tous les types d’instances compatibles avec EFA | 
| rdma\$1write\$1wrs |  Nombre d’opérations d’écriture rdma terminées. Unité : nombre  | Tous les types d’instances compatibles avec EFA | 
| rdma\$1read\$1wrs |  Nombre d’opérations de lecture rdma terminées. Unité : nombre  | Tous les types d’instances compatibles avec EFA | 
| rdma\$1write\$1bytes |  Nombre d’octets écrits dessus par d’autres instances à l’aide d’opérations d’écriture rdma. Unité : octets  | Tous les types d’instances compatibles avec EFA | 
| rdma\$1read\$1bytes |  Nombre d’octets reçus à l’aide d’opérations de lecture RDMA. Unité : octets  | Tous les types d’instances compatibles avec EFA | 
| rdma\$1write\$1wr\$1err |  Nombre d’opérations d’écriture RDMA présentant des erreurs locales ou distantes. Unité : nombre  | Tous les types d’instances compatibles avec EFA | 
| rdma\$1read\$1wr\$1err |  Nombre d’opérations de lecture RDMA présentant des erreurs locales ou distantes. Unité : nombre  | Tous les types d’instances compatibles avec EFA | 
| rdma\$1read\$1resp\$1bytes |  Nombre d’octets envoyés en réponse aux opérations de lecture RDMA. Unité : octets  | Tous les types d’instances compatibles avec EFA | 
| rdma\$1write\$1recv\$1bytes |  Nombre d’octets reçus par les opérations d’écriture RDMA. Unité : octets  | Tous les types d’instances compatibles avec EFA | 
| retrans\$1bytes |  Le nombre d’octets EFA SRD retransmis. Unité : nombre  | Types d’instances Nitro v4 et ultérieures prenant en charge EFA | 
| retrans\$1pkts |  Le nombre de paquets EFA SRD retransmis. Unité : octets  | Types d’instances Nitro v4 et ultérieures prenant en charge EFA | 
| retrans\$1timeout\$1events |  Le nombre de fois où le trafic EFA SRD a expiré et a entraîné un changement de chemin réseau. Unité : nombre  | Types d’instances Nitro v4 et ultérieures prenant en charge EFA | 
| impaired\$1remote\$1conn\$1events |  Nombre de fois où les connexions EFA SRD sont entrées dans un état dégradé, entraînant une réduction de la limite de débit. Unité : nombre  | Types d’instances Nitro v4 et ultérieures prenant en charge EFA | 
| unresponsive\$1remote\$1events |  Le nombre de fois où une connexion à distance EFA SRD ne répondait pas. Unité : nombre  | Types d’instances Nitro v4 et ultérieures prenant en charge EFA | 

Pour plus d’informations sur les types d’instance pris en charge, consultez la section [Types d’instance pris en charge](efa.md#efa-instance-types).

### Récupérez les métriques du pilote EFA pour votre instance
<a name="view-efa-driver-metrics"></a>

Vous pouvez utiliser l’outil de ligne de commande [rdma-tool](https://man7.org/linux/man-pages/man8/rdma.8.html) pour récupérer les métriques de toutes les interfaces EFA associées à une instance comme suit :

```
$ rdma -p statistic show
link rdmap0s31/1 
    tx_bytes 0 
    tx_pkts 0 
    rx_bytes 0 
    rx_pkts 0 
    rx_drops 0 
    send_bytes 0 
    send_wrs 0 
    recv_bytes 0 
    recv_wrs 0 
    rdma_read_wrs 0 
    rdma_read_bytes 0 
    rdma_read_wr_err 0 
    rdma_read_resp_bytes 0 
    rdma_write_wrs 0 
    rdma_write_bytes 0 
    rdma_write_wr_err 0
    retrans_bytes 0
    retrans_pkts 0
    retrans_timeout_events 0
    unresponsive_remote_events 0
    impaired_remote_conn_events 0
```

Vous pouvez également récupérer les métriques pour chaque interface EFA attachée à une instance à partir des fichiers sys à l’aide de la commande suivante.

```
$ more /sys/class/infiniband/device_number/ports/port_number/hw_counters/* | cat
```

Par exemple

```
$ more /sys/class/infiniband/rdmap0s31/ports/1/hw_counters/* | cat
::::::::::::::
/sys/class/infiniband/rdmap0s31/ports/1/hw_counters/lifespan
::::::::::::::
12
::::::::::::::
/sys/class/infiniband/rdmap0s31/ports/1/hw_counters/rdma_read_bytes
::::::::::::::
0
::::::::::::::
/sys/class/infiniband/rdmap0s31/ports/1/hw_counters/rdma_read_resp_bytes
::::::::::::::
0
::::::::::::::
/sys/class/infiniband/rdmap0s31/ports/1/hw_counters/rdma_read_wr_err
::::::::::::::
0
::::::::::::::
/sys/class/infiniband/rdmap0s31/ports/1/hw_counters/rdma_read_wrs
::::::::::::::
0
::::::::::::::
/sys/class/infiniband/rdmap0s31/ports/1/hw_counters/rdma_write_bytes
::::::::::::::
0
::::::::::::::
/sys/class/infiniband/rdmap0s31/ports/1/hw_counters/rdma_write_recv_bytes
::::::::::::::
0
::::::::::::::
/sys/class/infiniband/rdmap0s31/ports/1/hw_counters/rdma_write_wr_err
::::::::::::::
0
::::::::::::::
/sys/class/infiniband/rdmap0s31/ports/1/hw_counters/rdma_write_wrs
::::::::::::::
0
::::::::::::::
/sys/class/infiniband/rdmap0s31/ports/1/hw_counters/recv_bytes
::::::::::::::
0
::::::::::::::
/sys/class/infiniband/rdmap0s31/ports/1/hw_counters/recv_wrs
::::::::::::::
0
::::::::::::::
/sys/class/infiniband/rdmap0s31/ports/1/hw_counters/rx_bytes
::::::::::::::
0
::::::::::::::
/sys/class/infiniband/rdmap0s31/ports/1/hw_counters/rx_drops
::::::::::::::
0
::::::::::::::
/sys/class/infiniband/rdmap0s31/ports/1/hw_counters/rx_pkts
::::::::::::::
0
::::::::::::::
/sys/class/infiniband/rdmap0s31/ports/1/hw_counters/send_bytes
::::::::::::::
0
::::::::::::::
/sys/class/infiniband/rdmap0s31/ports/1/hw_counters/send_wrs
::::::::::::::
0
::::::::::::::
/sys/class/infiniband/rdmap0s31/ports/1/hw_counters/tx_bytes
::::::::::::::
0
::::::::::::::
/sys/class/infiniband/rdmap0s31/ports/1/hw_counters/tx_pkts
::::::::::::::
0
::::::::::::::
/sys/class/infiniband/rdmap0s31/ports/1/hw_counters/retrans_bytes
::::::::::::::
0
/sys/class/infiniband/rdmap0s31/ports/1/hw_counters/retrans_pkts
::::::::::::::
0
/sys/class/infiniband/rdmap0s31/ports/1/hw_counters/retrans_timeout_events
::::::::::::::
0
/sys/class/infiniband/rdmap0s31/ports/1/hw_counters/unresponsive_remote_events
::::::::::::::
0
/sys/class/infiniband/rdmap0s31/ports/1/hw_counters/impaired_remote_conn_events
::::::::::::::
0
```

## Journaux de flux Amazon VPC
<a name="efa-flowlog"></a>

Vous pouvez créer un journal de flux Amazon VPC pour capturer des informations sur le trafic entrant ou sortant de votre EFA. Les données des journaux de flux peuvent être publiées sur Amazon CloudWatch Logs et Amazon S3. Une fois que vous avez créé un journal de flux, vous pouvez extraire et afficher ses données dans la destination choisie. Pour plus d’informations, consultez [Journaux de flux VPC](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html) dans le *Amazon VPC Guide de l’utilisateur*.

Vous créez un journal de flux pour un EFA comme vous le feriez pour une interface réseau Elastic. Pour plus d’informations, consultez [Créer un journal de flux](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-flow-logs.html#create-flow-log) dans le *Guide de l’utilisateur Amazon VPC*.

Dans les entrées de journal de flux, le trafic EFA est identifié par des adresses `srcAddress` et `destAddress`, qui sont formatées comme des adresses MAC, comme dans l’exemple suivant.

```
version accountId  eniId        srcAddress        destAddress       sourcePort destPort protocol packets bytes start      end        action log-status
2       3794735123 eni-10000001 01:23:45:67:89:ab 05:23:45:67:89:ab -          -        -        9       5689  1521232534 1524512343 ACCEPT OK
```

## Amazon CloudWatch
<a name="efa-cloudwatch"></a>

Si vous utilisez EFA dans un cluster Amazon EKS, vous pouvez surveiller votre EFAs utilisation à l'aide de CloudWatch Container Insights. Amazon CloudWatch Container Insights prend en charge tous les [indicateurs relatifs aux conducteurs EFA](#efa-driver-metrics), à l'exception des indicateurs suivants : `retrans_bytes` `retrans_pkts``retrans_timeout_events`,`unresponsive_remote_events`,, et`impaired_remote_conn_events`.

Pour plus d'informations, consultez les [métriques Amazon EKS et Kubernetes Container Insights dans le guide](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Container-Insights-metrics-enhanced-EKS.html#Container-Insights-metrics-EFA) de l'utilisateur *Amazon CloudWatch *.

# Vérification du programme d’installation EFA à l’aide d’un total de contrôle
<a name="efa-verify"></a>

Vous pouvez éventuellement vérifier l'archive (`.tar.gz`fichier) EFA à l'aide d'une somme de SHA256 contrôle MD5 ou. Nous vous recommandons de le faire pour vérifier l’identité de l’éditeur du logiciel et pour vérifier que l’application n’a pas été modifiée ou endommagée depuis sa publication.

**Pour vérifier l’archive**  
Utilisez l'utilitaire **md5sum** pour la somme de MD5 contrôle ou l'utilitaire **sha256sum pour la somme** de SHA256 contrôle, et spécifiez le nom du fichier tarball. Vous devez exécuter la commande à partir du répertoire dans lequel vous avez enregistré le fichier tarball.
+ MD5

  ```
  $  md5sum tarball_filename.tar.gz
  ```
+ SHA256

  ```
  $  sha256sum tarball_filename.tar.gz
  ```

Les commandes doivent renvoyer une valeur du total de contrôle au format suivant.

```
checksum_value tarball_filename.tar.gz
```

Comparez la valeur du total de contrôle renvoyée par la commande avec la valeur du total de contrôle fournie dans le tableau ci-dessous. Si les totaux de contrôle correspondent, on peut alors exécuter le script d’installation en toute sécurité. Si les totaux de contrôle ne correspondent pas, n’exécutez pas le script d’installation et contactez Support.

Par exemple, la commande suivante vérifie l'archive tar EFA 1.9.4 à l'aide de la somme de contrôle. SHA256 

```
$  sha256sum aws-efa-installer-1.9.4.tar.gz
```

Exemple de sortie :

```
1009b5182693490d908ef0ed2c1dd4f813cc310a5d2062ce9619c4c12b5a7f14 aws-efa-installer-1.9.4.tar.gz
```

Le tableau suivant répertorie les totaux de contrôle des versions récentes de EFA.


| Version | Sommes de chèques | 
| --- | --- | 
| EFA 1.47.0 |  **MD5: **`c81d4caf24dabc04a6e4818590620f5f` **SHA256: **`2df4201e046833c7dc8160907bee7f52b76ff80ed147376a2d0ed8a0dd66b2db`  | 
| EFA 1.46.0 |  **MD5: a88bbd9b71624d7ca401b54bc2fc0c19** `` **SHA256: **`8302bd7849afb95c903a875d7dcb6f85b3d7629e9a8b67d020031cfc6f4d0ee1`  | 
| EFA 1.45.1 |  **MD5: 91c3c87e16bbcaca1513252c38b771bb** `` **SHA256: **`9aeb20c645135b6039cc08986d8f14e63280f7839e882a74df5e83627ffeaa17`  | 
| EFA 1.45.0 |  **MD5: 800aeddfa9d9c5f139a7b8f7c4fec627** `` **SHA256: **`25ba26a0877fe3317390dc126aad2f23e27fc461cf0b940004f032cb342fa539`  | 
| EFA 1.44.0 |  **MD5: d024f6bebe080db42745103b84ca7c43** `` **SHA256: **`f129a5b44a49d593d247e55a59eb9bcb57121566e1c2e42b832a4e794fa83d8a`  | 
| EFA 1.43.3 |  **MD5: **`4dbc6eeecc516760253c10cbedb6319d` **SHA256: **`6c470ebce254c7165347b5048895ac2996c88567271642297f4c597738300652`  | 
| EFA 1.43.2 |  **MD5: **`7287b25a07c9747c0d4001e8fc5f59b2` **SHA256: **`de15c5bdbc83b952afbde876110830c604ad0796680e5157c05f7c1979a41069`  | 
| EFA 1.43.1 |  **MD5: **`7cfafc8debaea51dd4966fa0b2bba673` **SHA256: 54211eda0c193138ee8ed09b5fb41c41fc76fe0a77935fa4ec8d989466342740** ``  | 
| EFA 1.43.0 |  **MD5: **`f2b3dd7dc8670b541f7c23fd58e5e503` **SHA256: **`786df3458c499237be33bb8e50ffd4da7c18c20e254380ffc80fb90833d8cc73`  | 
| EFA 1.42.0 |  **MD5: **`94b2b1db09da1dde08ec049db1f24370` **SHA256: **`4114fe612905ee05083ae5cb391a00a012510f3abfecc642d86c9a5ae4be9008`  | 
| EFA 1.41.0 |  **MD5: **`086181c3ee3f8da512fc6e1c795e8936` **SHA256: **`3506354cdfbe31ff552fe75f5d0d9bb7efd29cf79bd99457347d29c751c38f9f`  | 
| EFA 1.40.0 |  **MD5: **`f3ec6f73fbeaccba082327507581157c` **SHA256: **`30491b0fe7c3470d4439594538855c981b05fa69862d74f8c05eb9b97912368a`  | 
| EFA 1.39.0 |  **MD5: **`c223d5954a85a7fbcd248c942b866e43` **SHA256: **`2cbc028c03064633bb990782b47c36156637769e2f48704417a9c700a7a32101`  | 
| EFA 1.38.1 |  **MD5: **`f112569e828ab65187777f794bab542c` **SHA256: **`83923374afd388b1cfcf4b3a21a2b1ba7cf46a01a587f7b519b8386cb95e4f81`  | 
| EFA 1.38.0 |  **MD5: **`43a2a446b33a2506f40853d55059f1ea` **SHA256: **`4f436954f35ad53754b4d005fd8d0be63de3b4184de41a695b504bdce0fecb22`  | 
| EFA 1.37.0 |  **MD5: **`6328070192bae920eca45797ad4c1db1` **SHA256: **`2584fc3c8bb99f29b3285e275747ff09d67c18e162c2a652e36c976b72154bfb`  | 
| EFA 1.36.0 |  **MD5: **`1bec83180fbffb23452ab6469ca21dfa` **SHA256: **`de183f333cfb58aeb7908a67bf9106985ba3ccb7f8638b851d2a0d8dbfacaec4`  | 
| EFA 1.35.0 |  **MD5: **`252f03c978dca5f8e8d9f34e488b256e` **SHA256: **`432b6ad4368ba0cd8b902729d14a908a97be7a3dcc5239422ea994a47f35a5e1`  | 
| EFA 1.34.0 |  **MD5: **`5cd4b28d27a31677c16139b54c9acb45` **SHA256: **`bd68839e741b0afd3ec2e37d50603803cfa7a279c120f0a736cc57c2ff2d7fdc`  | 
| EFA 1.33.0 |  **MD5: **`e2f61fccbcaa11e2ccfddd3660522276` **SHA256: **`0372877b87c6a7337bb7791d255e1053b907d030489fb2c3732ba70069185fce`  | 
| EFA 1.32.0 |  **MD5: **`db8d65cc028d8d08b5a9f2d88881c1b1` **SHA256: **`5f7233760be57f6fee6de8c09acbfbf59238de848e06048dc54d156ef578fc66`  | 
| EFA 1.31.0 |  **MD5: **`856352f12bef2ccbadcd75e35aa52aaf` **SHA256: **`943325bd37902a4300ac9e5715163537d56ecb4e7b87b37827c3e547aa1897bf`  | 
| EFA 1,30.0 |  **MD5: **`31f48e1a47fe93ede8ebd273fb747358` **SHA256: **`876ab9403e07a0c3c91a1a34685a52eced890ae052df94857f6081c5f6c78a0a`  | 
| EFA 1.29.1 |  **MD5: **`e1872ca815d752c1d7c2b5c175e52a16` **SHA256: **`178b263b8c25845b63dc93b25bcdff5870df5204ec509af26f43e8d283488744`  | 
| EFA 1.29.0 |  **MD5: **`39d06a002154d94cd982ed348133f385` **SHA256: **`836655f87015547e733e7d9f7c760e4e24697f8bbc261bb5f3560abd4206bc36`  | 
| EFA 1.28.0 |  **MD5: **`9dc13b7446665822605e66febe074035` **SHA256: **`2e625d2d6d3e073b5178e8e861891273d896b66d03cb1a32244fd56789f1c435`  | 
| EFA 1.27.0 |  **MD5: **`98bfb515ea3e8d93f554020f3837fa15` **SHA256: **`1d49a97b0bf8d964d91652a79ac851f2550e33a5bf9d0cf86ec9357ff6579aa3`  | 
| EFA 1.26.1 |  **MD5: **`884e74671fdef4725501f7cd2d451d0c` **SHA256: **`c616994c924f54ebfabfab32b7fe8ac56947fae00a0ff453d975e298d174fc96`  | 
| EFA 1.26.0 |  **MD5: **`f8839f12ff2e3b9ba09ae8a82b30e663` **SHA256: **`bc1abc1f76e97d204d3755d2a9ca307fc423e51c63141f798c2f15be3715aa11`  | 
| EFA 1,25.1 |  **MD5: **`6d876b894547847a45bb8854d4431f18` **SHA256: **`d2abc553d22b89a4ce92882052c1fa6de450d3a801fe005da718b7d4b9602b06`  | 
| EFA 1.25.0 |  **MD5: **`1993836ca749596051da04694ea0d00c` **SHA256: **`98b7b26ce031a2d6a93de2297cc71b03af647194866369ca53b60d82d45ad342`  | 
| EFA 1.24.1 |  **MD5: **`211b249f39d53086f3cb0c07665f4e6f` **SHA256: **`120cfeec233af0955623ac7133b674143329f9561a9a8193e473060f596aec62`  | 
| EFA 1.24.0 |  **MD5: **`7afe0187951e2dd2c9cc4b572e62f924` **SHA256: **`878623f819a0d9099d76ecd41cf4f569d4c3aac0c9bb7ba9536347c50b6bf88e`  | 
| EFA 1.23.1 |  **MD5: **`22491e114b6ee7160a8290145dca0c28` **SHA256: **`5ca848d8e0ff4d1571cd443c36f8d27c8cdf2a0c97e9068ebf000c303fc40797`  | 
| EFA 1.23.0 |  **MD5: **`38a6d7c1861f5038dba4e441ca7683ca` **SHA256: **`555d497a60f22e3857fdeb3dfc53aa86d05926023c68c916d15d2dc3df6525bd`  | 
| EFA 1.22.1 |  **MD5: **`600c0ad7cdbc06e8e846cb763f92901b` **SHA256: **`f90f3d5f59c031b9a964466b5401e86fd0429272408f6c207c3f9048254e9665`  | 
| EFA 1.22.0 |  **MD5: **`8f100c93dc8ab519c2aeb5dab89e98f8` **SHA256: **`f329e7d54a86a03ea51da6ea9a5b68fb354fbae4a57a02f9592e21fce431dc3a`  | 
| EFA 1.21.0 |  **MD5: **`959ccc3a4347461909ec02ed3ba7c372` **SHA256: **`c64e6ca34ccfc3ebe8e82d08899ae8442b3ef552541cf5429c43d11a04333050`  | 
| EFA 1.20.0 |  **MD5: **`7ebfbb8e85f1b94709df4ab3db47913b` **SHA256: **`aeefd2681ffd5c4c631d1502867db5b831621d6eb85b61fe3ec80df983d1dcf0`  | 
| EFA 1.19.0 |  **MD5: **`2fd45324953347ec5518da7e3fefa0ec` **SHA256: **`99b77821b9e72c8dea015cc92c96193e8db307deee05b91a58094cc331f16709`  | 
| EFA 1.18.0 |  **MD5: **`fc2571a72f5d3c7b7b576ce2de38d91e` **SHA256: **`acb18a0808aedb9a5e485f1469225b9ac97f21db9af78e4cd6939700debe1cb6`  | 
| EFA 1.17.3 |  **MD5: **`0517df4a190356ab559235147174cafd` **SHA256: **`5130998b0d2883bbae189b21ab215ecbc1b01ae0231659a9b4a17b0a33ebc6ca`  | 
| EFA 1.17.2 |  **MD5: **`a329dedab53c4832df218a24449f4c9a` **SHA256: **`bca1fdde8b32b00346e175e597ffab32a09a08ee9ab136875fb38283cc4cd099`  | 
| EFA 1.17.1 |  **MD5: **`733ae2cfc9d14b52017eaf0a2ab6b0ff` **SHA256: **`f29322640a88ae9279805993cb836276ea240623820848463ca686c8ce02136f`  | 
| EFA 1.17.0 |  **MD5: **`d430fc841563c11c3805c5f82a4746b1` **SHA256: **`75ab0cee4fb6bd38889dce313183f5d3a83bd233e0a6ef6205d8352821ea901d`  | 
| EFA 1.16.0 |  **MD5: **`399548d3b0d2e812d74dd67937b696b4` **SHA256: **`cecec36495a1bc6fdc82f97761a541e4fb6c9a3cbf3cfcb145acf25ea5dbd45b`  | 
| EFA 1.15.2 |  **MD5: **`955fea580d5170b05823d51acde7ca21` **SHA256: **`84df4fbc1b3741b6c073176287789a601a589313accc8e6653434e8d4c20bd49`  | 
| EFA 1.15.1 |  **MD5: **`c4610267039f72bbe4e35d7bf53519bc` **SHA256: **`be871781a1b9a15fca342a9d169219260069942a8bda7a8ad06d4baeb5e2efd7`  | 
| EFA 1.15.0 |  **MD5: **`9861694e1cc00d884fadac07d22898be` **SHA256: **`b329862dd5729d2d098d0507fb486bf859d7c70ce18b61c302982234a3a5c88f`  | 
| EFA 1.14.1 |  **MD5: **`50ba56397d359e57872fde1f74d4168a` **SHA256: **`c7b1b48e86fe4b3eaa4299d3600930919c4fe6d88cc6e2c7e4a408a3f16452c7`  | 
| EFA 1.14.0 |  **MD5: **`40805e7fd842c36ececb9fd7f921b1ae` **SHA256: **`662d62c12de85116df33780d40e0533ef7dad92709f4f613907475a7a1b60a97`  | 
| EFA 1.13.0 |  **MD5: **`c91d16556f4fd53becadbb345828221e` **SHA256: **`ad6705eb23a3fce44af3afc0f7643091595653a723ad0374084f4f2b715192e1`  | 
| EFA 1.12.3 |  **MD5: **`818aee81f097918cfaebd724eddea678` **SHA256: **`2c225321824788b8ca3fbc118207b944cdb096b847e1e0d1d853ef2f0d727172`  | 
| EFA 1.12.2 |  **MD5: **`956bb1fc5ae0d6f0f87d2e481d49fccf` **SHA256: **`083a868a2c212a5a4fcf3e4d732b685ce39cceb3ca7e5d50d0b74e7788d06259`  | 
| EFA 1.12.1 |  **MD5: **`f5bfe52779df435188b0a2874d0633ea` **SHA256: **`5665795c2b4f09d5f3f767506d4d4c429695b36d4a17e5758b27f033aee58900`  | 
| EFA 1.12.0 |  **MD5: **`d6c6b49fafb39b770297e1cc44fe68a6` **SHA256: **`28256c57e9ecc0b0778b41c1f777a9982b4e8eae782343dfe1246079933dca59`  | 
| EFA 1.11.2 |  **MD5: **`2376cf18d1353a4551e35c33d269c404` **SHA256: **`a25786f98a3628f7f54f7f74ee2b39bc6734ea9374720507d37d3e8bf8ee1371`  | 
| EFA 1.11.1 |  **MD5: **`026b0d9a0a48780cc7406bd51997b1c0` **SHA256: **`6cb04baf5ffc58ddf319e956b5461289199c8dd805fe216f8f9ab8d102f6d02a`  | 
| EFA 1.11.0 |  **MD5: **`7d9058e010ad65bf2e14259214a36949` **SHA256: **`7891f6d45ae33e822189511c4ea1d14c9d54d000f6696f97be54e915ce2c9dfa`  | 
| EFA 1.10.1 |  **MD5: **`78521d3d668be22976f46c6fecc7b730` **SHA256: **`61564582de7320b21de319f532c3a677d26cc46785378eb3b95c636506b9bcb4`  | 
| EFA 1.10.0 |  **MD5: **`46f73f5a7afe41b4bb918c81888fefa9` **SHA256: **`136612f96f2a085a7d98296da0afb6fa807b38142e2fc0c548fa986c41186282`  | 
| EFA 1.9.5 |  **MD5: **`95edb8a209c18ba8d250409846eb6ef4` **SHA256: **`a4343308d7ea4dc943ccc21bcebed913e8868e59bfb2ac93599c61a7c87d7d25`  | 
| EFA 1.9.4 |  **MD5: **`f26dd5c350422c1a985e35947fa5aa28` **SHA256: **`1009b5182693490d908ef0ed2c1dd4f813cc310a5d2062ce9619c4c12b5a7f14`  | 
| EFA 1.9.3 |  **MD5: **`95755765a097802d3e6d5018d1a5d3d6` **SHA256: **`46ce732d6f3fcc9edf6a6e9f9df0ad136054328e24675567f7029edab90c68f1`  | 
| EFA 1.8.4 |  **MD5: **`85d594c41e831afc6c9305263140457e` **SHA256: **`0d974655a09b213d7859e658965e56dc4f23a0eee2dc44bb41b6d039cc5bab45`  | 

# Notes de mise à jour de l’Elastic Fabric Adapter
<a name="efa-changelog"></a>

Le tableau suivant décrit l’historique des versions et le journal des modifications du logiciel Elastic Fabric Adapter.


| Version | Modifications | Date de publication | 
| --- | --- | --- | 
| 1,47,0 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/efa-changelog.html)  | 29 janvier 2026 | 
| 1.46,0 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/efa-changelog.html)  | 12 décembre 2025 | 
| 1,45.1 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/efa-changelog.html)  | 26 novembre 2025 | 
| 1,45,0 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/efa-changelog.html)  | 17 novembre 2025 | 
| 1,44,0 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/efa-changelog.html)  | 29 octobre 2025 | 
| 1,43,3 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/efa-changelog.html)  | 01 octobre 2025 | 
| 1,43,2 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/efa-changelog.html)  | 15 août 2025 | 
| 1.43.1 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/efa-changelog.html)  | 31 juillet 2025 | 
| 1,43,0 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/efa-changelog.html)  | 25 juillet 2025 | 
| 1.42.0 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/efa-changelog.html)  | 6 juin 2025 | 
| 1,41,0 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/efa-changelog.html)  | 16 mai 2025 | 
| 1.40.0 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/efa-changelog.html)  | 2 mai 2025 | 
| 1.39.0 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/efa-changelog.html)  | 16 avril 2025 | 
| 1,38,1 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/efa-changelog.html)  | 3 mars 2025 | 
| 1,38,0 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/efa-changelog.html)  | 8 janvier 2025 | 
| 1.37.0 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/efa-changelog.html)  | 18 novembre 2024 | 
| 1,36,0 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/efa-changelog.html)  | 7 novembre 2024 | 
| 1.35.0 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/efa-changelog.html)  | 14 octobre 2024 | 
| 1,34,0 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/efa-changelog.html)  | 6 août 2024 | 
| 1,33,0 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/efa-changelog.html)  | 20 juin 2024 | 
| 1.32.0 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/efa-changelog.html)  | 18 avril 2024 | 
| 1,31,0 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/efa-changelog.html)  | 07 mars 2024 | 
| 1.30.0 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/efa-changelog.html)  | Décembre 2023 | 
| 1.29.1 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/efa-changelog.html)  | Décembre 2023 | 
| 1.29.0 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/efa-changelog.html)  | Novembre 2023 | 
| 1.28.0 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/efa-changelog.html)  | Octobre 2023 | 
| 1.27.0 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/efa-changelog.html)  | Septembre 2023 | 
| 1,26,1 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/efa-changelog.html)  | Septembre 2023 | 
| 1.26.0 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/efa-changelog.html)  | Septembre 2023 | 
| 1.25.1 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/efa-changelog.html)  | Septembre 2023 | 
| 1.25.0 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/efa-changelog.html)  | Juillet 2023 | 
| 1.24.1 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/efa-changelog.html)  | Juillet 2023 | 
| 1.24.0 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/efa-changelog.html)  | Juin 2023 | 
| 1.23.1 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/efa-changelog.html)  | Juin 2023 | 
| 1.23.0 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/efa-changelog.html)  | Mai 2023 | 
| 1.22.1 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/efa-changelog.html)  | Mars 2023 | 
| 1.22.0 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/efa-changelog.html)  | Février 2023 | 
| 1.21.0 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/efa-changelog.html)  | Décembre 2022 | 
| 1.20.0 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/efa-changelog.html)  | Novembre 2022 | 
| 1.19.0 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/efa-changelog.html)  | Octobre 2022 | 
| 1.18.0 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/efa-changelog.html)  | Août 2022 | 
| 1.17.3 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/efa-changelog.html)  | Août 2022 | 
| 1.17.2 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/efa-changelog.html)  | juillet 2022 | 
| 1.17.1 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/efa-changelog.html)  | juillet 2022 | 
| 1.17.0 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/efa-changelog.html)  | juillet 2022 | 
| 1.16.0 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/efa-changelog.html)  | juin 2022 | 
| 1.15.2 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/efa-changelog.html)  | Mai 2022 | 
| 1.15.1 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/efa-changelog.html)  | mars 2022 | 
| 1.15.0 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/efa-changelog.html)  | Février 2022 | 
| 1.14.1 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/efa-changelog.html)  | octobre 2021 | 
| 1.14.0 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/efa-changelog.html)  | octobre 2021 | 
| 1.13.0 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/efa-changelog.html)  | août 2021 | 
| 1.12.3 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/efa-changelog.html)  | juillet 2021 | 
| 1.12.2 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/efa-changelog.html)  | juin 2021 | 
| 1.12.1 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/efa-changelog.html)  | Mai 2021 | 
| 1.12.0 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/efa-changelog.html)  | Mai 2021 | 
| 1.11.2 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/efa-changelog.html)  | février 2021 | 
| 1.11.1 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/efa-changelog.html)  | décembre 2020 | 
| 1.11.0 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/efa-changelog.html)  | décembre 2020 | 
| 1.10.1 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/efa-changelog.html)  | Novembre 2020 | 
| 1.10.0 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/efa-changelog.html)  | octobre 2020 | 
| 1,9.5 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/efa-changelog.html)  | septembre 2020 | 
| 1.9.4 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/efa-changelog.html)  | juillet 2020 | 
| 1.9.3 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/efa-changelog.html)  | Juin 2020 | 
| 1.8.4 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/efa-changelog.html)  | Avril 2020 | 
| 1.8.3 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/efa-changelog.html)  | Février 2020 | 
| 1.8.2 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/efa-changelog.html)  | Janvier 2020 | 
| 1.8.1 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/efa-changelog.html)  | Janvier 2020 | 
| 1.8.0 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/efa-changelog.html)  | Décembre 2019 | 
| 1.7.1 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/efa-changelog.html)  | Décembre 2019 | 
| 1.7.0 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/efa-changelog.html)  | Novembre 2019 | 
| 1.6.2 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/efa-changelog.html)  | Octobre 2019 | 
| 1.6.1 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/efa-changelog.html)  | Octobre 2019 | 
| 1.5.4 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/efa-changelog.html)  | Septembre 2019 | 
| 1.5.3 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/efa-changelog.html)  | Septembre 2019 | 
| 1.5.1 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/efa-changelog.html)  | Août 2019 | 
| 1.5.0 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/efa-changelog.html)  | Août 2019 | 
| 1.4.1 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/efa-changelog.html)  | Juillet 2019 | 
| 1.4.0 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/efa-changelog.html)  | Juillet 2019 | 