cuFile Compatibility Mode
Use Cases
cuFile APIs can be used in different scenarios:
- Developers building GPUDirect Storage applications with cuFile APIs, but don’t have the supported hardware configurations.
- Developers building applications running on GPU cards that have CUDA compute capability > 6, but don’t have BAR space exposed.
- Deployments where
nvidia-fs.ko
is not loaded or cannot be loaded. - Deployments where the Linux distribution does not support GPUDirect Storage.
- Deployments where the filesystem may be not supported with GPUDirect Storage.
- Deployments where the network links are not enabled with RDMA support.
- Deployment where the configuration is not optimal for GPUDirect Storage.
Behavior
The cuFile library provides a mechanism for cuFile reads and writes to use compatibility mode using POSIXpread
, pwrite
, and aio_submit
APIS respectively to host memory and copying to GPU memory when applicable. The behavior of compatibility mode with cuFile APIs is determined by the following configuration parameters.
In addition to the above configuration options, compatibility mode will be used as a fallback option for following use cases.
Use Case | cuFile IO Behavior |
---|---|
No BAR1 memory in GPU. | Use compatibility mode. |
For wekaFS or IBM Spectrum Scale mounts: If there are no |
Use compatibility mode. |
Bounce buffers cannot be allocated in GPU memory. | Use compatibility mode. |
For WekaFS and IBM Spectrum Scale: If the kernel returns -ENOTSUP for GPUDirect Storage read/write. |
Retry the IO operation internally using compatibility mode. |
cuFile Stream and cuFile Batch APIs on IBM Spectrum Scale or WekaFS | All Async and batch operations will internally use compatibility mode IO. |
The nvidia_fs.ko driver is not loaded. |
All IO operations will use compatibility mode. |
Limitations
- Compatible mode does not work in cases where the GPUs have CUDA compute capability less than 6.
- GDS Compat mode has been tested and works with GDS enabled file systems and environments. It has not been tested to work on all other filesystems.