Protocollo e trasporto IB: livelli, QP, RDMA, subnet manager · InfiniBand · Tecnologie · Documentazione · CodingBox
CodingBox Documentazione

Protocollo e trasporto IB: livelli, QP, RDMA, subnet manager

InfiniBand è stato progettato fin dall’inizio come un fabric per computer che comunicano direttamente con la memoria reciproca, non per pacchetti tra sconosciuti. I suoi livelli, l’indirizzamento e la gestione risultano estranei a un ingegnere Ethernet, ma sono semplici una volta acquisito il vocabolario — e spiegano perché il livello fisico è soggetto a standard così severi. Questa pagina descrive il protocollo; l’ottica è in Ottica InfiniBand.

Livelli

LivelloContenutoNote
Fisicolane (1x, 4x, 8x, 12x), segnalazione per lane (da NRZ al PAM4 di HDR… vedi velocità), codifica (da 8B/10B fino a QDR, 64B/66B da FDR in poi), FEC (opzionale da FDR, RS-FEC su HDR/NDR)il mondo del ricetrasmettitore
Collegamentoheader di instradamento locale (LRH) con i LID, lane virtuali (VL0–VL14 dati, VL15 gestione), controllo di flusso basato su crediti per VL, CRC di livello collegamento (ICRC/VCRC)lossless per progettazione
Reteheader di instradamento globale (GRH) con GID a 128 bit per l’instradamento multi-subnetusato raramente all’interno di un singolo cluster
Trasportoqueue pair (QP) con code di invio/ricezione, tipi di servizio RC/UC/UD/XRC, segmentazione alla MTU, ACK/NAK per il servizio affidabilequi vive l’RDMA
SuperioreAPI verbs, MPI, NCCL (via UCX/SHARP), storage (SRP, iSER, NVMe/IB), IPoIBciò che usano le applicazioni

Indirizzamento e identità

IdentificatoreDimensioneAssegnato daSignificato
GUID64 bitproduttoreidentità permanente di una porta, di un nodo o di un sistema (come un MAC)
LID (identificatore locale)16 bitsubnet managerindirizzo all’interno di un subnet; le tabelle di forwarding usano i LID
GID128 bitSM (prefisso) + GUIDprefisso di subnet + GUID; usato tra subnet diversi e da RoCE
PKey (chiave di partizione)16 bitSMappartenenza a una partizione (come una VLAN); membri completi/limitati
QPN24 bitHCAqueue pair number — l’endpoint all’interno di una porta

Queue pair e servizi di trasporto

Una queue pair è una coda di invio e una coda di ricezione nell’HCA, di proprietà di un’applicazione. Le work request inviate ad essa vengono eseguite dall’hardware; i completamenti arrivano in una completion queue. Tipi di servizio:

TipoAffidabileConnessoUso
RC — connessione affidabilesì (ACK/NAK, ritrasmissione)sì, una QP per peerla maggior parte del traffico RDMA; MPI, NCCL, storage
UC — connessione inaffidabilenosìraro
UD — datagramma inaffidabilenono, una QP per tutti i peergestione, IPoIB, multicast
XRC — connessione affidabile estesasìcode di ricezione condivise tra i processijob MPI di grandi dimensioni, per ridurre il numero di QP
RD — datagramma affidabilesìnosostanzialmente inutilizzato

Le operazioni RDMA (READ, WRITE, atomiche) spostano i dati direttamente tra i buffer applicativi su due host, senza che nessuna delle due CPU li copi; SEND/RECEIVE trasporta i messaggi. La memoria deve essere registrata (bloccata in memoria e dotata di una chiave) prima che l’HCA possa accedervi. GPUDirect RDMA estende questo meccanismo alla memoria GPU (Fabric GPU).

Controllo di flusso e MTU

Ogni collegamento esegue un controllo di flusso basato su crediti per lane virtuale: il ricevitore comunica lo spazio disponibile nel buffer, il mittente non trasmette mai più di quanto il ricevitore possa assorbire. Nessun frame viene scartato per congestione; si propaga invece una back-pressure — lo stesso compromesso dei crediti di Fibre Channel, e il motivo per cui un solo collegamento lento o con errori degrada un intero job. La MTU di collegamento è 256–4096 byte (tipicamente 4096); la MTU di percorso è negoziata end-to-end. I livelli di servizio (SL) sono mappati sulle VL per separare le classi di traffico, e l'instradamento adattivo può deviare i flussi attorno ai collegamenti congestionati.

Il subnet manager

Esattamente un subnet manager (SM) è attivo per ogni subnet (gli altri restano in standby). Si occupa di:

  1. Scoprire la topologia percorrendo la fabric con pacchetti di gestione a instradamento diretto (SMP su VL15/QP0) — ogni switch e ogni porta HCA.
  2. Assegnare i LID e configurare le porte (velocità, larghezza, MTU, arbitraggio VL, PKey).
  3. Calcolare le rotte — min-hop, up-down, fat-tree, dragonfly+, instradamento adattivo — e programmare la tabella di forwarding lineare di ogni switch.
  4. Eseguire scansioni periodiche e in risposta ai trap (porta up/down), reinstradando attorno ai guasti.
  5. Eseguire il subnet administrator (SA), che risponde alle query di percorso degli host.

OpenSM (open source) e i fabric manager dei produttori (UFM) lo implementano; il fabric manager è anche il punto in cui vengono raccolti, su tutta la flotta, gli errori di porta, i risultati della negoziazione di velocità/larghezza del collegamento e la DDM dell’ottica (Affidabilità e monitoraggio dei collegamenti).

Negoziazione del collegamento

All’attivazione del collegamento le due estremità negoziano la larghezza (1x/2x/4x) e la velocità (rate per lane) al valore comune più alto. Un collegamento che si attiva a 2x, o di una generazione più lento del previsto, è l’equivalente InfiniBand del caso Ethernet «collegamento a 10G invece che a 25G»: la fibra o il laser di una lane, un cavo al limite, oppure una generazione di ricetrasmettitore non corrispondente (Velocità e rate). Il fabric manager riporta lo stato negoziato; ibstat / ibportstate lo mostrano su un host.

Strumenti di gestione e diagnostica

StrumentoScopo
ibstat, ibstatusstato locale della porta, rate, larghezza, LID
ibnetdiscoverdump della topologia
ibdiagnetverifica su tutta la fabric: errori, mismatch di velocità/larghezza, GUID duplicati, informazioni sul cavo
perfquery, ibqueryerrorscontatori per porta: errori di simbolo, cadute del collegamento, recupero del collegamento, errori di ricezione di porta, overrun eccessivo del buffer, pacchetti scartati su VL15, contatori FEC
mlxlink, mlxcablesdettagli PHY per porta, ed EEPROM di cavo/ricetrasmettitore, DDM, istogramma FEC
ibportstateforza velocità/larghezza, resetta una porta

Gli errori di simbolo e i recuperi del collegamento sono i contatori del livello fisico — l’equivalente di CRC/FEC in Ethernet, legati alla potenza Rx e alla pulizia (Fabric).

InfiniBand vs RoCE in un paragrafo

RoCE v2 trasporta lo stesso verbs/RDMA su UDP/IP/Ethernet; sostituisce il subnet manager con il routing IP e le PKey con le VLAN, e sostituisce il controllo di flusso a crediti con PFC/ECN (DCQCN) — che deve essere configurato correttamente per essere lossless (Ethernet lossless, Interconnessioni). I ricetrasmettitori sono fisicamente gli stessi; cambiano solo la codifica dell’identità e le policy dell’host.

In CodingBox

I moduli InfiniBand si leggono come qualsiasi QSFP/OSFP: identità (compresi i bit di rate InfiniBand nel byte 164 di SFF-8636, o le applicazioni CMIS), DDM e checksum per lane in Check transceiver e DDM. Una porta che negozia al di sotto della propria velocità nominale merita una lettura al banco di entrambe le estremità.


Se trovi un’imprecisione o un errore in questo articolo, seleziona il passaggio corrispondente e premi Ctrl+Enter per .