Topologias sem comutador: malha, anel e ligação direta em pequenos clusters de IA

Um switch 400 GbE de 32 portas, com os módulos óticos, os breakouts e as licenças de software necessários para o utilizar de facto, fica entre €40k e €80k em meados de 2026, e um switch InfiniBand NDR de 64 portas é pior. Para um cliente que monte um rig de treino de dois a quatro nós, o switch pode custar mais do que as GPU de um dos nós. Acrescenta ainda um salto de latência, um ponto único de falha, um ciclo de vida de firmware à parte e o equivalente a um pequeno projeto de afinação de PFC/ECN se estiver a usar RoCE.

O facto de que quase ninguém fala é que abaixo de cerca de oito nós não é preciso qualquer switch. É possível ligar as NIC diretamente umas às outras por cabo, dispensar por completo o switch e ficar com algo mais simples, mais barato e um pouco mais rápido. O facto que quase ninguém admite é que acima de cerca de oito nós a solução sem switch desmorona-se, e a cablagem, o número de portas e a operação deixam de ser defensáveis. Este artigo mapeia esse intervalo com honestidade.

É o complemento do artigo N04 (topologias com switch). Leia o N06 para a matemática da latência em que assenta a vantagem do sem switch, e o K07 para ver como é um nó base isolado — o bloco de construção que este artigo interliga.

Os argumentos a favor do sem switch

Quatro coisas que se ganham de graça ao remover o switch:

  1. Zero latência de switch. Um switch Ethernet de IA moderno em cut-through consome 400–600 ns por salto. Um switch InfiniBand NDR fica abaixo dos 100 ns. Um cabo direto entre NIC acrescenta apenas o atraso do próprio cabo (~5 ns/m em cobre, o mesmo em fibra) e mais nada. Num ping-pong entre dois nós, isto reduz a latência unidirecional de ~2 µs para ~1.2–1.5 µs.
  2. Zero custo de switch. Uma ligação direta entre dois nós são duas NIC e um DAC. Um triângulo de três nós são três NIC e três DAC. A poupança de capex face a um switch 100 GbE pequeno com ótica QSFP28 é dinheiro a sério num sistema pequeno — €10k–€30k que regressam às GPU.
  3. Sem dores de cabeça com PFC/ECN. Uma ligação direta entre NIC é ponto a ponto — o controlo de fluxo é uma conversa entre duas partes e o PFC reduz-se a «dizer ao par que pare». Não existe a patologia de propagação de pausas por toda a fabric, porque não há fabric.
  4. Uma só classe de equipamento para depurar. Quando algo falha numa fabric sem switch, a lista de suspeitos são duas NIC, um cabo e os controladores do kernel de ambos os lados. É um espaço de procura pequeno e finito.

O caso de dois nós: basta ligá-los um ao outro

É a montagem de cluster de IA mais limpa possível e aquela em que dispensar o switch é inequivocamente a opção certa.

Nó A — Kentino AI 256
  • 8× RTX 5090
  • ConnectX-7 OSFP (400 Gb/s)
⇄ DAC 400G (passivo, ≤3 m)
Nó B — Kentino AI 256
  • 8× RTX 5090
  • ConnectX-7 OSFP (400 Gb/s)

Ligação direta entre dois nós: um DAC OSFP passivo, sem switch, latência RDMA de ~0.8–1.2 µs, ~50 GB/s de débito útil por direção.

Um único DAC OSFP entre duas NIC ConnectX-7 a 400 Gb/s. É esta toda a fabric entre nós. As mesmas NIC que num sistema maior estariam viradas para um switch ficam viradas uma para a outra. Os verbs RDMA funcionam, o NCCL deteta a ligação automaticamente e o GPUDirect RDMA corre sem alterações.

O que se obtém: ~50 GB/s úteis por direção, latência RDMA bruta abaixo do microssegundo (ib_send_lat fica à volta de 0.8–1.2 µs), um cabo. Não há problema de agregação porque não há nada para agregar. Não há sobressubscrição porque não existe ponto de fan-out.

Para um par de treino de dois nós — o caso «já não caibo numa só máquina» mais comum na nossa base de clientes — esta é a resposta certa. Dispense o switch. Ligue-os um ao outro. Aplique o dinheiro poupado num nível NVMe maior ou numa segunda porta NIC para redundância.

Um refinamento prático: utilizar uma ConnectX-7 de porta dupla e correr dois DAC de 200 Gb/s em paralelo entre as máquinas, com o NCCL configurado para utilizar ambos os HCA (NCCL_IB_HCA=mlx5_0,mlx5_1). Perde-se um pouco de pico por fluxo, mas ganha-se redundância de caminho e um comportamento ligeiramente melhor com mensagens pequenas, graças aos pares de filas em paralelo. É a nossa opção por omissão em sistemas de dois nós.

Três e quatro nós: triângulo e K₄

Três nós é o caso mais pequeno em que a topologia começa a ter importância. As opções são:

  • Cadeia linear (A-B-C). Dois cabos. Diâmetro 2. O nó B é um ponto quente — todo o tráfego de A para C passa por ele. A evitar.
  • Triângulo (malha completa). Três cabos. Diâmetro 1. Cada nó tem duas portas. Cada fluxo é um só salto. É esta a resposta certa.
Triângulo (3 nós, K₃) A B C 3 ligações · 2 portas/nó · diâmetro 1 Malha completa K₄ (4 nós) A B D C 6 ligações · 3 portas/nó · diâmetro 1

À esquerda: triângulo (K₃) — 3 nós, 3 cabos, diâmetro 1. À direita: malha completa K₄ — 4 nós, 6 cabos, diâmetro 1. Todos os pares ligados diretamente.

É com quatro nós que a coisa fica interessante. A malha completa — o grafo completo K₄ — tem seis ligações no total, três portas por nó e diâmetro 1. Cada nó alcança qualquer outro em exatamente um salto. As contas da cablagem:

Nós Ligações em malha completa Portas por nó Diâmetro
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

O número de portas por nó numa malha completa é N-1, razão pela qual esta abordagem implode depressa. Com oito nós são precisas sete portas por máquina, o que é o fim do caminho prático numa única slot PCIe Gen5 x16.

Quando é que a malha completa de quatro nós bate um switch pequeno? Concretamente quando tem 4× nós Kentino AI 128 para inferência e os quer fortemente acoplados, quando usa RoCE e não quer PFC através de um switch, e quando os €15k–€25k adicionais de um switch 100 GbE com ótica pesam no orçamento.

Quando é que um switch pequeno ganha mesmo com quatro nós? Quando existe a hipótese de acrescentar um quinto nó no trimestre seguinte. Acrescentar um nó a uma malha K₄ obriga a recabar todos os nós existentes para acrescentar as novas portas. Um switch tem portas livres; basta ligar.

O caso de 8 nós: hipercubo, com um asterisco

O 3-cubo (Q₃) — um hipercubo de dimensão 3 — é a disposição sem switch de manual para oito nós. Cada nó ocupa um vértice de um cubo; cada aresta do cubo é uma ligação direta. Três portas por nó, doze ligações no total, diâmetro 3.

000 001 010 011 100 101 110 111 3-cubo Q₃: 8 nós · 12 ligações · 3 portas/nó · diâmetro 3 Etiquetas em código de Gray — cada aresta difere em exatamente um bit
Propriedade Valor
Nós 8
Ligações 12
Portas por nó 3
Diâmetro 3
Largura de banda de bissecção 4 ligações

A avaliação honesta: isto é raro em produção. Funciona, o pior caso de diâmetro 3 é aceitável para a maioria dos coletivos, mas o diagrama de cablagem é genuinamente confuso para quem não o montou, o diagnóstico exige perceber a etiquetagem em código de Gray e um switch 200 GbE pequeno de 16 portas está hoje na mesma faixa de preço que as portas NIC e os cabos adicionais. O hipercubo de 8 nós é mais interessante como exemplo pedagógico do que como algo que expedimos. Com oito nós, a nossa recomendação por omissão é um switch.

O anel: simplório, simples e surpreendentemente relevante

Esqueça a minimização do diâmetro. O anel liga cada nó apenas aos seus dois vizinhos: A-B-C-D-...-A. Duas portas por nó, independentemente da dimensão do cluster. N ligações no total. Diâmetro N/2.

A B C D H G F E → → → ← ← ← Anel de 8 nós: 8 ligações · 2 portas/nó · diâmetro 4 · o ring-allreduce do NCCL mapeia diretamente

Parece péssimo — diâmetro 4 com 8 nós, diâmetro 16 com 32 nós. Porque é que não está sempre errado?

Porque o ring allreduce do NCCL mapeia exatamente num anel físico. O algoritmo envia cada bloco de dados uma vez à volta do anel em cada fase; se a topologia física já for um anel, o algoritmo corre ao débito nominal de uma única ligação, sem largura de banda desperdiçada. Para mensagens médias a grandes, o NCCL usa por omissão o anel e não a árvore, porque o anel atinge o limite ótimo de largura de banda: 2(N-1)/N × largura de banda da ligação para o allreduce. O diâmetro da topologia física não tem importância com mensagens grandes — o que importa é que todas as ligações sejam usadas em paralelo, e o anel faz isso na perfeição.

O caso pragmático em que o anel físico é a resposta certa sem switch são os rigs de treino de 4–8 nós em que cada nó já tem exatamente duas portas RDMA. O senão: o anel não tem redundância de caminho. Um cabo avariado parte o cluster em dois.

Quando o sem switch bate um switch pequeno, em números

Topologia Nós Ligações Portas/nó Diâmetro Bissecção (ligações)
Ligação direta 2 1 1 1 1
Triângulo (K₃) 3 3 2 1 2
Malha completa K₄ 4 6 3 1 4
Anel de 4 nós 4 4 2 2 2
Anel de 8 nós 8 8 2 4 2
Cubo Q₃ de 8 nós 8 12 3 3 4
Q₄ de 16 nós 16 32 4 4 8
Estrela de 8 nós (com switch) 8 8 1 2 depende do switch

Comparação aproximada de preços para uma fabric de 8 nós, em meados de 2026 (EUR sem IVA):

Abordagem NIC necessárias Cabos Switch Faixa total
Estrela 200 GbE de 8 nós com um só switch 8× 200 GbE de porta única 8× DAC ~€18–28k €25–35k
Anel de 8 nós, sem switch 8× 200 GbE de porta dupla 8× DAC nenhum €15–22k
Cubo Q₃ de 8 nós, sem switch 8× equivalente a três portas 12× DAC nenhum €18–26k
Malha K₄ de 4 nós, sem switch 4× equivalente a três portas 6× DAC nenhum €9–13k
4 nós, switch 100 GbE pequeno 4× 100 GbE de porta única 4× DAC ~€8–12k €11–16k
2 nós, ligação direta 2× 400 GbE de porta única 1× DAC nenhum €3–5k

O ponto de viragem em que o switch se paga situa-se por volta dos 6–8 nós, consoante o escalão de largura de banda e a intenção de crescer.

Uplink: a parte de que as pessoas se esquecem

Uma fabric de dados sem switch é internamente autossuficiente. Por si só, não está ligada a nada. O cluster continua a precisar de um uplink para ir buscar conjuntos de dados e modelos ao armazenamento empresarial, para SSH a partir das estações de trabalho dos programadores, para telemetria para o Prometheus/Grafana, para gestão IPMI/BMC e para o tráfego do registo de contentores.

Padrão A — cada nó tem uma NIC de gestão separada. Cada nó leva uma pequena porta 25 GbE (ou mesmo 10 GbE) até um switch de gestão barato, completamente independente da fabric RDMA. É quase sempre a resposta certa. A fabric RDMA é um ambiente esterilizado, sem perdas e afinado; o plano de gestão é uma rede Ethernet normal com tráfego normal. Se os misturar, o tráfego de gestão perturba os seus coletivos.

Padrão B — nó de uplink dedicado. Um dos nós do cluster tem uma porta extra ligada para o exterior. Os restantes nós chegam ao mundo exterior encaminhando o tráfego por esse nó. Funciona com orçamentos apertados e instalações de laboratório pequenas, mas o nó de uplink passa a ser um estrangulamento na leitura dos conjuntos de dados e um ponto único de falha no acesso de gestão.

A barreira intransponível por volta dos 16 nós

A solução sem switch morre acima dos 16 nós por três razões independentes, bastando qualquer uma delas:

  1. Número de portas por nó. A malha completa exige N-1 portas por nó. O hipercubo exige log₂(N). Mesmo a escala logarítmica implica que 16 nós precisam de 4 portas por nó, o que está no limite da densidade prática de NIC numa única slot PCIe Gen5 x16. Com 32 nós são precisas 5 portas por nó — várias slots e vários posicionamentos NUMA para gerir.
  2. Combinatória da cablagem. Uma malha completa K₄ de 16 nós tem 120 cabos. Um hipercubo Q₄ de 16 nós tem 32. Em qualquer dos casos, a etiquetagem, a documentação e o acesso físico a cada cabo contam. Um único cabo mal ligado num hipercubo de 32 cabos leva horas a descobrir.
  3. Operação no dia a dia. Substituir uma NIC avariada numa fabric sem switch obriga a identificar os N-1 (ou log N) cabos que lhe estavam ligados e a voltar a encaminhar cada um para uma porta específica da placa de substituição. A diferença de MTTR face a uma solução com switch é real.

O resumo honesto: a solução sem switch é a certa para 2 a 4 nós dedicados, defensável para 5 a 8 nós com um compromisso claro de «não vamos crescer» e um erro para 9 ou mais nós. A partir de 9, compre um switch.

Dois sistemas concretos que vale a pena descrever

2× Kentino AI 256 Turin Dual, ligados diretamente, 400G. Dois nós EPYC Turin de 8 GPU (5090 ou RTX Pro 6000 Blackwell), cada um com uma ConnectX-7 400 GbE / NDR de porta única e um DAC OSFP passivo de 3 m entre eles. Custo total do hardware entre nós: ~€4k. Busbw de allreduce do NCCL com mensagens grandes: ~45 GB/s. Adequado para inferência com paralelismo de tensores em duas vias de um modelo denso de 405B (camadas repartidas pelas duas máquinas) ou para afinar um 70B que não cabe bem numa só máquina. Já expedimos várias variantes deste sistema. É aborrecido, funciona e custa uma ordem de grandeza menos do que a configuração equivalente ligada a um switch.

4× Kentino AI 128 em malha completa K₄, 100G. Quatro nós EPYC de socket único, cada um com 4× RTX Pro 6000 Blackwell. Cada nó tem uma disposição de NIC equivalente a três portas (uma de porta dupla mais uma de porta única, ou uma de quatro portas com uma porta por usar), com fabric DAC a 100 GbE. Seis cabos no total. Largura de banda de bissecção de 400 Gb/s. Usado para inferência com paralelismo de tensores de um modelo da classe 70B, com repartição em quatro vias e passagem completa de ativações entre todos os pares. Elimina o switch como ponto único de falha do serviço de inferência, e o orçamento do cliente foi para GPU em vez de equipamento de comutação. Contrapartida: fica limitado a quatro nós; crescer obriga a reformular a arquitetura.

Quando o sem switch ganha

  • 2 nós — sempre sem switch. Não há argumento sério a favor de um switch.
  • 3 nós — triângulo sem switch. Três cabos, cada nó a um salto de distância. Trivial.
  • 4 nós — K₄ sem switch se não houver crescimento, caso contrário um switch pequeno. Ambas as opções são defensáveis; o pressuposto de crescimento é o fator decisivo.
  • 5 a 8 nós — normalmente com switch. O anel é plausível em cargas limitadas pela largura de banda e o hipercubo para os verdadeiramente determinados. Qualquer um deles é mais difícil de justificar do que simplesmente comprar um switch de 16 portas.
  • 9 ou mais nós — com switch. Sempre. Daqui para cima, dispensar o switch é um erro disfarçado de poupança.

Se está a dimensionar um pequeno cluster de IA e a linha do switch está a pesar na BOM:

  1. Conte os nós de que precisa realmente. Não «para os próximos cinco anos». Este ano e o próximo. Se a resposta honesta for 2–4, o caminho sem switch é real e vale a pena orçamentar.
  2. Desenhe a disposição das NIC. A ConnectX-7 de porta dupla 200 Gb/s QSFP112 é a peça de ligação direta mais comum nos nossos sistemas de 2026. A de quatro portas SFP56 é a opção para mais nós com menor velocidade por porta.
  3. Defina a postura quanto ao crescimento. Se houver uma hipótese séria de ultrapassar os 8 nós, compre já o switch pequeno. Recabar uma malha mais tarde é genuinamente penoso.
  4. Planeie o plano de gestão em separado. Fabric de dados sem switch, plano de gestão com switch em 10 GbE barato. Não os junte no mesmo conjunto de cabos.
  5. Execute os nccl-tests na topologia tal como foi construída antes de cantar vitória. A saída de NCCL_DEBUG=INFO indica quais as ligações físicas que o NCCL está realmente a usar; compare com o diagrama.
  6. Documente a cablagem. Fotografias, etiquetas nas portas, um diagrama de uma página no rack. Da primeira vez que uma NIC falhar às 02:00, vai agradecer.

Os artigos seguintes a ler: N04 para a alternativa com switch, N06 para a dissecação da latência que justifica a vantagem do sem switch, N02 para a decisão entre InfiniBand e RoCE, que condiciona as NIC que compra, e K07 para o nó base que tudo isto interliga.


Isto faz parte da Kentino Wiki, uma série de referência sobre computação de IA, robótica e os sistemas que os interligam. Comentários e correções são bem-vindos em info@kentino.com.