2. API Errors#

This section provides information about the common API errors you might get when using GDS.

2.1. CU_FILE_DRIVER_NOT_INITIALIZED#

If the cuFileDriverOpen API is not called, errors encountered in the implicit call to driver initialization are reported as cuFile errors encountered when calling cuFileBufRegister or cuFileHandleRegister.

2.2. CU_FILE_DEVICE_NOT_SUPPORTED#

GDS is supported only on NVIDIA graphics processing units (GPU) Tesla® or Quadro® models that support compute mode, and a compute major capability greater than or equal to 6.

Note

This includes V100 and T4 cards.

2.3. CU_FILE_IO_NOT_SUPPORTED#

If the file descriptor is from a local file system, or a mount that is not GDS ready, the API returns the CU_FILE_IO_NOT_SUPPORTED error.

Refer to Before You Install GDS for a list of the supported file systems.

Common reasons for this error include:

  • The file descriptor belongs to an unsupported file system.

  • The specified fd is not a regular UNIX file.

  • Any combination of encryption, and compression, compliance settings on the fd are set.

    For example, FS_COMPR_FL | FS_ENCRYPT_FL | FS_APPEND_FL | FS_IMMUTABLE_FL.

    Note

    These settings are allowed when compat_mode is set to true.

  • Any combination of unsupported file modes are specified in the open call for the fd. For example,

    O_APPEND | O_NOCTTY | O_NONBLOCK | O_DIRECTORY | O_NOFOLLOW | O_TMPFILE
    

2.4. CU_FILE_CUDA_MEMORY_TYPE_INVALID#

Physical memory for cudaMallocManaged memory is allocated dynamically at the first use. Currently, it does not provide a mechanism to expose physical memory or Base Address Register (BAR) memory to pin for use in GDS. However, GDS indirectly supports cudaMallocManaged memory when the memory is used as an unregistered buffer with cuFileWrite and cuFileRead.