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.
Lancer un AWS Apprentissage profond (deep learning) AMIs Instance avec EFA
La dernière version de Base DLAMI est prête à être utilisée avec EFA et est livrée avec les pilotes requis, les modules du noyau, libfabric, openmpi et le plug-in NCCL OFI pour les instances GPU.
Vous trouverez les versions CUDA prises en charge d'un DLAMI de base dans les notes de version.
Remarque :
-
Lorsque vous exécutez une application NCCL à l'aide d'
mpirunEFA, vous devez spécifier le chemin complet vers l'installation prise en charge par EFA comme suit :/opt/amazon/openmpi/bin/mpirun <command> -
Pour permettre à votre application d'utiliser EFA, ajoutez
FI_PROVIDER="efa"à la commandempiruncomme indiqué dans Utilisation de l'EFA sur le DLAMI.
Rubriques
Préparer un groupe de sécurité compatible EFA
L'EFA nécessite un groupe de sécurité qui autorise tout le trafic entrant et sortant à destination et en provenance du groupe de sécurité lui-même. Pour plus d'informations, consultez la documentation EFA.
-
Ouvrez la console Amazon EC2 à l’adresse https://console.aws.amazon.com/ec2/
. -
Dans le panneau de navigation, choisissez Groupes de sécurité, puis Créer un groupe de sécurité.
-
Dans la fenêtre Créer un groupe de sécurité, procédez comme suit :
-
Pour Nom du groupe de sécurité, saisissez un nom descriptif pour le groupe de sécurité, tel que
EFA-enabled security group. -
(Facultatif) Pour Description, saisissez une brève description du groupe de sécurité.
-
Pour VPC, sélectionnez le VPC dans lequel vous souhaitez lancer vos EFA-enabled instances.
-
Choisissez Créer.
-
-
Sélectionnez le groupe de sécurité que vous avez créé et dans l'onglet Description, copiez l'ID du groupe.
-
Dans les onglets Entrant et Sortant, procédez comme suit :
-
Choisissez Modifier.
-
Pour Type, sélectionnez Tout le trafic.
-
Pour Source, choisissez Personnalisé.
-
Collez l'ID de groupe de sécurité que vous avez copié dans le champ.
-
Choisissez Enregistrer.
-
-
Activez le trafic entrant en vous référant à Autorisation du trafic entrant pour vos instances Linux. Si vous ignorez cette étape, vous ne pourrez pas communiquer avec votre instance DLAMI.
Lancer votre instance
EFA on the AWS Apprentissage profond (deep learning) AMIs est actuellement pris en charge avec les types d'instances et les systèmes d'exploitation suivants :
-
P3dn : Amazon Linux 2, Ubuntu 20.04
-
P4d, P4de : Amazon Linux 2, Amazon Linux 2023, Ubuntu 20.04, Ubuntu 22.04
-
P5, P5e, P5fr : Amazon Linux 2, Amazon Linux 2023, Ubuntu 20.04, Ubuntu 22.04
La section suivante montre comment lancer une instance DLAMI compatible EFA. Pour plus d'informations sur le lancement d'une instance compatible EFA, voir Lancer EFA-Enabled des instances dans un groupe de placement de clusters.
-
Ouvrez la console Amazon EC2 à l’adresse https://console.aws.amazon.com/ec2/
. -
Choisissez Launch Instances (Lancer les instances).
-
Sur la page Choisir une AMI, sélectionnez une DLAMI prise en charge sur la page des notes de version de la DLAMI
-
Sur la page Choisir un type d'instance, sélectionnez l'un des types d'instance pris en charge suivants, puis choisissez Suivant : Configurer les détails de l'instance. Consultez ce lien pour obtenir la liste des instances prises en charge : Commencez avec EFA et MPI
-
Sur la page Configurer les détails de l’instance, procédez de la façon suivante :
-
Dans le champ Nombre d'instances, entrez le nombre d' EFA-enabled instances que vous souhaitez lancer.
-
Pour Réseau et Sous-réseau, sélectionnez le VPC et le sous-réseau dans lesquels lancer les instances.
-
[Facultatif] Pour Groupe de placement, sélectionnez Ajouter une instance au groupe de placement. Pour de meilleures performances, lancez les instances au sein d'un groupe de placement.
-
[Facultatif] Dans Nom du groupe de placement, sélectionnez Ajouter à un nouveau groupe de placement, entrez un nom descriptif pour le groupe de placement, puis dans Stratégie de groupe de placement, sélectionnez cluster.
-
Assurez-vous d'activer l'« adaptateur Elastic Fabric » sur cette page. Si cette option est désactivée, remplacez le sous-réseau par un sous-réseau qui prend en charge le type d'instance sélectionné.
-
Dans la section Interfaces réseau, pour l’appareil eth0, choisissez Nouvelle interface réseau. Vous pouvez éventuellement entrer une adresse IPv4 principale et une ou plusieurs adresses IPv4 secondaires. Si vous lancez l’instance dans un sous-réseau auquel un bloc CIDR IPv6 est associé, vous pouvez éventuellement spécifier une adresse IPv6 principale et une ou plusieurs adresses IPv6 secondaires.
-
Choisissez Suivant : Ajouter un stockage.
-
-
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), puis sélectionner Suivant : Ajouter des balises.
-
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é.
-
Sur la page Configurer le groupe de sécurité, pour Attribuer un groupe de sécurité, sélectionnez Sélectionner un groupe de sécurité existant, puis sélectionnez le groupe de sécurité que vous avez créé précédemment.
-
Choisissez Vérifier et lancer.
-
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.
Vérifier la pièce jointe EFA
À partir de la console
Après avoir lancé l'instance, vérifiez les détails de l'instance dans la AWS console. Pour ce faire, sélectionnez l'instance dans la console EC2 et consultez l'onglet Description dans le volet inférieur de la page. Recherchez le paramètre « Interfaces réseau : eth0 » et choisissez eth0 pour ouvrir une fenêtre contextuelle. Assurez-vous que « Elastic Fabric Adapter » est activé.
Si EFA n'est pas activé, vous pouvez résoudre ce problème en :
-
Mettez fin à l'instance EC2 et lancez une nouvelle instance en suivant la même procédure. Assurez-vous que l'EFA est connecté.
-
Attachez EFA à une instance existante.
-
Dans la console EC2, accédez à Interfaces réseau.
-
Choisissez Créer une interface réseau.
-
Sélectionnez le sous-réseau dans lequel se trouve votre instance.
-
Assurez-vous d'activer « Elastic Fabric Adapter » et choisissez Créer.
-
Retournez à l'onglet EC2 Instances (Instances EC2) et sélectionnez votre instance.
-
Accédez à Actions : État de l'instance et arrêtez l'instance avant de joindre EFA.
-
Dans Actions, sélectionnez Mise en réseau : Attacher l'interface réseau.
-
Sélectionnez l'interface que vous venez de créer et choisissez Joindre.
-
Redémarrez votre instance.
-
À partir de l'instance
Le script de test suivant est déjà présent sur le DLAMI. Exécutez-le pour vous assurer que les modules de noyau sont correctement chargés.
$ fi_info -p efa
Votre sortie doit ressembler à ce qui suit :
provider: efa fabric: EFA-fe80::e5:56ff:fe34:56a8 domain: efa_0-rdm version: 2.0 type: FI_EP_RDM protocol: FI_PROTO_EFA provider: efa fabric: EFA-fe80::e5:56ff:fe34:56a8 domain: efa_0-dgrm version: 2.0 type: FI_EP_DGRAM protocol: FI_PROTO_EFA provider: efa;ofi_rxd fabric: EFA-fe80::e5:56ff:fe34:56a8 domain: efa_0-dgrm version: 1.0 type: FI_EP_RDM protocol: FI_PROTO_RXD
Vérifier la configuration du groupe de sécurité
Le script de test suivant est déjà présent sur le DLAMI. Exécutez-le pour vérifier que le groupe de sécurité que vous avez créé est correctement configuré.
$ cd /opt/amazon/efa/test/ $ ./efa_test.sh
Votre sortie doit ressembler à ce qui suit :
Starting server... Starting client... bytes #sent #ack total time MB/sec usec/xfer Mxfers/sec 64 10 =10 1.2k 0.02s 0.06 1123.55 0.00 256 10 =10 5k 0.00s 17.66 14.50 0.07 1k 10 =10 20k 0.00s 67.81 15.10 0.07 4k 10 =10 80k 0.00s 237.45 17.25 0.06 64k 10 =10 1.2m 0.00s 921.10 71.15 0.01 1m 10 =10 20m 0.01s 2122.41 494.05 0.00
S'il ne répond plus ou ne se termine pas, assurez-vous que votre groupe de sécurité dispose des inbound/outbound règles appropriées.