Unsupported CUDA APIs (v1.7)

Updated at:
Copy as MD
Important
  • This list is benchmarked against CUDA 12.3. CUDA APIs introduced in version 12.4 or later are not included.

  • The following tables list only the unsupported APIs. Any API not listed is supported.

CUDA Runtime APIs: Of the 261 exported API symbols, 89 are unsupported, for an estimated support rate of 65.90%.

Unsupported APIs fall into the following categories (see the CUDA Runtime section for details):

  • 74 APIs related to graphics.

  • 10 APIs that require advanced hardware features.

  • 5 APIs for features not currently in demand.

CUDA Driver APIs: Of the 474 exported API symbols, 87 are unsupported, for an estimated support rate of 81.65%.

Unsupported APIs fall into the following categories (see the CUDA Driver section for details):

  • 62 APIs related to graphics.

  • 17 APIs that require advanced hardware features.

  • 8 APIs for features not currently in demand.

CUDA Runtime

Corresponds to CUDA Runtime 12.3. Modules marked as deprecated in the official specification are not supported and are omitted here. All APIs not listed below are supported.

Module

CUDA Runtime API name

Remarks

device management

cudaDeviceFlushGPUDirectRDMAWrites

RDMA flush. Does not affect RDMA usage.

cudaDeviceGetNvSciSyncAttributes

Related to the NvSci library. Not currently in demand.

cudaDeviceGetTexture1DLinearMaxWidth

Graphics-related. Not required for AI scenarios.

external resource interoperability

cudaDestroyExternalMemory

Related to graphics API interoperability. Only CUDA APIs are currently supported.

cudaExternalMemoryGetMappedBuffer

cudaExternalMemoryGetMappedMipmappedArray

cudaImportExternalMemory

cudaImportExternalSemaphore

cudaSignalExternalSemaphoresAsync

cudaWaitExternalSemaphoresAsync

execution

control

cudaSetDoubleForDevice

Deprecated as of CUDA 7.5.

Will not be supported.

cudaSetDoubleForHost

Deprecated as of CUDA 7.5.

Will not be supported.

occupancy

cudaOccupancyMaxActiveClusters

Cluster-related.

cudaOccupancyMaxPotentialClusterSize

memory management

cudaArrayGetInfo

Except for cudaMemAdvise_v2, these APIs are array-related and not required for AI scenarios.

cudaArrayGetMemoryRequirements

cudaArrayGetPlane

cudaArrayGetSparseProperties

cudaFreeArray

cudaFreeMipmappedArray

cudaGetMipmappedArrayLevel

cudaMalloc3DArray

cudaMallocArray

cudaMallocMipmappedArray

cudaMemAdvise_v2

cudaMemcpy2DArrayToArray

cudaMemcpy2DFromArray

cudaMemcpy2DFromArrayAsync

cudaMemcpy2DToArray

cudaMemcpy2DToArrayAsync

cudaMipmappedArrayGetMemoryRequirements

cudaMipmappedArrayGetSparseProperties

OpenGL interoperability

cudaGLGetDevices

Graphics-related. Not required for AI scenarios.

cudaGraphicsGLRegisterBuffer

cudaGraphicsGLRegisterImage

cudaWGLGetDevice

Direct3D 9 Interoperability

cudaD3D9GetDevice

cudaD3D9GetDevices

cudaD3D9GetDirect3DDevice

cudaD3D9SetDirect3DDevice

cudaGraphicsD3D9RegisterResource

Direct3D 10 Interoperability

cudaD3D10GetDevice

cudaD3D10GetDevices

cudaGraphicsD3D10RegisterResource

Direct3D 11 Interoperability

cudaD3D11GetDevice

cudaD3D11GetDevices

cudaGraphicsD3D11RegisterResource

VDPAU Interoperability

cudaGraphicsVDPAURegisterOutputSurface

cudaGraphicsVDPAURegisterVideoSurface

cudaVDPAUGetDevice

cudaVDPAUSetVDPAUDevice

EGL Interoperability

cudaEGLStreamConsumerAcquireFrame

cudaEGLStreamConsumerConnect

cudaEGLStreamConsumerConnectWithFlags

cudaEGLStreamConsumerDisconnect

cudaEGLStreamConsumerReleaseFrame

cudaEGLStreamProducerConnect

cudaEGLStreamProducerDisconnect

cudaEGLStreamProducerPresentFrame

cudaEGLStreamProducerReturnFrame

cudaEventCreateFromEGLSync

cudaGraphicsEGLRegisterImage

cudaGraphicsResourceGetMappedEglFrame

graphics interoperability

cudaGraphicsMapResources

cudaGraphicsResourceGetMappedMipmappedArray

cudaGraphicsResourceGetMappedPointer

cudaGraphicsResourceSetMapFlags

cudaGraphicsSubResourceGetMappedArray

cudaGraphicsUnmapResources

cudaGraphicsUnregisterResource

surface object management

cudaCreateSurfaceObject

cudaDestroySurfaceObject

cudaGetSurfaceObjectResourceDesc

graph management

cudaGetCurrentGraphExec

Device function.

Requires CUDA Dynamic Parallelism (CDP) support.

cudaGraphAddExternalSemaphoresSignalNode

Primarily graphics-related. Not required for AI scenarios.

cudaGraphAddExternalSemaphoresWaitNode

cudaGraphExecExternalSemaphoresSignalNodeSetParams

cudaGraphExecExternalSemaphoresWaitNodeSetParams

cudaGraphExecGetFlags

cudaGraphExternalSemaphoresSignalNodeGetParams

cudaGraphExternalSemaphoresSignalNodeSetParams

cudaGraphExternalSemaphoresWaitNodeGetParams

cudaGraphExternalSemaphoresWaitNodeSetParams

cudaGraphInstantiateWithParams

cudaGraphNodeGetEnabled

cudaGraphNodeSetEnabled

cudaGraphUpload

cudaGraphConditionalHandleCreate

cudaGraphSetConditional

Additionally, for some APIs, only a subset of their enumeration values are supported. In such cases, the specific support status is reported at runtime with a cudaErrorNotSupported or cudaErrorInvalidValue return code.

CUDA Driver

Corresponds to CUDA Driver 12.3. Modules marked as deprecated in the official specification are not supported and are omitted here. All APIs not listed below are supported.

Module

CUDA Driver API name

device management

cuDeviceGetExecAffinitySupport

cuDeviceGetNvSciSyncAttributes

cuDeviceGetTexture1DLinearMaxWidth

cuFlushGPUDirectRDMAWrites

context management

cuCtxGetExecAffinity

cuCtxSetFlags

library management

cuLibraryGetUnifiedFunction

memory management

cuArray3DCreate

cuArray3DGetDescriptor

cuArrayCreate

cuArrayDestroy

cuArrayGetDescriptor

cuArrayGetMemoryRequirements

cuArrayGetPlane

cuArrayGetSparseProperties

cuMemcpyAtoA

cuMemcpyAtoD

cuMemcpyAtoH

cuMemcpyAtoHAsync

cuMemcpyDtoA

cuMemcpyHtoA

cuMemcpyHtoAAsync

cuMipmappedArrayGetMemoryRequirements

cuMipmappedArrayGetSparseProperties

cuMemMapArrayAsync

multicast object management

cuMulticastAddDevice

cuMulticastBindAddr

cuMulticastBindMem

cuMulticastCreate

cuMulticastGetGranularity

cuMulticastUnbind

external resource interoperability

cuDestroyExternalMemory

cuDestroyExternalSemaphore

cuExternalMemoryGetMappedMipmappedArray

cuExternalMemoryGetMappedBuffer

cuImportExternalMemory

cuImportExternalSemaphore

cuSignalExternalSemaphoresAsync

cuWaitExternalSemaphoresAsync

execution control

cuLaunchKernelEx

graph management

cuGraphConditionalHandleCreate

cuGraphAddExternalSemaphoresSignalNode

cuGraphAddExternalSemaphoresWaitNode

cuGraphExecGetFlags

cuGraphExternalSemaphoresSignalNodeGetParams

cuGraphExternalSemaphoresSignalNodeSetParams

cuGraphExternalSemaphoresWaitNodeGetParams

cuGraphExternalSemaphoresWaitNodeSetParams

cuGraphInstantiateWithParams

cuGraphNodeGetEnabled

cuGraphNodeSetEnabled

cuGraphUpload

occupancy

cuOccupancyMaxActiveClusters

cuOccupancyMaxPotentialClusterSize

surface object management

cuSurfObjectCreate

cuSurfObjectDestroy

cuSurfObjectGetResourceDesc

tensor map object management

cuTensorMapEncodeIm2col

cuTensorMapEncodeTiled

cuTensorMapReplaceAddress

graphics interoperability

cuGraphicsMapResources

cuGraphicsResourceGetMappedMipmappedArray

cuGraphicsResourceGetMappedPointer

cuGraphicsResourceSetMapFlags

cuGraphicsSubResourceGetMappedArray

cuGraphicsUnmapResources

cuGraphicsUnregisterResource

coredump attribute control API

cuCoredumpGetAttribute

cuCoredumpGetAttributeGlobal

cuCoredumpSetAttribute

cuCoredumpSetAttributeGlobal

VDPAU Interoperability

cuGraphicsVDPAURegisterOutputSurface

cuGraphicsVDPAURegisterVideoSurface

cuVDPAUCtxCreate

cuVDPAUGetDevice

EGL Interoperability

cuEGLStreamConsumerAcquireFrame

cuEGLStreamConsumerConnect

cuEGLStreamConsumerConnectWithFlags

cuEGLStreamConsumerDisconnect

cuEGLStreamConsumerReleaseFrame

cuEGLStreamProducerConnect

cuEGLStreamProducerDisconnect

cuEGLStreamProducerPresentFrame

cuEGLStreamProducerReturnFrame

cuEventCreateFromEGLSync

cuGraphicsEGLRegisterImage

cuGraphicsResourceGetMappedEglFrame

Additionally, for some APIs, only a subset of their enumeration values are supported. In such cases, the specific support status is reported at runtime with a CUDA_ERROR_NOT_SUPPORTED or CUDA_ERROR_INVALID_VALUE return code.