← Infra · 2026-10-25
📖 DEEP DIVE · INFRA

uGDS: A User-Space Development Kit for High-Performance GPU Direct Storage

Jing Wei, Guanyi Chen, Qi Chen, Chuyu Zhang, Zheng Zhou, Chutian Wang, Jian Zhang
4 minread4.40score

NVIDIA GDS moves NVMe↔GPU over PCIe P2P but still routes every I/O control path through the kernel, imposes total order on streams, and ships a closed engine. uGDS is a user-space kit (libugds + minimal kernel helper). On a Samsung 990 PRO it reaches up to 12.12× GDS batch-read and 30.69× write bandwidth; 4-KiB sync write latency −84.1% with two threads. On one stream GDS keeps only 40.8% of sync 16-MiB read bandwidth; submissions can eat 99.6% of wall time. In LMCache, median TTFT falls up to 62.7% and serving goodput rises 2.63×. GDS bottlenecks are often control-path and ordering semantics, not DMA bandwidth.

1. Problem

Small I/Os (KV offload) hate fixed per-I/O kernel cost; stream total-order is too strong when only batch order is needed; closed engines block custom scheduling.

uGDS title.
uGDS title.

2. Method

Setup path privileges queue creation then bypasses the OS in steady state; control path issues NVMe in user space; data path is autonomous P2P DMA. Hardware queues split latency-sensitive sync vs deep batch. Diagnostic scheduling hooks are exposed.

Architecture.
Architecture.

3. Core claim

Move the control plane off the kernel hot path and relax ordering to batch needs. Save submission cost and mis-ordering, not just chase PCIe peak.

4. Experiments

Batch read/write up to 12.12×/30.69×; 4-KiB sync write −84.1%; LMCache TTFT −62.7%, goodput 2.63×; AMD vs hipFile sync write up to 1.19×.

Results.
Results.

5. Limits

Topology-specific; user-space polling trades SM time; multi-tenant isolation is extra work.

6. Practice

For KV offload / ZeRO-offload, measure small-I/O latency and submission share before celebrating bandwidth.