Cluster fabric

AI cluster networking

Most GPU cluster performance problems are fabric problems wearing a different costume. This page starts from what you are seeing and works back to what it is — then to the switching, optics and rack topology that resolve it.

Start from the symptom

Nine problems account for most of what goes wrong on an AI fabric. Three of them are not network problems at all, which is worth knowing before you spend a week on the network. Rows without a link are answered in the row itself.

What you seeWhat it usually is
Roughly half the expected bandwidth, every link healthyACS routing traffic through the CPU root complex, or routing collisions on per-rack cablingDiagnose →
NCCL reports a remote rank died, but nothing diedA queue pair entered ERROR state; the real cause is buried above hundreds of flush errorsDiagnose →
Job hangs with no error, aborts after 480 secondsHeartbeat monitor, not the watchdog — a CUDA or driver hang, or a GIL deadlock. Not the networkDiagnose →
Bootstrap cannot find a network interfaceSR-IOV virtual functions and secondary physical functions beside the routable one; NCCL picks a non-routable interfaceDiagnose →
Fine at small message sizes, collapses at large onesIncast against shallow switch buffers. Many senders, one receiver, simultaneously — check ECN marking thresholds before adding PFC, which spreads backpressure into victim flows
Intermittent stalls, no link ever reports downLink flap. At scale these run to thousands of events per day, and a single flap can halt training for secondsDiagnose →
One rank is consistently lastA straggler — GPU thermal throttling, a degraded link rerouting through NVLink, or the dataloaderDiagnose →
Completion errors only on messages over 1024 bytesMTU mismatch. Host at 1500 instead of 9000, or a switch below it
A third-party module links up, then flaps intermittentlyIts EEPROM vendor string matched nothing in the media-settings table, so the port fell back to generic SerDes tuningRead →

What a healthy fabric looks like

Run a collective with NCCL_DEBUG=INFO NCCL_DEBUG_SUBSYS=INIT,ENV,NET,GRAPH and check for these three lines. Their absence is more informative than most metrics.

Using network IB

InfiniBand or RoCE is engaged. If this says Socket, NCCL fell back to TCP and everything below is moot.

GPU Direct RDMA Enabled for GPU 0xNN / HCA 0xMM

The GPU talks to the NIC directly. "Disabled" names the PCIe distance and the threshold it exceeded.

via NET/IB/2/GDRDMA

Per-channel confirmation. Missing /GDRDMA on inter-node channels is roughly a halving on its own.

Node-side checks

  • sudo lspci -vvv | grep -i acsctl — must show SrcValid-. A SrcValid+ means ACS is on and GPUDirect is degraded.
  • Host MTU 9000, switch MTU at or above it. Completion errors that appear only on messages larger than 1024 bytes are an MTU mismatch.
  • numa_balancing set to 0.

Topology is the part you cannot tune

Node settings are recoverable. Cabling is not. Routing collisions — where two flows land on the same link somewhere in the path — can halve throughput on an otherwise perfect cluster, and they are a property of how the fabric is wired rather than how it is configured.

They do not occur on a single switch, and they do not occur on a rail-optimized topology. They are common on classic per-rack cabling. That makes topology a purchasing decision, made when the rack is specified, not a tuning exercise afterwards.

Read the full diagnosis →

Switching

TORswitch

32-port 100G AI network switch. Specified against the topology rather than picked afterwards — see L11 rack integration for cabling, optics and cluster validation before it ships.

Transceivers

Reach, coding and connector are matched to your switches; exact configuration is confirmed at quote. Grouped by rate — pick the row that matches your fabric.

Site-to-site optical transport

A different problem from cluster fabric. The F520 line is DWDM and OTN equipment for connecting sites — data centre interconnect, metro and long-haul — not for wiring GPUs to each other. It matters when your training data lives in one facility and your cluster lives in another.

Specifying a cluster?

Topology, switching and optics are decided together. TORmem quotes them as one integration rather than as a parts list.