NVIDIA/gds-nvidia-fs
NVIDIA GPUDirect Storage Driver
NVIDIA gds‑nvidia‑fs
What it is – A Linux kernel module (nvidia-fs.ko) that implements NVIDIA’s GPUDirect Storage (GDS) driver. It lets supported storage systems move data directly into or out of GPU memory via DMA/RDMA, bypassing the CPU and host memory.
Why it matters – Modern AI/ML workloads often need to feed terabytes of data to GPUs at high speed. Traditional paths copy data through the CPU, creating a bandwidth bottleneck. This driver enables a zero‑copy path, which can dramatically increase throughput and reduce latency for training, inference, and data‑intensive analytics.
Core capabilities
| Capability | Details |
|---|---|
| Direct GPU I/O | Moves data between NVMe/NVMe‑OF, ScaleFlux computational storage, or RDMA‑enabled filesystems and GPU memory without staging in host RAM. |
| Supported storage back‑ends | • XFS & EXT4 (ordered mode) on NVMe/NVMe‑OF/ScaleFlux CSD • NFS over RDMA (MOFED ≥ 5.1) • Distributed RDMA filesystems: DDN Exascaler, WekaFS, VAST |
| Hardware requirements | NVIDIA Tesla or Quadro GPUs (Pascal‑generation or newer), compatible NVMe or distributed storage, Linux kernel ≥ 4.15, MOFED ≥ 5.1, CUDA ≥ 10.0, driver ≥ 418.40 |
| Kernel integration | Built as a loadable kernel module (nvidia-fs.ko). |
| Documentation | Official GDS docs: https://docs.nvidia.com/gpudirect-storage/index.html |
Typical use‑case workflow
- Prepare the environment – Install a supported NVIDIA GPU, appropriate storage (e.g., NVMe SSDs or an RDMA‑enabled filesystem), and the required software stack (Linux kernel, MOFED, CUDA toolkit, NVIDIA driver).
- Build the driver
cd src export CONFIG_MOFED_VERSION=$(ofed_info -s | cut -d '-' -f 2) sudo make - Load the module
sudo insmod nvidia-fs.ko - Use the
cufileAPIs from your CUDA application (or from libraries such as RAPIDS, PyTorch‑Dataloader, TensorFlow) to open files on the supported storage and read/write directly into GPU buffers. - Benefit – Higher effective I/O bandwidth and lower CPU overhead, which translates into faster data‑pipeline throughput for large‑scale model training or inference.
Getting started
# Clone the repo (example URL)
git clone https://github.com/NVIDIA/gds-nvidia-fs.git
cd gds-nvidia-fs/src
# Export the MOFED version detected on the host
export CONFIG_MOFED_VERSION=$(ofed_info -s | cut -d '-' -f 2)
# Build and install the kernel module
sudo make
sudo insmod nvidia-fs.ko
After loading, the driver registers with the kernel and becomes usable by applications that call the NVIDIA GPUDirect Storage (cufile) library.
Who should use this
- AI/ML engineers building high‑performance data pipelines for training large models.
- Data‑center operators who want to maximize GPU utilization by reducing CPU‑side I/O bottlenecks.
- Researchers working on storage‑aware GPU computing, computational storage, or RDMA‑based systems.
Limitations & notes
- The driver only works on Linux kernels 4.15+ and requires the MOFED (Mellanox OFED) stack for RDMA support.
- Filesystems must be mounted in ordered mode for XFS/EXT4; other mount options are not supported.
- It is a low‑level kernel component; users typically interact with it via higher‑level libraries (e.g., NVIDIA’s
cufileAPI) rather than directly.
In short – nvidia-fs is the kernel‑level piece that makes NVIDIA’s GPUDirect Storage work, enabling ultra‑fast, zero‑copy data movement from modern storage systems straight into GPU memory, a key building block for next‑generation AI workloads.
Related
- Project
- Project
- Project
- Project