Why UCCL-Tran Moves GPU Transport Control Back Into Software

UCCL-Tran is a software transport layer designed for GPU networking, and its central question is simple to state: which parts of a high-speed network connection must remain in hardware, and which parts should be allowed to change in software? The answer matters because it gives readers a way to understand a shift now taking place in large ML clusters: keep the path that moves bulk GPU data close to the NIC and GPU, but move decisions about congestion, path selection, and packet recovery into a layer that can evolve with the workload.

That is not the same as sending every tensor through a slow CPU networking stack. UCCL-Tran is a case study in separating a transport's data path from its control path. The paper behind it reports large gains in some collective workloads, but the important result is architectural: software can host transport policies that are difficult to add to a fixed RDMA NIC, while existing GPU-aware data movement continues to do the heavy lifting.

The cluster's new problem is not simply more bandwidth

GPU networking used to be easier to describe as a faster version of familiar distributed computing. A group of machines exchanged data for parameter servers or allreduce, and the network's job was to move those flows reliably and quickly. The workloads motivating UCCL-Tran are more structured and more volatile. Modern training uses thousands of GPUs, multiple forms of parallelism, and collectives such as allreduce, allgather, and reduce-scatter. Serving systems add peer-to-peer traffic when prefill and decoding are separated. Mixture-of-experts models add all-to-all exchanges in which every GPU may need to send to many experts on other GPUs.

Those patterns create a difficult combination: many flows start together, their destinations are correlated, and a small number of experts can become temporarily much hotter than the rest. A network can therefore have plenty of total capacity while a particular set of flows repeatedly lands on the same path or converges on one receiver. The problem is not just how quickly a link can transmit. It is whether the transport can see the current pattern and change its behavior before congestion spreads.

The UCCL-Tran paper uses several industry examples to make that mismatch concrete. It cites Meta's report that DCQCN, a congestion-control algorithm supported by RDMA NICs, did not work well for LLM training, leading Meta to disable NIC congestion control and schedule traffic at the application layer. It also cites DeepSeek disabling congestion control for large-scale all-to-all serving of a mixture-of-experts model. Alibaba, the paper says, responded to severe collective-communication flow collisions by redesigning its topology into a rail-optimized dual-plane network. That redesign can help, but changing the physical network is expensive compared with changing a software policy.

These examples do not establish that hardware transport is always wrong. They show something more specific: when workloads change faster than NIC firmware or ASIC behavior, an optimization that was sensible for one traffic pattern can become a constraint for another. A transport that cannot be adapted leaves operators with unattractive choices—work around it in the application, overbuild or redesign the topology, or accept congestion and its side effects.

flowchart LR A["ML application"] --> B["Collective library"] B --> C["GPU payload buffer"] C --> D["RDMA NIC"] D --> E["Network paths"] E --> F["Peer GPU memory"] B -. "transport API" .-> G["UCCL-Tran"] D -. "completions / timestamps" .-> G G --> H["CPU control: congestion, paths, reliability"] H -. "control decisions" .-> D G -. "control state" .-> B

UCCL-Tran changes the decision layer, not the payload path

The phrase “move transport control back into software” becomes useful only when the two paths are kept distinct. The data path carries the tensor or message bytes. In a GPU server, that path can use RDMA and GPUDirect-style peer access so a NIC transfers data to or from GPU memory without making the CPU copy the payload. The control path decides how that transfer should behave: how aggressively to send, which path to use, how to recognize loss, and what to retransmit.

UCCL-Tran places a software layer between a collective library such as NCCL or RCCL and lower-level communication primitives exposed by the NIC. An ML application can continue to call collective operations. The plugin and its engine threads then manage connections, GPU-memory registration, sending, receiving, acknowledgements, and transport state. Congestion control, load balancing, reliability, and reordering are ordinary user-space logic rather than an unchangeable part of the NIC's host transport.

That boundary is the source of the system's flexibility. A researcher can try a different congestion signal or path-selection rule without waiting for a new NIC generation. A collective library can use a transport that understands the shape of its workload without rewriting the whole application. UCCL-Tran's implementation supports several paths across NVIDIA and Broadcom RDMA NICs, AWS EFA, and a non-RDMA AF_XDP route, which is evidence of an adaptation strategy rather than a promise that every device behaves identically.

The boundary also explains why the design is not a free software replacement for hardware. UCCL-Tran must work with whatever the NIC exposes. Where an RDMA primitive still provides segmentation and reassembly but leaves congestion and reliability open, software can control more while paying relatively little data-plane cost. Where only a datagram-style path is available, software must do more packet segmentation, reassembly, and ordering work. The same architectural idea therefore has different performance costs on different hardware.

The separation is also a choice about what kind of reaction the workload needs. A transport can make a decision for every packet, but that precision consumes processing capacity and state. It can instead make one decision for a larger chunk or once per round-trip, which is less exact but much cheaper. UCCL-Tran's argument is that bulk ML transfers make this compromise workable: a few microseconds of software decision time can be small beside a datacenter round trip, while a large message can amortize queue-pair and scheduling overhead. The paper does not extend that logic to every network workload. Small-message RPCs, highly latency-sensitive services, or a NIC that exposes weak congestion signals may have a different balance.

That is why the phrase “software transport” should be read as a change in ownership of state, not as a claim that a CPU can reproduce an ASIC instruction for instruction. Software can keep a scoreboard of path conditions, choose among alternatives, or replace a recovery rule quickly. It also inherits the responsibility to reserve cores, process acknowledgements, handle reordering, and account for missing signals. The design succeeds only when the state that software needs is available and the work it adds does not displace the GPU computation or the payload path it is meant to improve.

A related deployment detail sits below the transport policy. NVIDIA's GPU Operator documentation describes GPUDirect RDMA as direct exchange between GPU memory and a peer device such as a ConnectX SmartNIC over PCI Express. It identifies user-space CUDA APIs, kernel drivers, and the nvidia-peermem module as prerequisites for that access, and describes the Network Operator and GPU Operator as the components that set up the relevant drivers and plugins. Those requirements help make the data path possible; they are not themselves UCCL-Tran's control algorithm. Keeping the layers separate prevents a common misunderstanding: enabling direct GPU/NIC access does not automatically make transport behavior programmable.

The real question is where the decision lives

UCCL-Tran's proposition is narrower—and more consequential—than a general argument that software is better than hardware. It says that transport decisions likely to change with ML workloads should not be permanently trapped inside a hardware path whose state, firmware, and release cycle are difficult to adapt. The NIC and GPU can still move bulk data efficiently, while a CPU-based layer tries new ways to balance paths, control incast, or recover from loss.

The paper reports up to 4.5 times the performance of existing RDMA-NIC transports in its evaluated collective cases, up to 1.9 times on a Broadcom Thor-2 testbed with a rail-optimized topology, and a 7.5% improvement in end-to-end DeepSeek-V2-Lite training speed. It also reports lower latency for a trace-driven DeepSeek-V3-like serving experiment. Those figures are reasons to take the design seriously, not a universal replacement claim. They come from particular NICs, topologies, collectives, message sizes, CPU allocations, and comparison baselines. On a same-rack testbed without the targeted network collisions, UCCL-Tran was close to hardware transport rather than dramatically ahead. That result is just as informative: flexibility pays when it addresses a real mismatch.

The settings behind those results are part of the argument. The cross-rack Ethernet testbed exposes the flow-collision problem that motivates many paths. The AMD environment uses a rail-optimized topology that already reduces some congestion, so a comparable allreduce result and a stronger all-to-all result mean something different from a win in a badly colliding fabric. The EFA experiment tests a different boundary: its software transport can use powerful host CPUs to make decisions that the tested EFA hardware's smaller ARM cores handle less effectively for connection-intensive all-to-all traffic. The same-rack ConnectX experiment removes much of the network-path problem and therefore asks whether the CPU software can keep up with a hardware transport at all. Reading the results this way turns a set of multipliers into a causal comparison rather than a leaderboard.

The end-to-end numbers need the same discipline. A collective bandwidth gain affects model throughput only when communication is on the application's critical path; the paper's training experiment supplies that link for a particular DeepSeek-V2-Lite setup. The serving result uses a realistic DeepSeek-V3-like trace because the authors did not have a meaningful hundreds-of-GPUs deployment, so it is useful evidence about the emulated communication pattern but not a full production demonstration. The distinction does not weaken the idea. It tells the reader exactly what kind of confidence each result can support.

The trade-off is visible even in the headline architecture. Software needs host cores, and its control decisions arrive with some delay and less complete congestion information than an ideal NIC could observe. The paper measures those delays and argues that they are acceptable for bulk ML traffic, but that argument depends on the workload. A receiver-driven congestion policy may reduce tail latency for an MoE incast while requiring a dedicated pacing thread. Selective retransmission may avoid needless recovery of already received packets while keeping more reordering state in GPU memory. Multipathing may avoid a collision while increasing queue-pair and bookkeeping pressure.

So the question this series follows is not whether transport should be “software” or “hardware” in the abstract. It is how to place each responsibility. What must the NIC do to sustain the data path? What decisions need per-path state or application context? When can spare CPU capacity and larger ML messages amortize software overhead? And which measurements distinguish a genuine architectural gain from a result that belongs only to one topology?

Answering those questions starts with the ordinary GPU networking stack that UCCL-Tran has to inhabit. A collective call does not move directly from a model to a distant GPU. It passes through library operations, CPU-issued verbs, queue-pair semantics, NIC capabilities, completion signals, and GPU-memory placement. Once those pieces are visible, the appeal of moving only the decision layer—and the limits of doing so—becomes much easier to judge.

References