Verify GPU-Direct Reads with NVIDIA KvikIO

News GPU Storage Infrastructure

  • 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

  1. 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