Topologies sans switch : maillage, anneau et connexion directe pour petits clusters IA
Un switch 400 GbE à 32 ports, avec les optiques, les câbles breakout et les licences logicielles nécessaires pour vraiment l'exploiter, se situe entre 40 k€ et 80 k€ à la mi-2026, et un switch InfiniBand NDR à 64 ports fait pire. Pour un client qui monte un rig d'entraînement de deux à quatre nœuds, le switch peut coûter plus cher que les GPU de l'un des nœuds. Il ajoute aussi un saut de latence, un point de défaillance unique, un cycle de vie de firmware distinct et, si vous êtes en RoCE, l'équivalent d'un petit projet de réglage PFC/ECN.
Ce dont presque personne ne parle, c'est qu'en dessous d'environ huit nœuds, vous n'avez absolument pas besoin de switch. Vous pouvez câbler les cartes réseau directement entre elles, supprimer complètement le switch et obtenir quelque chose de plus simple, de moins cher et d'un peu plus rapide. Ce que presque personne n'admet, c'est qu'au-delà d'environ huit nœuds, le sans-switch s'effondre : le câblage, le nombre de ports et l'exploitation cessent d'être défendables. Cet article cartographie honnêtement cette plage.
Cet article complète N04 (topologies commutées). Lisez N06 pour les calculs de latence sur lesquels repose l'avantage du sans-switch, et K07 pour voir à quoi ressemble un nœud de base — la brique que cet article relie.
Les arguments en faveur du sans-switch
Quatre bénéfices offerts gratuitement par la suppression du switch :
- Zéro latence de switch. Un switch Ethernet IA moderne en cut-through consomme 400–600 ns par saut. Un switch InfiniBand NDR reste sous les 100 ns. Un câble direct de carte à carte n'ajoute que le délai de propagation (~5 ns/m sur cuivre, autant sur fibre), et rien d'autre. Sur un ping-pong entre deux nœuds, la latence unidirectionnelle passe de ~2 µs à ~1.2–1.5 µs.
- Zéro coût de switch. Une liaison directe entre deux nœuds, c'est deux cartes réseau et un câble DAC. Un triangle à trois nœuds, c'est trois cartes et trois DAC. L'économie en capex, même face à un petit switch 100 GbE avec optiques QSFP28, représente une vraie somme sur une petite configuration — 10 k€ à 30 k€ réinjectés dans les GPU.
- Aucun casse-tête PFC/ECN. Une liaison directe de carte à carte est point à point : le contrôle de flux se résume à une conversation entre deux parties et le PFC se réduit à « dire au pair de s'arrêter ». Aucune pathologie de propagation de pauses à l'échelle du fabric, puisqu'il n'y a pas de fabric.
- Une seule classe d'équipement à déboguer. Quand quelque chose casse sur un fabric sans switch, la liste des suspects se limite à deux cartes réseau, un câble et les pilotes noyau des deux côtés. Un espace de recherche petit et fini.
Le cas à deux nœuds : branchez-les l'un à l'autre
C'est la configuration de cluster IA la plus propre qui soit, et celle où le sans-switch est sans ambiguïté le bon choix.
- 8× RTX 5090
- ConnectX-7 OSFP (400 Gb/s)
- 8× RTX 5090
- ConnectX-7 OSFP (400 Gb/s)
Liaison directe entre deux nœuds : un DAC OSFP passif, pas de switch, ~0.8–1.2 µs de latence RDMA, ~50 GB/s de débit utile par direction.
Un seul DAC OSFP entre deux cartes ConnectX-7 à 400 Gb/s. Voilà tout le fabric inter-nœuds. Les mêmes cartes qui feraient face à un switch dans une configuration plus grande se font simplement face. Les verbs RDMA fonctionnent, NCCL les détecte automatiquement, GPUDirect RDMA tourne sans modification.
Ce que vous obtenez : ~50 GB/s utiles par direction, une latence RDMA brute inférieure à la microseconde (ib_send_lat tourne autour de 0.8–1.2 µs), un seul câble. Aucun problème d'agrégation, puisqu'il n'y a rien à agréger. Aucune sursouscription, puisqu'il n'y a pas de point de fan-out.
Pour une paire d'entraînement à deux nœuds — la configuration « j'ai dépassé la capacité d'une seule machine » la plus fréquente chez nos clients — c'est la bonne réponse. Oubliez le switch. Branchez-les ensemble. Investissez l'économie dans un étage NVMe plus généreux ou dans un second port réseau pour la redondance.
Un raffinement pratique : utilisez une ConnectX-7 à deux ports et faites passer deux DAC 200 Gb/s en parallèle entre les machines, avec NCCL configuré pour exploiter les deux HCA (NCCL_IB_HCA=mlx5_0,mlx5_1). Vous perdez un peu de pic par flux, mais vous gagnez une redondance de chemin et un comportement légèrement meilleur sur les petits messages grâce aux paires de files parallèles. C'est notre configuration par défaut sur les montages à deux nœuds.
Trois et quatre nœuds : triangle et K₄
Trois nœuds, c'est le plus petit cas où la topologie commence à compter. Les options :
- Chaîne linéaire (A-B-C). Deux câbles. Diamètre 2. Le nœud B devient un point chaud : tout le trafic de A vers C le traverse. À éviter.
- Triangle (maillage complet). Trois câbles. Diamètre 1. Chaque nœud dispose de deux ports. Chaque flux ne fait qu'un saut. C'est la bonne réponse.
À gauche : triangle (K₃) — 3 nœuds, 3 câbles, diamètre 1. À droite : maillage complet K₄ — 4 nœuds, 6 câbles, diamètre 1. Chaque paire est directement connectée.
C'est à quatre nœuds que cela devient intéressant. Le maillage complet — le graphe complet K₄ — compte six liens au total, trois ports par nœud et un diamètre de 1. Chaque nœud atteint tous les autres en exactement un saut. Le calcul du câblage :
| Nœuds | Liens en maillage complet | Ports par nœud | Diamètre |
|---|---|---|---|
| 2 | 1 | 1 | 1 |
| 3 | 3 | 2 | 1 |
| 4 | 6 | 3 | 1 |
| 5 | 10 | 4 | 1 |
| 6 | 15 | 5 | 1 |
| 7 | 21 | 6 | 1 |
| 8 | 28 | 7 | 1 |
En maillage complet, le nombre de ports par nœud vaut N-1, ce qui explique pourquoi cette approche implose rapidement. À huit nœuds, il faut sept ports par machine : c'est la fin du chemin praticable sur un unique slot PCIe Gen5 x16.
Quand un maillage complet à quatre nœuds l'emporte-t-il sur un petit switch ? Précisément lorsque vous disposez de 4× nœuds Kentino AI 128 pour l'inférence et que vous les voulez étroitement couplés, que vous êtes en RoCE et ne voulez pas de PFC à travers un switch, et que les 15 k€ à 25 k€ supplémentaires d'un switch 100 GbE avec optiques pèsent dans le budget.
Quand un petit switch l'emporte-t-il, même à quatre nœuds ? Lorsque vous pourriez ajouter un cinquième nœud au trimestre suivant. Ajouter un nœud à un maillage K₄ oblige à recâbler chaque nœud existant pour y ajouter les nouveaux ports. Un switch, lui, a des ports libres : il suffit de brancher.
Le cas à 8 nœuds : l'hypercube, avec un astérisque
Le 3-cube (Q₃) — un hypercube de dimension 3 — est la disposition sans switch classique pour huit nœuds. Chaque nœud occupe un sommet du cube ; chaque arête du cube est une liaison directe. Trois ports par nœud, douze liens au total, diamètre 3.
| Propriété | Valeur |
|---|---|
| Nœuds | 8 |
| Liens | 12 |
| Ports par nœud | 3 |
| Diamètre | 3 |
| Bande passante de bisection | 4 liens |
Pour être honnête : c'est rare en production. Cela fonctionne, et le pire cas à diamètre 3 reste acceptable pour la plupart des collectives, mais le schéma de câblage est réellement déroutant pour quiconque ne l'a pas monté, le dépannage impose de comprendre l'étiquetage en code de Gray, et un petit switch 200 GbE à 16 ports se situe désormais dans la même gamme de prix que les ports réseau et câbles supplémentaires. L'hypercube à 8 nœuds est plus intéressant comme exemple pédagogique que comme produit que nous livrons. À huit nœuds, notre recommandation par défaut reste le switch.
L'anneau : bête, simple et étonnamment pertinent
Oubliez la minimisation du diamètre. L'anneau ne relie chaque nœud qu'à ses deux voisins : A-B-C-D-...-A. Deux ports par nœud, quelle que soit la taille du cluster. N liens au total. Diamètre N/2.
Cela paraît catastrophique — diamètre 4 sur 8 nœuds, diamètre 16 sur 32 nœuds. Pourquoi n'est-ce pas toujours une erreur ?
Parce que le ring allreduce de NCCL se projette exactement sur un anneau physique. L'algorithme fait circuler chaque bloc de données une fois autour de l'anneau par phase ; si la topologie physique est déjà un anneau, l'algorithme tourne au débit nominal d'un lien, sans gaspiller de bande passante. Pour les messages de taille moyenne à grande, NCCL retient par défaut l'anneau et non l'arbre, car l'anneau atteint la borne de bande passante optimale : 2(N-1)/N × link bandwidth pour l'allreduce. Le diamètre de la topologie physique n'a pas d'importance sur les gros messages — ce qui compte, c'est que tous les liens soient utilisés en parallèle, et l'anneau le fait parfaitement.
Le cas pragmatique où l'anneau physique est la bonne réponse sans switch, ce sont les rigs d'entraînement de 4 à 8 nœuds où chaque nœud dispose déjà d'exactement deux ports RDMA. Le hic : l'anneau n'offre aucune redondance de chemin. Un seul câble défectueux coupe le cluster en deux.
Quand le sans-switch l'emporte sur un petit switch, en chiffres
| Topologie | Nœuds | Liens | Ports/nœud | Diamètre | Bisection (liens) |
|---|---|---|---|---|---|
| Liaison directe | 2 | 1 | 1 | 1 | 1 |
| Triangle (K₃) | 3 | 3 | 2 | 1 | 2 |
| Maillage complet K₄ | 4 | 6 | 3 | 1 | 4 |
| Anneau à 4 nœuds | 4 | 4 | 2 | 2 | 2 |
| Anneau à 8 nœuds | 8 | 8 | 2 | 4 | 2 |
| Cube Q₃ à 8 nœuds | 8 | 12 | 3 | 3 | 4 |
| Q₄ à 16 nœuds | 16 | 32 | 4 | 4 | 8 |
| Étoile à 8 nœuds (commutée) | 8 | 8 | 1 | 2 | dépend du switch |
Comparatif de prix approximatif pour un fabric à 8 nœuds, mi-2026 (EUR HT) :
| Approche | Cartes réseau nécessaires | Câbles | Switch | Fourchette totale |
|---|---|---|---|---|
| 8 nœuds, étoile 200 GbE à un seul switch | 8× 200 GbE monoport | 8× DAC | ~18–28 k€ | 25–35 k€ |
| Anneau à 8 nœuds, sans switch | 8× 200 GbE à deux ports | 8× DAC | aucun | 15–22 k€ |
| Cube Q₃ à 8 nœuds, sans switch | 8× équivalent trois ports | 12× DAC | aucun | 18–26 k€ |
| Maillage K₄ à 4 nœuds, sans switch | 4× équivalent trois ports | 6× DAC | aucun | 9–13 k€ |
| 4 nœuds, petit switch 100 GbE | 4× 100 GbE monoport | 4× DAC | ~8–12 k€ | 11–16 k€ |
| 2 nœuds en direct | 2× 400 GbE monoport | 1× DAC | aucun | 3–5 k€ |
Le point de bascule où le switch devient rentable se situe autour de 6 à 8 nœuds, selon le palier de bande passante et vos intentions de croissance.
La liaison montante : la partie que l'on oublie
Un fabric de données sans switch se suffit à lui-même en interne. Il n'est, en revanche, connecté à rien. Le cluster a toujours besoin d'une liaison montante pour récupérer jeux de données et modèles depuis le stockage de l'entreprise, pour le SSH depuis les stations de travail des développeurs, la télémétrie vers Prometheus/Grafana, la gestion IPMI/BMC et le trafic du registre de conteneurs.
Schéma A — chaque nœud dispose d'une carte réseau de gestion distincte. Chaque nœud embarque un petit port 25 GbE (voire 10 GbE) relié à un switch de gestion bon marché, totalement indépendant du fabric RDMA. C'est presque toujours la bonne réponse. Le fabric RDMA est un environnement stérile, sans perte et finement réglé ; le plan de gestion est un réseau Ethernet ordinaire avec du trafic ordinaire. Mélangez les deux et le trafic de gestion perturbera vos collectives.
Schéma B — nœud de liaison montante dédié. Un nœud du cluster dispose d'un port supplémentaire vers l'extérieur. Les autres nœuds atteignent le monde extérieur en routant par ce nœud. Cela convient aux budgets serrés et aux petites installations de laboratoire, mais le nœud de liaison devient un goulot d'étranglement pour la lecture des jeux de données et un point de défaillance unique pour l'accès à la gestion.
Le mur infranchissable vers 16 nœuds
Le sans-switch meurt au-delà de 16 nœuds pour trois raisons indépendantes, dont chacune suffit :
-
Le nombre de ports par nœud. Le maillage complet exige
N-1ports par nœud. L'hypercube en exigelog₂(N). Même cette croissance logarithmique impose 4 ports par nœud à 16 nœuds, ce qui est à la limite de la densité réseau praticable sur un seul slot PCIe Gen5 x16. À 32 nœuds, il faut 5 ports par nœud — plusieurs slots et plusieurs placements NUMA à gérer. - La combinatoire du câblage. Un maillage complet K₄ à 16 nœuds compte 120 câbles. Un hypercube Q₄ à 16 nœuds en compte 32. Dans les deux cas, l'étiquetage, la documentation et l'accès physique à chaque câble comptent. Un seul câble mal branché dans un hypercube de 32 câbles prend des heures à localiser.
- L'exploitation au quotidien. Remplacer une carte réseau défaillante sur un fabric sans switch impose d'identifier les N-1 (ou log N) câbles qui y étaient reliés et de rebrancher chacun sur un port précis de la carte de remplacement. L'écart de MTTR face à une solution commutée est bien réel.
En résumé, honnêtement : le sans-switch est pertinent pour 2 à 4 nœuds dédiés, défendable pour 5 à 8 nœuds avec un engagement clair de « nous ne grandirons pas », et une erreur à partir de 9 nœuds ou plus. À 9 nœuds et au-delà, achetez un switch.
Deux configurations concrètes qui méritent d'être décrites
2× Kentino AI 256 Turin Dual, en liaison directe, 400G. Deux nœuds EPYC Turin à 8 GPU (5090 ou RTX Pro 6000 Blackwell), chacun équipé d'une ConnectX-7 400 GbE / NDR monoport, et un DAC OSFP passif de 3 m entre les deux. Coût matériel inter-nœuds total : ~4 k€. Busbw allreduce NCCL sur les gros messages : ~45 GB/s. Convient à l'inférence tensor-parallel à deux voies d'un modèle dense 405B (couches réparties sur les deux machines), ou au fine-tuning d'un 70B qui ne tient pas tout à fait sur une seule machine. Nous avons livré plusieurs variantes de cette configuration. Elle est banale, elle fonctionne, et elle coûte un ordre de grandeur de moins que l'équivalent raccordé à un switch.
4× Kentino AI 128 en maillage complet K₄, 100G. Quatre nœuds EPYC monosocket équipés chacun de 4× RTX Pro 6000 Blackwell. Chaque nœud embarque l'équivalent de trois ports réseau (une carte à deux ports plus une monoport, ou une carte à quatre ports dont un reste inutilisé), fabric DAC 100 GbE. Six câbles au total. Bande passante de bisection : 400 Gb/s. Utilisé pour l'inférence tensor-parallel d'un modèle de classe 70B avec découpage en quatre et passage complet des activations entre chaque paire. Supprime le switch comme point de défaillance unique du service d'inférence, et le budget du client est parti dans les GPU plutôt que dans de l'équipement de commutation. Contrepartie : figé à quatre nœuds ; toute croissance impose de repenser l'architecture.
Quand le sans-switch l'emporte
- 2 nœuds — toujours sans switch. Aucun argument sérieux en faveur d'un switch.
- 3 nœuds — triangle sans switch. Trois câbles, chaque nœud à un saut. Trivial.
- 4 nœuds — K₄ sans switch si vous ne comptez pas grandir, sinon un petit switch. Les deux se défendent ; l'hypothèse de croissance tranche.
- 5 à 8 nœuds — généralement commuté. L'anneau est plausible pour les charges limitées par la bande passante, l'hypercube pour les plus déterminés. Les deux sont plus difficiles à justifier que l'achat d'un switch à 16 ports.
- 9 nœuds ou plus — commuté. Toujours. Au-delà, le sans-switch est une erreur déguisée en économie.
Si vous dimensionnez un petit cluster IA et que la ligne « switch » fait mal à la nomenclature :
- Comptez les nœuds dont vous avez réellement besoin. Pas « pour les cinq prochaines années ». Cette année et l'année prochaine. Si la réponse honnête est 2 à 4, la voie sans switch est réelle et mérite d'être chiffrée.
- Cartographiez l'agencement des cartes réseau. La ConnectX-7 à deux ports 200 Gb/s QSFP112 est la référence de liaison directe la plus courante dans nos configurations 2026. La version à quatre ports SFP56 est l'option pour un nombre de nœuds plus élevé, à une vitesse par port plus faible.
- Tranchez votre posture de croissance. S'il existe une chance sérieuse de dépasser 8 nœuds, achetez le petit switch tout de suite. Recâbler un maillage plus tard est réellement pénible.
- Prévoyez le plan de gestion séparément. Fabric de données sans switch, plan de gestion commuté sur du 10 GbE bon marché. Ne les regroupez pas sur un même jeu de câbles.
-
Lancez
nccl-testssur la topologie telle que construite avant de crier victoire. La sortieNCCL_DEBUG=INFOindique quels liens physiques NCCL utilise réellement ; recoupez-la avec le schéma. - Documentez le câblage. Photographies, étiquettes de ports, un schéma d'une page dans le rack. La première fois qu'une carte réseau lâchera à 2 h du matin, vous serez content.
Les articles à lire ensuite : N04 pour l'alternative commutée, N06 pour la dissection de la latence qui justifie l'avantage du sans-switch, N02 pour l'arbitrage InfiniBand contre RoCE qui détermine les cartes réseau à acheter, et K07 pour le nœud de base auquel tout cela se raccorde.
Cet article fait partie du Kentino Wiki, une série de référence sur le calcul IA, la robotique et les systèmes qui les relient. Commentaires et corrections bienvenus à info@kentino.com.