Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

NVIDIA Configuration

® La famille de cartes d’interface réseau (NIC) NVIDIA ConnectX® offre des fonctionnalités avancées de déchargement matériel et d’accélération et des vitesses allant jusqu’à 400G, prenant en charge les protocoles Ethernet et Infiniband.

Référez-vous toujours à la documentation officielle du fabricant lorsque vous effectuez des modifications. Cette section fournit quelques instructions basées sur les tests en laboratoire des JVD IA.

Conversion des cartes réseau NVIDIA ConnectX d’Infiniband vers Ethernet

Par défaut, les cartes réseau NVIDIA ConnectX sont configurées pour fonctionner en tant qu’interfaces Infiniband et doivent être converties en Ethernet à l’aide de l’outil mlxconfig.

1) Vérifiez l’état des cartes réseau ConnectX à l’aide de sudo mst status.

REMARQUE : Mellanox Logiciels Tools (MST) fait partie de la suite d’outils de micrologiciel Mellanox et peut être utilisé pour gérer et interagir avec les adaptateurs réseau Mellanox.

Démarrez le service mst ou chargez les modules mst si nécessaire.

Exemple :

L’exemple montre « Le module MST PCI n’est pas chargé ». Pour le charger, utilisez la commande

2) Identifiez l’interface que vous souhaitez convertir,

Cette commande sudo mst status -v fournit une liste des périphériques Mellanox (NIC ConnectX-6 et ConnectX-7) détectés sur le système, ainsi que leur type, le nom du périphérique Mellanox, les adresses PCI, le nom de l’interface RDMA, le nom de l’interface NET et l’ID NUMA, comme indiqué dans l’exemple ci-dessous :

Pour la première interface de la liste, vous pouvez identifier les éléments suivants :

  • Type = ConnectX7(rev :0)
  • Nom du périphérique Mellanox = mt4129_pciconf7 (/dev/mst/mt4129_pciconf7)
  • Adresses PCI = cb :00.0
  • Nom de l’interface RDMA = mlx5_12
  • Nom de l’interface NET = net-gpu6_eth
  • NUMA = 1

Notez que pour certaines interfaces, le nom suit le schéma de nommage standard des interfaces Linux (par exemple, net-enp14s0f1np1), tandis que d’autres ne le font pas (par exemple, net-gpu0_eth). Les noms d’interface qui ne respectent pas la norme sont des noms définis par l’utilisateur à des fins d’identification facile. Cela signifie que le nom par défaut a été modifié dans le fichier /etc/netplan/. Nous montrerons un exemple de la façon de le faire plus tard dans cette section.

3) Identifiez le mode d’exécution d’une interface donnée à l’aide de

mlxconfig -d <device> query

Exemple :

Notez que vous devez utiliser le nom du périphérique Mellanox, y compris le chemin d’accès (/dev/mst/mt4129_pciconf7).

De plus, LINK_TYPE_P1 et LINK_TYPE_P2 font référence aux deux ports physiques d’un adaptateur Mellanox à deux ports.

4) Si une interface fonctionne en mode Infiniband, vous pouvez changer le mode pour le mode Ethernet en utilisant

mlxconfig -d <périphérique> set [LINK_TYPE_P1=<link_type>] [LINK_TYPE_P2=<link_type>]

Exemple

Encore une fois, notez que vous devez utiliser le nom du périphérique Mellanox, y compris le chemin (/dev/mst/mt4129_pciconf7).

REMARQUE : Les modifications via mlxconfig nécessitent que le boîtier soit mis sous tension.

Pour vérifier l’état de l’interface, vous pouvez utiliser le mlxlink :

Pour plus de détails, vous pouvez vous référer à :

Comment trouver le type d’adaptateur Mellanox et la version du micrologiciel/pilote (Linux) (nvidia.com)

Prise en charge et téléchargements de firmwares - Identification des cartes adaptateurs (nvidia.com)

Identification des mappages de cartes réseau et GPU et attribution du nom d’interface approprié

Les cartes réseau peuvent être utilisées par n’importe quel GPU à tout moment ; il n’est pas codé en dur qu’un GPU donné ne peut communiquer avec le monde extérieur qu’à l’aide d’une carte NIC spécifique. Cependant, il existe des chemins de communication privilégiés entre les GPU et les cartes réseau, qui dans certains cas peuvent être considérés comme une correspondance 1:1 entre eux. Cela sera montré dans les étapes ci-dessous.

NCCL (NVIDIA Collective Communications Library) choisira le chemin qui offre la meilleure connexion d’un GPU donné à l’une des cartes réseau.

Pour identifier les chemins sélectionnés par NCCL et le meilleur chemin entre un GPU et une NIC, procédez comme suit :

Utilisez la commande nvidia-smi topo -m, qui affiche des informations topologiques sur le système, pour identifier le type de connexion entre les GPU et les cartes réseau :

EXEMPLES :

  • DGX H100 :

Graphique 92. Informations sur la topologie du système de l’interface de gestion du système (SMI) Nvidia H100

Interface de gestion du système SMI | Développeur NVIDIA

D’après nos recherches :

Tableau 26 : Performances par type de connexion

Type de connexion Descriptif Performances
PIX PCIe sur le même commutateur Bon
PXB PCIe via plusieurs commutateurs, mais pas le pont hôte Bon
PHB Commutateur PCIe et sur un pont hôte sur le même NUMA - utilise le processeur D’accord
NŒUD Commutateur PCIe et sur plusieurs ponts hôtes sur le même NUMA Mauvais
SYS Commutateur PCIe et sur le bus QPI/UPI entre les nœuds NUMA - utilise le processeur Très mauvais
NV# NVLink Très bien
  • HGX A100 :

Graphique 93. Informations sur la topologie du système de l’interface de gestion du système (SMI) Nvidia A100

Identifier les connexions PBX

Si vous vous concentrez sur les sections en surbrillance de la sortie nvidia-smi, vous pouvez voir que pour chaque GPU, il existe une ou plusieurs connexions NIC de type PXB. Il s’agit du chemin « direct » préféré de chaque GPU à une NIC donnée. Cela signifie que lorsque le GPU doit communiquer avec un périphérique distant, il utilisera l’une de ces cartes réseau spécifiques comme première option.

  • DGX H100 :

Graphique 94. Topologie du système Nvidia H100 System Management Interface (SMI) Connexions PBX

Graphique 95. Architecture système Nvidia H100

A diagram of a computer system Description automatically generated

  • HGX A100 :

Graphique 96. Topologie du système d’interface de gestion du système (SMI) Nvidia A100 Connexions PBX

Figure 97. Architecture système Nvidia A100

A computer diagram of a computer network Description automatically generated with medium confidence

REMARQUE : ces chemins sont fixes.

Vous pouvez également trouver ces correspondances dans les guides de l’utilisateur A100 ou H100 de Nvidia.

Par exemple, sur un système DGX H100/H200, les mappages de ports selon les tableaux 5 et 6 du Guide de l'utilisateur du système DGX H100/H200 de NVIDIA sont les suivants :

Tableau 27 : mappages GPU à NIC

Port ConnectX Processeur graphique Par défaut RDMA NIC
OSFP4P2 CX1 0 iBP24S0 mlx5_0 NIC0
OSFP3P2 CX3 1 iBP64S0 mlx5_3 Carte réseau3
OSFP3P1 CX2 2 IBP79S0 mlx5_4 Carte réseau4
OSFP4P1 CX0 3 IBP94S0 mlx5_5 Carte réseau5
OSFP1P2 CX1 4 IBP154S0 mlx5_6 Carte réseau6
OSFP2P2 CX3 5 IBP192S0 mlx5_9 Carte réseau9
OSFP2P1 CX2 6 IBP206S0 mlx5_10 Carte réseau10
OSFP1P1 CX0 7 IBP220S0 mlx5_11 Carte réseau 11

Tableau 28 : connexions GPU à NIC

NIC GPU0 GPU1 Processeur graphique 2 Processeur GPU3 Processeur graphique 4 Processeur graphique 5 Processeur graphique 6 Processeur GPU7
NIC0 PXB SYS SYS SYS SYS SYS SYS SYS
Carte réseau3 SYS PXB SYS SYS SYS SYS SYS SYS
Carte réseau4 SYS SYS PXB SYS SYS SYS SYS SYS
Carte réseau5 SYS SYS SYS PXB SYS SYS SYS SYS
Carte réseau6 SYS SYS SYS SYS PXB SYS SYS SYS
Carte réseau9 SYS SYS SYS SYS SYS PXB SYS SYS
Carte réseau10 SYS SYS SYS SYS SYS SYS PXB SYS
Carte réseau 11 SYS SYS SYS SYS SYS SYS SYS PXB

Graphique 98. Panneau avant Nvidia H100

A screenshot of a computer Description automatically generated

Pour plus d’informations et pour les mappings sur les systèmes A100, vérifiez :

Introduction au système NVIDIA HGX A100 — Guide de l’utilisateur NVIDIA HGX A100 1 Documentation

Introduction aux systèmes NVIDIA DGX H100/H200 — Guide de l’utilisateur NVIDIA DGX H100/H200 1 Documentation

Modification du nom de l’interface d’un NIC et attribution d’adresses IP et de routes

NIC attributs tels que l’adresse IP ou le nom de l’interface peuvent être définis en modifiant et en réappliquant au netplan.

La configuration réseau est décrite dans le fichier : /etc/netplan/01-netcfg.yaml comme indiqué dans l’exemple de tableau ci-dessous. Toute modification d’attribut implique de modifier ce fichier et de réappliquer le plan de réseau, comme indiqué dans les exemples plus loin dans cette section.

Tableau 29 : Exemple de configuration de l’interface Nvidia HGX A100 :

Sortie netcfg.yaml
jvd@A100-01 :/etc/netplan$ plus 01-netcfg.yaml
# Il s'agit de la configuration réseau écrite par 'subiquity' gpu0_eth : gpu4_eth :
Réseau : Match : Match :
Version : 2 Adresse MAC : 94:6D :AE :54:72:22 Adresse MAC : 94:6D :AE :5B :28:70
Ethernet : DHCP4 : faux DHCP4 : faux
mgmt_eth : MTU : 9000 MTU : 9000
Match : Adresses : Adresses :
Adresse MAC : 7C :C2:55:42 :B2:28 - 10.200.0.8/24 - 10.200.4.8/24
DHCP4 : faux Itinéraires : Itinéraires :
Adresses : - au : 10.200.0.0/16 - au : 10.200.0.0/16
- 10.10.1.0/31 via : 10.200.0.254 via : 10.200.4.254
Serveurs de noms : à partir de : 10.200.0.8 de : 10.200.4.8
Adresses : nom de l’ensemble : gpu0_eth nom de l’ensemble : gpu4_eth
- 8.8.8.8 gpu1_eth : gpu5_eth :
Itinéraires : Match : Match :
- à : par défaut Adresse MAC : 94:6D :AE :5B :01 :D0 Adresse MAC : 94:6D :AE :5B :27 :F0
via : 10.10.1.1 DHCP4 : faux DHCP4 : faux
nom de l’ensemble : mgmt_eth MTU : 9000 MTU : 9000
weka_eth : Adresses : Adresses :
Match : - 10.200.1.8/24 - 10.200.5.8/24
adresse MAC : B8:3F :D2:8B :68 :E0 Itinéraires : Itinéraires :
DHCP4 : faux - au : 10.200.0.0/16 - au : 10.200.0.0/16
MTU : 9000 via : 10.200.1.254 via : 10.200.5.254
Adresses : à partir de : 10.200.1.8 à partir de : 10.200.5.8
- 10.100.1.0/31 nom_ensemble : gpu1_eth nom de l’ensemble : gpu5_eth
Itinéraires : gpu2_eth : gpu6_eth :
- au : 10.100.0.0/22 Match : Match :
via : 10.100.1.1 Adresse MAC : 94:6D :AE :5B :28:60 Adresse MAC : 94:6D :AE :54:78 :E2
nom de l’ensemble : weka_eth DHCP4 : faux DHCP4 : faux
  MTU : 9000 MTU : 9000
  Adresses : Adresses :
  - 10.200.2.8/24 - 10.200.6.8/24
  Itinéraires : Itinéraires :
  - au : 10.200.0.0/16 - au : 10.200.0.0/16
  via : 10.200.2.254 via : 10.200.6.254
  à partir de : 10.200.2.8 à partir de : 10.200.6.8
  nom_ensemble : gpu2_eth nom de l’ensemble : gpu6_eth
  gpu3_eth : gpu7_eth :
  Match : Match :
  Adresse MAC : 94:6D :AE :5B :01 :E0 Adresse MAC : 94:6D :AE :54:72:12
  DHCP4 : faux DHCP4 : faux
  MTU : 9000 MTU : 9000
  Adresses : Adresses :
  - 10.200.3.8/24 - 10.200.7.8/24
  Itinéraires : Itinéraires :
  - au : 10.200.0.0/16 - au : 10.200.0.0/16
  via : 10.200.3.254 via : 10.200.7.254
  à partir de : 10.200.3.8 de : 10.200.7.8
  nom de l’ensemble : gpu3_eth nom de l’ensemble : gpu7_eth

Mappage d’un nom d’interface à un NIC spécifique (interface physique)

Mappez le nom de l’interface à l’adresse MAC de l’interface physique dans le fichier de configuration :

Graphique 99. Exemple d’identification d’interface physique Nvidia A100

où :

EN = Interface réseau Ethernet.

p203s0 = emplacement physique de l’interface réseau.

Numéro de bus 203.

s0 = emplacement numéro 0 dans le bus.

F1 = fonction numéro 1 de l’interface réseau.

np1 = Port réseau 1

A computer code with black text Description automatically generated

Fonction 0 : Peut être l’interface Ethernet principale.

Fonction 1 : Il peut s’agir d’une deuxième interface Ethernet.

Fonction 2 : peut être une interface de gestion ou de diagnostic.

Figure 100. Exemple de modification de fichier Netplan Nvidia A100

Vous pouvez trouver les noms de toutes les interfaces logiques sur le fichier devnames :

Application des modifications à l’aide de la commande netplan apply

Figure 101. Exemple d’application Netplan Nvidia A100

Modification du nom de la carte NIC

Modifiez la valeur de set-name dans le fichier de configuration et enregistrez les modifications :

Graphique 102. Exemple de changement de nom d’interface Netplan Nvidia A100

Application des modifications à l’aide de la commande netplan apply

Graphique 103. Exemple d’application et de vérification de changement de nom d’interface Netplan Nvidia A100

A computer screen shot of a computer code Description automatically generated

Pour modifier l’adresse IP actuelle ou attribuer une adresse IP à la NIC

Modifiez ou ajoutez l’adresse sous l’interface appropriée dans le fichier de configuration, et enregistrez les modifications :

Graphique 104. Exemple de changement d’adresse IP de l’interface Netplan Nvidia A100

Entrez les adresses IP précédées d’un trait d’union et en retrait ; Assurez-vous d’ajouter le masque de sous-réseau.

Application des modifications à l’aide de la commande netplan apply

Graphique 105. Nvidia A100, interface netplan, nouvel exemple d’application et de vérification d’adresse IP

Modification ou ajout de routes à la carte NIC

Modifiez ou ajoutez les routes sous l’interface appropriée dans le fichier de configuration et enregistrez les modifications.

Figure 106. Exemple de routes supplémentaires netplan Nvidia A100

Application des modifications à l’aide de la commande netplan apply

Graphique 107. Exemple d’application et de vérification des routes supplémentaires Nvidia A100 netplan :

Configuration de NVIDIA DCQCN – ECN

Figure 108 : NVIDIA DCQCN – ECN

À partir de MLNX_OFED 4.1, ECN est activé par défaut (dans le firmware).

Pour confirmer que ECN est activé, utilisez la commande suivante : mlxconfig -d <device> q | grep ROCE_CC

Exemple :

Un masque de 255 signifie que DCQCN (ECN) est activé pour toutes les TC (classes de trafic) configurées sur la carte NIC.

Pour désactiver ECN, vous pouvez modifier le masque à l’aide de la commande suivante : mlxconfig -d <device> s ROCE_CC_PRIO_MASK_P1=<mask>

Exemple :

Si vous voulez éviter qu’on vous demande si vous souhaitez appliquer la nouvelle configuration, vous pouvez inclure l’option -y comme indiqué dans l’exemple suivant :

La sortie indique qu’un redémarrage du serveur est nécessaire. Vous pouvez également réinitialiser l’interface à l’aide de la commande : mlxfwreset -d <périphérique> -l 3 -y r.

L’appareil peut être entré en tant que /dev/mst/mt4129_pciconf2 ou mlx5_0 (gpu0_eth n’est pas un format valide pour cette commande)

Exemple :

Les paramètres des opérations ECN se trouvent sur le chemin d’accès suivant /sys/class/net/<interface>/ecn

Utilisez la commande suivante pour trouver l’interface :

Les bits ECN sur l’en-tête IP sont toujours marqués de 10 pour le trafic RoCE.

Paramètres du point de notification (NP)

Lorsque le récepteur compatible ECN reçoit des paquets RoCE marqués ECN, il répond en envoyant des CNP (Congestion Notification Packets).

Les commandes suivantes décrivent les paramètres de notification :

Exemples :

cnp_802p_prio = la valeur du champ PCP (Priority Code Point) des paquets CNP.

PCP est un champ de 3 bits dans un en-tête de trame Ethernet lors de l’utilisation de trames balisées VLAN telles que définies par l’IEEE 802.1Q.

cnp_dscp = valeur du champ DSCP (Differentiated Services Code Point) des paquets CNP.

min_time_between_cnps = temps minimal entre deux CNP consécutifs envoyés. Si le paquet RoCE marqué ECN arrive dans une période inférieure à min_time_between_cnps depuis l’envoi précédent du CNP, aucun CNP ne sera envoyé en réponse. Cette valeur est exprimée en microsecondes. Valeur par défaut = 0

La sortie montre que roce_np est activé pour toutes les valeurs de priorité.

REMARQUE : L’envoi de paquets CNP est traité globalement par port, toute priorité activée ici définira l’envoi de paquets CNP sur (1).

Pour modifier les attributs décrits ci-dessus, utilisez l’utilitaire mlxconfig :

Exemple :

Paramètres du point de réaction (PR)

Lorsque l’expéditeur compatible ECN reçoit des paquets CNP, il répond en ralentissant la transmission des flux spécifiés (priorité).

Les paramètres suivants définissent la manière dont les flux de trafic seront limités après l’arrivée des paquets CNP :

Exemples :

rpg_max_rate = vitesse maximale à laquelle le nœud du point de réaction peut transmettre. Une fois cette limite atteinte, les RP ne sont plus limités par le débit.

Cette valeur est configurée en Mbits/s. Valeur par défaut = 0 (pleine vitesse – pas de max)

La sortie montre que roce_rp est activé pour toutes les valeurs de priorité.

REMARQUE : La gestion de CNP est configurée par priorité.

Pour vérifier les statistiques ECN, utilisez : ethtool -S <interface> | grep ecn

Exemple :

NVIDIA DCQCN – PFC Configuration

La norme IEEE 802.1Qbb applique la fonctionnalité de pause à des classes de trafic spécifiques sur la liaison Ethernet.

Figure 109 : Configuration DCQCN NVIDIA – PFCA diagram of a computer program Description automatically generated with medium confidence

Pour vérifier si PFC est activé sur une interface, utilisez : mlnx_qos -i <interface>

Exemple :

Pour activer/désactiver PFC, utilisez : mlnx_qos -i <interface> --pfc <0/1>,<0/1>,<0/1>,<0/1>,<0/1>,<0/1>,<0/1>,<0/1>

Exemple :

- Vérifiez la configuration actuelle :

La sortie de l’exemple indique que PFC est activé pour la priorité 3.

  • Activer PFC pour la priorité 2 et désactiver PFC pour la priorité 3 :
Cet exemple montre comment modifier la configuration ; assurez-vous qu’elle correspond à la configuration PFC sur les nœuds Leaf (définissez class-of-service forwarding-classes class NO-LOSS pfc-priority 3).
  • Consultez les statistiques PFC :
REMARQUE : Les compteurs de pause ne sont visibles via ethtool que pour les priorités sur lesquelles PFC est activé.

Configuration NVIDIA TOS/DSCP pour RDMA-CM QPS (trafic RDMA)

Figure 110 : CONDITIONS D’UTILISATION/DSCP DE NVIDIA

A diagram of a machine Description automatically generated

Le trafic RDMA doit être correctement marqué pour permettre au commutateur de le classer correctement et de le placer dans la file d’attente sans perte pour un traitement approprié. Le marquage peut être DSCP dans l’en-tête IP ou PCP dans le champ vlan-tag de trame Ethernet. L’utilisation de DSCP ou de PCP dépend de l’interopérabilité VLAN (802.1q) ou non de l’interface entre le serveur GPU et le commutateur.

Pour vérifier la configuration actuelle et modifier les valeurs de TOS pour le trafic sortant RDMA, utilisez le script cma_roce_tos qui fait partie de MLNX_OFED 4.0.

Pour vérifier la valeur actuelle du champ TOS, entrez sudo cma_roce_tos sans aucune option.

Exemple :

Dans l’exemple, la valeur TOS actuelle = 106, ce qui signifie une valeur DSCP = 48 et les bits ECN définis sur 10.

REMARQUE : Le champ TOS est de 8 bits, tandis que le DSCP est de 6 bits. Pour définir une valeur DSCP de X, vous devez multiplier cette valeur par 4 (MAJ 2). Par exemple, pour définir la valeur DSCP de 24, (24x4=96). Réglez le bit TOS sur 96. Vous devez ajouter 2 pour inclure l’ECN.

A screenshot of a graph Description automatically generated

Pour modifier la valeur, utilisez : cma_roce_tos –d <ib_device> -t <TOS>

Vous devez entrer le ib_device dans cette commande. Le script suivant réalise automatiquement le mappage entre les interfaces physiques et le ib_device.

Exemple :

Graphique 111. Exemple de résultats de script

Graphique 112. Référencez les conditions d’utilisation et les mappages DSCP :

A table with numbers and symbols

Configuration de NVIDIA pour utiliser l’interface de gestion du trafic de contrôle NCCL

Le NCCL utilise les sessions TCP pour connecter les processus entre eux et échanger des informations QP pour RoCE, les GID (ID globaux), les adresses tampons locales et distantes, les clés RDMA (RKEYS pour les autorisations d’accès à la mémoire)

Ils sont distincts du trafic RoCEv2 (port 4791) utilisé pour synchroniser les paramètres du modèle, les résultats partiels des opérations, etc.

Ces sessions sont créées au démarrage du travail et utilisent par défaut l’une des interfaces GPU (mêmes que celles utilisées pour le trafic RoCEv2).

Exemple :

Il est recommandé, de passer à l’interface de gestion (connectée au (Frontend fabric) incluant le paramètre suivant lors du démarrage d’un job : export NCCL_SOCKET_IFNAME="mgmt_eth »

Exemple :

ECN est activé par défaut pour ces sessions ; net.ipv4.tcp_ecn = 1 , mais peut être désactivé avec : sudo sysctl -w net.ipv4.tcp_ecn=0