Découvrez comment RDMA permet des transferts de données ultra-rapides et à faible latence entre serveurs, en déchargeant le CPU et en surpassant les limites du TCP/IP. Explorez ses principes, variantes (InfiniBand, RoCE) et cas d'usage dans les data centers, le calcul haute performance ou les clusters IA.
Les serveurs modernes doivent régulièrement transférer d'énormes volumes de données entre nœuds de calcul. Lors d'une transmission réseau classique, une grande partie de ce travail passe par le système d'exploitation et le processeur : les données sont copiées entre buffers, traitées par la pile réseau puis seulement envoyées à un autre serveur. À faible charge, cela reste presque invisible, mais dans les centres de données, ces opérations supplémentaires commencent à impacter la latence et la charge CPU. RDMA bouleverse cette approche. Cette technologie permet à l'adaptateur réseau de déplacer les données directement entre les mémoires de deux serveurs, sans solliciter le processeur principal pour chaque bloc transféré. Résultat : moins de copies, une charge CPU réduite et une latence minimale pour les échanges de données.
L'acronyme RDMA signifie Remote Direct Memory Access, ou accès direct à la mémoire à distance. L'idée principale est de permettre au matériel réseau d'un ordinateur de transférer des données directement dans une zone spécifique de la RAM d'un autre ordinateur, autorisée au préalable.
Cette approche diffère fondamentalement de l'échange réseau traditionnel. Normalement, les applications transmettent les données au système d'exploitation, qui les fait passer par la pile réseau, les buffers système, le pilote de carte réseau avant de les envoyer sur le réseau. Côté réception, le processus s'effectue en sens inverse.
Chacune de ces étapes prend du temps. De plus, les données sont souvent copiées plusieurs fois entre la mémoire utilisateur et celle du noyau. Quand un serveur traite des milliers ou des millions d'opérations réseau, ces actions supplémentaires consomment une part non négligeable des ressources de calcul.
RDMA simplifie ce parcours. Une carte réseau compatible, appelée souvent RNIC (RDMA Network Interface Card), prend en charge le déplacement des données entre la mémoire et le réseau en autonomie grâce au mécanisme DMA (Direct Memory Access). Ainsi, le matériel interagit avec la RAM sans intervention manuelle du processeur pour chaque bloc.
De là découlent deux propriétés majeures de RDMA : zero-copy et kernel bypass.
Il ne faut toutefois pas prendre au pied de la lettre l'expression " RDMA fonctionne sans le processeur " : le CPU demeure essentiel pour lancer les applications, configurer les connexions, enregistrer la mémoire et orchestrer les opérations. RDMA décharge simplement le processeur des tâches répétitives de copie et traitement lors du transfert.
La technologie est ainsi particulièrement intéressante là où la latence est critique, en plus de la bande passante, comme dans les calculs haute performance, les stockages distribués, les bases de données à grande échelle ou les clusters de calcul.
Pour que RDMA accède à la RAM directement, il ne suffit pas à l'application d'indiquer une adresse mémoire : une zone doit d'abord être enregistrée et placée sous le contrôle de l'adaptateur RDMA.
Lors de cette étape, l'OS verrouille les pages mémoire concernées et informe l'adaptateur réseau de leur emplacement physique, garantissant ainsi l'accès via DMA indépendamment des adresses virtuelles de l'application. La zone enregistrée se voit attribuer des clés d'accès, limitant les fragments accessibles localement ou à distance : RDMA ne confère donc pas un accès libre à toute la RAM d'un autre serveur.
Une fois la mémoire préparée, l'application crée des files d'opérations et établit la connexion avec le nœud distant. Dès lors, la majorité des transferts de données est prise en charge par l'adaptateur réseau.
Le schéma simplifié est le suivant :
Quand un serveur doit envoyer un grand bloc de données, l'application inscrit l'opération dans la file d'envoi, précisant à l'adaptateur où se trouvent les données et où les transmettre. L'adaptateur lit ensuite les données via DMA, assemble les paquets et les expédie à la machine distante. Côté réception, l'adaptateur RDMA écrit directement dans la RAM préalablement allouée.
Le processeur n'intervient que pour initier l'opération, puis peut passer à d'autres tâches.
L'échange entre application et adaptateur s'effectue via des files (queues) : Send Queue pour les opérations à exécuter, Completion Queue pour le retour d'informations sur les actions terminées. L'application vérifie cette dernière pour savoir si la transmission est achevée. Ce modèle permet de traiter de nombreuses opérations réseau sans solliciter constamment le noyau du système d'exploitation.
RDMA propose plusieurs modes d'échange :
La différence est importante pour l'architecture logicielle : RDMA Read et Write sont unilatéraux (le CPU distant n'a pas à intervenir activement), tandis que Send/Receive requiert plus de coordination, mais s'avère idéal pour les commandes, petits messages ou métadonnées.
C'est l'association entre DMA, mémoire enregistrée, files d'opérations et traitement matériel des échanges réseau qui permet à RDMA de réduire la latence, le nombre de copies et la charge sur le processeur.
La différence entre RDMA et un réseau traditionnel réside surtout dans le chemin suivi par les données :
Avec TCP, même optimisé, chaque échange requiert plusieurs copies entre mémoire utilisateur et buffers noyau. RDMA, grâce au zero-copy, transmet les données directement depuis la mémoire préparée. Autre différence : le nombre de passages entre application utilisateur et noyau OS. Chaque appel système et changement de contexte coûte du temps ; kernel bypass permet à l'application RDMA de dialoguer plus directement avec l'adaptateur réseau.
L'avantage de RDMA est particulièrement marqué lors de transferts de grandes quantités de données à haute fréquence : la baisse de charge CPU permet au serveur de consacrer plus de ressources à son activité principale (base de données, calculs scientifiques, requêtes GPU...).
La latence diminue elle aussi, car le système évite de copier et de traiter les données à chaque étape logicielle. Cependant, RDMA ne remplace pas totalement TCP : les réseaux TCP/IP restent plus faciles à déployer, universellement compatibles et adaptés à la majorité des services web et du trafic utilisateur.
RDMA nécessite un matériel compatible, un support logiciel spécifique et une infrastructure réseau soigneusement configurée, surtout avec RoCE. Le gain est donc crucial là où chaque microseconde de latence et chaque pourcentage de charge CPU comptent pour la performance générale.
RDMA n'est pas un câble ou protocole réseau unique, mais un ensemble de mécanismes de transfert direct de mémoire pouvant fonctionner sur différentes technologies. Les plus courantes sont InfiniBand et RoCE, iWARP étant plus rare.
Conçu pour les systèmes de calcul haute performance, InfiniBand met la latence minimale et le débit maximal au cœur de son architecture. RDMA y est natif, ce qui explique sa large adoption dans les supercalculateurs, clusters HPC et grandes infrastructures de calcul. InfiniBand implique une architecture réseau dédiée avec ses propres adaptateurs (HCA), commutateurs et outils de gestion, optimisés dès l'origine pour le transfert haut débit. Sa contrepartie : il requiert un équipement spécifique et une infrastructure séparée, ce qui alourdit les coûts et la complexité.
Pour bénéficier des avantages de RDMA sans passer à InfiniBand, la technologie RoCE (RDMA over Converged Ethernet) apporte la sémantique RDMA sur les réseaux Ethernet classiques avec cartes et commutateurs compatibles.
En pratique, il ne suffit pas d'installer des cartes compatibles et d'activer RoCE : le réseau doit être finement réglé (gestion des surcharges, files d'attente, priorités du trafic, QoS, ECN, Priority Flow Control). Le trafic RDMA étant sensible aux pertes et à la congestion, une mauvaise configuration annule l'avantage de la faible latence.
RoCE séduit donc tout particulièrement les grands data centers, permettant le transfert direct de mémoire entre serveurs tout en conservant Ethernet comme socle réseau.
iWARP existe aussi, apportant RDMA sur TCP/IP, compatible avec les réseaux Ethernet routés classiques et moins exigeant sur la qualité du réseau. Cependant, InfiniBand et RoCE restent les choix privilégiés dans les clusters haute performance.
RDMA n'a pas d'utilité dans tous les réseaux. Pour un serveur web livrant des pages sur Internet, la complexité supplémentaire ne se justifie généralement pas. Mais dès lors que des serveurs échangent d'importants volumes de données et que chaque microseconde compte, la technologie prend tout son sens.
Exemple classique : le calcul haute performance. Dans un cluster scientifique ou d'ingénierie, une tâche peut être répartie simultanément sur des centaines de nœuds, nécessitant échanges et synchronisations fréquents. Plus le temps réseau augmente, moins l'ajout de nouveaux serveurs est rentable. RDMA réduit ces coûts et accélère les échanges, expliquant son adoption ancienne en HPC et supercalculateurs.
Autre cas d'usage : les systèmes de stockage distribués. Un serveur peut accéder à un disque situé sur un autre nœud presque aussi vite qu'en local, principe essentiel à certaines implémentations NVMe over Fabrics, où RDMA transporte commandes et données NVMe en réseau avec un minimum de surcoût.
On retrouve également RDMA dans les bases de données à forte charge, traitements massifs de données ou applications distribuées où diminuer la latence réseau accélère directement les opérations.
Le rôle de RDMA est devenu encore plus central avec l'essor des clusters géants d'intelligence artificielle. L'entraînement d'un modèle volumineux requiert parfois des milliers de GPU, chaque accélérateur n'effectuant qu'une partie du calcul : il faut donc synchroniser et échanger les résultats en continu. Dès que le réseau n'arrive plus à suivre, les GPU, très coûteux, restent inactifs en attente de données. Le simple fait d'avoir des cartes rapides ne suffit plus : RDMA limite les surcoûts réseau, tandis qu'InfiniBand et RoCE servent d'ossature pour les liaisons à très haut débit.
Pour approfondir le rôle clé du réseau dans ces clusters GPU massifs, consultez le dossier AI Fabric : comment construire un réseau pour l'entraînement de réseaux neuronaux à l'échelle de milliers de GPU.
D'autres technologies existent pour GPU, par exemple GPUDirect RDMA, permettant à un adaptateur réseau compatible d'échanger des données directement avec la mémoire du GPU, évitant le passage par la RAM système. Cela réduit encore les déplacements inutiles dans les calculs massifs.
L'emplacement des composants mémoire reste aussi crucial : dans les architectures multiprocesseurs, l'accès aux différentes banques RAM présente des latences variables. Un mauvais placement des adaptateurs réseau, CPU et mémoire peut limiter les gains, même avec un réseau ultra-rapide. Ce principe est détaillé dans l'article Architecture NUMA des serveurs : comprendre son fonctionnement et son impact.
En résumé, RDMA apporte la plus grande valeur quand trois critères sont réunis : gros volume de données, latence critique et coût CPU prohibitif pour gérer la pile réseau. Pour un réseau d'entreprise classique, il s'agirait d'une complexité inutile ; pour un supercalculateur, un stockage distribué ou un cluster GPU, c'est un facteur déterminant de performance.
RDMA résout l'un des principaux défis des systèmes serveur haute performance : le processeur n'a plus à intervenir à chaque étape du transfert réseau. Après la configuration de la connexion et l'enregistrement de la mémoire, tout repose sur l'adaptateur RDMA, qui déplace l'information via DMA, directement entre les mémoires des nœuds.
Ses avantages majeurs : faible latence, zero-copy, kernel bypass et réduction de la charge CPU. L'effet est particulièrement sensible dans les clusters HPC, stockages distribués, bases de données à forte charge et infrastructures d'entraînement de grands modèles IA.
RDMA ne remplace cependant pas les réseaux TCP/IP : pour la plupart des applications, la polyvalence d'Ethernet et TCP prime sur le gain de quelques microsecondes. RDMA requiert un matériel dédié, des logiciels spécialisés et, pour RoCE, une configuration réseau soignée.
Il faut donc choisir RDMA non pour maximiser la bande passante, mais quand le vrai goulot d'étranglement du système est l'échange de données entre serveurs. Dans ces situations, alléger la CPU et offrir un chemin direct entre les mémoires des nœuds de calcul peut s'avérer bien plus efficace qu'une simple mise à niveau des processeurs ou interfaces réseau.