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
已弃用

此标志已在 CUDA 4.0 中弃用,并被 cudaDeviceScheduleBlockingSync 替代。

设备标志 - 使用阻塞同步

#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)

旧版流句柄

可以作为 cudaStream_t 传递的流句柄,以使用具有旧版同步行为的隐式流。

请参阅 同步行为 的详细信息。

#define cudaStreamNonBlocking 0x01

流不与流 0(NULL 流)同步

#define cudaStreamPerThread ((cudaStream_t)0x2)

每线程流句柄

可以作为 cudaStream_t 传递的流句柄,以使用具有每线程同步行为的隐式流。

请参阅 同步行为 的详细信息。

类型定义

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 中弃用。尝试通过 cudaProfilerStartcudaProfilerStop 启用/禁用分析,而无需初始化,不再是错误。

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 设备都忙或不可用。设备通常由于使用 cudaComputeModeProhibitedcudaComputeModeExclusiveProcess,或者长时间运行的 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_tcudaEvent_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()cudaD3D10SetDirect3DDevicecudaD3D11SetDirect3DDevice()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
此错误表示,对于通过 cudaLaunchCooperativeKernelcudaLaunchCooperativeKernelMultiDevice 启动的内核,每个网格启动的块数超过了 cudaOccupancyMaxActiveBlocksPerMultiprocessorcudaOccupancyMaxActiveBlocksPerMultiprocessorWithFlags 允许的最大块数,该最大块数乘以设备属性 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 参数启动的流捕获序列传递给不同线程中的 cudaStreamBeginCapturecudaStreamEndCapture
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()。它只能在内核节点之间使用,并且必须与 cudaGraphKernelNodePortProgrammaticcudaGraphKernelNodePortLaunchCompletion 出站端口一起使用。
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 数量。当与 cudaJitMaxRegisterscudaJitThreadsPerBlock 一起使用时,此选项将被忽略。基于此选项的优化还需要指定 cudaJitMaxThreadsPerBlock。对于已使用 PTX 指令 .minnctapersm 的内核,默认情况下将忽略此选项。使用 cudaJitOverrideDirectiveValues 使此选项优先于 PTX 指令。选项类型:unsigned int 适用于:仅限编译器
cudaJitMaxThreadsPerBlock = 32
线程块中的最大线程数,计算为块的每个维度指定的最大范围的乘积。此限制保证在内核的任何调用中都不会被超出。超出最大线程数会导致运行时错误或内核启动失败。对于已使用 PTX 指令 .maxntid 的内核,默认情况下将忽略此选项。使用 cudaJitOverrideDirectiveValues 使此选项优先于 PTX 指令。选项类型:int 适用于:仅限编译器
cudaJitOverrideDirectiveValues = 33
此选项允许使用 cudaJitMaxRegisterscudaJitThreadsPerBlockcudaJitMaxThreadsPerBlockcudaJitMinCtaPerSm 指定的值优先于任何 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。请参阅 cudaLaunchAttributeMemSyncDomaincudaStreamSetAttributecudaLaunchKernelExcudaGraphKernelNodeSetAttribute

在不同域中启动的内核中完成的内存操作被认为是系统范围的远程操作。换句话说,即使在同一 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

流捕获线程交互的可能模式。 有关更多详细信息,请参阅 cudaStreamBeginCapturecudaThreadExchangeStreamCaptureMode

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
从调用者转移引用,而不是创建新引用。