Verify GPU-Direct Reads with NVIDIA KvikIO
- NVIDIA GPUDirect Storage (GDS) moves data between supported storage and GPU memory without staging it through host memory, reducing CPU use.
- KvikIO provides Python and C++ interfaces above cuFile, and can route reads through cuFile or its POSIX compatibility backend, which stages data through host memory.
- A call to cuFile does not establish that GDS handled the transfer: cuFile chooses between accelerated and compatibility paths according to system support, filesystem, and configuration.
- The tutorial requires a Linux system with an NVIDIA GPU, GDS installation, and a supported storage and filesystem setup.
- For a 1 GiB CuPy read, the example uses cuFile statistics and gds_stats to distinguish nvfs operations from posix operations; KvikIO and cuFile settings also affect how requests are divided and executed.
Our take
A successful KvikIO read alone can conceal host-memory staging, so developers should verify the path on the target GPU and storage topology before estimating CPU load. Unlike KvikIO's POSIX backend, selecting cuFile is only an intermediate decision; the cuFile configuration must also permit GDS. The tutorial does not quantify throughput gains or establish results for other hardware and filesystem combinations.
Sources
- How to Read Data into GPU Memory in Python with NVIDIA GPUDirect Storage · NVIDIA Developer
The summary and analysis were generated by AI. The original sources are authoritative. AI content policy