Canonical ha publicat una guia tècnica sobre RDMA over Converged Ethernet (RoCE), la tecnologia que permet fer servir el model d’accés remot a memòria d’InfiniBand sobre xarxes Ethernet normals. La idea té pes perquè les càrregues d’entrenament d’IA i d’HPC mouen quantitats enormes de dades entre nodes, i cada microsegon de latència compta quan tens centenars de GPU esperant-se les unes a les altres.
Què resol RoCE
RDMA deixa que una màquina llegeixi o escrigui directament a la memòria d’una altra sense passar pel kernel ni per còpies intermèdies. Tradicionalment això demanava InfiniBand, un teixit de xarxa propi i car. RoCE conserva la mateixa interfície de programació (les verbs de RDMA) però canvia el transport per Ethernet estàndard, el que ja tens al centre de dades.
Hi ha dues variants i la diferència és pràctica. RoCEv1 viu dins d’un únic domini de difusió de capa 2, així que el seu abast és limitat. RoCEv2 encapsula el trànsit RDMA en UDP/IP, cosa que el fa enrutable a capa 3 i compatible amb topologies leaf-spine. Per això els desplegaments de producció s’estandarditzen en RoCEv2: escala a diversos racks sense trencar-se.
El problema d’Ethernet
Ethernet lliura paquets en mode “best-effort”, és a dir, pot descartar-los quan hi ha congestió. A RDMA això no li agrada gens, perquè espera una xarxa sense pèrdues. Canonical detalla dos mecanismes que arreglen el desajust:
- Priority Flow Control (PFC) atura el trànsit abans que es desbordi la cua del switch. El preu és el head-of-line blocking: trànsit no relacionat queda bloquejat darrere del que va provocar la pausa.
- Explicit Congestion Notification (ECN) marca els paquets abans que les cues s’omplin, de manera que els extrems baixen el ritme d’enviament de forma gradual.
Sobre aquestes senyals es construeixen Data Center Bridging (DCB) i DCQCN per regular la taxa d’enviament de forma dinàmica.
El patró de trànsit de RoCE és molt sincronitzat i a ràfegues, sobretot en entrenament d’IA. Quan diversos emissors apunten al mateix receptor alhora apareix l’incast: els búfers del switch s’omplen de cop, es descarten paquets i això paralitza les cues de parells (queue pairs), generant latències que es propaguen per tota la càrrega de treball.
Les alternatives que vénen
La guia repassa el que es mou més enllà de RoCE clàssic. NVIDIA Spectrum-X ajunta switches Spectrum, DPUs BlueField, enrutament adaptatiu i telemetria en una plataforma Ethernet pensada per a RoCE. L’Ultra Ethernet Consortium, format el 2023 sota la Linux Foundation, aposta per millor senyalització de congestió, multipathing, packet spraying i tolerància a lliurament desordenat. El Falcon de Google afegeix retransmissió assistida per maquinari i control de congestió programable. I el Scale-Up Ethernet (SUE) de Broadcom fa servir control de flux per crèdits i col·lectius dins de la xarxa per a acceleradors molt acoblats.
Què hi posa Ubuntu
Aquí hi ha el que t’interessa si desplegues això. Ubuntu porta la pila rdma-core amb libibverbs, que dona la interfície de programació RDMA consistent, i els drivers de kernel dels principals fabricants: mlx5 (NVIDIA/Mellanox ConnectX), irdma (Intel E810), bnxt_re (Broadcom NetXtreme-E) i els ice/ixgbe d’Intel. SR-IOV i els VF representors estan disponibles de forma nativa.
Per a l’operativa diària tens ethtool i devlink-health per veure les capacitats de la NIC, tc amb mqprio per modelar classes de trànsit i activar PFC, i cgroups amb CPU pinning per mantenir rutes de dades predictibles. Els comptadors a /sys/class/infiniband serveixen per a monitoratge. En orquestració, MAAS provisiona el maquinari nu i Juju gestiona el cicle de vida del firmware de NIC i la configuració de xarxa, amb suport per a operadors SR-IOV, xarxes secundàries amb Multus i el NVIDIA Network Operator.
Tota aquesta pila ve de sèrie a les versions LTS, així que no has de pedaçar ni recompilar res per començar a provar RoCE. A la fitxa d’Ubuntu hi tens la resta de versions i el detall de suport a llarg termini.
Font
Article original What is RDMA over Converged Ethernet (RoCE)? publicat per Canonical al blog d’Ubuntu.
