Protocole et transport IB : couches, QP, RDMA, gestionnaire de sous-réseau · InfiniBand · Technologies · Documentation · CodingBox
CodingBox Documentation

Protocole et transport IB : couches, QP, RDMA, gestionnaire de sous-réseau

InfiniBand a été conçu dès l’origine comme un fabric où les ordinateurs dialoguent avec la mémoire les uns des autres, pas pour échanger des paquets entre inconnus. Ses couches, son adressage et sa gestion paraissent peu familiers à un ingénieur Ethernet, mais restent simples une fois le vocabulaire en place — et expliquent pourquoi la couche physique est soumise à des normes aussi strictes. Cette page présente la vue protocolaire ; l’optique est traitée dans optique InfiniBand.

Couches

CoucheContenuRemarques
Physiquevoies (1x, 4x, 8x, 12x), signalisation par voie (NRZ jusqu’au PAM4 du HDR… voir débits), codage (8B/10B jusqu’à QDR, 64B/66B à partir de FDR), FEC (optionnel à partir de FDR, RS-FEC en HDR/NDR)le monde du transceiver
Liaisonen-tête de routage local (LRH) avec LID, voies virtuelles (VL0–VL14 données, VL15 gestion), contrôle de flux par crédits par VL, CRC de couche liaison (ICRC/VCRC)sans perte par conception
Réseauen-tête de routage global (GRH) avec GID 128 bits pour le routage multi-sous-réseauxrarement utilisé au sein d’un seul cluster
Transportpaires de files d’attente (QP) avec files d’émission/réception, types de service RC/UC/UD/XRC, segmentation au MTU, ACK/NAK pour le service fiableRDMA vit ici
SupérieureAPI verbs, MPI, NCCL (via UCX/SHARP), stockage (SRP, iSER, NVMe/IB), IPoIBce qu’utilisent les applications

Adressage et identité

IdentifiantTailleAttribué parSignification
GUID64 bitsfabricantidentité permanente d’un port, d’un nœud ou d’un système (comme une adresse MAC)
LID (identifiant local)16 bitsgestionnaire de sous-réseauadresse au sein d’un sous-réseau ; les tables de transfert utilisent les LID
GID128 bitsSM (préfixe) + GUIDpréfixe de sous-réseau + GUID ; utilisé entre sous-réseaux et par RoCE
PKey (clé de partition)16 bitsSMappartenance à une partition (comme un VLAN) ; membres complets/limités
QPN24 bitsHCAnuméro de paire de files d’attente — le point terminal au sein d’un port

Paires de files d’attente et services de transport

Une paire de files d’attente est constituée d’une file d’émission et d’une file de réception dans le HCA, possédée par une application. Les demandes de travail qui y sont soumises sont exécutées par le matériel ; les complétions arrivent dans une file de complétion. Types de service :

TypeFiableConnectéUsage
RC — connecté fiableoui (ACK/NAK, retransmission)oui, une QP par pairla majorité du trafic RDMA ; MPI, NCCL, stockage
UC — connecté non fiablenonouirare
UD — datagramme non fiablenonnon, une QP pour tous les pairsgestion, IPoIB, multidiffusion
XRC — connecté fiable étenduouifiles de réception partagées entre processusgrands jobs MPI pour réduire le nombre de QP
RD — datagramme fiableouinonpratiquement inutilisé

Les opérations RDMA (READ, WRITE, atomique) déplacent les données directement entre les tampons applicatifs de deux hôtes sans qu’aucun des deux CPU ne les copie ; SEND/RECEIVE transporte des messages. La mémoire doit être enregistrée (verrouillée et associée à une clé) avant que le HCA puisse y accéder. GPUDirect RDMA étend cela à la mémoire GPU (fabrics GPU).

Contrôle de flux et MTU

Chaque liaison applique un contrôle de flux par crédits, par voie virtuelle : le récepteur annonce son espace tampon, l’émetteur ne transmet jamais plus qu’il ne peut absorber. Aucune trame n’est perdue par congestion ; à la place, la contre-pression se propage — le même compromis que les crédits de Fibre Channel, et la raison pour laquelle une seule liaison lente ou en erreur dégrade un job entier. Le MTU de liaison est de 256–4096 octets (4096 typiquement) ; le MTU de chemin est négocié de bout en bout. Les niveaux de service (SL) sont associés aux VL pour séparer les classes de trafic, et le routage adaptatif peut détourner les flux des liaisons congestionnées.

Le gestionnaire de sous-réseau

Exactement un gestionnaire de sous-réseau (SM) est actif par sous-réseau (les autres sont en veille). Il :

  1. Découvre la topologie en parcourant le fabric avec des paquets de gestion à routage dirigé (SMP sur VL15/QP0) — chaque commutateur et chaque port HCA.
  2. Attribue les LID et configure les ports (débit, largeur, MTU, arbitrage des VL, PKey).
  3. Calcule les routes — min-hop, up-down, fat-tree, dragonfly+, routage adaptatif — et programme la table de transfert linéaire de chaque commutateur.
  4. Balaye périodiquement et sur trap (port actif/désactivé), en recalculant les routes pour contourner les pannes.
  5. Exécute l'administrateur de sous-réseau (SA), qui répond aux requêtes de chemin envoyées par les hôtes.

OpenSM (open source) et les gestionnaires de fabric des constructeurs (UFM) l’implémentent ; c’est aussi dans le gestionnaire de fabric que sont collectées à l’échelle du parc les erreurs de port, les résultats de négociation de débit/largeur de liaison et le DDM optique (fiabilité et surveillance des liaisons).

Négociation de liaison

À l’établissement de la liaison, les deux extrémités négocient la largeur (1x/2x/4x) et le débit (taux par voie) à la valeur commune la plus élevée. Une liaison qui s’établit en 2x ou une génération plus lente que prévu est l’équivalent InfiniBand du cas Ethernet « liaisons à 10G, pas à 25G » : la fibre ou le laser d’une voie, un câble limite, ou une génération de transceiver mal assortie (Débit et taux). Le gestionnaire de fabric rapporte l’état négocié ; ibstat / ibportstate l’affichent sur un hôte.

Outils de gestion et de diagnostic

OutilFonction
ibstat, ibstatusétat local du port, débit, largeur, LID
ibnetdiscoverextraction de la topologie
ibdiagnetvérification à l’échelle du fabric : erreurs, incohérences de débit/largeur, GUID dupliqués, infos câble
perfquery, ibqueryerrorscompteurs par port : erreurs de symbole, liaison tombée, récupération de liaison, erreurs de réception de port, dépassement excessif de tampon, VL15 perdus, compteurs FEC
mlxlink, mlxcablesdétails PHY par port et EEPROM câble/transceiver, DDM, histogramme FEC
ibportstateforcer le débit/la largeur, réinitialiser un port

Les erreurs de symbole et les récupérations de liaison sont les compteurs de couche physique — les équivalents du CRC/FEC Ethernet, liés à la puissance Rx et à la propreté (Fabric).

InfiniBand vs RoCE en un paragraphe

RoCE v2 transporte le même verbs/RDMA au-dessus d’UDP/IP/Ethernet ; il remplace le gestionnaire de sous-réseau par le routage IP et les PKey par des VLAN, et remplace le contrôle de flux par crédits par PFC/ECN (DCQCN) — qui doit être configuré correctement pour rester sans perte (Ethernet sans perte, Interconnexions). Les transceivers sont physiquement identiques ; seuls le codage d’identité et les politiques d’hôte diffèrent.

Dans CodingBox

Les modules InfiniBand se lisent comme tout QSFP/OSFP : identité (y compris les bits de débit InfiniBand dans l’octet 164 du SFF-8636 ou les applications CMIS), DDM par voie et sommes de contrôle sur Check transceiver et DDM. Un port qui négocie en dessous de son débit nominal mérite une lecture au banc des deux extrémités.


Si vous trouvez une inexactitude ou une erreur dans cet article, sélectionnez le passage concerné et appuyez sur Ctrl+Enter pour .