Networking for SI

Networking for SI, Part 1: NVMe-oF and the Network Behind SI Storage

How NVMe over Fabrics carries NVMe commands over RDMA, TCP and Fibre Channel, what published tests say it adds in latency, and how SI storage traffic loads it.

On this page 12 sections

An NVMe SSD usually sits on a PCIe bus a few inches from the processor. NVMe over Fabrics (NVMe-oF) sends the same commands across a network, so a server can read a drive that lives in another box. In an SI cluster, that network carries checkpoints, training data and cached context, the three jobs this part follows after the protocol itself.

NVMe over Fabrics: a local SSD on a short PCIe link, the same SSD reached across a switch with capsules on the wire, and many senders converging on one receiverA three-panel schematic. Left: a host chip sits directly above an SSD, joined by one short copper link. Center: a host on the left and a storage box with SSDs on the right sit on either side of a network switch, and small teal capsules travel along the copper link between them. Right: four sender boxes on the left send copper lines into one switch, which feeds a single receiver box on the right.GUIDE / NETWORKING FOR SI, PART 1NVMe across the networkLOCAL · FABRIC · INCAST01 LOCAL02 FABRIC03 INCASTHOSTSSDHOSTcapsulesSSDsswitchmany to one

SPDK’s published NVMe-oF tests against a null device, with no SSD behind it, put the network and software cost at 4.72µs to 21.39µs per read, and those numbers hold only for that setup. The SI training and serving papers below report their delays in storage bandwidth, data preparation and congestion instead. Flash Foundations Part 1 introduces NVMe-oF in a few paragraphs, and the protocol detail continues below.

Same commands, different wire

Local NVMe is built on paired submission and completion queues. According to the NVMe Base Specification, Revision 2.4, a drive can have up to 65,535 I/O queues with up to 65,535 outstanding commands in each, and every command is 64 bytes. Over PCIe, those queues live in host memory. Software tells the drive about a new command by writing to a doorbell register. Part 1 explains why NVMe replaced AHCI with this design.

Same commands, different wire

A fabric wraps the same 64-byte command in a capsule

Left: queues in host memory and a doorbell write. Right: the command and optional data travel as one capsule.

Two panels. On the left, local NVMe over PCIe: host memory holds a submission queue and a completion queue, a 64-byte command is placed in the submission queue, and a copper doorbell write goes to the SSD. On the right, NVMe over Fabrics: the host adds a command capsule to a Submission Queue. The capsule holds the same 64-byte command and optional data, crosses a network on copper links and reaches a target with an SSD.01 LOCAL PCIEqueues live in host memoryhost memorySQCQ64-byte commanddoorbell writeSSDdoorbell02 FABRICa capsule crosses the networkhostSQcounted as submitted“when a host adds a capsuleto a Submission Queue”command capsule64-byte commanddata, optionalnetworktargetSSDSQ slotCQ entrycommanddoorbell, link
Figure 1 · Local NVMe tells the drive about a command with a doorbell write; NVMe over Fabrics counts a command as submitted when the host adds its capsule to a Submission Queue. Source: NVM Express.

A network has no shared memory to write into, so NVMe-oF wraps each command in a capsule. A command capsule carries the 64-byte command and can carry data with it. On PCIe a command counts as submitted once the doorbell write moves the queue tail past it. Over a fabric, the base specification counts it as submitted “when a host adds a capsule to a Submission Queue”.

NVM Express’s own NVMe over Fabrics overview says the fabric version keeps “the entire NVMe multi-queue model”, with normal submission and completion queues “encapsulated over a message-based transport.” The same overview says roughly 90% of the protocol matches local NVMe, which is the consortium describing its design rather than a measurement.

Three ways to carry a capsule

NVMe-oF hands the network to a transport binding, and three bindings exist. Two have NVM Express specifications of their own, and the third lives in a Fibre Channel standard.

Three ways to carry a capsule

One capsule, three transport bindings

RDMA, TCP and Fibre Channel each carry the same NVMe-oF capsules.

A band of NVMe-oF command capsules sits on top with a copper link down to three transport bindings. RDMA lists InfiniBand, RoCE and iWARP. TCP lists port 4420 for data, port 8009 for discovery, and software-only implementations or hardware offload. Fibre Channel lists FC-NVMe-2, the INCITS 556-2020 standard, and adapters on sale.NVMe-oF COMMAND CAPSULEScommanddatacommanddatacommanddata01 RDMAInfiniBandRoCEiWARP02 TCPport 4420dataport 8009discoverysoftware-onlyor hardware offload03 FIBRE CHANNELFC-NVMe-2bindingINCITS 556-2020standardadapterson salecapsuleoptional databinding detaillink
Figure 2 · NVMe over Fabrics hands the network to a transport binding; the Fibre Channel binding is in INCITS 556-2020. Source: NVM Express and IANA.

RDMA stands for remote direct memory access. NVM Express’s binding for it is the NVMe over RDMA Transport Specification, Revision 1.3. The consortium’s overview counts “any of the RDMA technologies, including InfiniBand, RoCE and iWARP” as usable for NVMe over Fabrics. RoCE is RDMA over Converged Ethernet.

TCP needs no special network cards. The NVMe over TCP Transport Specification, Revision 1.3 is written to allow “efficient software-only implementations” on ordinary TCP stacks while leaving room for hardware offload. NVMe-oF traffic uses TCP port 4420, and discovery uses port 8009. Both ports are registered to NVM Express in the IANA port registry, as nvme and nvme-disc.

Fibre Channel is the third option, and Base 2.4 places its binding in the INCITS 556-2020 standard (FC-NVMe-2), which ANSI sells. Adapters for it are on sale. Broadcom’s Emulex Gen 7 HBAs support NVMe over Fibre Channel, and Marvell’s QLogic 2870 Series runs FCP and FC-NVMe concurrently on the same port.

Ethernet products cover both RDMA and TCP. NVIDIA’s ConnectX-7 datasheet says the adapter “accelerates NVMe-oF over both RoCE and TCP”. Western Digital’s OpenFlex Data24 4000 storage platform uses RapidFlex A2000 fabric bridges with 12 ports of 100GbE that connect to RDMA or TCP hosts. KIOXIA’s EM6 connects over single or dual 25Gb Ethernet with RoCEv2. KIOXIA’s KumoScale target software supports both transports, though its page says the product is now maintenance only.

Finding drives, and more than one path to each

Every host and storage subsystem on the fabric has an NVMe Qualified Name (NQN). Base 2.4 caps an NQN at 223 bytes.

Finding drives, and more than one path to each

A host discovers subsystems, then picks among paths

One namespace sits behind two controllers; ANA reports which path is Optimized.

A host connects to a discovery controller named nqn.2014-08.org.nvmexpress.discovery and learns which subsystems exist. It then connects to two controllers in an NVM subsystem. Both controllers reach one namespace. One controller reports the ANA state Optimized and the other Non-Optimized. A note says KX-HMAC-CHAP authenticates in band and TLS encrypts NVMe over TCP.discovery controllernqn.2014-08.org.nvmexpress.discoveryhostNVM SUBSYSTEMlistscontrollerANA OptimizedcontrollerANA Non-Optimizednamespace12331 connect to the discovery controller2 learn which subsystems exist3 connect to each controller; ANA state picks the pathKX-HMAC-CHAP authenticates in band; TLS encrypts NVMe/TCPhost linkdiscoveryOptimizedNon-Optimized
Figure 3 · The host asks a discovery controller what exists, then connects to controllers; ANA states steer multipathing software, and in-band authentication and TLS protect the link. Source: NVM Express.

A host can connect to a discovery subsystem using the “well-known Discovery Service NQN”, nqn.2014-08.org.nvmexpress.discovery, the form TP4201 uses. Base 2.4 also defines a centralized discovery controller that reports what other discovery controllers and hosts register with it.

One namespace can sit behind more than one controller, and those paths may not perform alike. Asymmetric Namespace Access (ANA) reports a state for each path, such as Optimized or Non-Optimized, and multipathing software uses those states to pick a path. Ratified change TP8028 Rapid Path Failure Recovery lets a host that can reach the subsystem through another channel find out sooner that commands on a failed path are no longer being processed.

Two security pieces work in band. Hosts and controllers can authenticate each other with KX-HMAC-CHAP (called DH-HMAC-CHAP before Base 2.4). For encryption, TLS for NVMe/TCP “is based on pre-shared key (PSK) authentication” in the TCP binding text of TP8018. The NVMe over TCP Transport Specification requires an implementation that supports TLS 1.3 to support the TLS_AES_128_GCM_SHA256 cipher suite. TP8018 also strongly discourages TLS 1.2, and TP4201 extends both in-band authentication and NVMe/TCP’s TLS to post-quantum key exchange.

Hosts can also boot an operating system from a drive across the fabric. The NVM Express Boot Specification, Revision 1.4 defines extensions “that enable booting over NVMe over supported fabric transports.”

Latency the network adds

NVM Express set a goal of “no more than 10 microseconds (µs) of additional latency over a native NVMe device inside a server.” Each measurement below comes from a different setup, so they can’t be lined up as one answer. None reads a current drive locally and then over a fabric.

Latency the network adds

SPDK over RDMA averages 4.72µs; TCP runs 17.50µs and up

SPDK 24.05, 4KiB random reads at queue depth 1, null block device with no SSD, average latency.

Vertical bars of average latency in microseconds on an SPDK 24.05 null block device, 4KiB random reads at queue depth 1. RDMA with SPDK 4.72, RDMA with the Linux kernel 12.10, TCP with SPDK 17.50, TCP with the Linux kernel 21.39. A dashed line marks the NVM Express goal of 10 microseconds of added latency.Average latency, µs05101520254.72µsRDMASPDK12.10µsRDMALinux kernel17.50µsTCPSPDK21.39µsTCPLinux kernelTransport and software stackNVM Express goal:10µs addedRDMATCPNVM Express goal: 10µs added
Figure 4 · Whole round trips on a null device, so the dashed goal is a scale mark and not a like-for-like limit; the goal is for latency added over a native NVMe device. Source: SPDK.
Test and setup Result
SPDK 24.05 RDMA report: ConnectX-5, 4KiB random reads at queue depth 1, null block device (no SSD) 4.72µs average with SPDK on both ends, 12.10µs with the Linux kernel on both ends
SPDK 24.05 TCP report: same hardware and test, over TCP 17.50µs with SPDK on both ends, 21.39µs with the Linux kernel on both ends
Guz and colleagues, SYSTOR 2017: NVMe-oF over RoCEv2, ConnectX-4 100GbE, Samsung PM1725 SSDs, unloaded 4K reads 11.7µs added over direct-attached access
ReFlex, ASPLOS 2017: ReFlex’s own remote flash server over 10GbE TCP/IP, not NVMe-oF 21µs added over local flash, unloaded
i10, NSDI 2020: i10’s TCP stack against NVMe over RDMA, both remote, real SSDs 189µs against 105µs average, 206µs against 119µs at the 99th percentile

Sources: SPDK NVMe-oF RDMA and TCP performance reports, release 24.05, tables 21 and 22, with Guz et al., SYSTOR 2017 slides, backup slide 17, plus Klimovic et al., ASPLOS 2017, and Hwang et al., NSDI 2020, figures 6(a) and 6(b).

Both SPDK runs, the RDMA report and the TCP report, used a null block device that returns data without touching any media. Mellanox ConnectX-5 100GbE cards carried 4KiB random reads at a queue depth of 1. With no SSD in the path, those numbers isolate the software stack and the network. RDMA testing is dated June 2024 and TCP testing July 2024. On that test, TCP took about 3.7 times as long as RDMA with SPDK (17.50 / 4.72) and about 1.8 times as long with the kernel (21.39 / 12.10).

Samsung Semiconductor researchers measured 11.7µs over RoCEv2, using ConnectX-4 100GbE cards and Samsung PM1725 drives. The figure sits on a backup slide of their SYSTOR 2017 talk on the paper, and the slide labels it close to the 10µs spec target, though it is above that goal. Cornell’s i10 paper compares two remote setups with real SSDs and has no local baseline in that passage. With a real SSD in the path, drive access time becomes the main bottleneck, and the paper puts i10’s tail latency within 1.7 times that of NVMe-RDMA.

For scale, Micron’s 9650 product brief lists a typical read latency of 60µs. Against that, the null-device round trips work out to between about 8% (4.72 / 60) and 36% (21.39 / 60) of the drive’s own read time. Because it divides numbers from two different sources, this is arithmetic and no substitute for testing a 9650 over a fabric. The sources here leave gaps: none measures what Fibre Channel adds, none compares iWARP and RoCEv2 on the same rig, and none compares NVMe/TCP with local drives in production.

Checkpoints wait on the storage path

Training jobs save their state at intervals so a failure doesn’t throw away hours of work, and a job stalls while it saves. The CheckFreq paper from FAST 2021 ties the right checkpoint frequency to “model size, storage bandwidth, and training iteration time.”

Checkpoints wait on the storage path

One instance's network link outruns the whole storage pool

Gemini testbed: each instance's EFA link against the aggregate bandwidth of remote persistent storage

Horizontal bars of bandwidth in gigabits per second. One instance's elastic fabric adapter link is 400. The aggregate bandwidth of remote persistent storage is 20. An annotation gives the paper's introduction example: checkpointing the MT-NLG model states to remote storage at 20Gbps takes 42 minutes.Path0100200300400Bandwidth, GbpsOne instance link400Gbps EFA400GbpsStorage poolaggregate20GbpsPaper example: MT-NLG, 42 minutes at 20GbpsOne instance network linkRemote storage, aggregate
Figure 5 · A single instance's network link carries about 20 times the bandwidth of the storage pool every checkpoint has to reach. Source: Gemini, SOSP 2023.

The Gemini paper from SOSP 2023 puts a number on it. As an example in its introduction, the paper says checkpointing the model states of MT-NLG to remote persistent storage takes 42 minutes when that storage has 20Gbps of bandwidth. In the authors’ own testbed, the instances were connected “through a 400Gbps elastic fabric adaptor (EFA) network,” and the remote persistent storage had an aggregated bandwidth of 20Gbps. By that arithmetic (400 / 20), a single instance’s network link was about 20 times the bandwidth of the whole storage pool.

Feeding the GPUs

Data loading can starve accelerators too. Meta studied its recommendation-model training in a paper published at ISCA 2022, read here in its arXiv version. In one experiment, Meta ran a training job for its RM1 model on a single training node with eight NVIDIA V100 GPUs, two 28-core CPU sockets and two 100Gbps NICs for data ingestion, and the CPUs on that same machine prepared the data. In that run, 56% of GPU cycles were spent stalled waiting for training data. RM1 needed 16.50GB/s of data per 8-GPU training node.

Feeding the GPUs

CPU data preparation left 56% of GPU cycles stalled

Left: one RM1 training node. Right: how its GPU cycles were spent.

Left, one RM1 training node: two 100Gbps ingest network cards feed two 28-core CPU sockets that prepare the data, which then goes to eight V100 GPUs. A note says the node needs 16.50GB/s. Right, a stacked bar of GPU cycles: 56 percent stalled waiting for training data and the rest other cycles.01 ONE RM1 TRAINING NODECPUs prepare the dataNIC 100GbpsCPU socket28 coresNIC 100GbpsCPU socket28 coresV100V100V100V100V100V100V100V1008 GPUs per node16.50GB/s per 8-GPU node02 GPU CYCLESShare of GPU cycles in the runother cycles56%stalled waitingfor datastalled waiting for dataother cyclesdata path
Figure 6 · In Meta's RM1 run the CPUs on the training node prepared the data, and the GPUs spent more than half their cycles waiting for it. Source: Meta, ISCA 2022.

For the RM2 model, moving that preparation onto separate worker machines shifted the limit to their network cards, and those workers needed about 10Gbps of their 12.5Gbps. Meta’s ZionEX training platform, a different machine from the V100 node above, gives each GPU its own 200Gbps RoCE NIC for traffic between nodes.

Keeping the KV cache across the network

Memory and Storage for SI, Part 5 covers where the key-value (KV) cache is kept once it leaves the GPU. Fetching it back from there is a network job.

Keeping the KV cache across the network

A faster GPU machine needs a faster link to the KV cache

Minimum transfer rate Mooncake works out for LLaMA3-70B

Vertical bars of minimum required transfer rate in gigabytes per second for LLaMA3-70B with an 8,192-token prefix. A machine with eight A800 GPUs needs 6. A machine with eight H800 GPUs needs 19. A note says the cache pool is built on an RDMA network of up to 8x400Gbps.Minimum transfer rate, GB/s051015206GB/s8x A80019GB/s8x H800Eight-GPU machine, LLaMA3-70B, 8,192-token prefixCache pool network: RDMA, up to 8x400GbpsMinimum KV transfer rate
Figure 7 · The minimum rate to load a cached prefix grows with the GPU machine, so the cache pool needs a fast network behind it. Source: Mooncake, FAST 2025.

Mooncake is the serving platform behind Moonshot AI’s Kimi chatbot, described at FAST 2025. It builds its cache pool on an RDMA network of up to 8×400Gbps. Its authors work out a minimum transfer rate of 6GB/s for LLaMA3-70B on a machine with eight A800 GPUs and an 8,192-token prefix. On a machine with eight H800 GPUs, that rises to 19GB/s. The paper says “a fully utilized 100 Gbps NIC per NVIDIA A800 HGX network is sufficient to meet these criteria.” After simulating bandwidths from 24Gbps to 400Gbps in section 5.4.2, the authors “recommend a minimum network bandwidth of 100 Gbps to ensure optimal system performance.”

A direct path from GPU to network card

NVIDIA’s GPUDirect RDMA “enables a direct path for data exchange between the GPU and a third-party peer device,” and network interfaces and storage adapters are among NVIDIA’s examples. Among the limits NVIDIA lists, the most important is that “the two devices must share the same upstream PCI Express root complex.” IOMMUs that translate addresses other than 1:1 must be disabled or set to pass-through. NVIDIA adds that a path with only PCIe switches between the devices performs best, one through a single CPU works with worse performance, and one across a link between two CPUs may be extremely limited or not work reliably. Where GPUs and network adapters sit on a server’s PCIe tree decides how well that direct path works.

GPUDirect RDMA covers the path between a GPU and the network card. For the path between a drive and GPU memory, NVIDIA offers GPUDirect Storage, which Memory and Storage for SI, Part 4 covers. Part 3 of this series covers the network cards that list it.

A direct path from GPU to network card

GPUDirect RDMA works best with the GPU and NIC on one root complex

Two PCIe trees. Where the devices sit decides how well the direct path works.

Two PCIe trees side by side. In the first, the GPU and the network card sit under one PCIe switch and one root complex, and a direct copper path joins them, which is GPUDirect RDMA at its best. In the second, the GPU and the network card sit under different root complexes, and the path between them crosses the CPUs, which NVIDIA says may be extremely performance-limited or not work reliably. A note says the IOMMU must be off or in pass-through.01 SAME ROOT COMPLEXCPU and memoryroot complexPCIe switchGPUDirect RDMAGPUNICa direct pathunder one switch02 DIFFERENT ROOT COMPLEXESCPU and memoryroot complexPCIe switchroot complexPCIe switchGPUNIClimited or unreliabledata goes through the CPUand system memoryIOMMU must be off or pass-throughGPUNIChost partsdirect pathpath across CPUs
Figure 8 · With only PCIe switches between the devices the path performs best; through a CPU it performs worse, and across a link between CPUs NVIDIA says it may be extremely limited or not work reliably. Source: NVIDIA.

Drives per network card

NVIDIA’s ConnectX-8 SuperNIC datasheet lists a maximum total bandwidth of 800Gb/s and a PCIe Gen6 host interface of up to 48 lanes. Micron’s 9650 brief gives 28,000MB/s of sequential read for that PCIe Gen6 drive.

Drives per network card

One 800Gb/s card is filled by about 3.6 drives

Both bars use the same bandwidth scale. The card's capacity is 100GB/s; each drive reads 28GB/s in sequence.

A horizontal bar chart on one bandwidth axis in gigabytes per second. The top bar is a ConnectX-8 network card at 100GB/s, which is 800Gb/s. The bar below stacks Micron 9650 drives at 28GB/s each: three full blocks and a partial fourth that together reach the end of the card's bar, about 3.6 drives. A note says this is a rough bound that ignores protocol overhead.ComponentConnectX-8network card100GB/s800Gb/sMicron 9650Gen6 drives28GB/sdrive 128GB/sdrive 228GB/sdrive 3part ofdrive 4about 3.6 drives0100Bandwidth (GB/s)A rough bound: protocol overhead is ignored,and every drive runs flat out on sequential reads.network card capacitydrive at 28GB/spart of a drive
Figure 9 · A rough bound on how many Gen6 drives one network card can carry, ignoring protocol overhead and assuming every drive runs flat out on sequential reads. Source: NVIDIA, Micron.

drives per NIC = NIC bandwidth / drive bandwidth

Here NIC bandwidth is 800Gb/s, or 100GB/s at 8 bits per byte, and drive bandwidth is 28GB/s. Dividing gives about 3.6 drives. Protocol overhead is ignored, and every drive is assumed to run flat out on sequential reads, so read it as a rough bound rather than a design rule.

When many senders hit one receiver

Storage traffic has its own congestion problem. Carnegie Mellon’s FAST 2008 incast paper found that when a client reads pieces of one data block from many servers at once, the replies can overflow the switch buffers on the client’s link, and TCP throughput collapses.

When many senders hit one receiver

Incast, and how RoCEv2 holds it back

Left: replies from many servers pile into one switch port. Right: pause frames and early congestion marks.

Panel one, incast: four servers send replies at the same time through one switch port toward one client. The switch queue is drawn overfull and packets are dropped, so TCP throughput collapses. Panel two, RoCEv2 fixes: PFC pause frames travel from the switch back to the senders and hold them back, with the risks of head-of-line blocking, deadlock and pause storms. DCQCN marks packets with ECN before PFC triggers, so senders slow down earlier.01 INCASTmany replies, one portserverserverserverserverswitch port queuebuffer overfull, packets lostone clientTCP throughputcollapses02 ROCEV2 FIXESPFC holds senders backserverserverserverserverswitch port queueECN marks firstone clientPFC pause risks:head-of-line blockingdeadlock, pause stormsqueued packetdata linkpause signalhost or switch
Figure 10 · Many servers answering one client at once overflow the switch buffer on the client's link; RoCEv2 answers with PFC pause frames and DCQCN, which marks packets with ECN before PFC triggers, at the cost of PFC's own risks. Source: CMU FAST 2008, Microsoft SIGCOMM 2015 and 2016.

RoCEv2 relies on Priority-based Flow Control (PFC) to keep the network drop-free, as Microsoft and Mellanox put it in their DCQCN paper at SIGCOMM 2015. PFC is the amendment IEEE 802.1Qbb adds to bridged networks. The DCQCN authors found that PFC can cause head-of-line blocking and unfairness. Their fix was end-to-end congestion control built on Explicit Congestion Notification (ECN), with switch thresholds set so that ECN is always triggered before PFC.

Scaling RoCEv2 to whole data centers raised more trouble. Microsoft’s SIGCOMM 2016 paper reports PFC-induced deadlock (“yes, it happened!”), RDMA transport livelock and NIC PFC pause frame storms. One of its figures shows “the PFC pause frame storm caused by the malfunctioning NIC of one single server.” Its team answered with PFC based on DSCP priority marks, plus monitoring and management systems.

Ultra Ethernet and the work it left for later

Version 1.0 of the Ultra Ethernet Specification, dated June 11, 2025, takes another route. It “does not require or mandate changes to the network layer or the Ethernet PHY and link layers.” Its transport is built for best-effort networks that may drop packets, spraying packets across many paths with congestion control, and it can also run on lossless networks. Some optional features need support from switches, for “advanced capabilities such as packet trimming.” One lesson the spec says it takes from Ethernet and TCP/IP is that “many large-scale lossless fabrics are challenging to operate without triggering head-of-line blocking and congestion spreading.”

Ultra Ethernet and the work it left for later

Ultra Ethernet sprays packets and leaves storage for later

One sender uses many paths through a network that may drop packets; congestion control paces it.

A sender on the left splits its packets across four paths. Each path crosses a switch inside a box labeled best-effort network, which may drop packets, and the paths join again at one receiver on the right. A dashed arrow runs from the receiver back to the sender and is labeled congestion control. A note says optional features such as packet trimming need switch support and that no changes to the Ethernet PHY or link layer are required. A dashed box reads storage services, future release. The tag reads version 1.0, June 11, 2025.ULTRA ETHERNET 1.0, JUNE 11, 2025best-effort networkmay drop packetssome packets lostsenderspraysreceivercongestion controlOptional features, such as packet trimming,need switch support. No Ethernet PHY orlink-layer changes are required.storage services:future releasepacketpathfeedbackswitch or host
Figure 11 · How Ultra Ethernet 1.0 carries traffic over ordinary Ethernet. Optional features such as packet trimming need switch support, and its storage services are scheduled for a future release. Source: Ultra Ethernet Consortium.

Storage comes up by name, and random incast events like many customers reading from one storage server “regularly occur,” in the spec’s words.

What to watch

The published record still has gaps worth watching. No source here reads the same current drive locally and then over a fabric, none measures what Fibre Channel adds, and none compares NVMe/TCP with local drives in production. The checkpoint and data-loading results above make the case for planning storage bandwidth and congestion alongside the choice of RDMA or TCP, not after it.

What to watch

Three places SI storage time goes, from three setups

Each panel carries one number from this guide. They were measured differently and are not ranked.

Three panels, each with one number from the guide. Panel one, fabric round trip: 4.72µs to 21.39µs on a null device in SPDK tests, drawn as a host and a drive linked over a fabric. Panel two, checkpoint: 42 minutes over a 20Gbps storage path, drawn as a GPU node and remote storage. Panel three, data loading: 56% of GPU cycles stalled waiting for data in Meta's RM1 run, drawn as a bar with 56% marked as waiting. A note names the three sources and their setups.01 FABRIC ROUND TRIP4.72µs to 21.39µsSPDK null-device testRDMA to Linux TCPhostfabricnull drive02 CHECKPOINT42 minutesone checkpoint over a20Gbps storage pathGPU nodes20Gbpsremotestorage03 DATA LOADING56%of GPU cycles stalled,Meta's RM1 runGPU cycleswaitingotherSPDK 24.05 reports · Gemini, SOSP 2023 · Meta, ISCA 2022null-device test · paper example · RM1 training runwhere the time shows uplinkhost or other
Figure 12 · Where storage time showed up in this guide: the fabric round trip, the checkpoint and the data-loading stall. The three come from different setups and cannot be compared or ranked. Source: SPDK, Gemini, Meta.

Ultra Ethernet is adding storage services, and the spec says that work is scheduled for a future release. Until that release, there is no Ultra Ethernet storage protocol to compare with NVMe-oF.

KEEP GOING / NEXT CHAPTERContinue to Part 2

Sources

Primary is the original paper, standard or datasheet. Secondary is a review, a vendor summary or a news report. Measured is my own test data.

Show all 31 sources, 31 primary