6.36. CUDA 运行时使用的数据类型
类
- struct
- struct
- struct
- struct
- struct
- struct
- struct
- struct
- struct
- struct
- struct
- struct
- struct
- struct
- struct
- struct
- struct
- struct
- struct
- struct
- struct
- struct
- struct
- struct
- struct
- struct
- struct
- struct
- struct
- struct
- struct
- struct
- struct
- struct
- struct
- struct
- struct
- struct
- struct
- union
- struct
- struct
- struct
- struct
- struct
- struct
- struct
- struct
- struct
- struct
- struct
- struct
- struct
- struct
- struct
- struct
- struct
- struct
- struct
- struct
- struct
- struct
- struct
- struct
宏定义
- #define CUDA_EGL_MAX_PLANES 3
- #define CUDA_IPC_HANDLE_SIZE 64
- #define cudaArrayColorAttachment 0x20
- #define cudaArrayCubemap 0x04
- #define cudaArrayDefault 0x00
- #define cudaArrayDeferredMapping 0x80
- #define cudaArrayLayered 0x01
- #define cudaArraySparse 0x40
- #define cudaArraySparsePropertiesSingleMipTail 0x1
- #define cudaArraySurfaceLoadStore 0x02
- #define cudaArrayTextureGather 0x08
- #define cudaCooperativeLaunchMultiDeviceNoPostSync 0x02
- #define cudaCooperativeLaunchMultiDeviceNoPreSync 0x01
- #define cudaCpuDeviceId ((int)-1)
- #define cudaDeviceBlockingSync 0x04
- #define cudaDeviceLmemResizeToMax 0x10
- #define cudaDeviceMapHost 0x08
- #define cudaDeviceMask 0xff
- #define cudaDeviceScheduleAuto 0x00
- #define cudaDeviceScheduleBlockingSync 0x04
- #define cudaDeviceScheduleMask 0x07
- #define cudaDeviceScheduleSpin 0x01
- #define cudaDeviceScheduleYield 0x02
- #define cudaDeviceSyncMemops 0x80
- #define cudaEventBlockingSync 0x01
- #define cudaEventDefault 0x00
- #define cudaEventDisableTiming 0x02
- #define cudaEventInterprocess 0x04
- #define cudaEventRecordDefault 0x00
- #define cudaEventRecordExternal 0x01
- #define cudaEventWaitDefault 0x00
- #define cudaEventWaitExternal 0x01
- #define cudaExternalMemoryDedicated 0x1
- #define cudaExternalSemaphoreSignalSkipNvSciBufMemSync 0x01
- #define cudaExternalSemaphoreWaitSkipNvSciBufMemSync 0x02
- #define cudaGraphKernelNodePortDefault 0
- #define cudaGraphKernelNodePortLaunchCompletion 2
- #define cudaGraphKernelNodePortProgrammatic 1
- #define cudaHostAllocDefault 0x00
- #define cudaHostAllocMapped 0x02
- #define cudaHostAllocPortable 0x01
- #define cudaHostAllocWriteCombined 0x04
- #define cudaHostRegisterDefault 0x00
- #define cudaHostRegisterIoMemory 0x04
- #define cudaHostRegisterMapped 0x02
- #define cudaHostRegisterPortable 0x01
- #define cudaHostRegisterReadOnly 0x08
- #define cudaInitDeviceFlagsAreValid 0x01
- #define cudaInvalidDeviceId ((int)-2)
- #define cudaIpcMemLazyEnablePeerAccess 0x01
- #define cudaMemAttachGlobal 0x01
- #define cudaMemAttachHost 0x02
- #define cudaMemAttachSingle 0x04
- #define cudaMemPoolCreateUsageHwDecompress 0x2
- #define cudaNvSciSyncAttrSignal 0x1
- #define cudaNvSciSyncAttrWait 0x2
- #define cudaOccupancyDefault 0x00
- #define cudaOccupancyDisableCachingOverride 0x01
- #define cudaPeerAccessDefault 0x00
- #define cudaStreamDefault 0x00
- #define cudaStreamLegacy ((cudaStream_t)0x1)
- #define cudaStreamNonBlocking 0x01
- #define cudaStreamPerThread ((cudaStream_t)0x2)
类型定义
- typedef cudaArray * cudaArray_const_t
- typedef cudaArray * cudaArray_t
- typedef cudaAsyncCallbackEntry * cudaAsyncCallbackHandle_t
- typedef CUeglStreamConnection_st * cudaEglStreamConnection
- typedef enumcudaError cudaError_t
- typedef CUevent_st * cudaEvent_t
- typedef CUexternalMemory_st * cudaExternalMemory_t
- typedef CUexternalSemaphore_st * cudaExternalSemaphore_t
- typedef CUfunc_st * cudaFunction_t
- typedef unsigned long long cudaGraphConditionalHandle
- typedef CUgraphDeviceUpdatableNode_st * cudaGraphDeviceNode_t
- typedef CUgraphExec_st * cudaGraphExec_t
- typedef CUgraphNode_st * cudaGraphNode_t
- typedef CUgraph_st * cudaGraph_t
- typedef cudaGraphicsResource * cudaGraphicsResource_t
- typedef void(CUDART_CB* cudaHostFn_t )( void* userData )
- typedef CUkern_st * cudaKernel_t
- typedef CUlib_st * cudaLibrary_t
- typedef CUmemPoolHandle_st * cudaMemPool_t
- typedef cudaMipmappedArray * cudaMipmappedArray_const_t
- typedef cudaMipmappedArray * cudaMipmappedArray_t
- typedef CUstream_st * cudaStream_t
- typedef unsigned long long cudaSurfaceObject_t
- typedef unsigned long long cudaTextureObject_t
- typedef CUuserObject_st * cudaUserObject_t
枚举
- enum cudaAccessProperty
- enum cudaAsyncNotificationType
- enum cudaCGScope
- enum cudaChannelFormatKind
- enum cudaClusterSchedulingPolicy
- enum cudaComputeMode
- enum cudaDeviceAttr
- enum cudaDeviceNumaConfig
- enum cudaDeviceP2PAttr
- enum cudaDriverEntryPointQueryResult
- enum cudaEglColorFormat
- enum cudaEglFrameType
- enum cudaEglResourceLocationFlags
- enum cudaError
- enum cudaExternalMemoryHandleType
- enum cudaExternalSemaphoreHandleType
- enum cudaFlushGPUDirectRDMAWritesOptions
- enum cudaFlushGPUDirectRDMAWritesScope
- enum cudaFlushGPUDirectRDMAWritesTarget
- enum cudaFuncAttribute
- enum cudaFuncCache
- enum cudaGPUDirectRDMAWritesOrdering
- enum cudaGetDriverEntryPointFlags
- enum cudaGraphConditionalNodeType
- enum cudaGraphDebugDotFlags
- enum cudaGraphDependencyType
- enum cudaGraphExecUpdateResult
- enum cudaGraphInstantiateFlags
- enum cudaGraphInstantiateResult
- enum cudaGraphKernelNodeField
- enum cudaGraphMemAttributeType
- enum cudaGraphNodeType
- enum cudaGraphicsCubeFace
- enum cudaGraphicsMapFlags
- enum cudaGraphicsRegisterFlags
- enum cudaJitOption
- enum cudaJit_CacheMode
- enum cudaJit_Fallback
- enum cudaLaunchAttributeID
- enum cudaLaunchMemSyncDomain
- enum cudaLibraryOption
- enum cudaLimit
- enum cudaMemAccessFlags
- enum cudaMemAllocationHandleType
- enum cudaMemAllocationType
- enum cudaMemLocationType
- enum cudaMemPoolAttr
- enum cudaMemRangeAttribute
- enum cudaMemcpy3DOperandType
- enum cudaMemcpyFlags
- enum cudaMemcpyKind
- enum cudaMemoryAdvise
- enum cudaMemoryType
- enum cudaResourceType
- enum cudaResourceViewFormat
- enum cudaSharedCarveout
- enum cudaSharedMemConfig
- enum cudaStreamCaptureMode
- enum cudaStreamCaptureStatus
- enum cudaStreamUpdateCaptureDependenciesFlags
- enum cudaSurfaceBoundaryMode
- enum cudaSurfaceFormatMode
- enum cudaTextureAddressMode
- enum cudaTextureFilterMode
- enum cudaTextureReadMode
- enum cudaUserObjectFlags
- enum cudaUserObjectRetainFlags
宏定义
- #define CUDA_EGL_MAX_PLANES 3
-
每帧最大平面数
- #define CUDA_IPC_HANDLE_SIZE 64
-
CUDA IPC 句柄大小
- #define cudaArrayColorAttachment 0x20
-
如果 mipmapped 数组在图形 API 中用作颜色目标,则必须在 cudaExternalMemoryGetMappedMipmappedArray 中设置
- #define cudaArrayCubemap 0x04
-
必须在 cudaMalloc3DArray 中设置以创建立方体贴图 CUDA 数组
- #define cudaArrayDefault 0x00
-
默认 CUDA 数组分配标志
- #define cudaArrayDeferredMapping 0x80
-
必须在 cudaMallocArray、cudaMalloc3DArray 或 cudaMallocMipmappedArray 中设置此标志,才能创建延迟映射 CUDA 数组或 CUDA mipmapped 数组
- #define cudaArrayLayered 0x01
-
必须在 cudaMalloc3DArray 中设置此标志,才能创建分层 CUDA 数组
- #define cudaArraySparse 0x40
-
必须在 cudaMallocArray、cudaMalloc3DArray 或 cudaMallocMipmappedArray 中设置此标志,才能创建稀疏 CUDA 数组或 CUDA mipmapped 数组
- #define cudaArraySparsePropertiesSingleMipTail 0x1
-
指示分层稀疏 CUDA 数组或 CUDA mipmapped 数组的所有层都具有单个 mip 尾部区域
- #define cudaArraySurfaceLoadStore 0x02
-
必须在 cudaMallocArray 或 cudaMalloc3DArray 中设置此标志,才能将表面绑定到 CUDA 数组
- #define cudaArrayTextureGather 0x08
-
必须在 cudaMallocArray 或 cudaMalloc3DArray 中设置此标志,才能对 CUDA 数组执行纹理Gather操作
- #define cudaCooperativeLaunchMultiDeviceNoPostSync 0x02
-
如果设置,则在参与调用 cudaLaunchCooperativeKernelMultiDevice 的流中推送的任何后续工作,将仅等待在该流对应的 GPU 上启动的内核完成执行,然后才开始执行。
- #define cudaCooperativeLaunchMultiDeviceNoPreSync 0x01
-
如果设置,则作为 cudaLaunchCooperativeKernelMultiDevice 一部分启动的每个内核,仅等待与该 GPU 对应的流中先前的工作完成执行,然后内核才开始执行。
- #define cudaCpuDeviceId ((int)-1)
-
表示 CPU 的设备 ID
- #define cudaDeviceBlockingSync 0x04
- #define cudaDeviceLmemResizeToMax 0x10
-
设备标志 - 启动后保持本地内存分配
- #define cudaDeviceMapHost 0x08
-
设备标志 - 支持映射的固定分配
- #define cudaDeviceMask 0xff
-
设备标志掩码
- #define cudaDeviceScheduleAuto 0x00
-
设备标志 - 自动调度
- #define cudaDeviceScheduleBlockingSync 0x04
-
设备标志 - 使用阻塞同步
- #define cudaDeviceScheduleMask 0x07
-
设备调度标志掩码
- #define cudaDeviceScheduleSpin 0x01
-
设备标志 - 自旋默认调度
- #define cudaDeviceScheduleYield 0x02
-
设备标志 - 让步默认调度
- #define cudaDeviceSyncMemops 0x80
-
设备标志 - 确保此上下文上的同步内存操作将同步
- #define cudaEventBlockingSync 0x01
-
事件使用阻塞同步
- #define cudaEventDefault 0x00
-
默认事件标志
- #define cudaEventDisableTiming 0x02
-
事件将不记录计时数据
- #define cudaEventInterprocess 0x04
-
事件适用于进程间使用。必须设置 cudaEventDisableTiming
- #define cudaEventRecordDefault 0x00
-
默认事件记录标志
- #define cudaEventRecordExternal 0x01
-
当执行流捕获时,事件在图中作为外部事件节点捕获
- #define cudaEventWaitDefault 0x00
-
默认事件等待标志
- #define cudaEventWaitExternal 0x01
-
当执行流捕获时,事件在图中作为外部事件节点捕获
- #define cudaExternalMemoryDedicated 0x1
-
指示外部内存对象是专用资源
- #define cudaExternalSemaphoreSignalSkipNvSciBufMemSync 0x01
-
当 cudaExternalSemaphoreSignalParams 的 /p flags 参数包含此标志时,它指示发出外部信号量对象的信号时,应跳过对所有导入为 cudaExternalMemoryHandleTypeNvSciBuf 的外部内存对象执行适当的内存同步操作,否则默认情况下会执行这些操作,以确保与同一 NvSciBuf 内存对象的其他导入器的数据一致性。
- #define cudaExternalSemaphoreWaitSkipNvSciBufMemSync 0x02
-
当 cudaExternalSemaphoreWaitParams 的 /p flags 参数包含此标志时,它指示等待外部信号量对象时,应跳过对所有导入为 cudaExternalMemoryHandleTypeNvSciBuf 的外部内存对象执行适当的内存同步操作,否则默认情况下会执行这些操作,以确保与同一 NvSciBuf 内存对象的其他导入器的数据一致性。
- #define cudaGraphKernelNodePortDefault 0
-
此端口在内核完成执行时激活。
- #define cudaGraphKernelNodePortLaunchCompletion 2
-
此端口在内核的所有块都已开始执行时激活。另请参见 cudaLaunchAttributeLaunchCompletionEvent。
- #define cudaGraphKernelNodePortProgrammatic 1
-
此端口在内核的所有块都已执行 cudaTriggerProgrammaticLaunchCompletion() 或已终止时激活。它必须与边缘类型 cudaGraphDependencyTypeProgrammatic 一起使用。另请参见 cudaLaunchAttributeProgrammaticEvent。
- #define cudaHostAllocDefault 0x00
-
默认页锁定分配标志
- #define cudaHostAllocMapped 0x02
-
将分配映射到设备空间
- #define cudaHostAllocPortable 0x01
-
所有 CUDA 上下文均可访问的固定内存
- #define cudaHostAllocWriteCombined 0x04
-
写组合内存
- #define cudaHostRegisterDefault 0x00
-
默认主机内存注册标志
- #define cudaHostRegisterIoMemory 0x04
-
内存映射 I/O 空间
- #define cudaHostRegisterMapped 0x02
-
将注册内存映射到设备空间
- #define cudaHostRegisterPortable 0x01
-
所有 CUDA 上下文均可访问的固定内存
- #define cudaHostRegisterReadOnly 0x08
-
内存映射只读
- #define cudaInitDeviceFlagsAreValid 0x01
-
告诉 CUDA 运行时,DeviceFlags 正在 cudaInitDevice 调用中设置
- #define cudaInvalidDeviceId ((int)-2)
-
表示无效设备的设备 ID
- #define cudaIpcMemLazyEnablePeerAccess 0x01
-
根据需要自动启用远程设备之间的对等访问
- #define cudaMemAttachGlobal 0x01
-
内存可以被任何设备上的任何流访问
- #define cudaMemAttachHost 0x02
-
内存不能被任何设备上的任何流访问
- #define cudaMemAttachSingle 0x04
-
内存只能由关联设备上的单个流访问
- #define cudaMemPoolCreateUsageHwDecompress 0x2
-
如果设置此标志,则指示内存将用作硬件加速解压缩的缓冲区。
- #define cudaNvSciSyncAttrSignal 0x1
-
当 cudaDeviceGetNvSciSyncAttributes 的 /p flags 设置为此值时,表示应用程序需要 signaler 特定的 NvSciSyncAttr 由 cudaDeviceGetNvSciSyncAttributes 填充。
- #define cudaNvSciSyncAttrWait 0x2
-
当 cudaDeviceGetNvSciSyncAttributes 的 /p flags 设置为此值时,表示应用程序需要 waiter 特定的 NvSciSyncAttr 由 cudaDeviceGetNvSciSyncAttributes 填充。
- #define cudaOccupancyDefault 0x00
-
默认行为
- #define cudaOccupancyDisableCachingOverride 0x01
-
假设全局缓存已启用且无法自动关闭
- #define cudaPeerAccessDefault 0x00
-
默认对等寻址启用标志
- #define cudaStreamDefault 0x00
-
默认流标志
- #define cudaStreamLegacy ((cudaStream_t)0x1)
- #define cudaStreamNonBlocking 0x01
-
流不与流 0(NULL 流)同步
- #define cudaStreamPerThread ((cudaStream_t)0x2)
类型定义
- typedef cudaArray * cudaArray_const_t
-
CUDA 数组(作为源复制参数)
- typedef cudaArray * cudaArray_t
-
CUDA 数组
- typedef cudaAsyncCallbackEntry * cudaAsyncCallbackHandle_t
-
CUDA 异步回调句柄
- typedef CUeglStreamConnection_st * cudaEglStreamConnection
-
CUDA EGLStream 连接
- typedef enumcudaError cudaError_t
-
CUDA 错误类型
- typedef CUevent_st * cudaEvent_t
-
CUDA 事件类型
- typedef CUexternalMemory_st * cudaExternalMemory_t
-
CUDA 外部内存
- typedef CUexternalSemaphore_st * cudaExternalSemaphore_t
-
CUDA 外部信号量
- typedef CUfunc_st * cudaFunction_t
-
CUDA 函数
- typedef unsigned long long cudaGraphConditionalHandle
-
用于条件图节点的 CUDA 句柄
- typedef CUgraphDeviceUpdatableNode_st * cudaGraphDeviceNode_t
-
用于设备端节点更新的 CUDA 设备节点句柄
- typedef CUgraphExec_st * cudaGraphExec_t
-
CUDA 可执行(可启动)图
- typedef CUgraphNode_st * cudaGraphNode_t
-
CUDA 图节点。
- typedef CUgraph_st * cudaGraph_t
-
CUDA 图
- typedef cudaGraphicsResource * cudaGraphicsResource_t
-
CUDA 图形资源类型
- void(CUDART_CB* cudaHostFn_t )( void* userData )
-
CUDA 主机函数
- userData
- 传递给函数的参数值
- typedef CUkern_st * cudaKernel_t
-
CUDA 内核
- typedef CUlib_st * cudaLibrary_t
-
CUDA 库
- typedef CUmemPoolHandle_st * cudaMemPool_t
-
CUDA 内存池
- typedef cudaMipmappedArray * cudaMipmappedArray_const_t
-
CUDA mipmapped 数组(作为源参数)
- typedef cudaMipmappedArray * cudaMipmappedArray_t
-
CUDA mipmapped 数组
- typedef CUstream_st * cudaStream_t
-
CUDA 流
- typedef unsigned long long cudaSurfaceObject_t
-
表示 CUDA Surface 对象的 opaque 值
- typedef unsigned long long cudaTextureObject_t
-
表示 CUDA 纹理对象的 opaque 值
- typedef CUuserObject_st * cudaUserObject_t
-
用于图的 CUDA 用户对象
参数
枚举
- enum cudaAccessProperty
-
使用 cudaAccessPolicyWindow 为 hitProp 和 missProp 成员指定性能提示。
值
- cudaAccessPropertyNormal = 0
- 正常缓存持久性。
- cudaAccessPropertyStreaming = 1
- 流式访问不太可能从缓存中持久存在。
- cudaAccessPropertyPersisting = 2
- 持久访问更可能在缓存中持久存在。
- enum cudaAsyncNotificationType
-
可能发生的异步通知类型
值
- cudaAsyncNotificationTypeOverBudget = 0x1
- enum cudaCGScope
-
CUDA 协作组作用域
值
- cudaCGScopeInvalid = 0
- 无效的协作组作用域
- cudaCGScopeGrid = 1
- 由 grid_group 表示的作用域
- cudaCGScopeMultiGrid = 2
- 由 multi_grid_group 表示的作用域
- enum cudaChannelFormatKind
-
通道格式类型
值
- cudaChannelFormatKindSigned = 0
- 有符号通道格式
- cudaChannelFormatKindUnsigned = 1
- 无符号通道格式
- cudaChannelFormatKindFloat = 2
- 浮点通道格式
- cudaChannelFormatKindNone = 3
- 无通道格式
- cudaChannelFormatKindNV12 = 4
- 无符号 8 位整数,平面 4:2:0 YUV 格式
- cudaChannelFormatKindUnsignedNormalized8X1 = 5
- 1 通道无符号 8 位归一化整数
- cudaChannelFormatKindUnsignedNormalized8X2 = 6
- 2 通道无符号 8 位归一化整数
- cudaChannelFormatKindUnsignedNormalized8X4 = 7
- 4 通道无符号 8 位归一化整数
- cudaChannelFormatKindUnsignedNormalized16X1 = 8
- 1 通道无符号 16 位归一化整数
- cudaChannelFormatKindUnsignedNormalized16X2 = 9
- 2 通道无符号 16 位归一化整数
- cudaChannelFormatKindUnsignedNormalized16X4 = 10
- 4 通道无符号 16 位归一化整数
- cudaChannelFormatKindSignedNormalized8X1 = 11
- 1 通道有符号 8 位归一化整数
- cudaChannelFormatKindSignedNormalized8X2 = 12
- 2 通道有符号 8 位归一化整数
- cudaChannelFormatKindSignedNormalized8X4 = 13
- 4 通道有符号 8 位归一化整数
- cudaChannelFormatKindSignedNormalized16X1 = 14
- 1 通道有符号 16 位归一化整数
- cudaChannelFormatKindSignedNormalized16X2 = 15
- 2 通道有符号 16 位归一化整数
- cudaChannelFormatKindSignedNormalized16X4 = 16
- 4 通道有符号 16 位归一化整数
- cudaChannelFormatKindUnsignedBlockCompressed1 = 17
- 4 通道无符号归一化块压缩(BC1 压缩)格式
- cudaChannelFormatKindUnsignedBlockCompressed1SRGB = 18
- 4 通道无符号归一化块压缩(BC1 压缩)格式,带 sRGB 编码
- cudaChannelFormatKindUnsignedBlockCompressed2 = 19
- 4 通道无符号归一化块压缩(BC2 压缩)格式
- cudaChannelFormatKindUnsignedBlockCompressed2SRGB = 20
- 4 通道无符号归一化块压缩(BC2 压缩)格式,带 sRGB 编码
- cudaChannelFormatKindUnsignedBlockCompressed3 = 21
- 4 通道无符号归一化块压缩(BC3 压缩)格式
- cudaChannelFormatKindUnsignedBlockCompressed3SRGB = 22
- 4 通道无符号归一化块压缩(BC3 压缩)格式,带 sRGB 编码
- cudaChannelFormatKindUnsignedBlockCompressed4 = 23
- 1 通道无符号归一化块压缩(BC4 压缩)格式
- cudaChannelFormatKindSignedBlockCompressed4 = 24
- 1 通道有符号归一化块压缩(BC4 压缩)格式
- cudaChannelFormatKindUnsignedBlockCompressed5 = 25
- 2 通道无符号归一化块压缩(BC5 压缩)格式
- cudaChannelFormatKindSignedBlockCompressed5 = 26
- 2 通道有符号归一化块压缩(BC5 压缩)格式
- cudaChannelFormatKindUnsignedBlockCompressed6H = 27
- 3 通道无符号半浮点块压缩(BC6H 压缩)格式
- cudaChannelFormatKindSignedBlockCompressed6H = 28
- 3 通道有符号半浮点块压缩(BC6H 压缩)格式
- cudaChannelFormatKindUnsignedBlockCompressed7 = 29
- 4 通道无符号归一化块压缩(BC7 压缩)格式
- cudaChannelFormatKindUnsignedBlockCompressed7SRGB = 30
- 4 通道无符号归一化块压缩(BC7 压缩)格式,带 sRGB 编码
- cudaChannelFormatKindUnsignedNormalized1010102 = 31
- 4 通道无符号归一化(10 位、10 位、10 位、2 位)格式
- enum cudaClusterSchedulingPolicy
-
集群调度策略。这些可以传递给 cudaFuncSetAttribute
值
- cudaClusterSchedulingPolicyDefault = 0
- 默认策略
- cudaClusterSchedulingPolicySpread = 1
- 将集群内的块分散到 SM
- cudaClusterSchedulingPolicyLoadBalancing = 2
- 允许硬件将集群中的块负载均衡到 SM
- enum cudaComputeMode
-
CUDA 设备计算模式
值
- cudaComputeModeDefault = 0
- 默认计算模式(多个线程可以使用 cudaSetDevice() 与此设备)
- cudaComputeModeExclusive = 1
- 计算独占线程模式(只有一个进程中的一个线程可以使用 cudaSetDevice() 与此设备)
- cudaComputeModeProhibited = 2
- 计算禁止模式(没有线程可以使用 cudaSetDevice() 与此设备)
- cudaComputeModeExclusiveProcess = 3
- 计算独占进程模式(一个进程中的多个线程可以使用 cudaSetDevice() 与此设备)
- enum cudaDeviceAttr
-
CUDA 设备属性
值
- cudaDevAttrMaxThreadsPerBlock = 1
- 每个块的最大线程数
- cudaDevAttrMaxBlockDimX = 2
- 最大块维度 X
- cudaDevAttrMaxBlockDimY = 3
- 最大块维度 Y
- cudaDevAttrMaxBlockDimZ = 4
- 最大块维度 Z
- cudaDevAttrMaxGridDimX = 5
- 最大网格维度 X
- cudaDevAttrMaxGridDimY = 6
- 最大网格维度 Y
- cudaDevAttrMaxGridDimZ = 7
- 最大网格维度 Z
- cudaDevAttrMaxSharedMemoryPerBlock = 8
- 每个块可用的最大共享内存(以字节为单位)
- cudaDevAttrTotalConstantMemory = 9
- 设备上可用于 CUDA C 内核中 __constant__ 变量的内存(以字节为单位)
- cudaDevAttrWarpSize = 10
- Warp 大小(以线程为单位)
- cudaDevAttrMaxPitch = 11
- 内存复制允许的最大 pitch(以字节为单位)
- cudaDevAttrMaxRegistersPerBlock = 12
- 每个块可用的最大 32 位寄存器数
- cudaDevAttrClockRate = 13
- 峰值时钟频率(以千赫兹为单位)
- cudaDevAttrTextureAlignment = 14
- 纹理的对齐要求
- cudaDevAttrGpuOverlap = 15
- 设备可能可以同时复制内存和执行内核
- cudaDevAttrMultiProcessorCount = 16
- 设备上的多处理器数量
- cudaDevAttrKernelExecTimeout = 17
- 指定内核是否具有运行时限制
- cudaDevAttrIntegrated = 18
- 设备与主机内存集成
- cudaDevAttrCanMapHostMemory = 19
- 设备可以将主机内存映射到 CUDA 地址空间
- cudaDevAttrComputeMode = 20
- 计算模式(有关详细信息,请参见 cudaComputeMode)
- cudaDevAttrMaxTexture1DWidth = 21
- 最大 1D 纹理宽度
- cudaDevAttrMaxTexture2DWidth = 22
- 最大 2D 纹理宽度
- cudaDevAttrMaxTexture2DHeight = 23
- 最大 2D 纹理高度
- cudaDevAttrMaxTexture3DWidth = 24
- 最大 3D 纹理宽度
- cudaDevAttrMaxTexture3DHeight = 25
- 最大 3D 纹理高度
- cudaDevAttrMaxTexture3DDepth = 26
- 最大 3D 纹理深度
- cudaDevAttrMaxTexture2DLayeredWidth = 27
- 最大 2D 分层纹理宽度
- cudaDevAttrMaxTexture2DLayeredHeight = 28
- 最大 2D 分层纹理高度
- cudaDevAttrMaxTexture2DLayeredLayers = 29
- 2D 分层纹理中的最大层数
- cudaDevAttrSurfaceAlignment = 30
- 表面的对齐要求
- cudaDevAttrConcurrentKernels = 31
- 设备可能可以并发执行多个内核
- cudaDevAttrEccEnabled = 32
- 设备已启用 ECC 支持
- cudaDevAttrPciBusId = 33
- 设备的 PCI 总线 ID
- cudaDevAttrPciDeviceId = 34
- 设备的 PCI 设备 ID
- cudaDevAttrTccDriver = 35
- 设备正在使用 TCC 驱动程序模型
- cudaDevAttrMemoryClockRate = 36
- 峰值内存时钟频率(千赫兹)
- cudaDevAttrGlobalMemoryBusWidth = 37
- 全局内存总线宽度(位)
- cudaDevAttrL2CacheSize = 38
- L2 缓存的大小(字节)
- cudaDevAttrMaxThreadsPerMultiProcessor = 39
- 每个多处理器最大常驻线程数
- cudaDevAttrAsyncEngineCount = 40
- 异步引擎的数量
- cudaDevAttrUnifiedAddressing = 41
- 设备与主机共享统一地址空间
- cudaDevAttrMaxTexture1DLayeredWidth = 42
- 最大 1D 分层纹理宽度
- cudaDevAttrMaxTexture1DLayeredLayers = 43
- 1D 分层纹理中的最大层数
- cudaDevAttrMaxTexture2DGatherWidth = 45
- 如果设置了 cudaArrayTextureGather,则为最大 2D 纹理宽度
- cudaDevAttrMaxTexture2DGatherHeight = 46
- 如果设置了 cudaArrayTextureGather,则为最大 2D 纹理高度
- cudaDevAttrMaxTexture3DWidthAlt = 47
- 备用最大 3D 纹理宽度
- cudaDevAttrMaxTexture3DHeightAlt = 48
- 备用最大 3D 纹理高度
- cudaDevAttrMaxTexture3DDepthAlt = 49
- 备用最大 3D 纹理深度
- cudaDevAttrPciDomainId = 50
- 设备的 PCI 域 ID
- cudaDevAttrTexturePitchAlignment = 51
- 纹理的 pitch 对齐要求
- cudaDevAttrMaxTextureCubemapWidth = 52
- 最大立方体贴图纹理宽度/高度
- cudaDevAttrMaxTextureCubemapLayeredWidth = 53
- 最大立方体贴图分层纹理宽度/高度
- cudaDevAttrMaxTextureCubemapLayeredLayers = 54
- 立方体贴图分层纹理中的最大层数
- cudaDevAttrMaxSurface1DWidth = 55
- 最大 1D 表面宽度
- cudaDevAttrMaxSurface2DWidth = 56
- 最大 2D 表面宽度
- cudaDevAttrMaxSurface2DHeight = 57
- 最大 2D 表面高度
- cudaDevAttrMaxSurface3DWidth = 58
- 最大 3D 表面宽度
- cudaDevAttrMaxSurface3DHeight = 59
- 最大 3D 表面高度
- cudaDevAttrMaxSurface3DDepth = 60
- 最大 3D 表面深度
- cudaDevAttrMaxSurface1DLayeredWidth = 61
- 最大 1D 分层表面宽度
- cudaDevAttrMaxSurface1DLayeredLayers = 62
- 1D 分层表面中的最大层数
- cudaDevAttrMaxSurface2DLayeredWidth = 63
- 最大 2D 分层表面宽度
- cudaDevAttrMaxSurface2DLayeredHeight = 64
- 最大 2D 分层表面高度
- cudaDevAttrMaxSurface2DLayeredLayers = 65
- 2D 分层表面中的最大层数
- cudaDevAttrMaxSurfaceCubemapWidth = 66
- 最大立方体贴图表面宽度
- cudaDevAttrMaxSurfaceCubemapLayeredWidth = 67
- 最大立方体贴图分层表面宽度
- cudaDevAttrMaxSurfaceCubemapLayeredLayers = 68
- 立方体贴图分层表面中的最大层数
- cudaDevAttrMaxTexture1DLinearWidth = 69
- 最大 1D 线性纹理宽度
- cudaDevAttrMaxTexture2DLinearWidth = 70
- 最大 2D 线性纹理宽度
- cudaDevAttrMaxTexture2DLinearHeight = 71
- 最大 2D 线性纹理高度
- cudaDevAttrMaxTexture2DLinearPitch = 72
- 最大 2D 线性纹理 pitch(字节)
- cudaDevAttrMaxTexture2DMipmappedWidth = 73
- 最大 mipmapped 2D 纹理宽度
- cudaDevAttrMaxTexture2DMipmappedHeight = 74
- 最大 mipmapped 2D 纹理高度
- cudaDevAttrComputeCapabilityMajor = 75
- 主计算能力版本号
- cudaDevAttrComputeCapabilityMinor = 76
- 次要计算能力版本号
- cudaDevAttrMaxTexture1DMipmappedWidth = 77
- 最大 mipmapped 1D 纹理宽度
- cudaDevAttrStreamPrioritiesSupported = 78
- 设备支持流优先级
- cudaDevAttrGlobalL1CacheSupported = 79
- 设备支持在 L1 中缓存全局变量
- cudaDevAttrLocalL1CacheSupported = 80
- 设备支持在 L1 中缓存局部变量
- cudaDevAttrMaxSharedMemoryPerMultiprocessor = 81
- 每个多处理器可用的最大共享内存(字节)
- cudaDevAttrMaxRegistersPerMultiprocessor = 82
- 每个多处理器可用的最大 32 位寄存器数量
- cudaDevAttrManagedMemory = 83
- 设备可以在此系统上分配托管内存
- cudaDevAttrIsMultiGpuBoard = 84
- 设备位于多 GPU 板上
- cudaDevAttrMultiGpuBoardGroupID = 85
- 同一多 GPU 板上设备组的唯一标识符
- cudaDevAttrHostNativeAtomicSupported = 86
- 设备与主机之间的链接支持本机原子操作
- cudaDevAttrSingleToDoublePrecisionPerfRatio = 87
- 单精度性能(每秒浮点运算次数)与双精度性能之比
- cudaDevAttrPageableMemoryAccess = 88
- 设备支持一致地访问分页内存,而无需对其调用 cudaHostRegister
- cudaDevAttrConcurrentManagedAccess = 89
- 设备可以与 CPU 并发地一致访问托管内存
- cudaDevAttrComputePreemptionSupported = 90
- 设备支持计算抢占
- cudaDevAttrCanUseHostPointerForRegisteredMem = 91
- 设备可以与 CPU 在相同的虚拟地址访问主机注册内存
- cudaDevAttrReserved92 = 92
- cudaDevAttrReserved93 = 93
- cudaDevAttrReserved94 = 94
- cudaDevAttrCooperativeLaunch = 95
- 设备支持通过 cudaLaunchCooperativeKernel 启动协作内核
- cudaDevAttrCooperativeMultiDeviceLaunch = 96
- 已弃用,cudaLaunchCooperativeKernelMultiDevice 已弃用。
- cudaDevAttrMaxSharedMemoryPerBlockOptin = 97
- 每个块的最大 optin 共享内存。此值可能因芯片而异。请参阅 cudaFuncSetAttribute
- cudaDevAttrCanFlushRemoteWrites = 98
- 设备支持刷新未完成的远程写入。
- cudaDevAttrHostRegisterSupported = 99
- 设备支持通过 cudaHostRegister 进行主机内存注册。
- cudaDevAttrPageableMemoryAccessUsesHostPageTables = 100
- 设备通过主机的页表访问分页内存。
- cudaDevAttrDirectManagedMemAccessFromHost = 101
- 主机可以直接访问设备上的托管内存,而无需迁移。
- cudaDevAttrMaxBlocksPerMultiprocessor = 106
- 每个多处理器的最大块数
- cudaDevAttrMaxPersistingL2CacheSize = 108
- 最大 L2 持久化行容量设置(字节)。
- cudaDevAttrMaxAccessPolicyWindowSize = 109
- cudaAccessPolicyWindow::num_bytes 的最大值。
- cudaDevAttrReservedSharedMemoryPerBlock = 111
- 每个块由 CUDA 驱动程序保留的共享内存(字节)
- cudaDevAttrSparseCudaArraySupported = 112
- 设备支持稀疏 CUDA 数组和稀疏 CUDA mipmapped 数组
- cudaDevAttrHostRegisterReadOnlySupported = 113
- 设备支持使用 cudaHostRegister 标志 cudaHostRegisterReadOnly 来注册必须映射为 GPU 只读的内存
- cudaDevAttrTimelineSemaphoreInteropSupported = 114
- 设备上支持外部时间线信号量互操作
- cudaDevAttrMaxTimelineSemaphoreInteropSupported = 114
- 已弃用,设备上支持外部时间线信号量互操作
- cudaDevAttrMemoryPoolsSupported = 115
- 设备支持使用 cudaMallocAsync 和 cudaMemPool 系列 API
- cudaDevAttrGPUDirectRDMASupported = 116
- 设备支持 GPUDirect RDMA API,例如 nvidia_p2p_get_pages(有关更多信息,请参阅 https://docs.nvda.net.cn/cuda/gpudirect-rdma)
- cudaDevAttrGPUDirectRDMAFlushWritesOptions = 117
- 返回的属性应解释为位掩码,其中各个位在 cudaFlushGPUDirectRDMAWritesOptions 枚举中列出
- cudaDevAttrGPUDirectRDMAWritesOrdering = 118
- 对于返回属性指示范围内的使用者,无需刷新对设备的 GPUDirect RDMA 写入。有关此处返回的数值,请参阅 cudaGPUDirectRDMAWritesOrdering。
- cudaDevAttrMemoryPoolSupportedHandleTypes = 119
- mempool based IPC 支持的句柄类型
- cudaDevAttrClusterLaunch = 120
- 指示设备支持集群启动
- cudaDevAttrDeferredMappingCudaArraySupported = 121
- 设备支持延迟映射 CUDA 数组和 CUDA mipmapped 数组
- cudaDevAttrReserved122 = 122
- cudaDevAttrReserved123 = 123
- cudaDevAttrReserved124 = 124
- cudaDevAttrIpcEventSupport = 125
- 设备支持 IPC 事件。
- cudaDevAttrMemSyncDomainCount = 126
- 设备支持的内存同步域的数量。
- cudaDevAttrReserved127 = 127
- cudaDevAttrReserved128 = 128
- cudaDevAttrReserved129 = 129
- cudaDevAttrNumaConfig = 130
- 设备的 NUMA 配置:值为 cudaDeviceNumaConfig 枚举类型
- cudaDevAttrNumaId = 131
- GPU 内存的 NUMA 节点 ID
- cudaDevAttrReserved132 = 132
- cudaDevAttrMpsEnabled = 133
- 在此设备上创建的上下文将通过 MPS 共享
- cudaDevAttrHostNumaId = 134
- 最接近设备的宿主节点的 NUMA ID,或者当系统不支持 NUMA 时为 -1
- cudaDevAttrD3D12CigSupported = 135
- 设备支持带有 D3D12 的 CIG。
- cudaDevAttrGpuPciDeviceId = 139
- 组合的 16 位 PCI 设备 ID 和 16 位 PCI 供应商 ID。
- cudaDevAttrGpuPciSubsystemId = 140
- 组合的 16 位 PCI 子系统 ID 和 16 位 PCI 子系统供应商 ID。
- cudaDevAttrHostNumaMultinodeIpcSupported = 143
- 设备支持多节点系统中节点之间的 HostNuma 位置 IPC。
- cudaDevAttrMax
- enum cudaDeviceNumaConfig
-
CUDA 设备 NUMA 配置
值
- cudaDeviceNumaConfigNone = 0
- GPU 不是 NUMA 节点
- cudaDeviceNumaConfigNumaNode
- GPU 是 NUMA 节点,cudaDevAttrNumaId 包含其 NUMA ID
- enum cudaDeviceP2PAttr
-
CUDA 设备 P2P 属性
值
- cudaDevP2PAttrPerformanceRank = 1
- 指示两个设备之间链接性能的相对值
- cudaDevP2PAttrAccessSupported = 2
- 已启用对等访问
- cudaDevP2PAttrNativeAtomicSupported = 3
- 支持通过链接的本机原子操作
- cudaDevP2PAttrCudaArrayAccessSupported = 4
- 支持通过链接访问 CUDA 数组
- enum cudaDriverEntryPointQueryResult
-
用于从获取驱动程序入口点状态的枚举,与 cudaApiGetDriverEntryPoint 一起使用
值
- cudaDriverEntryPointSuccess = 0
- 搜索符号找到匹配项
- cudaDriverEntryPointSymbolNotFound = 1
- 未找到搜索符号
- cudaDriverEntryPointVersionNotSufficent = 2
- 找到搜索符号,但版本不够
- enum cudaEglColorFormat
-
CUDA EGL 颜色格式 - CUDA_EGL 互操作当前支持的不同平面和多平面格式。
值
- cudaEglColorFormatYUV420Planar = 0
- Y、U、V 在三个表面中,每个表面单独存在,U/V 宽度 = 1/2 Y 宽度,U/V 高度 = 1/2 Y 高度。
- cudaEglColorFormatYUV420SemiPlanar = 1
- Y、UV 在两个表面中(UV 作为一个表面),具有 VU 字节顺序,宽度、高度比与 YUV420Planar 相同。
- cudaEglColorFormatYUV422Planar = 2
- Y、U、V 每个在单独的表面中,U/V 宽度 = 1/2 Y 宽度,U/V 高度 = Y 高度。
- cudaEglColorFormatYUV422SemiPlanar = 3
- Y、UV 在两个表面中,具有 VU 字节顺序,宽度、高度比与 YUV422Planar 相同。
- cudaEglColorFormatARGB = 6
- R/G/B/A 四个通道在一个表面中,具有 BGRA 字节顺序。
- cudaEglColorFormatRGBA = 7
- R/G/B/A 四个通道在一个表面中,具有 ABGR 字节顺序。
- cudaEglColorFormatL = 8
- 单个亮度通道在一个表面中。
- cudaEglColorFormatR = 9
- 单个颜色通道在一个表面中。
- cudaEglColorFormatYUV444Planar = 10
- Y、U、V 在三个表面中,每个表面单独存在,U/V 宽度 = Y 宽度,U/V 高度 = Y 高度。
- cudaEglColorFormatYUV444SemiPlanar = 11
- Y、UV 在两个表面中(UV 作为一个表面),具有 VU 字节顺序,宽度、高度比与 YUV444Planar 相同。
- cudaEglColorFormatYUYV422 = 12
- Y、U、V 在一个表面中,以 UYVY 形式交错在一个通道中。
- cudaEglColorFormatUYVY422 = 13
- Y、U、V 在一个表面中,以 YUYV 形式交错在一个通道中。
- cudaEglColorFormatABGR = 14
- R/G/B/A 四个通道在一个表面中,具有 RGBA 字节顺序。
- cudaEglColorFormatBGRA = 15
- R/G/B/A 四个通道在一个表面中,具有 ARGB 字节顺序。
- cudaEglColorFormatA = 16
- Alpha 颜色格式 - 一个通道在一个表面中。
- cudaEglColorFormatRG = 17
- R/G 颜色格式 - 两个通道在一个表面中,具有 GR 字节顺序
- cudaEglColorFormatAYUV = 18
- Y、U、V、A 四个通道在一个表面中,以 VUYA 形式交错。
- cudaEglColorFormatYVU444SemiPlanar = 19
- Y、VU 在两个表面中(VU 作为一个表面),具有 UV 字节顺序,U/V 宽度 = Y 宽度,U/V 高度 = Y 高度。
- cudaEglColorFormatYVU422SemiPlanar = 20
- Y、VU 在两个表面中(VU 作为一个表面),具有 UV 字节顺序,U/V 宽度 = 1/2 Y 宽度,U/V 高度 = Y 高度。
- cudaEglColorFormatYVU420SemiPlanar = 21
- Y、VU 在两个表面中(VU 作为一个表面),具有 UV 字节顺序,U/V 宽度 = 1/2 Y 宽度,U/V 高度 = 1/2 Y 高度。
- cudaEglColorFormatY10V10U10_444SemiPlanar = 22
- Y10、V10U10 在两个表面中(VU 作为一个表面),具有 UV 字节顺序,U/V 宽度 = Y 宽度,U/V 高度 = Y 高度。
- cudaEglColorFormatY10V10U10_420SemiPlanar = 23
- Y10、V10U10 在两个表面中(VU 作为一个表面),具有 UV 字节顺序,U/V 宽度 = 1/2 Y 宽度,U/V 高度 = 1/2 Y 高度。
- cudaEglColorFormatY12V12U12_444SemiPlanar = 24
- Y12、V12U12 在两个表面中(VU 作为一个表面),具有 UV 字节顺序,U/V 宽度 = Y 宽度,U/V 高度 = Y 高度。
- cudaEglColorFormatY12V12U12_420SemiPlanar = 25
- Y12、V12U12 在两个表面中(VU 作为一个表面),具有 UV 字节顺序,U/V 宽度 = 1/2 Y 宽度,U/V 高度 = 1/2 Y 高度。
- cudaEglColorFormatVYUY_ER = 26
- 扩展范围 Y、U、V 在一个表面中,以 YVYU 形式交错在一个通道中。
- cudaEglColorFormatUYVY_ER = 27
- 扩展范围 Y、U、V 在一个表面中,以 YUYV 形式交错在一个通道中。
- cudaEglColorFormatYUYV_ER = 28
- 扩展范围 Y、U、V 在一个表面中,以 UYVY 形式交错在一个通道中。
- cudaEglColorFormatYVYU_ER = 29
- 扩展范围 Y、U、V 在一个表面中,以 VYUY 形式交错在一个通道中。
- cudaEglColorFormatYUVA_ER = 31
- 扩展范围 Y、U、V、A 四个通道在一个表面中,以 AVUY 形式交错。
- cudaEglColorFormatAYUV_ER = 32
- 扩展范围 Y、U、V、A 四个通道在一个表面中,以 VUYA 形式交错。
- cudaEglColorFormatYUV444Planar_ER = 33
- 扩展范围 Y、U、V 在三个表面中,U/V 宽度 = Y 宽度,U/V 高度 = Y 高度。
- cudaEglColorFormatYUV422Planar_ER = 34
- 扩展范围 Y、U、V 在三个表面中,U/V 宽度 = 1/2 Y 宽度,U/V 高度 = Y 高度。
- cudaEglColorFormatYUV420Planar_ER = 35
- 扩展范围 Y、U、V 在三个表面中,U/V 宽度 = 1/2 Y 宽度,U/V 高度 = 1/2 Y 高度。
- cudaEglColorFormatYUV444SemiPlanar_ER = 36
- 扩展范围 Y、UV 在两个表面中(UV 作为一个表面),具有 VU 字节顺序,U/V 宽度 = Y 宽度,U/V 高度 = Y 高度。
- cudaEglColorFormatYUV422SemiPlanar_ER = 37
- 扩展范围 Y、UV 在两个表面中(UV 作为一个表面),具有 VU 字节顺序,U/V 宽度 = 1/2 Y 宽度,U/V 高度 = Y 高度。
- cudaEglColorFormatYUV420SemiPlanar_ER = 38
- 扩展范围 Y、UV 在两个表面中(UV 作为一个表面),具有 VU 字节顺序,U/V 宽度 = 1/2 Y 宽度,U/V 高度 = 1/2 Y 高度。
- cudaEglColorFormatYVU444Planar_ER = 39
- 扩展范围 Y、V、U 在三个表面中,U/V 宽度 = Y 宽度,U/V 高度 = Y 高度。
- cudaEglColorFormatYVU422Planar_ER = 40
- 扩展范围 Y、V、U 在三个表面中,U/V 宽度 = 1/2 Y 宽度,U/V 高度 = Y 高度。
- cudaEglColorFormatYVU420Planar_ER = 41
- 扩展范围 Y、V、U 在三个表面中,U/V 宽度 = 1/2 Y 宽度,U/V 高度 = 1/2 Y 高度。
- cudaEglColorFormatYVU444SemiPlanar_ER = 42
- 扩展范围 Y、VU 在两个表面中(VU 作为一个表面),具有 UV 字节顺序,U/V 宽度 = Y 宽度,U/V 高度 = Y 高度。
- cudaEglColorFormatYVU422SemiPlanar_ER = 43
- 扩展范围 Y、VU 在两个表面中(VU 作为一个表面),具有 UV 字节顺序,U/V 宽度 = 1/2 Y 宽度,U/V 高度 = Y 高度。
- cudaEglColorFormatYVU420SemiPlanar_ER = 44
- 扩展范围 Y、VU 在两个表面中(VU 作为一个表面),具有 UV 字节顺序,U/V 宽度 = 1/2 Y 宽度,U/V 高度 = 1/2 Y 高度。
- cudaEglColorFormatBayerRGGB = 45
- Bayer 格式 - 一个通道在一个表面中,具有交错的 RGGB 顺序。
- cudaEglColorFormatBayerBGGR = 46
- Bayer 格式 - 一个通道在一个表面中,具有交错的 BGGR 顺序。
- cudaEglColorFormatBayerGRBG = 47
- Bayer 格式 - 一个通道在一个表面中,具有交错的 GRBG 顺序。
- cudaEglColorFormatBayerGBRG = 48
- Bayer 格式 - 一个通道在一个表面中,具有交错的 GBRG 顺序。
- cudaEglColorFormatBayer10RGGB = 49
- Bayer10 格式 - 一个通道在一个表面中,具有交错的 RGGB 顺序。在 16 位中,使用 10 位,6 位为 No-op。
- cudaEglColorFormatBayer10BGGR = 50
- Bayer10 格式 - 一个通道在一个表面中,具有交错的 BGGR 顺序。在 16 位中,使用 10 位,6 位为 No-op。
- cudaEglColorFormatBayer10GRBG = 51
- Bayer10 格式 - 一个通道在一个表面中,具有交错的 GRBG 顺序。在 16 位中,使用 10 位,6 位为 No-op。
- cudaEglColorFormatBayer10GBRG = 52
- Bayer10 格式 - 一个通道在一个表面中,具有交错的 GBRG 顺序。在 16 位中,使用 10 位,6 位为 No-op。
- cudaEglColorFormatBayer12RGGB = 53
- Bayer12 格式 - 一个通道在一个表面中,具有交错的 RGGB 顺序。在 16 位中,使用 12 位,4 位为 No-op。
- cudaEglColorFormatBayer12BGGR = 54
- Bayer12 格式 - 一个通道在一个表面中,具有交错的 BGGR 顺序。在 16 位中,使用 12 位,4 位为 No-op。
- cudaEglColorFormatBayer12GRBG = 55
- Bayer12 格式 - 一个通道在一个表面中,具有交错的 GRBG 顺序。在 16 位中,使用 12 位,4 位为 No-op。
- cudaEglColorFormatBayer12GBRG = 56
- Bayer12 格式 - 一个通道在一个表面中,具有交错的 GBRG 顺序。在 16 位中,使用 12 位,4 位为 No-op。
- cudaEglColorFormatBayer14RGGB = 57
- Bayer14 格式 - 一个通道在一个表面中,具有交错的 RGGB 顺序。在 16 位中,使用 14 位,2 位为 No-op。
- cudaEglColorFormatBayer14BGGR = 58
- Bayer14 格式 - 一个通道在一个表面中,具有交错的 BGGR 顺序。在 16 位中,使用 14 位,2 位为 No-op。
- cudaEglColorFormatBayer14GRBG = 59
- Bayer14 格式 - 一个通道在一个表面中,具有交错的 GRBG 顺序。在 16 位中,使用 14 位,2 位为 No-op。
- cudaEglColorFormatBayer14GBRG = 60
- Bayer14 格式 - 一个通道在一个表面中,具有交错的 GBRG 顺序。在 16 位中,使用 14 位,2 位为 No-op。
- cudaEglColorFormatBayer20RGGB = 61
- Bayer20 格式 - 一个通道在一个表面中,具有交错的 RGGB 顺序。在 32 位中,使用 20 位,12 位为 No-op。
- cudaEglColorFormatBayer20BGGR = 62
- Bayer20 格式 - 一个通道在一个表面中,具有交错的 BGGR 顺序。在 32 位中,使用 20 位,12 位为 No-op。
- cudaEglColorFormatBayer20GRBG = 63
- Bayer20 格式 - 一个通道在一个表面中,具有交错的 GRBG 顺序。在 32 位中,使用 20 位,12 位为 No-op。
- cudaEglColorFormatBayer20GBRG = 64
- Bayer20 格式 - 一个通道在一个表面中,具有交错的 GBRG 顺序。在 32 位中,使用 20 位,12 位为 No-op。
- cudaEglColorFormatYVU444Planar = 65
- Y、V、U 在三个表面中,每个表面单独存在,U/V 宽度 = Y 宽度,U/V 高度 = Y 高度。
- cudaEglColorFormatYVU422Planar = 66
- Y、V、U 在三个表面中,每个表面单独存在,U/V 宽度 = 1/2 Y 宽度,U/V 高度 = Y 高度。
- cudaEglColorFormatYVU420Planar = 67
- Y、V、U 在三个表面中,每个表面单独存在,U/V 宽度 = 1/2 Y 宽度,U/V 高度 = 1/2 Y 高度。
- cudaEglColorFormatBayerIspRGGB = 68
- Nvidia 专有 Bayer ISP 格式 - 一个通道在一个表面中,具有交错的 RGGB 顺序,并映射到不透明整数数据类型。
- cudaEglColorFormatBayerIspBGGR = 69
- Nvidia 专有 Bayer ISP 格式 - 一个通道在一个表面中,具有交错的 BGGR 顺序,并映射到不透明整数数据类型。
- cudaEglColorFormatBayerIspGRBG = 70
- Nvidia 专有 Bayer ISP 格式 - 一个通道在一个表面中,具有交错的 GRBG 顺序,并映射到不透明整数数据类型。
- cudaEglColorFormatBayerIspGBRG = 71
- Nvidia 专有 Bayer ISP 格式 - 一个通道在一个表面中,具有交错的 GBRG 顺序,并映射到不透明整数数据类型。
- cudaEglColorFormatBayerBCCR = 72
- Bayer 格式 - 一个通道在一个表面中,具有交错的 BCCR 顺序。
- cudaEglColorFormatBayerRCCB = 73
- Bayer 格式 - 一个通道在一个表面中,具有交错的 RCCB 顺序。
- cudaEglColorFormatBayerCRBC = 74
- Bayer 格式 - 一个通道在一个表面中,具有交错的 CRBC 顺序。
- cudaEglColorFormatBayerCBRC = 75
- Bayer 格式 - 一个通道在一个表面中,具有交错的 CBRC 顺序。
- cudaEglColorFormatBayer10CCCC = 76
- Bayer10 格式 - 一个通道在一个表面中,具有交错的 CCCC 顺序。在 16 位中,使用 10 位,6 位为 No-op。
- cudaEglColorFormatBayer12BCCR = 77
- Bayer12 格式 - 一个通道在一个表面中,具有交错的 BCCR 顺序。在 16 位中,使用 12 位,4 位为 No-op。
- cudaEglColorFormatBayer12RCCB = 78
- Bayer12 格式 - 一个通道在一个表面中,具有交错的 RCCB 顺序。在 16 位中,使用 12 位,4 位为 No-op。
- cudaEglColorFormatBayer12CRBC = 79
- Bayer12 格式 - 一个通道在一个表面中,具有交错的 CRBC 顺序。在 16 位中,使用 12 位,4 位为 No-op。
- cudaEglColorFormatBayer12CBRC = 80
- Bayer12 格式 - 一个通道在一个表面中,具有交错的 CBRC 顺序。在 16 位中,使用 12 位,4 位为 No-op。
- cudaEglColorFormatBayer12CCCC = 81
- Bayer12 格式 - 一个通道在一个表面中,具有交错的 CCCC 顺序。在 16 位中,使用 12 位,4 位为 No-op。
- cudaEglColorFormatY = 82
- 单 Y 平面的颜色格式。
- cudaEglColorFormatYUV420SemiPlanar_2020 = 83
- Y、UV 在两个表面中(UV 作为一个表面)U/V 宽度 = 1/2 Y 宽度,U/V 高度 = 1/2 Y 高度。
- cudaEglColorFormatYVU420SemiPlanar_2020 = 84
- Y、VU 在两个表面中(VU 作为一个表面)U/V 宽度 = 1/2 Y 宽度,U/V 高度 = 1/2 Y 高度。
- cudaEglColorFormatYUV420Planar_2020 = 85
- Y、U、V 在三个表面中,每个表面单独存在,U/V 宽度 = 1/2 Y 宽度,U/V 高度 = 1/2 Y 高度。
- cudaEglColorFormatYVU420Planar_2020 = 86
- Y、V、U 在三个表面中,每个表面单独存在,U/V 宽度 = 1/2 Y 宽度,U/V 高度 = 1/2 Y 高度。
- cudaEglColorFormatYUV420SemiPlanar_709 = 87
- Y、UV 在两个表面中(UV 作为一个表面)U/V 宽度 = 1/2 Y 宽度,U/V 高度 = 1/2 Y 高度。
- cudaEglColorFormatYVU420SemiPlanar_709 = 88
- Y、VU 在两个表面中(VU 作为一个表面)U/V 宽度 = 1/2 Y 宽度,U/V 高度 = 1/2 Y 高度。
- cudaEglColorFormatYUV420Planar_709 = 89
- Y、U、V 在三个表面中,每个表面单独存在,U/V 宽度 = 1/2 Y 宽度,U/V 高度 = 1/2 Y 高度。
- cudaEglColorFormatYVU420Planar_709 = 90
- Y、V、U 在三个表面中,每个表面单独存在,U/V 宽度 = 1/2 Y 宽度,U/V 高度 = 1/2 Y 高度。
- cudaEglColorFormatY10V10U10_420SemiPlanar_709 = 91
- Y10,V10U10 位于两个表面(VU 作为一个表面),U/V 宽度 = 1/2 Y 宽度,U/V 高度 = 1/2 Y 高度。
- cudaEglColorFormatY10V10U10_420SemiPlanar_2020 = 92
- Y10,V10U10 位于两个表面(VU 作为一个表面),U/V 宽度 = 1/2 Y 宽度,U/V 高度 = 1/2 Y 高度。
- cudaEglColorFormatY10V10U10_422SemiPlanar_2020 = 93
- Y10,V10U10 位于两个表面(VU 作为一个表面),U/V 宽度 = 1/2 Y 宽度,U/V 高度 = Y 高度。
- cudaEglColorFormatY10V10U10_422SemiPlanar = 94
- Y10,V10U10 位于两个表面(VU 作为一个表面),U/V 宽度 = 1/2 Y 宽度,U/V 高度 = Y 高度。
- cudaEglColorFormatY10V10U10_422SemiPlanar_709 = 95
- Y10,V10U10 位于两个表面(VU 作为一个表面),U/V 宽度 = 1/2 Y 宽度,U/V 高度 = Y 高度。
- cudaEglColorFormatY_ER = 96
- 单 Y 平面的扩展范围颜色格式。
- cudaEglColorFormatY_709_ER = 97
- 单 Y 平面的扩展范围颜色格式。
- cudaEglColorFormatY10_ER = 98
- 单 Y10 平面的扩展范围颜色格式。
- cudaEglColorFormatY10_709_ER = 99
- 单 Y10 平面的扩展范围颜色格式。
- cudaEglColorFormatY12_ER = 100
- 单 Y12 平面的扩展范围颜色格式。
- cudaEglColorFormatY12_709_ER = 101
- 单 Y12 平面的扩展范围颜色格式。
- cudaEglColorFormatYUVA = 102
- Y、U、V、A 四个通道位于一个表面中,交错排列为 AVUY。
- cudaEglColorFormatYVYU = 104
- Y、U、V 位于一个表面中,交错排列为 YVYU 在一个通道中。
- cudaEglColorFormatVYUY = 105
- Y、U、V 位于一个表面中,交错排列为 VYUY 在一个通道中。
- cudaEglColorFormatY10V10U10_420SemiPlanar_ER = 106
- 扩展范围 Y10,V10U10 位于两个表面(VU 作为一个表面),U/V 宽度 = 1/2 Y 宽度,U/V 高度 = 1/2 Y 高度。
- cudaEglColorFormatY10V10U10_420SemiPlanar_709_ER = 107
- 扩展范围 Y10,V10U10 位于两个表面(VU 作为一个表面),U/V 宽度 = 1/2 Y 宽度,U/V 高度 = 1/2 Y 高度。
- cudaEglColorFormatY10V10U10_444SemiPlanar_ER = 108
- 扩展范围 Y10,V10U10 位于两个表面(VU 作为一个表面),U/V 宽度 = Y 宽度,U/V 高度 = Y 高度。
- cudaEglColorFormatY10V10U10_444SemiPlanar_709_ER = 109
- 扩展范围 Y10,V10U10 位于两个表面(VU 作为一个表面),U/V 宽度 = Y 宽度,U/V 高度 = Y 高度。
- cudaEglColorFormatY12V12U12_420SemiPlanar_ER = 110
- 扩展范围 Y12,V12U12 位于两个表面(VU 作为一个表面),U/V 宽度 = 1/2 Y 宽度,U/V 高度 = 1/2 Y 高度。
- cudaEglColorFormatY12V12U12_420SemiPlanar_709_ER = 111
- 扩展范围 Y12,V12U12 位于两个表面(VU 作为一个表面),U/V 宽度 = 1/2 Y 宽度,U/V 高度 = 1/2 Y 高度。
- cudaEglColorFormatY12V12U12_444SemiPlanar_ER = 112
- 扩展范围 Y12,V12U12 位于两个表面(VU 作为一个表面),U/V 宽度 = Y 宽度,U/V 高度 = Y 高度。
- cudaEglColorFormatY12V12U12_444SemiPlanar_709_ER = 113
- 扩展范围 Y12,V12U12 位于两个表面(VU 作为一个表面),U/V 宽度 = Y 宽度,U/V 高度 = Y 高度。
- cudaEglColorFormatUYVY709 = 114
- Y、U、V 在一个表面中,以 UYVY 形式交错在一个通道中。
- cudaEglColorFormatUYVY709_ER = 115
- 扩展范围 Y、U、V 在一个表面中,以 UYVY 形式交错在一个通道中。
- cudaEglColorFormatUYVY2020 = 116
- Y、U、V 在一个表面中,以 UYVY 形式交错在一个通道中。
- enum cudaEglFrameType
-
CUDA EglFrame 类型 - 数组或指针
值
- cudaEglFrameTypeArray = 0
- 帧类型 CUDA 数组
- cudaEglFrameTypePitch = 1
- 帧类型 CUDA 指针
- enum cudaEglResourceLocationFlags
-
资源位置标志 - sysmem 或 vidmem
对于 iGPU 上的 CUDA 上下文,由于视频内存和系统内存是等效的 - 这些标志对执行没有影响。
对于 dGPU 上的 CUDA 上下文,应用程序可以使用标志 cudaEglResourceLocationFlags 来提示所需的位置。
cudaEglResourceLocationSysmem - 帧数据驻留在系统内存中,以便 CUDA 访问。
cudaEglResourceLocationVidmem - 帧数据驻留在专用视频内存中,以便 CUDA 访问。
如果帧是在不同的内存上生成的,则可能会由于新的分配和数据迁移而产生额外的延迟。
值
- cudaEglResourceLocationSysmem = 0x00
- 资源位置 sysmem
- cudaEglResourceLocationVidmem = 0x01
- 资源位置 vidmem
- enum cudaError
-
CUDA 错误类型
值
- cudaSuccess = 0
- API 调用成功返回,没有错误。对于查询调用,这也意味着被查询的操作已完成(参见 cudaEventQuery() 和 cudaStreamQuery())。
- cudaErrorInvalidValue = 1
- 表明传递给 API 调用的一个或多个参数不在可接受的值范围内。
- cudaErrorMemoryAllocation = 2
- API 调用失败,因为它无法分配足够的内存或其他资源来执行请求的操作。
- cudaErrorInitializationError = 3
- API 调用失败,因为 CUDA 驱动程序和运行时无法初始化。
- cudaErrorCudartUnloading = 4
- 表明 CUDA 运行时 API 调用无法执行,因为它在进程关闭期间,在 CUDA 驱动程序卸载之后的时间点被调用。
- cudaErrorProfilerDisabled = 5
- 表明分析器未为此运行初始化。当应用程序使用外部分析工具(如 visual profiler)运行时,可能会发生这种情况。
- cudaErrorProfilerNotInitialized = 6
-
已弃用
此错误返回值已在 CUDA 5.0 中弃用。尝试通过 cudaProfilerStart 或 cudaProfilerStop 启用/禁用分析,而无需初始化,不再是错误。
- cudaErrorProfilerAlreadyStarted = 7
-
已弃用
此错误返回值已在 CUDA 5.0 中弃用。当分析已启用时调用 cudaProfilerStart() 不再是错误。
- cudaErrorProfilerAlreadyStopped = 8
-
已弃用
此错误返回值已在 CUDA 5.0 中弃用。当分析已禁用时调用 cudaProfilerStop() 不再是错误。
- cudaErrorInvalidConfiguration = 9
- 表明内核启动请求的资源无法被当前设备满足。请求的每个块共享内存超过设备支持的量,或者请求的线程或块过多,都会触发此错误。有关更多设备限制,请参见 cudaDeviceProp。
- cudaErrorInvalidPitchValue = 12
- 表明传递给 API 调用的一个或多个与 pitch 相关的参数不在 pitch 的可接受范围内。
- cudaErrorInvalidSymbol = 13
- 表明传递给 API 调用的符号名称/标识符不是有效的名称或标识符。
- cudaErrorInvalidHostPointer = 16
-
已弃用
此错误返回值已在 CUDA 10.1 中弃用。
表明传递给 API 调用的至少一个主机指针不是有效的主机指针。
- cudaErrorInvalidDevicePointer = 17
-
已弃用
此错误返回值已在 CUDA 10.1 中弃用。
表明传递给 API 调用的至少一个设备指针不是有效的设备指针。
- cudaErrorInvalidTexture = 18
- 表明传递给 API 调用的纹理不是有效的纹理。
- cudaErrorInvalidTextureBinding = 19
- 表明纹理绑定无效。如果您使用未绑定的纹理调用 cudaGetTextureAlignmentOffset(),则会发生这种情况。
- cudaErrorInvalidChannelDescriptor = 20
- 表明传递给 API 调用的通道描述符无效。如果格式不是 cudaChannelFormatKind 指定的格式之一,或者如果其中一个维度无效,则会发生这种情况。
- cudaErrorInvalidMemcpyDirection = 21
- 表明传递给 API 调用的 memcpy 方向不是 cudaMemcpyKind 指定的类型之一。
- cudaErrorAddressOfConstant = 22
-
已弃用
此错误返回值已在 CUDA 3.1 中弃用。常量内存中的变量现在可以通过运行时使用 cudaGetSymbolAddress() 获取其地址。
表明用户已获取常量变量的地址,这在 CUDA 3.1 版本之前是被禁止的。
- cudaErrorTextureFetchFailed = 23
-
已弃用
此错误返回值已在 CUDA 3.1 中弃用。设备模拟模式已在 CUDA 3.1 版本中删除。
表明无法执行纹理获取。这以前用于纹理操作的设备模拟。
- cudaErrorTextureNotBound = 24
-
已弃用
此错误返回值已在 CUDA 3.1 中弃用。设备模拟模式已在 CUDA 3.1 版本中删除。
表明纹理未绑定以进行访问。这以前用于纹理操作的设备模拟。
- cudaErrorSynchronizationError = 25
-
已弃用
此错误返回值已在 CUDA 3.1 中弃用。设备模拟模式已在 CUDA 3.1 版本中删除。
表明同步操作失败。这以前用于某些设备模拟功能。
- cudaErrorInvalidFilterSetting = 26
- 表明正在使用线性滤波访问非浮点纹理。CUDA 不支持此操作。
- cudaErrorInvalidNormSetting = 27
- 表明尝试将不支持的数据类型读取为归一化浮点数。CUDA 不支持此操作。
- cudaErrorMixedDeviceExecution = 28
-
已弃用
此错误返回值已在 CUDA 3.1 中弃用。设备模拟模式已在 CUDA 3.1 版本中删除。
不允许混合设备和设备模拟代码。
- cudaErrorNotYetImplemented = 31
-
已弃用
此错误返回值已在 CUDA 4.1 中弃用。
表明 API 调用尚未实现。CUDA 的生产版本永远不会返回此错误。
- cudaErrorMemoryValueTooLarge = 32
-
已弃用
此错误返回值已在 CUDA 3.1 中弃用。设备模拟模式已在 CUDA 3.1 版本中删除。
表明模拟设备指针超出了 32 位地址范围。
- cudaErrorStubLibrary = 34
- 表明应用程序加载的 CUDA 驱动程序是桩库。使用桩库而不是加载真实驱动程序运行的应用程序将导致 CUDA API 返回此错误。
- cudaErrorInsufficientDriver = 35
- 表明安装的 NVIDIA CUDA 驱动程序比 CUDA 运行时库旧。这不是受支持的配置。用户应安装更新的 NVIDIA 显示驱动程序,以允许应用程序运行。
- cudaErrorCallRequiresNewerDriver = 36
- 表明 API 调用需要比当前安装的 CUDA 驱动程序更新的版本。用户应安装更新的 NVIDIA CUDA 驱动程序,以允许 API 调用成功。
- cudaErrorInvalidSurface = 37
- 表明传递给 API 调用的表面不是有效的表面。
- cudaErrorDuplicateVariableName = 43
- 表明多个全局变量或常量变量(跨应用程序中不同的 CUDA 源文件)共享相同的字符串名称。
- cudaErrorDuplicateTextureName = 44
- 表明多个纹理(跨应用程序中不同的 CUDA 源文件)共享相同的字符串名称。
- cudaErrorDuplicateSurfaceName = 45
- 表明多个表面(跨应用程序中不同的 CUDA 源文件)共享相同的字符串名称。
- cudaErrorDevicesUnavailable = 46
- 表明当前所有 CUDA 设备都忙或不可用。设备通常由于使用 cudaComputeModeProhibited、cudaComputeModeExclusiveProcess,或者长时间运行的 CUDA 内核已填满 GPU 并阻止新工作开始而忙/不可用。由于设备上已执行活动 CUDA 工作而导致的内存限制,它们也可能不可用。
- cudaErrorIncompatibleDriverContext = 49
- 表明当前上下文与此 CUDA 运行时不兼容。只有在使用 CUDA 运行时/驱动程序互操作性并使用驱动程序 API 创建了现有驱动程序上下文时,才会发生这种情况。驱动程序上下文可能不兼容,原因可能是驱动程序上下文是使用旧版本的 API 创建的,或者运行时 API 调用需要主驱动程序上下文,而驱动程序上下文不是主驱动程序上下文,或者驱动程序上下文已被销毁。有关更多信息,请参见与 CUDA 驱动程序 API 的 交互。
- cudaErrorMissingConfiguration = 52
- 正在调用的设备函数(通常通过 cudaLaunchKernel())之前未通过 cudaConfigureCall() 函数配置。
- cudaErrorPriorLaunchFailure = 53
-
已弃用
此错误返回值已在 CUDA 3.1 中弃用。设备模拟模式已在 CUDA 3.1 版本中删除。
表明先前的内核启动失败。这以前用于内核启动的设备模拟。
- cudaErrorLaunchMaxDepthExceeded = 65
- 此错误表明设备运行时网格启动未发生,因为子网格的深度将超过支持的最大嵌套网格启动次数。
- cudaErrorLaunchFileScopedTex = 66
- 此错误表明网格启动未发生,因为内核使用设备运行时不支持的文件作用域纹理。通过设备运行时启动的内核仅支持使用纹理对象 API 创建的纹理。
- cudaErrorLaunchFileScopedSurf = 67
- 此错误表明网格启动未发生,因为内核使用设备运行时不支持的文件作用域表面。通过设备运行时启动的内核仅支持使用表面对象 API 创建的表面。
- cudaErrorSyncDepthExceeded = 68
- 此错误表明从设备运行时进行的 cudaDeviceSynchronize 调用失败,因为该调用在网格深度大于默认值(2 级网格)或用户指定的设备限制 cudaLimitDevRuntimeSyncDepth 时进行。为了能够在更大深度成功同步启动的网格,必须在使用设备运行时的内核的主机端启动之前,使用 cudaDeviceSetLimit API 将 cudaLimitDevRuntimeSyncDepth 限制指定为 cudaDeviceSynchronize 将被调用的最大嵌套深度。请记住,额外的同步深度级别需要运行时保留大量设备内存,这些内存不能用于用户分配。请注意,仅在计算能力 < 9.0 的设备上支持从设备运行时进行的 cudaDeviceSynchronize。
- cudaErrorLaunchPendingCountExceeded = 69
- 此错误表明设备运行时网格启动失败,因为启动将超出限制 cudaLimitDevRuntimePendingLaunchCount。为了使此启动成功进行,必须调用 cudaDeviceSetLimit 以将 cudaLimitDevRuntimePendingLaunchCount 设置为高于可以向设备运行时发出的未完成启动的上限。请记住,提高挂起的设备运行时启动的限制将需要运行时保留设备内存,这些内存不能用于用户分配。
- cudaErrorInvalidDeviceFunction = 98
- 请求的设备函数不存在,或者未针对正确的设备架构编译。
- cudaErrorNoDevice = 100
- 表明安装的 CUDA 驱动程序未检测到任何支持 CUDA 的设备。
- cudaErrorInvalidDevice = 101
- 表明用户提供的设备序号与有效的 CUDA 设备不对应,或者请求的操作对于指定的设备无效。
- cudaErrorDeviceNotLicensed = 102
- 表明设备没有有效的 Grid 许可证。
- cudaErrorSoftwareValidityNotEstablished = 103
- 默认情况下,CUDA 运行时可能会执行最少量的自检以及 CUDA 驱动程序测试,以确定两者的有效性。在 CUDA 11.2 中引入,此错误返回值表明至少其中一项测试失败,并且运行时或驱动程序的有效性都无法确定。
- cudaErrorStartupFailure = 127
- 表明 CUDA 运行时中发生内部启动失败。
- cudaErrorInvalidKernelImage = 200
- 表明设备内核镜像无效。
- cudaErrorDeviceUninitialized = 201
- 这最常表明当前线程未绑定任何上下文。如果传递给 API 调用的上下文不是有效的句柄(例如,已对其调用 cuCtxDestroy() 的上下文),也可能返回此错误。如果用户混合使用不同的 API 版本(即,3010 上下文与 3020 API 调用),也可能返回此错误。有关更多详细信息,请参见 cuCtxGetApiVersion()。
- cudaErrorMapBufferObjectFailed = 205
- 表明无法映射缓冲区对象。
- cudaErrorUnmapBufferObjectFailed = 206
- 表明无法取消映射缓冲区对象。
- cudaErrorArrayIsMapped = 207
- 表明指定的数组当前已映射,因此无法销毁。
- cudaErrorAlreadyMapped = 208
- 表明资源已映射。
- cudaErrorNoKernelImageForDevice = 209
- 表明没有可用于设备的内核镜像。当用户为特定的 CUDA 源文件指定不包含相应设备配置的代码生成选项时,可能会发生这种情况。
- cudaErrorAlreadyAcquired = 210
- 表明资源已被获取。
- cudaErrorNotMapped = 211
- 表明资源未映射。
- cudaErrorNotMappedAsArray = 212
- 表明映射的资源不可用作数组访问。
- cudaErrorNotMappedAsPointer = 213
- 表明映射的资源不可用作指针访问。
- cudaErrorECCUncorrectable = 214
- 表明执行期间检测到无法纠正的 ECC 错误。
- cudaErrorUnsupportedLimit = 215
- 表明活动设备不支持传递给 API 调用的 cudaLimit。
- cudaErrorDeviceAlreadyInUse = 216
- 表明调用尝试访问已被不同线程使用的独占线程设备。
- cudaErrorPeerAccessUnsupported = 217
- 此错误表明给定的设备之间不支持 P2P 访问。
- cudaErrorInvalidPtx = 218
- PTX 编译失败。如果应用程序不包含适用于当前设备的二进制文件,则运行时可能会回退到编译 PTX。
- cudaErrorInvalidGraphicsContext = 219
- 表明 OpenGL 或 DirectX 上下文出现错误。
- cudaErrorNvlinkUncorrectable = 220
- 表明执行期间检测到无法纠正的 NVLink 错误。
- cudaErrorJitCompilerNotFound = 221
- 表明未找到 PTX JIT 编译器库。JIT 编译器库用于 PTX 编译。如果应用程序不包含适用于当前设备的二进制文件,则运行时可能会回退到编译 PTX。
- cudaErrorUnsupportedPtxVersion = 222
- 表明提供的 PTX 是使用不受支持的工具链编译的。最常见的原因是 PTX 由比 CUDA 驱动程序和 PTX JIT 编译器支持的版本更新的编译器生成。
- cudaErrorJitCompilationDisabled = 223
- 表明 JIT 编译已禁用。JIT 编译编译 PTX。如果应用程序不包含适用于当前设备的二进制文件,则运行时可能会回退到编译 PTX。
- cudaErrorUnsupportedExecAffinity = 224
- 表明设备不支持提供的执行亲和性。
- cudaErrorUnsupportedDevSideSync = 225
- 表明 PTX JIT 要编译的代码包含对 cudaDeviceSynchronize 的不支持的调用。
- cudaErrorContained = 226
- 表明设备上发生了一个异常,该异常现在包含在 GPU 的错误包含功能中。常见原因有:a. 某些类型的通过 nvlink 对等 GPU 内存的无效访问 b. 某些类别的硬件错误 这会使进程处于不一致状态,并且任何进一步的 CUDA 工作都将返回相同的错误。要继续使用 CUDA,必须终止并重新启动该进程。
- cudaErrorInvalidSource = 300
- 表明设备内核源无效。
- cudaErrorFileNotFound = 301
- 表明找不到指定的文件。
- cudaErrorSharedObjectSymbolNotFound = 302
- 表明链接到共享对象的链接无法解析。
- cudaErrorSharedObjectInitFailed = 303
- 表明共享对象的初始化失败。
- cudaErrorOperatingSystem = 304
- 此错误表明 OS 调用失败。
- cudaErrorInvalidResourceHandle = 400
- 表明传递给 API 调用的资源句柄无效。资源句柄是不透明类型,例如 cudaStream_t 和 cudaEvent_t。
- cudaErrorIllegalState = 401
- 表明 API 调用所需的资源未处于执行请求操作的有效状态。
- cudaErrorLossyQuery = 402
- 表明尝试以会丢弃语义重要信息的方式内省对象。这要么是由于对象使用了比用于内省它的 API 版本更新的功能,要么是省略了可选的返回参数。
- cudaErrorSymbolNotFound = 500
- 表明未找到命名的符号。符号的示例包括全局/常量变量名、驱动程序函数名、纹理名和表面名。
- cudaErrorNotReady = 600
- 表明先前发出的异步操作尚未完成。此结果实际上不是错误,但必须以不同于 cudaSuccess(表示完成)的方式指示。可能返回此值的调用包括 cudaEventQuery() 和 cudaStreamQuery()。
- cudaErrorIllegalAddress = 700
- 设备在无效的内存地址上遇到加载或存储指令。这会使进程处于不一致状态,并且任何进一步的 CUDA 工作都将返回相同的错误。要继续使用 CUDA,必须终止并重新启动该进程。
- cudaErrorLaunchOutOfResources = 701
- 表明启动未发生,因为它没有适当的资源。尽管此错误类似于 cudaErrorInvalidConfiguration,但此错误通常表明用户尝试向设备内核传递过多的参数,或者内核启动为内核的寄存器计数指定了过多的线程。
- cudaErrorLaunchTimeout = 702
- 表明设备内核执行时间过长。这仅在启用超时的情况下才会发生 - 有关更多信息,请参见设备属性 kernelExecTimeoutEnabled。这会使进程处于不一致状态,并且任何进一步的 CUDA 工作都将返回相同的错误。要继续使用 CUDA,必须终止并重新启动该进程。
- cudaErrorLaunchIncompatibleTexturing = 703
- 此错误表明内核启动使用了不兼容的纹理模式。
- cudaErrorPeerAccessAlreadyEnabled = 704
- 此错误表明调用 cudaDeviceEnablePeerAccess() 尝试从已启用对等寻址的上下文中重新启用对等寻址。
- cudaErrorPeerAccessNotEnabled = 705
- 此错误表明 cudaDeviceDisablePeerAccess() 尝试禁用尚未通过 cudaDeviceEnablePeerAccess() 启用的对等寻址。
- cudaErrorSetOnActiveProcess = 708
- 表明用户在通过调用非设备管理操作(分配内存和启动内核是非设备管理操作的示例)初始化 CUDA 运行时后,调用了 cudaSetValidDevices()、cudaSetDeviceFlags()、cudaD3D9SetDirect3DDevice()、cudaD3D10SetDirect3DDevice、cudaD3D11SetDirect3DDevice() 或 cudaVDPAUSetVDPAUDevice()。如果使用运行时/驱动程序互操作性并且主机线程上存在活动的 CUcontext,也可能返回此错误。
- cudaErrorContextIsDestroyed = 709
- 此错误表明调用线程的当前上下文已使用 cuCtxDestroy 销毁,或者是尚未初始化的主上下文。
- cudaErrorAssert = 710
- 内核执行期间,设备代码中触发了断言。该设备无法再次使用。所有现有分配均无效。要继续使用 CUDA,必须终止并重新启动该进程。
- cudaErrorTooManyPeers = 711
- 此错误表示,对于传递给 cudaEnablePeerAccess() 的一个或多个设备,启用对等访问所需的硬件资源已耗尽。
- cudaErrorHostMemoryAlreadyRegistered = 712
- 此错误表示,传递给 cudaHostRegister() 的内存范围已注册。
- cudaErrorHostMemoryNotRegistered = 713
- 此错误表示,传递给 cudaHostUnregister() 的指针与任何当前注册的内存区域都不对应。
- cudaErrorHardwareStackError = 714
- 设备在内核执行期间的调用堆栈中遇到错误,可能是由于堆栈损坏或超出堆栈大小限制。这会使进程处于不一致状态,并且任何进一步的 CUDA 工作都将返回相同的错误。要继续使用 CUDA,必须终止并重新启动该进程。
- cudaErrorIllegalInstruction = 715
- 设备在内核执行期间遇到非法指令。这会使进程处于不一致状态,并且任何进一步的 CUDA 工作都将返回相同的错误。要继续使用 CUDA,必须终止并重新启动该进程。
- cudaErrorMisalignedAddress = 716
- 设备在未对齐的内存地址上遇到加载或存储指令。这会使进程处于不一致状态,并且任何进一步的 CUDA 工作都将返回相同的错误。要继续使用 CUDA,必须终止并重新启动该进程。
- cudaErrorInvalidAddressSpace = 717
- 在执行内核时,设备遇到一条指令,该指令只能在某些地址空间(全局、共享或本地)中的内存位置上操作,但提供了一个不属于允许地址空间的内存地址。这会使进程处于不一致状态,并且任何进一步的 CUDA 工作都将返回相同的错误。要继续使用 CUDA,必须终止并重新启动该进程。
- cudaErrorInvalidPc = 718
- 设备遇到无效程序计数器。这会使进程处于不一致状态,并且任何进一步的 CUDA 工作都将返回相同的错误。要继续使用 CUDA,必须终止并重新启动该进程。
- cudaErrorLaunchFailure = 719
- 在设备上执行内核时发生异常。常见原因包括取消引用无效的设备指针和访问超出范围的共享内存。不太常见的情况可能是特定于系统的 - 有关这些情况的更多信息,请参见系统特定的用户指南。这会使进程处于不一致状态,并且任何进一步的 CUDA 工作都将返回相同的错误。要继续使用 CUDA,必须终止并重新启动该进程。
- cudaErrorCooperativeLaunchTooLarge = 720
- 此错误表示,对于通过 cudaLaunchCooperativeKernel 或 cudaLaunchCooperativeKernelMultiDevice 启动的内核,每个网格启动的块数超过了 cudaOccupancyMaxActiveBlocksPerMultiprocessor 或 cudaOccupancyMaxActiveBlocksPerMultiprocessorWithFlags 允许的最大块数,该最大块数乘以设备属性 cudaDevAttrMultiProcessorCount 指定的多处理器数量。
- cudaErrorTensorMemoryLeak = 721
- 在使用张量内存退出内核时,设备上发生异常:张量内存未完全释放。这会使进程处于不一致状态,并且任何进一步的 CUDA 工作都将返回相同的错误。要继续使用 CUDA,必须终止并重新启动该进程。
- cudaErrorNotPermitted = 800
- 此错误表示尝试的操作是不允许的。
- cudaErrorNotSupported = 801
- 此错误表示当前系统或设备不支持尝试的操作。
- cudaErrorSystemNotReady = 802
- 此错误表示系统尚未准备好开始任何 CUDA 工作。要继续使用 CUDA,请验证系统配置是否处于有效状态,并且所有必需的驱动程序守护程序都在积极运行。有关此错误的更多信息,请参见系统特定的用户指南。
- cudaErrorSystemDriverMismatch = 803
- 此错误表示显示驱动程序和 CUDA 驱动程序的版本之间存在不匹配。有关支持的版本,请参阅兼容性文档。
- cudaErrorCompatNotSupportedOnDevice = 804
- 此错误表示系统已升级为向前兼容运行,但 CUDA 检测到的可见硬件不支持此配置。有关支持的硬件矩阵,请参阅兼容性文档,或确保在通过 CUDA_VISIBLE_DEVICES 环境变量初始化期间仅可见受支持的硬件。
- cudaErrorMpsConnectionFailed = 805
- 此错误表示 MPS 客户端无法连接到 MPS 控制守护程序或 MPS 服务器。
- cudaErrorMpsRpcFailure = 806
- 此错误表示 MPS 服务器和 MPS 客户端之间的远程过程调用失败。
- cudaErrorMpsServerNotReady = 807
- 此错误表示 MPS 服务器尚未准备好接受新的 MPS 客户端请求。当 MPS 服务器正在从致命故障中恢复时,可能会返回此错误。
- cudaErrorMpsMaxClientsReached = 808
- 此错误表示创建 MPS 客户端所需的硬件资源已耗尽。
- cudaErrorMpsMaxConnectionsReached = 809
- 此错误表示设备连接所需的硬件资源已耗尽。
- cudaErrorMpsClientTerminated = 810
- 此错误表示 MPS 客户端已被服务器终止。要继续使用 CUDA,必须终止并重新启动该进程。
- cudaErrorCdpNotSupported = 811
- 此错误表示程序正在使用 CUDA 动态并行,但当前配置(如 MPS)不支持它。
- cudaErrorCdpVersionMismatch = 812
- 此错误表示程序包含不同版本的 CUDA 动态并行之间的不受支持的交互。
- cudaErrorStreamCaptureUnsupported = 900
- 当流正在捕获时,不允许执行此操作。
- cudaErrorStreamCaptureInvalidated = 901
- 流上的当前捕获序列由于先前的错误而失效。
- cudaErrorStreamCaptureMerge = 902
- 此操作将导致两个独立的捕获序列合并。
- cudaErrorStreamCaptureUnmatched = 903
- 未在此流中启动捕获。
- cudaErrorStreamCaptureUnjoined = 904
- 捕获序列包含一个未连接到主流的分支。
- cudaErrorStreamCaptureIsolation = 905
- 将创建一个跨越捕获序列边界的依赖项。仅允许隐式流内排序依赖项跨越边界。
- cudaErrorStreamCaptureImplicit = 906
- 此操作将导致对来自 cudaStreamLegacy 的当前捕获序列的不允许的隐式依赖。
- cudaErrorCapturedEvent = 907
- 不允许对上次在捕获流中记录的事件执行此操作。
- cudaErrorStreamCaptureWrongThread = 908
- 未使用 cudaStreamCaptureModeRelaxed 参数启动的流捕获序列传递给不同线程中的 cudaStreamBeginCapture 的 cudaStreamEndCapture。
- cudaErrorTimeout = 909
- 这表示等待操作已超时。
- cudaErrorGraphExecUpdateFailure = 910
- 此错误表示未执行图形更新,因为它包含违反特定于实例化的图形更新的约束的更改。
- cudaErrorExternalDevice = 911
- 这表示在 CUDA 外部的设备中发生了异步错误。如果 CUDA 在使用共享数据之前正在等待外部设备的信号,则外部设备发出错误信号,指示数据对使用无效。这会使进程处于不一致状态,并且任何进一步的 CUDA 工作都将返回相同的错误。要继续使用 CUDA,必须终止并重新启动该进程。
- cudaErrorInvalidClusterSize = 912
- 这表示由于集群配置错误而发生了内核启动错误。
- cudaErrorFunctionNotLoaded = 913
- 表示在调用需要已加载函数的 API 时,函数句柄未加载。
- cudaErrorInvalidResourceType = 914
- 此错误表示传入的一个或多个资源对于该操作不是有效的资源类型。
- cudaErrorInvalidResourceConfiguration = 915
- 此错误表示一个或多个资源对于该操作不足或不适用。
- cudaErrorUnknown = 999
- 这表示发生了未知的内部错误。
- cudaErrorApiFailureBase = 10000
- enum cudaExternalMemoryHandleType
-
外部内存句柄类型
值
- cudaExternalMemoryHandleTypeOpaqueFd = 1
- 句柄是不透明的文件描述符
- cudaExternalMemoryHandleTypeOpaqueWin32 = 2
- 句柄是不透明的共享 NT 句柄
- cudaExternalMemoryHandleTypeOpaqueWin32Kmt = 3
- 句柄是不透明的全局共享句柄
- cudaExternalMemoryHandleTypeD3D12Heap = 4
- 句柄是 D3D12 堆对象
- cudaExternalMemoryHandleTypeD3D12Resource = 5
- 句柄是 D3D12 提交的资源
- cudaExternalMemoryHandleTypeD3D11Resource = 6
- 句柄是 D3D11 资源的共享 NT 句柄
- cudaExternalMemoryHandleTypeD3D11ResourceKmt = 7
- 句柄是 D3D11 资源的全局共享句柄
- cudaExternalMemoryHandleTypeNvSciBuf = 8
- 句柄是 NvSciBuf 对象
- enum cudaExternalSemaphoreHandleType
-
外部信号量句柄类型
值
- cudaExternalSemaphoreHandleTypeOpaqueFd = 1
- 句柄是不透明的文件描述符
- cudaExternalSemaphoreHandleTypeOpaqueWin32 = 2
- 句柄是不透明的共享 NT 句柄
- cudaExternalSemaphoreHandleTypeOpaqueWin32Kmt = 3
- 句柄是不透明的全局共享句柄
- cudaExternalSemaphoreHandleTypeD3D12Fence = 4
- 句柄是引用 D3D12 围栏对象的共享 NT 句柄
- cudaExternalSemaphoreHandleTypeD3D11Fence = 5
- 句柄是引用 D3D11 围栏对象的共享 NT 句柄
- cudaExternalSemaphoreHandleTypeNvSciSync = 6
- NvSciSync 对象的不透明句柄
- cudaExternalSemaphoreHandleTypeKeyedMutex = 7
- 句柄是引用 D3D11 键控互斥对象的共享 NT 句柄
- cudaExternalSemaphoreHandleTypeKeyedMutexKmt = 8
- 句柄是引用 D3D11 键控互斥对象的共享 KMT 句柄
- cudaExternalSemaphoreHandleTypeTimelineSemaphoreFd = 9
- 句柄是引用时间线信号量的不透明句柄文件描述符
- cudaExternalSemaphoreHandleTypeTimelineSemaphoreWin32 = 10
- 句柄是引用时间线信号量的不透明句柄文件描述符
- enum cudaFlushGPUDirectRDMAWritesOptions
-
设备上支持的 CUDA GPUDirect RDMA 刷新写入 API
值
- cudaFlushGPUDirectRDMAWritesOptionHost = 1<<0
- 设备上支持 cudaDeviceFlushGPUDirectRDMAWrites() 及其 CUDA 驱动程序 API 对等项。
- cudaFlushGPUDirectRDMAWritesOptionMemOps = 1<<1
- CUDA 设备上支持 CU_STREAM_WAIT_VALUE_FLUSH 标志和 CU_STREAM_MEM_OP_FLUSH_REMOTE_WRITES MemOp。
- enum cudaFlushGPUDirectRDMAWritesScope
-
CUDA GPUDirect RDMA 刷新写入范围
值
- cudaFlushGPUDirectRDMAWritesToOwner = 100
- 阻塞直到远程写入对拥有数据的 CUDA 设备上下文可见。
- cudaFlushGPUDirectRDMAWritesToAllDevices = 200
- 阻塞直到远程写入对所有 CUDA 设备上下文可见。
- enum cudaFlushGPUDirectRDMAWritesTarget
-
CUDA GPUDirect RDMA 刷新写入目标
值
- cudaFlushGPUDirectRDMAWritesTargetCurrentDevice
- 将 cudaDeviceFlushGPUDirectRDMAWrites() 的目标设置为当前活动的 CUDA 设备上下文。
- enum cudaFuncAttribute
-
可以使用 cudaFuncSetAttribute 设置的 CUDA 函数属性
值
- cudaFuncAttributeMaxDynamicSharedMemorySize = 8
- 最大动态共享内存大小
- cudaFuncAttributePreferredSharedMemoryCarveout = 9
- 首选的共享内存 - L1 缓存拆分
- cudaFuncAttributeClusterDimMustBeSet = 10
- 强制在内核启动时指定有效集群维度的指示符
- cudaFuncAttributeRequiredClusterWidth = 11
- 所需的集群宽度
- cudaFuncAttributeRequiredClusterHeight = 12
- 所需的集群高度
- cudaFuncAttributeRequiredClusterDepth = 13
- 所需的集群深度
- cudaFuncAttributeNonPortableClusterSizeAllowed = 14
- 是否支持非便携式集群调度策略
- cudaFuncAttributeClusterSchedulingPolicyPreference = 15
- 所需的集群调度策略首选项
- cudaFuncAttributeMax
- enum cudaFuncCache
-
CUDA 函数缓存配置
值
- cudaFuncCachePreferNone = 0
- 默认函数缓存配置,无首选项
- cudaFuncCachePreferShared = 1
- 首选更大的共享内存和更小的 L1 缓存
- cudaFuncCachePreferL1 = 2
- 首选更大的 L1 缓存和更小的共享内存
- cudaFuncCachePreferEqual = 3
- 首选相等大小的 L1 缓存和共享内存
- enum cudaGPUDirectRDMAWritesOrdering
-
设备的 CUDA GPUDirect RDMA 刷新写入排序功能
值
- cudaGPUDirectRDMAWritesOrderingNone = 0
- 设备本身不支持 GPUDirect RDMA 写入排序。如果支持,则可以利用 cudaFlushGPUDirectRDMAWrites()。
- cudaGPUDirectRDMAWritesOrderingOwner = 100
- 设备本身可以一致地使用 GPUDirect RDMA 写入,但其他 CUDA 设备可能无法使用。
- cudaGPUDirectRDMAWritesOrderingAllDevices = 200
- 系统中的任何 CUDA 设备都可以一致地使用对该设备的 GPUDirect RDMA 写入。
- enum cudaGetDriverEntryPointFlags
-
用于指定与 cudaGetDriverEntryPoint 一起使用的搜索选项的标志。有关更多详细信息,请参见 cuGetProcAddress
值
- cudaEnableDefault = 0x0
- 驱动程序符号的默认搜索模式。
- cudaEnableLegacyStream = 0x1
- 搜索驱动程序符号的旧版本。
- cudaEnablePerThreadDefaultStream = 0x2
- 搜索驱动程序符号的每个线程版本。
- enum cudaGraphConditionalNodeType
-
CUDA 条件节点类型
值
- cudaGraphCondTypeIf = 0
- 条件“if/else”节点。如果条件为非零,则执行 Body[0]。如果size== 2,则创建一个可选的 ELSE 图,如果条件为零,则执行此图。
- cudaGraphCondTypeWhile = 1
- 条件“while”节点。只要条件值为非零,就重复执行 Body。
- cudaGraphCondTypeSwitch = 2
- 条件“switch”节点。Body[n] 执行一次,其中“n”是条件的值。如果条件与任何主体索引都不匹配,则不启动任何主体。
- enum cudaGraphDebugDotFlags
-
CUDA 图形调试写入选项
值
- cudaGraphDebugDotFlagsVerbose = 1<<0
- 输出所有调试数据,就像启用了每个调试标志一样
- cudaGraphDebugDotFlagsKernelNodeParams = 1<<2
- 将 cudaKernelNodeParams 添加到输出
- cudaGraphDebugDotFlagsMemcpyNodeParams = 1<<3
- 将 cudaMemcpy3DParms 添加到输出
- cudaGraphDebugDotFlagsMemsetNodeParams = 1<<4
- 将 cudaMemsetParams 添加到输出
- cudaGraphDebugDotFlagsHostNodeParams = 1<<5
- 将 cudaHostNodeParams 添加到输出
- cudaGraphDebugDotFlagsEventNodeParams = 1<<6
- 将来自记录和等待节点的 cudaEvent_t 句柄添加到输出
- cudaGraphDebugDotFlagsExtSemasSignalNodeParams = 1<<7
- 将 cudaExternalSemaphoreSignalNodeParams 值添加到输出
- cudaGraphDebugDotFlagsExtSemasWaitNodeParams = 1<<8
- 将 cudaExternalSemaphoreWaitNodeParams 添加到输出
- cudaGraphDebugDotFlagsKernelNodeAttributes = 1<<9
- 将 cudaKernelNodeAttrID 值添加到输出
- cudaGraphDebugDotFlagsHandles = 1<<10
- 将节点句柄和每个内核函数句柄添加到输出
- cudaGraphDebugDotFlagsConditionalNodeParams = 1<<15
- 将 cudaConditionalNodeParams 添加到输出
- enum cudaGraphDependencyType
-
可以作为 cudaGraphEdgeData 的一部分应用于图形边缘的类型注释。
值
- cudaGraphDependencyTypeDefault = 0
- 这是一个普通的依赖项。
- cudaGraphDependencyTypeProgrammatic = 1
- 此依赖项类型允许下游节点使用cudaGridDependencySynchronize()。它只能在内核节点之间使用,并且必须与 cudaGraphKernelNodePortProgrammatic 或 cudaGraphKernelNodePortLaunchCompletion 出站端口一起使用。
- enum cudaGraphExecUpdateResult
-
CUDA 图形更新错误类型
值
- cudaGraphExecUpdateSuccess = 0x0
- 更新成功
- cudaGraphExecUpdateError = 0x1
- 更新失败,原因不明,该原因在函数的返回值中进行了描述
- cudaGraphExecUpdateErrorTopologyChanged = 0x2
- 更新失败,因为拓扑已更改
- cudaGraphExecUpdateErrorNodeTypeChanged = 0x3
- 更新失败,因为节点类型已更改
- cudaGraphExecUpdateErrorFunctionChanged = 0x4
- 更新失败,因为内核节点的功能已更改 (CUDA 驱动程序 < 11.2)
- cudaGraphExecUpdateErrorParametersChanged = 0x5
- 更新失败,因为参数以不受支持的方式更改
- cudaGraphExecUpdateErrorNotSupported = 0x6
- 更新失败,因为节点的某些内容不受支持
- cudaGraphExecUpdateErrorUnsupportedFunctionChange = 0x7
- 更新失败,因为内核节点的功能以不受支持的方式更改
- cudaGraphExecUpdateErrorAttributesChanged = 0x8
- 更新失败,因为节点属性以不受支持的方式更改
- enum cudaGraphInstantiateFlags
-
实例化图形的标志
值
- cudaGraphInstantiateFlagAutoFreeOnLaunch = 1
- 在重新启动之前自动释放图形中分配的内存。
- cudaGraphInstantiateFlagUpload = 2
- 在实例化后自动上传图形。仅受 cudaGraphInstantiateWithParams 支持。上传将使用以下项中提供的流执行instantiateParams.
- cudaGraphInstantiateFlagDeviceLaunch = 4
- 实例化要从设备启动的图形。此标志只能在支持统一寻址的平台上使用。此标志不能与 cudaGraphInstantiateFlagAutoFreeOnLaunch 结合使用。
- cudaGraphInstantiateFlagUseNodePriority = 8
- 使用每个节点优先级属性而不是启动到其中的流的优先级来运行图形。
- enum cudaGraphInstantiateResult
-
图形实例化结果
值
- cudaGraphInstantiateSuccess = 0
- 实例化成功
- cudaGraphInstantiateError = 1
- 实例化失败,原因不明,该原因在函数的返回值中进行了描述
- cudaGraphInstantiateInvalidStructure = 2
- 实例化失败,原因是结构无效,例如循环
- cudaGraphInstantiateNodeOperationNotSupported = 3
- 设备启动的实例化失败,因为图形包含不受支持的操作
- cudaGraphInstantiateMultipleDevicesNotSupported = 4
- 设备启动的实例化失败,原因是节点属于不同的上下文
- cudaGraphInstantiateConditionalHandleUnused = 5
- 一个或多个条件句柄未与条件节点关联
- enum cudaGraphKernelNodeField
-
指定从设备执行多个节点更新时要更新的字段
值
- cudaGraphKernelNodeFieldInvalid = 0
- 无效字段
- cudaGraphKernelNodeFieldGridDim
- 网格维度更新
- cudaGraphKernelNodeFieldParam
- 内核参数更新
- cudaGraphKernelNodeFieldEnabled
- 节点启用/禁用
- enum cudaGraphMemAttributeType
-
图形内存属性
值
- cudaGraphMemAttrUsedMemCurrent = 0x0
- (值类型 = cuuint64_t) 当前与图形关联的内存量(以字节为单位)。
- cudaGraphMemAttrUsedMemHigh = 0x1
- (值类型 = cuuint64_t) 自上次重置以来与图形关联的内存量(以字节为单位)的峰值。峰值只能重置为零。
- cudaGraphMemAttrReservedMemCurrent = 0x2
- (值类型 = cuuint64_t) 当前为 CUDA 图形异步分配器分配的内存量(以字节为单位)。
- cudaGraphMemAttrReservedMemHigh = 0x3
- (值类型 = cuuint64_t) 当前为 CUDA 图形异步分配器分配的内存量(以字节为单位)的峰值。
- enum cudaGraphNodeType
-
CUDA 图形节点类型
值
- cudaGraphNodeTypeKernel = 0x00
- GPU 内核节点
- cudaGraphNodeTypeMemcpy = 0x01
- Memcpy 节点
- cudaGraphNodeTypeMemset = 0x02
- Memset 节点
- cudaGraphNodeTypeHost = 0x03
- 主机(可执行)节点
- cudaGraphNodeTypeGraph = 0x04
- 执行嵌入式图形的节点
- cudaGraphNodeTypeEmpty = 0x05
- 空(无操作)节点
- cudaGraphNodeTypeWaitEvent = 0x06
- 外部事件等待节点
- cudaGraphNodeTypeEventRecord = 0x07
- 外部事件记录节点
- cudaGraphNodeTypeExtSemaphoreSignal = 0x08
- 外部信号量信号节点
- cudaGraphNodeTypeExtSemaphoreWait = 0x09
- 外部信号量等待节点
- cudaGraphNodeTypeMemAlloc = 0x0a
- 内存分配节点
- cudaGraphNodeTypeMemFree = 0x0b
- 内存释放节点
- cudaGraphNodeTypeConditional = 0x0d
- 条件节点。可用于实现图形内的条件执行路径或循环。可以根据条件变量的值选择性地执行或迭代条件节点主体中包含的图形。句柄必须在使用 cudaGraphConditionalHandleCreate 创建节点之前创建。以下限制适用于包含条件节点的图形:图形不能在子节点中使用。在任何时间点只能存在图形的一个实例。图形不能被克隆。要设置控制值,请在创建句柄时提供默认值,和/或从设备代码调用 cudaGraphSetConditional。
- cudaGraphNodeTypeCount
- enum cudaGraphicsCubeFace
-
立方体贴图的 CUDA 图形互操作数组索引
值
- cudaGraphicsCubeFacePositiveX = 0x00
- 立方体贴图的正 X 面
- cudaGraphicsCubeFaceNegativeX = 0x01
- 立方体贴图的负 X 面
- cudaGraphicsCubeFacePositiveY = 0x02
- 立方体贴图的正 Y 面
- cudaGraphicsCubeFaceNegativeY = 0x03
- 立方体贴图的负 Y 面
- cudaGraphicsCubeFacePositiveZ = 0x04
- 立方体贴图的正 Z 面
- cudaGraphicsCubeFaceNegativeZ = 0x05
- 立方体贴图的负 Z 面
- enum cudaGraphicsMapFlags
-
CUDA 图形互操作映射标志
值
- cudaGraphicsMapFlagsNone = 0
- 默认;假设资源可以读取/写入
- cudaGraphicsMapFlagsReadOnly = 1
- CUDA 将不会写入此资源
- cudaGraphicsMapFlagsWriteDiscard = 2
- CUDA 将仅写入此资源,而不会从中读取
- enum cudaGraphicsRegisterFlags
-
CUDA 图形互操作注册标志
值
- cudaGraphicsRegisterFlagsNone = 0
- 默认
- cudaGraphicsRegisterFlagsReadOnly = 1
- CUDA 将不会写入此资源
- cudaGraphicsRegisterFlagsWriteDiscard = 2
- CUDA 将仅写入此资源,而不会从中读取
- cudaGraphicsRegisterFlagsSurfaceLoadStore = 4
- CUDA 会将此资源绑定到表面引用
- cudaGraphicsRegisterFlagsTextureGather = 8
- CUDA 将在此资源上执行纹理采集操作
- enum cudaJitOption
-
在线编译器和链接器选项
值
- cudaJitMaxRegisters = 0
- 线程可能使用的最大寄存器数。选项类型:unsigned int。适用于:仅限编译器
- cudaJitThreadsPerBlock = 1
- 输入:指定要针对编译的每个块的最小线程数。输出:返回编译器实际针对的线程数。这限制了编译器的资源利用率(例如,最大寄存器),以便具有给定线程数的块应该能够基于寄存器限制启动。请注意,此选项目前不考虑任何其他资源限制,例如共享内存利用率。选项类型:unsigned int。适用于:仅限编译器
- cudaJitWallTime = 2
- 用编译器和链接器中花费的总挂钟时间(以毫秒为单位)覆盖选项值。选项类型:float。适用于:编译器和链接器
- cudaJitInfoLogBuffer = 3
- 指向要在其中打印任何信息性日志消息的缓冲区的指针(缓冲区大小通过选项 cudaJitInfoLogBufferSizeBytes 指定)。选项类型:char *。适用于:编译器和链接器
- cudaJitInfoLogBufferSizeBytes = 4
- 输入:日志缓冲区大小(以字节为单位)。日志消息将限制为此大小(包括空终止符)。输出:用消息填充的日志缓冲区量。选项类型:unsigned int。适用于:编译器和链接器
- cudaJitErrorLogBuffer = 5
- 指向一个缓冲区的指针,日志消息(反映错误)将打印到该缓冲区中(缓冲区大小通过 cudaJitErrorLogBufferSizeBytes 选项指定)。选项类型:char * 适用于:编译器和链接器
- cudaJitErrorLogBufferSizeBytes = 6
- 输入:日志缓冲区大小(以字节为单位)。日志消息将限制为此大小(包括空终止符)。输出:用消息填充的日志缓冲区量。选项类型:unsigned int。适用于:编译器和链接器
- cudaJitOptimizationLevel = 7
- 应用于生成代码的优化级别(0 - 4),其中 4 为默认值和最高级别的优化。选项类型:unsigned int 适用于:仅限编译器
- cudaJitFallbackStrategy = 10
- 指定在未找到匹配的 cubin 文件时的回退策略选择。选择基于提供的 cudaJit_Fallback。选项类型:枚举类型 cudaJit_Fallback 的 unsigned int 适用于:仅限编译器
- cudaJitGenerateDebugInfo = 11
- 指定是否在输出中创建调试信息 (-g)(0:false,默认)选项类型:int 适用于:编译器和链接器
- cudaJitLogVerbose = 12
- 生成详细的日志消息(0:false,默认)选项类型:int 适用于:编译器和链接器
- cudaJitGenerateLineInfo = 13
- 生成行号信息 (-lineinfo)(0:false,默认)选项类型:int 适用于:仅限编译器
- cudaJitCacheMode = 14
- 指定是否显式启用缓存 (-dlcm)。选择基于提供的 cudaJit_CacheMode。选项类型:枚举类型 cudaJit_CacheMode 的 unsigned int 适用于:仅限编译器
- cudaJitPositionIndependentCode = 30
- 生成位置无关代码(0:false)选项类型:int 适用于:仅限编译器
- cudaJitMinCtaPerSm = 31
- 此选项向 JIT 编译器提示内核网格中要映射到 SM 的最小 CTA 数量。当与 cudaJitMaxRegisters 或 cudaJitThreadsPerBlock 一起使用时,此选项将被忽略。基于此选项的优化还需要指定 cudaJitMaxThreadsPerBlock。对于已使用 PTX 指令 .minnctapersm 的内核,默认情况下将忽略此选项。使用 cudaJitOverrideDirectiveValues 使此选项优先于 PTX 指令。选项类型:unsigned int 适用于:仅限编译器
- cudaJitMaxThreadsPerBlock = 32
- 线程块中的最大线程数,计算为块的每个维度指定的最大范围的乘积。此限制保证在内核的任何调用中都不会被超出。超出最大线程数会导致运行时错误或内核启动失败。对于已使用 PTX 指令 .maxntid 的内核,默认情况下将忽略此选项。使用 cudaJitOverrideDirectiveValues 使此选项优先于 PTX 指令。选项类型:int 适用于:仅限编译器
- cudaJitOverrideDirectiveValues = 33
- 此选项允许使用 cudaJitMaxRegisters、cudaJitThreadsPerBlock、cudaJitMaxThreadsPerBlock 和 cudaJitMinCtaPerSm 指定的值优先于任何 PTX 指令。(0:禁用,默认;1:启用)选项类型:int 适用于:仅限编译器
- enum cudaJit_CacheMode
-
dlcm 的缓存模式
值
- cudaJitCacheOptionNone = 0
- 编译时不指定 -dlcm 标志
- cudaJitCacheOptionCG
- 编译时禁用 L1 缓存
- cudaJitCacheOptionCA
- 编译时启用 L1 缓存
- enum cudaJit_Fallback
-
Cubin 匹配回退策略
值
- cudaPreferPtx = 0
- 如果未找到精确的二进制匹配项,则首选编译 ptx
- cudaPreferBinary
- 如果未找到精确匹配项,则首选回退到兼容的二进制代码
- enum cudaLaunchAttributeID
-
启动属性枚举;用作 cudaLaunchAttribute 的 id 字段
值
- cudaLaunchAttributeIgnore = 0
- 忽略的条目,为了方便组合
- cudaLaunchAttributeAccessPolicyWindow = 1
- 适用于流、图节点、启动。请参阅 cudaLaunchAttributeValue::accessPolicyWindow。
- cudaLaunchAttributeCooperative = 2
- 适用于图节点、启动。请参阅 cudaLaunchAttributeValue::cooperative。
- cudaLaunchAttributeSynchronizationPolicy = 3
- 适用于流。请参阅 cudaLaunchAttributeValue::syncPolicy。
- cudaLaunchAttributeClusterDimension = 4
- 适用于图节点、启动。请参阅 cudaLaunchAttributeValue::clusterDim。
- cudaLaunchAttributeClusterSchedulingPolicyPreference = 5
- 适用于图节点、启动。请参阅 cudaLaunchAttributeValue::clusterSchedulingPolicyPreference。
- cudaLaunchAttributeProgrammaticStreamSerialization = 6
- 适用于启动。将 cudaLaunchAttributeValue::programmaticStreamSerializationAllowed 设置为非 0 值表示内核将使用编程方式来解决其流依赖性,以便 CUDA 运行时应机会性地允许网格的执行与流中先前的内核重叠(如果该内核请求重叠)。依赖的启动可以选择使用编程同步等待依赖项(cudaGridDependencySynchronize() 或等效的 PTX 指令)。
- cudaLaunchAttributeProgrammaticEvent = 7
- 适用于启动。设置 cudaLaunchAttributeValue::programmaticEvent 以记录事件。通过此启动属性记录的事件保证仅在关联内核中的所有块触发事件后触发。块可以在未来的 CUDA 版本中以编程方式触发事件。如果 triggerAtBlockStart 设置为非 0 值,则也可以在每个块执行的开始处插入触发器。依赖的启动可以选择使用编程同步等待依赖项(cudaGridDependencySynchronize() 或等效的 PTX 指令)。请注意,依赖项(包括调用 cudaEventSynchronize() 的 CPU 线程)不能保证在释放时精确地观察到释放。例如,cudaEventSynchronize() 可能仅在关联内核完成后很久才观察到事件触发。此记录类型主要用于在设备任务之间建立编程依赖关系。另请注意,此类型的依赖性允许但不保证任务的并发执行。提供的事件不能是进程间或互操作事件。事件必须禁用计时(即,必须使用 cudaEventDisableTiming 标志集创建)。
- cudaLaunchAttributePriority = 8
- 适用于流、图节点、启动。请参阅 cudaLaunchAttributeValue::priority。
- cudaLaunchAttributeMemSyncDomainMap = 9
- 适用于流、图节点、启动。请参阅 cudaLaunchAttributeValue::memSyncDomainMap。
- cudaLaunchAttributeMemSyncDomain = 10
- 适用于流、图节点、启动。请参阅 cudaLaunchAttributeValue::memSyncDomain。
- cudaLaunchAttributePreferredClusterDimension = 11
- 适用于图节点和启动。设置 cudaLaunchAttributeValue::preferredClusterDim 以允许内核启动指定首选的替代集群维度。块可以根据使用此属性指定的维度(分组为“首选替代集群”)或使用 cudaLaunchAttributeClusterDimension 属性指定的维度(分组为“常规集群”)进行分组。“首选替代集群”的集群维度应为常规集群维度的整数倍且大于零。设备将尽最大努力尝试将线程块分组到首选集群中,而不是将它们分组到常规集群中。当设备认为必要时(主要是当设备暂时耗尽物理资源来启动更大的首选集群时),设备可以切换到启动常规集群,以尝试尽可能多地利用物理设备资源。每种类型的集群都将具有其枚举/坐标设置,就好像网格仅由其类型的集群组成一样。例如,如果首选替代集群维度是常规集群维度的两倍,则可能同时存在索引为 (1,0,0) 的常规集群和索引为 (1,0,0) 的首选集群。在此示例中,首选替代集群 (1,0,0) 替换常规集群 (2,0,0) 和 (3,0,0) 并对其块进行分组。仅当已指定常规集群维度时,此属性才会生效。首选替代集群维度必须是常规集群维度的整数倍且大于零,并且必须能整除网格。如果内核的 `__launch_bounds__` 中设置了 `maxBlocksPerCluster`,则它还必须不大于 `maxBlocksPerCluster`。否则,它必须小于驱动程序可以支持的最大值。否则,允许将此属性设置为物理上无法在任何特定设备上容纳的值。
- cudaLaunchAttributeLaunchCompletionEvent = 12
- 适用于启动。设置 cudaLaunchAttributeValue::launchCompletionEvent 以记录事件。名义上,事件在内核的所有块开始执行后触发。目前,这只是尽力而为。如果内核 B 对内核 A 具有启动完成依赖性,则 B 可能需要等到 A 完成。或者,B 的块可能在 A 的所有块开始之前开始,例如,如果 B 可以声明 A 无法使用的执行资源(例如,它们在不同的 GPU 上运行)或者如果 B 的优先级高于 A。如果这种排序反转可能导致死锁,请谨慎操作。启动完成事件名义上类似于设置了triggerAtBlockStart的编程事件,只是它对cudaGridDependencySynchronize()不可见,并且可以与计算能力低于 9.0 的设备一起使用。提供的事件不能是进程间或互操作事件。事件必须禁用计时(即,必须使用 cudaEventDisableTiming 标志集创建)。
- cudaLaunchAttributeDeviceUpdatableKernelNode = 13
- 适用于图节点、启动。此属性仅适用于图,将其传递给非捕获流中的启动将导致错误。 :cudaLaunchAttributeValue::deviceUpdatableKernelNode::deviceUpdatable 只能设置为 0 或 1。将该字段设置为 1 表示相应的内核节点应该是设备可更新的。成功后,将通过 cudaLaunchAttributeValue::deviceUpdatableKernelNode::devNode 返回句柄,该句柄可以传递给各种设备端更新函数,以从另一个内核中更新节点的内核参数。有关可以进行的设备更新类型以及相关限制的更多信息,请参阅 cudaGraphKernelNodeUpdatesApply。与常规内核节点相比,设备可更新节点具有更多限制。首先,设备可更新节点不能通过 cudaGraphDestroyNode 从其图中删除。此外,一旦选择加入此功能,节点就无法选择退出,并且任何尝试将 deviceUpdatable 属性设置为 0 的操作都将导致错误。设备可更新内核节点也不能通过 cudaGraphKernelNodeCopyAttributes 将其属性复制到另一个内核节点或从另一个内核节点复制。包含一个或多个设备可更新节点的图也不允许多次实例化,并且图及其实例化版本都不能传递给 cudaGraphExecUpdate。如果图包含设备可更新节点并在图内从设备更新这些节点,则必须先使用 cuGraphUpload 上传该图,然后再启动它。对于此类图,如果对设备可更新节点进行了主机端可执行图更新,则必须先上传该图,然后再再次启动它。
- cudaLaunchAttributePreferredSharedMemoryCarveout = 14
- 适用于启动。在 L1 缓存和共享内存使用相同硬件资源的设备上,将 cudaLaunchAttributeValue::sharedMemCarveout 设置为 0-100 之间的百分比表示为该内核启动设置共享内存划分首选项,以占总共享内存的百分比表示。此属性优先于 cudaFuncAttributePreferredSharedMemoryCarveout。这只是一个提示,如果启动需要,驱动程序可以选择不同的配置。
- enum cudaLaunchMemSyncDomain
-
内存同步域
内核可以在指定的内存同步域中启动,该域会影响该内核发出的所有内存操作。在一个域中发出的内存屏障将仅对该域中的内存操作进行排序,从而消除内存屏障对不相关流量进行排序而导致的延迟增加。
默认情况下,内核在域 0 中启动。使用 cudaLaunchMemSyncDomainRemote 启动的内核将具有不同的域 ID。用户还可以使用 cudaLaunchMemSyncDomainMap 更改特定流/图节点/内核启动的域 ID。请参阅 cudaLaunchAttributeMemSyncDomain、cudaStreamSetAttribute、cudaLaunchKernelEx、cudaGraphKernelNodeSetAttribute。
在不同域中启动的内核中完成的内存操作被认为是系统范围的远程操作。换句话说,即使在同一 GPU 上,GPU 范围的内存同步也不足以让另一个内存同步域中的内核观察到内存顺序。
值
- cudaLaunchMemSyncDomainDefault = 0
- 在默认域中启动内核
- cudaLaunchMemSyncDomainRemote = 1
- 在远程域中启动内核
- enum cudaLibraryOption
-
要与 cudaLibraryLoadData() 或 cudaLibraryLoadFromFile() 一起指定的库选项
值
- cudaLibraryHostUniversalFunctionAndDataTable = 0
- cudaLibraryBinaryIsPreserved = 1
- 指定传递给 cudaLibraryLoadData() 的参数code将被保留。指定此选项将使驱动程序知道code可以在任何时候访问,直到 cudaLibraryUnload()。默认行为是驱动程序分配和维护其自己的code副本。请注意,这只是一个内存使用优化提示,如果需要,驱动程序可以选择忽略它。将此选项与 cudaLibraryLoadFromFile() 一起指定无效,并将返回 cudaErrorInvalidValue。
- enum cudaLimit
-
CUDA 限制
值
- cudaLimitStackSize = 0x00
- GPU 线程堆栈大小
- cudaLimitPrintfFifoSize = 0x01
- GPU printf FIFO 大小
- cudaLimitMallocHeapSize = 0x02
- GPU malloc 堆大小
- cudaLimitDevRuntimeSyncDepth = 0x03
- GPU 设备运行时同步深度
- cudaLimitDevRuntimePendingLaunchCount = 0x04
- GPU 设备运行时挂起的启动计数
- cudaLimitMaxL2FetchGranularity = 0x05
- 一个介于 0 到 128 之间的值,指示 L2 的最大获取粒度(以字节为单位)。这是一个提示
- cudaLimitPersistingL2CacheSize = 0x06
- L2 持久化行缓存大小(以字节为单位)
- enum cudaMemAccessFlags
-
指定映射的内存保护标志。
值
- cudaMemAccessFlagsProtNone = 0
- 默认,使地址范围不可访问
- cudaMemAccessFlagsProtRead = 1
- 使地址范围可读
- cudaMemAccessFlagsProtReadWrite = 3
- 使地址范围可读写
- enum cudaMemAllocationHandleType
-
用于指定特定句柄类型的标志
值
- cudaMemHandleTypeNone = 0x0
- 不允许任何导出机制。 >
- cudaMemHandleTypePosixFileDescriptor = 0x1
- 允许使用文件描述符进行导出。仅在 POSIX 系统上允许。(int)
- cudaMemHandleTypeWin32 = 0x2
- 允许使用 Win32 NT 句柄进行导出。(HANDLE)
- cudaMemHandleTypeWin32Kmt = 0x4
- 允许使用 Win32 KMT 句柄进行导出。(D3DKMT_HANDLE)
- cudaMemHandleTypeFabric = 0x8
- 允许使用 fabric 句柄进行导出。(cudaMemFabricHandle_t)
- enum cudaMemAllocationType
-
定义可用的分配类型
值
- cudaMemAllocationTypeInvalid = 0x0
- cudaMemAllocationTypePinned = 0x1
- 此分配类型是“pinned”,即在应用程序主动使用它时,无法从其当前位置迁移。
- cudaMemAllocationTypeMax = 0x7FFFFFFF
- enum cudaMemLocationType
-
指定位置类型
值
- cudaMemLocationTypeInvalid = 0
- cudaMemLocationTypeDevice = 1
- 位置是设备位置,因此 id 是设备序号
- cudaMemLocationTypeHost = 2
- 位置是主机,id 被忽略
- cudaMemLocationTypeHostNuma = 3
- 位置是主机 NUMA 节点,因此 id 是主机 NUMA 节点 id
- cudaMemLocationTypeHostNumaCurrent = 4
- 位置是离当前线程 CPU 最近的主机 NUMA 节点,id 被忽略
- enum cudaMemPoolAttr
-
CUDA 内存池属性
值
- cudaMemPoolReuseFollowEventDependencies = 0x1
- (值类型 = int) 允许 cuMemAllocAsync 使用在另一个流中异步释放的内存,只要分配流对释放操作存在流排序依赖性。Cuda 事件和空流交互可以创建所需的流排序依赖性。(默认启用)
- cudaMemPoolReuseAllowOpportunistic = 0x2
- (值类型 = int) 允许在释放和分配之间没有依赖关系时重用已完成的释放。(默认启用)
- cudaMemPoolReuseAllowInternalDependencies = 0x3
- (值类型 = int) 允许 cuMemAllocAsync 插入新的流依赖性,以建立重用 cuFreeAsync 释放的内存片段所需的流排序(默认启用)。
- cudaMemPoolAttrReleaseThreshold = 0x4
- (值类型 = cuuint64_t) 在尝试将内存释放回操作系统之前,要保留的已保留内存量(以字节为单位)。当内存池持有的内存超过释放阈值字节时,分配器将在下次调用流、事件或上下文同步时尝试将内存释放回操作系统。(默认 0)
- cudaMemPoolAttrReservedMemCurrent = 0x5
- (值类型 = cuuint64_t) 当前为内存池分配的后备内存量。
- cudaMemPoolAttrReservedMemHigh = 0x6
- (值类型 = cuuint64_t) 自上次重置以来为内存池分配的后备内存的高水位线。高水位线只能重置为零。
- cudaMemPoolAttrUsedMemCurrent = 0x7
- (值类型 = cuuint64_t) 池中当前正在被应用程序使用的内存量。
- cudaMemPoolAttrUsedMemHigh = 0x8
- (值类型 = cuuint64_t) 自上次重置以来池中正在被应用程序使用的内存量的高水位线。高水位线只能重置为零。
- enum cudaMemRangeAttribute
-
CUDA 范围属性
值
- cudaMemRangeAttributeReadMostly = 1
- 范围是否主要用于读取,仅偶尔写入
- cudaMemRangeAttributePreferredLocation = 2
- 范围的首选位置
- cudaMemRangeAttributeAccessedBy = 3
- 内存范围已为指定设备设置 cudaMemAdviseSetAccessedBy
- cudaMemRangeAttributeLastPrefetchLocation = 4
- 范围上次预取的位置
- cudaMemRangeAttributePreferredLocationType = 5
- 范围的首选位置类型
- cudaMemRangeAttributePreferredLocationId = 6
- 范围的首选位置 id
- cudaMemRangeAttributeLastPrefetchLocationType = 7
- 范围上次预取的位置类型
- cudaMemRangeAttributeLastPrefetchLocationId = 8
- 范围上次预取的位置 id
- enum cudaMemcpy3DOperandType
-
这些标志允许应用程序传达在 cudaMemcpy3DBatchAsync 中指定的各个副本的操作数类型。
值
- cudaMemcpyOperandTypePointer = 0x1
- Memcpy 操作数是有效的指针。
- cudaMemcpyOperandTypeArray = 0x2
- Memcpy 操作数是 CUarray。
- cudaMemcpyOperandTypeMax = 0x7FFFFFFF
- enum cudaMemcpyFlags
-
用于指定批处理中副本的标志。有关更多详细信息,请参阅 cudaMemcpyBatchAsync。
值
- cudaMemcpyFlagDefault = 0x0
- cudaMemcpyFlagPreferOverlapWithCompute = 0x1
- 提示驱动程序尝试将复制操作与 SM 上的计算工作重叠。
- enum cudaMemcpyKind
-
CUDA 内存复制类型
值
- cudaMemcpyHostToHost = 0
- 主机 -> 主机
- cudaMemcpyHostToDevice = 1
- 主机 -> 设备
- cudaMemcpyDeviceToHost = 2
- 设备 -> 主机
- cudaMemcpyDeviceToDevice = 3
- 设备 -> 设备
- cudaMemcpyDefault = 4
- 传输方向是从指针值推断出来的。需要统一虚拟寻址
- enum cudaMemoryAdvise
-
CUDA 内存建议值
值
- cudaMemAdviseSetReadMostly = 1
- 数据将主要用于读取,仅偶尔写入
- cudaMemAdviseUnsetReadMostly = 2
- 撤消 cudaMemAdviseSetReadMostly 的效果
- cudaMemAdviseSetPreferredLocation = 3
- 将数据的首选位置设置为指定的设备
- cudaMemAdviseUnsetPreferredLocation = 4
- 清除数据的首选位置
- cudaMemAdviseSetAccessedBy = 5
- 数据将由指定的设备访问,因此尽可能防止页面错误
- cudaMemAdviseUnsetAccessedBy = 6
- 让统一内存子系统决定指定设备的页面错误策略
- enum cudaMemoryType
-
CUDA 内存类型
值
- cudaMemoryTypeUnregistered = 0
- 未注册内存
- cudaMemoryTypeHost = 1
- 主机内存
- cudaMemoryTypeDevice = 2
- 设备内存
- cudaMemoryTypeManaged = 3
- 托管内存
- enum cudaResourceType
-
CUDA 资源类型
值
- cudaResourceTypeArray = 0x00
- 数组资源
- cudaResourceTypeMipmappedArray = 0x01
- 多级mipmap数组资源
- cudaResourceTypeLinear = 0x02
- 线性资源
- cudaResourceTypePitch2D = 0x03
- Pitch 2D 资源
- enum cudaResourceViewFormat
-
CUDA 纹理资源视图格式
值
- cudaResViewFormatNone = 0x00
- 无资源视图格式(使用底层资源格式)
- cudaResViewFormatUnsignedChar1 = 0x01
- 1 通道无符号 8 位整数
- cudaResViewFormatUnsignedChar2 = 0x02
- 2 通道无符号 8 位整数
- cudaResViewFormatUnsignedChar4 = 0x03
- 4 通道无符号 8 位整数
- cudaResViewFormatSignedChar1 = 0x04
- 1 通道有符号 8 位整数
- cudaResViewFormatSignedChar2 = 0x05
- 2 通道有符号 8 位整数
- cudaResViewFormatSignedChar4 = 0x06
- 4 通道有符号 8 位整数
- cudaResViewFormatUnsignedShort1 = 0x07
- 1 通道无符号 16 位整数
- cudaResViewFormatUnsignedShort2 = 0x08
- 2 通道无符号 16 位整数
- cudaResViewFormatUnsignedShort4 = 0x09
- 4 通道无符号 16 位整数
- cudaResViewFormatSignedShort1 = 0x0a
- 1 通道有符号 16 位整数
- cudaResViewFormatSignedShort2 = 0x0b
- 2 通道有符号 16 位整数
- cudaResViewFormatSignedShort4 = 0x0c
- 4 通道有符号 16 位整数
- cudaResViewFormatUnsignedInt1 = 0x0d
- 1 通道无符号 32 位整数
- cudaResViewFormatUnsignedInt2 = 0x0e
- 2 通道无符号 32 位整数
- cudaResViewFormatUnsignedInt4 = 0x0f
- 4 通道无符号 32 位整数
- cudaResViewFormatSignedInt1 = 0x10
- 1 通道有符号 32 位整数
- cudaResViewFormatSignedInt2 = 0x11
- 2 通道有符号 32 位整数
- cudaResViewFormatSignedInt4 = 0x12
- 4 通道有符号 32 位整数
- cudaResViewFormatHalf1 = 0x13
- 1 通道 16 位浮点数
- cudaResViewFormatHalf2 = 0x14
- 2 通道 16 位浮点数
- cudaResViewFormatHalf4 = 0x15
- 4 通道 16 位浮点数
- cudaResViewFormatFloat1 = 0x16
- 1 通道 32 位浮点数
- cudaResViewFormatFloat2 = 0x17
- 2 通道 32 位浮点数
- cudaResViewFormatFloat4 = 0x18
- 4 通道 32 位浮点数
- cudaResViewFormatUnsignedBlockCompressed1 = 0x19
- 块压缩 1
- cudaResViewFormatUnsignedBlockCompressed2 = 0x1a
- 块压缩 2
- cudaResViewFormatUnsignedBlockCompressed3 = 0x1b
- 块压缩 3
- cudaResViewFormatUnsignedBlockCompressed4 = 0x1c
- 块压缩 4 无符号
- cudaResViewFormatSignedBlockCompressed4 = 0x1d
- 块压缩 4 有符号
- cudaResViewFormatUnsignedBlockCompressed5 = 0x1e
- 块压缩 5 无符号
- cudaResViewFormatSignedBlockCompressed5 = 0x1f
- 块压缩 5 有符号
- cudaResViewFormatUnsignedBlockCompressed6H = 0x20
- 块压缩 6 无符号半精度浮点数
- cudaResViewFormatSignedBlockCompressed6H = 0x21
- 块压缩 6 有符号半精度浮点数
- cudaResViewFormatUnsignedBlockCompressed7 = 0x22
- 块压缩 7
- enum cudaSharedCarveout
-
共享内存划分配置。 这些可以传递给 cudaFuncSetAttribute
值
- cudaSharedmemCarveoutDefault = -1
- 不偏好共享内存或 L1 缓存(默认)
- cudaSharedmemCarveoutMaxShared = 100
- 偏好最大可用共享内存,最小 L1 缓存
- cudaSharedmemCarveoutMaxL1 = 0
- 偏好最大可用 L1 缓存,最小共享内存
- enum cudaSharedMemConfig
-
已弃用
CUDA 共享内存配置值
- cudaSharedMemBankSizeDefault = 0
- cudaSharedMemBankSizeFourByte = 1
- cudaSharedMemBankSizeEightByte = 2
- enum cudaStreamCaptureMode
-
流捕获线程交互的可能模式。 有关更多详细信息,请参阅 cudaStreamBeginCapture 和 cudaThreadExchangeStreamCaptureMode
值
- cudaStreamCaptureModeGlobal = 0
- cudaStreamCaptureModeThreadLocal = 1
- cudaStreamCaptureModeRelaxed = 2
- enum cudaStreamCaptureStatus
-
cudaStreamIsCapturing 返回的可能流捕获状态
值
- cudaStreamCaptureStatusNone = 0
- 流未捕获
- cudaStreamCaptureStatusActive = 1
- 流正在主动捕获
- cudaStreamCaptureStatusInvalidated = 2
- 流是已失效但未终止的捕获序列的一部分
- enum cudaStreamUpdateCaptureDependenciesFlags
-
值
- cudaStreamAddCaptureDependencies = 0x0
- 将新节点添加到依赖项集
- cudaStreamSetCaptureDependencies = 0x1
- 用新节点替换依赖项集
- enum cudaSurfaceBoundaryMode
-
CUDA Surface 边界模式
值
- cudaBoundaryModeZero = 0
- 零边界模式
- cudaBoundaryModeClamp = 1
- Clamp 边界模式
- cudaBoundaryModeTrap = 2
- Trap 边界模式
- enum cudaSurfaceFormatMode
-
CUDA Surface 格式模式
值
- cudaFormatModeForced = 0
- 强制格式模式
- cudaFormatModeAuto = 1
- 自动格式模式
- enum cudaTextureAddressMode
-
CUDA 纹理寻址模式
值
- cudaAddressModeWrap = 0
- Wrap 寻址模式
- cudaAddressModeClamp = 1
- Clamp to edge 寻址模式
- cudaAddressModeMirror = 2
- Mirror 寻址模式
- cudaAddressModeBorder = 3
- Border 寻址模式
- enum cudaTextureFilterMode
-
CUDA 纹理过滤模式
值
- cudaFilterModePoint = 0
- Point 过滤模式
- cudaFilterModeLinear = 1
- Linear 过滤模式
- enum cudaTextureReadMode
-
CUDA 纹理读取模式
值
- cudaReadModeElementType = 0
- 将纹理读取为指定的元素类型
- cudaReadModeNormalizedFloat = 1
- 将纹理读取为归一化浮点数
- enum cudaUserObjectFlags
-
用于图的用户对象标志
值
- cudaUserObjectNoDestructorSync = 0x1
- 指示析构函数执行不由任何 CUDA 句柄同步。
- enum cudaUserObjectRetainFlags
-
用于为图保留用户对象引用的标志
值
- cudaGraphUserObjectMove = 0x1
- 从调用者转移引用,而不是创建新引用。