CUDA APIs不支持列表(v1.6)

更新时间:
复制为 MD 格式

重要
  • 此列表目前对比基准为CUDA 12.3,CUDA 12.4及以后新增CUDA APIs不在此列表范围内。

  • 下表只列举了目前不支持的CUDA Runtime APIs,不在此表格中的APIs均支持。

CUDA Runtime APIs不计算C++ API Routines支持(全部实现在头文件中),目前已导出API符号261个,未支持API 89 个,支持率估算 74.57%.

不支持API可分为以下几类(详见CUDA Runtime小节):

  • 涉及到Graphics 74个;

  • 涉及到硬件高级特性需求 10 个;

  • 涉及到无需求Features 5个;

CUDA Driver APIs目前已导出API符号474个,未支持API 87个,支持率估算84.49%.

不支持API可分为以下几类(详见CUDA Driver小节):

  • 涉及到Graphics 62个;

  • 涉及到硬件高级特性需求17个;

  • 涉及到无需求Features 8个;

CUDA Runtime

对齐到 CUDA Runtime 12.3(对于CUDA Runtime 12.3 Spec中标注为[DEPRECATED]模块整体不加以支持,此处不列出),除以下API不支持外:

功能模块

CUDA Runtime API 名称

备注

Device Management

cudaDeviceFlushGPUDirectRDMAWrites

RDMA Flush,不影响RDMA使用

cudaDeviceGetNvSciSyncAttributes

NvSci Lib,目前无实际需求

cudaDeviceGetTexture1DLinearMaxWidth

Graphics相关,AI场景无需求

External Resource Interoperability

cudaDestroyExternalMemory

Graphics API 交互相关,目前只支持CUDA API

cudaExternalMemoryGetMappedBuffer

cudaExternalMemoryGetMappedMipmappedArray

cudaImportExternalMemory

cudaImportExternalSemaphore

cudaSignalExternalSemaphoresAsync

cudaWaitExternalSemaphoresAsync

Execution

Control

cudaSetDoubleForDevice

deprecated as of CUDA 7.5

永不支持

cudaSetDoubleForHost

deprecated as of CUDA 7.5

永不支持

Occupancy

cudaOccupancyMaxActiveClusters

cluster相关

cudaOccupancyMaxPotentialClusterSize

Memory Management

cudaArrayGetInfo

cudaMemAdvise_v2外,都属于Array相关,AI场景无需求

cudaArrayGetMemoryRequirements

cudaArrayGetPlane

cudaArrayGetSparseProperties

cudaFreeArray

cudaFreeMipmappedArray

cudaGetMipmappedArrayLevel

cudaMalloc3DArray

cudaMallocArray

cudaMallocMipmappedArray

cudaMemAdvise_v2

cudaMemcpy2DArrayToArray

cudaMemcpy2DFromArray

cudaMemcpy2DFromArrayAsync

cudaMemcpy2DToArray

cudaMemcpy2DToArrayAsync

cudaMipmappedArrayGetMemoryRequirements

cudaMipmappedArrayGetSparseProperties

OpenGL Interoperability

cudaGLGetDevices

Graphics相关,AI场景无需求

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 funciton

需要CDP支持

cudaGraphAddExternalSemaphoresSignalNode

主要为Graphics相关,AI场景无需求

cudaGraphAddExternalSemaphoresWaitNode

cudaGraphExecExternalSemaphoresSignalNodeSetParams

cudaGraphExecExternalSemaphoresWaitNodeSetParams

cudaGraphExecGetFlags

cudaGraphExternalSemaphoresSignalNodeGetParams

cudaGraphExternalSemaphoresSignalNodeSetParams

cudaGraphExternalSemaphoresWaitNodeGetParams

cudaGraphExternalSemaphoresWaitNodeSetParams

cudaGraphInstantiateWithParams

cudaGraphNodeGetEnabled

cudaGraphNodeSetEnabled

cudaGraphUpload

cudaGraphConditionalHandleCreate

cudaGraphSetConditional

此外还存在少量的API有部分枚举不支持的情况,未列出,以实际运行返回cudaErrorNotSupported或者cudaErrorInvalidValue结果为准。

CUDA Driver

对齐到 CUDA Driver 12.3(对于CUDA Driver 12.3 Spec中标注为[DEPRECATED]模块整体不加以支持,此处不列出),除以下API不支持外:

功能模块

CUDA Driver API 名称

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 Managment

cuTensorMapEncodeIm2col

cuTensorMapEncodeTiled

cuTensorMapReplaceAddress

Graphics Interoperability

cuGraphicsMapResources

cuGraphicsResourceGetMappedMipmappedArray

cuGraphicsResourceGetMappedPointer

cuGraphicsResourceSetMapFlags

cuGraphicsSubResourceGetMappedArray

cuGraphicsUnmapResources

cuGraphicsUnregisterResource

Coredump Attributes 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

此外还存在少量的API有部分枚举不支持的情况,未列出,以实际运行返回CUDA_ERROR_NOT_SUPPORTED或者CUDA_ERROR_INVALID_VALUE结果为准。