#cuda #driver #nvidia #run-time #gpu

baracuda-cufile-sys

Raw FFI bindings and dynamic loader for NVIDIA cuFile (GPUDirect Storage, Linux-only)

7 releases

Uses new Rust 2024

new 0.0.1-alpha.13 May 11, 2026
0.0.1-alpha.7 May 7, 2026
0.0.1-alpha.5 Apr 29, 2026
0.0.1-alpha.3 Apr 28, 2026
0.0.1-alpha.2 Apr 24, 2026

#83 in #nvidia


Used in 2 crates (via baracuda-cufile)

MIT/Apache

89KB
1.5K SLoC

baracuda-cufile-sys

Raw FFI bindings + dynamic loader for NVIDIA cuFile — the GPUDirect Storage user-space library, enabling direct DMA between NVMe / network storage and GPU memory without bouncing through host RAM.

Symbols resolve lazily via libloading; no link-time dependency on libcufile.so.

Most users want baracuda-cufile — that crate exposes typed driver-lifecycle / file-handle / buffer-registration / read-write / batch-IO APIs in idiomatic Rust.

Platform support

cuFile / GPUDirect Storage is Linux-only. The loader fails fast with a clear error on Windows / macOS.

What's exposed

  • Driver lifecycle: cuFileDriverOpen, cuFileDriverClose, cuFileDriverGetProperties, cuFileDriverSetPollMode etc.
  • File-handle register / deregister.
  • Buffer register / deregister (for both pinned and managed memory).
  • Sync read / write: cuFileRead, cuFileWrite.
  • Async read / write on a stream.
  • BatchIO: setup, submit, poll, cancel, destroy.
  • Configurable direct-I/O / cache / pinned-mem limits.

Part of the baracuda workspace.

License

Dual MIT / Apache-2.0.

Dependencies

~225–590KB
~13K SLoC