4.1. CUDBGAPI_st 结构体参考

公共变量

CUDBGResult  ( *acknowledgeEvent30 )( CUDBGEvent30* event )
告知 debugger API 事件已处理。
CUDBGResult  ( *acknowledgeEvents42 )( )
告知 debugger API 同步事件已处理。
CUDBGResult  ( *acknowledgeSyncEvents )( )
告知 debugger API 同步事件已处理。
CUDBGResult  ( *clearAttachState )( )
在分离之前清除特定于附加的状态。
CUDBGResult  ( *disassemble )( uint32_t dev, uint64_t addr, uint32_t* instSize, char* buf, uint32_t sz )
反汇编指令地址处的指令。
CUDBGResult  ( *finalize )( )
完成 API 并释放所有内存。
CUDBGResult  ( *generateCoredump )( const char* filename, CUDBGCoredumpGenerationFlags flags )
为当前 GPU 状态生成核心转储。
CUDBGResult  ( *getAdjustedCodeAddress )( uint32_t devId, uint64_t address, uint64_t* adjustedAddress, CUDBGAdjAddrAction adjAction )
客户端必须在插入断点之前或当需要上一个或下一个代码地址时调用此函数。返回给定设备的给定代码地址的调整后的代码地址。
CUDBGResult  ( *getBlockDim )( uint32_t dev, uint32_t sm, uint32_t wp, CuDim3* blockDim )
获取给定块中的线程数。
CUDBGResult  ( *getClusterDim )( uint32_t dev, uint64_t gridId64, CuDim3* clusterDim )
获取给定集群中的块数。
CUDBGResult  ( *getConstBankAddress )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t bank, uint32_t offset, uint64_t* address )
将常量 bank 编号和偏移量转换为 GPU VA。
CUDBGResult  ( *getDeviceName )( uint32_t dev, char* buf, uint32_t sz )
获取设备名称字符串。
CUDBGResult  ( *getDevicePCIBusInfo )( uint32_t devId, uint32_t* pciBusId, uint32_t* pciDevId )
获取与设备 devId 关联的 PCI 总线和设备 ID。
CUDBGResult  ( *getDeviceType )( uint32_t dev, char* buf, uint32_t sz )
获取设备的字符串描述。
CUDBGResult  ( *getElfImage )( uint32_t dev, uint32_t sm, uint32_t wp, bool  relocated, void* *elfImage, uint64_t* size )
获取给定设备上网格的重定位或非重定位 ELF 映像和大小。
CUDBGResult  ( *getElfImage32 )( uint32_t dev, uint32_t sm, uint32_t wp, bool  relocated, void* *elfImage, uint32_t* size )
获取给定设备上网格的重定位或非重定位 ELF 映像和大小。
CUDBGResult  ( *getElfImageByHandle )( uint32_t devId, uint64_t handle, CUDBGElfImageType type, void* elfImage, uint64_t size )
获取给定设备上给定句柄的重定位或非重定位 ELF 映像。
CUDBGResult  ( *getErrorStringEx )( char* buf, uint32_t bufSz, uint32_t* msgSz )
使用以空字符结尾的 ASCII 字符串编码的错误消息填充用户提供的缓冲区。错误消息特定于上次失败的 API 调用,并在每次 API 调用后失效。
CUDBGResult  ( *getGridAttribute )( uint32_t dev, uint32_t sm, uint32_t wp, CUDBGAttribute attr, uint64_t* value )
获取网格属性的值。
CUDBGResult  ( *getGridAttributes )( uint32_t dev, uint32_t sm, uint32_t wp, CUDBGAttributeValuePair* pairs, uint32_t numPairs )
在单个 API 调用中获取多个网格属性值。
CUDBGResult  ( *getGridDim )( uint32_t dev, uint32_t sm, uint32_t wp, CuDim3* gridDim )
获取给定网格中的块数。
CUDBGResult  ( *getGridDim32 )( uint32_t dev, uint32_t sm, uint32_t wp, CuDim2* gridDim )
获取给定网格中的块数。
CUDBGResult  ( *getGridInfo )( uint32_t dev, uint64_t gridId64, CUDBGGridInfo* gridInfo )
获取有关指定网格的信息。如果网格的上下文已被销毁,则该函数将返回 CUDBG_ERROR_INVALID_GRID,即使网格 ID 是正确的。
CUDBGResult  ( *getGridInfo55 )( uint32_t dev, uint64_t gridId64, CUDBGGridInfo55* gridInfo )
获取有关指定网格的信息。如果网格的上下文已被销毁,则该函数将返回 CUDBG_ERROR_INVALID_GRID,即使网格 ID 是正确的。
CUDBGResult  ( *getGridStatus )( uint32_t dev, uint64_t gridId64, CUDBGGridStatus* status )
检查与给定 gridId 对应的网格是否仍然存在于设备上。
CUDBGResult  ( *getGridStatus50 )( uint32_t dev, uint32_t gridId, CUDBGGridStatus* status )
检查与给定 gridId 对应的网格是否仍然存在于设备上。
CUDBGResult  ( *getHostAddrFromDeviceAddr )( uint32_t dev, uint64_t device_addr, uint64_t* host_addr )
给定设备虚拟地址,返回相应的系统内存虚拟地址。
CUDBGResult  ( *getLoadedFunctionInfo )( uint32_t devId, uint64_t handle, CUDBGLoadedFunctionInfo* info, uint32_t startIndex, uint32_t numEntries )
获取给定模块的已加载函数的节号和地址。
CUDBGResult  ( *getLoadedFunctionInfo118 )( uint32_t devId, uint64_t handle, CUDBGLoadedFunctionInfo* info, uint32_t numEntries )
获取给定模块的已加载函数的节号和地址。
CUDBGResult  ( *getManagedMemoryRegionInfo )( uint64_t startAddress, CUDBGMemoryInfo* memoryInfo, uint32_t memoryInfo_size, uint32_t* numEntries )
返回托管内存区域的排序列表。排序后的内存区域列表从包含指定起始地址的区域开始。如果起始地址设置为 0,则返回托管内存区域的排序列表,该列表从起始地址最低的托管内存区域开始。
CUDBGResult  ( *getNextAsyncEvent50 )( CUDBGEvent50* event )
将异步事件队列中的下一个可用事件复制到“event”中,并将其从队列中删除。异步事件队列与正常事件队列分开保存,不需要调试客户端的确认。
CUDBGResult  ( *getNextAsyncEvent55 )( CUDBGEvent55* event )
将异步事件队列中的下一个可用事件复制到“event”中,并将其从队列中删除。异步事件队列与正常事件队列分开保存,不需要调试客户端的确认。
CUDBGResult  ( *getNextEvent )( CUDBGEventQueueType type, CUDBGEvent* event )
将下一个可用事件复制到“event”中,并将其从队列中删除。
CUDBGResult  ( *getNextEvent30 )( CUDBGEvent30* event )
将事件队列中的下一个可用事件复制到“event”中,并将其从队列中删除。
CUDBGResult  ( *getNextEvent32 )( CUDBGEvent32* event )
将事件队列中的下一个可用事件复制到“event”中,并将其从队列中删除。
CUDBGResult  ( *getNextEvent42 )( CUDBGEvent42* event )
将事件队列中的下一个可用事件复制到“event”中,并将其从队列中删除。
CUDBGResult  ( *getNextSyncEvent50 )( CUDBGEvent50* event )
CUDBGResult  ( *getNextSyncEvent55 )( CUDBGEvent55* event )
将同步事件队列中的下一个可用事件复制到“event”中,并将其从队列中删除。
CUDBGResult  ( *getNumDevices )( uint32_t* numDev )
获取已安装 CUDA 设备的数量。
CUDBGResult  ( *getNumLanes )( uint32_t dev, uint32_t* numLanes )
获取设备上每个 warp 的 lane 数量。
CUDBGResult  ( *getNumPredicates )( uint32_t dev, uint32_t* numPredicates )
获取设备上每个 lane 的谓词寄存器数量。
CUDBGResult  ( *getNumRegisters )( uint32_t dev, uint32_t* numRegs )
获取设备上每个 lane 的寄存器数量。
CUDBGResult  ( *getNumSMs )( uint32_t dev, uint32_t* numSMs )
获取设备上 SM 的总数。
CUDBGResult  ( *getNumUniformPredicates )( uint32_t dev, uint32_t* numPredicates )
获取设备上每个 warp 的统一谓词寄存器数量。
CUDBGResult  ( *getNumUniformRegisters )( uint32_t dev, uint32_t* numRegs )
获取设备上每个 warp 的统一寄存器数量。
CUDBGResult  ( *getNumWarps )( uint32_t dev, uint32_t* numWarps )
获取设备上每个 SM 的 warp 数量。
CUDBGResult  ( *getPhysicalRegister30 )( uint64_t pc, char* reg, uint32_t* buf, uint32_t sz, uint32_t* numPhysRegs, CUDBGRegClass* regClass )
如果虚拟寄存器名称 'reg' 在给定的 PC 上处于活动状态,则获取分配给该名称的物理寄存器号。
CUDBGResult  ( *getPhysicalRegister40 )( uint32_t dev, uint32_t sm, uint32_t wp, uint64_t pc, char* reg, uint32_t* buf, uint32_t sz, uint32_t* numPhysRegs, CUDBGRegClass* regClass )
如果虚拟寄存器名称 'reg' 在给定的 PC 上处于活动状态,则获取分配给该名称的物理寄存器号。
CUDBGResult  ( *getSmType )( uint32_t dev, char* buf, uint32_t sz )
获取设备的 SM 类型。
CUDBGResult  ( *getTID )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t* tid )
获取托管网格上下文的 Linux 线程的 ID。
CUDBGResult  ( *initialize )( )
初始化 API。
CUDBGResult  ( *initializeAttachStub )( )
初始化 attach stub。
CUDBGResult  ( *isDeviceCodeAddress )( uintptr_t addr, bool* isDeviceAddress )
确定虚拟地址是否位于设备代码中。
CUDBGResult  ( *isDeviceCodeAddress55 )( uintptr_t addr, bool* isDeviceAddress )
确定虚拟地址是否位于设备代码中。此 API 强烈建议弃用。请改用 CUDBGAPI_st::isDeviceCodeAddress。
CUDBGResult  ( *lookupDeviceCodeSymbol )( char* symName, bool* symFound, uintptr_t* symAddr )
确定符号是否表示设备代码中的函数并返回其虚拟地址。
CUDBGResult  ( *memcheckReadErrorAddress )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint64_t* address, ptxStorageKind* storage )
获取 memcheck 检测到错误的地址。
CUDBGResult  ( *readActiveLanes )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t* activeLanesMask )
读取有效 Warp 上的 active lanes 的位掩码。
CUDBGResult  ( *readBlockIdx )( uint32_t dev, uint32_t sm, uint32_t wp, CuDim3* blockIdx )
读取在有效 Warp 上运行的 CUDA block index。
CUDBGResult  ( *readBlockIdx32 )( uint32_t dev, uint32_t sm, uint32_t wp, CuDim2* blockIdx )
读取在有效 Warp 上运行的二维 CUDA block index。
CUDBGResult  ( *readBrokenWarps )( uint32_t dev, uint32_t sm, uint64_t* brokenWarpsMask )
读取给定 SM 上断点处的 Warps 的位掩码。
CUDBGResult  ( *readCCRegister )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint32_t* val )
读取硬件 CC 寄存器。
CUDBGResult  ( *readCallDepth )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint32_t* depth )
读取给定 Lane 的调用深度(调用次数)。
CUDBGResult  ( *readCallDepth32 )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t* depth )
读取给定 Warp 的调用深度(调用次数)。
CUDBGResult  ( *readClusterIdx )( uint32_t dev, uint32_t sm, uint32_t wp, CuDim3* clusterIdx )
读取在有效 Warp 上运行的 CUDA cluster index。
CUDBGResult  ( *readCodeMemory )( uint32_t dev, uint64_t addr, void* buf, uint32_t sz )
读取代码内存段中地址的内容。
CUDBGResult  ( *readConstMemory )( uint32_t dev, uint64_t addr, void* buf, uint32_t sz )
读取常量内存段中地址的内容。
CUDBGResult  ( *readDeviceExceptionState )( uint32_t devId, uint64_t* mask, uint32_t numWords )
获取设备上 SM 的异常状态。
CUDBGResult  ( *readDeviceExceptionState80 )( uint32_t devId, uint64_t* exceptionSMMask )
获取设备上 SM 的异常状态。
CUDBGResult  ( *readErrorPC )( uint32_t devId, uint32_t sm, uint32_t wp, uint64_t* errorPC, bool* errorPCValid )
如果存在,获取硬件报告的错误 PC。
CUDBGResult  ( *readGenericMemory )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint64_t addr, void* buf, uint32_t sz )
读取通用地址空间中地址的内容。此函数确定给定地址是否属于本地、共享或全局内存窗口。然后,它会考虑作为输入提供的硬件坐标来访问内存。
CUDBGResult  ( *readGlobalMemory )( uint64_t addr, void* buf, uint32_t sz )
读取全局地址空间中地址的内容。如果该地址在多个设备上有效,并且其中一个设备不支持 UVA,则返回错误。
CUDBGResult  ( *readGlobalMemory31 )( uint32_t dev, uint64_t addr, void* buf, uint32_t sz )
读取全局内存段中地址的内容。
CUDBGResult  ( *readGlobalMemory55 )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint64_t addr, void* buf, uint32_t sz )
读取全局内存段中地址的内容(Fermi+ 上的整个 40 位 VA)。
CUDBGResult  ( *readGridId )( uint32_t dev, uint32_t sm, uint32_t wp, uint64_t* gridId64 )
读取在有效 Warp 上运行的 64 位 CUDA grid index。
CUDBGResult  ( *readGridId50 )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t* gridId )
读取在有效 Warp 上运行的 CUDA grid index。
CUDBGResult  ( *readLaneException )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, CUDBGException_t* exception )
读取给定 Lane 的异常类型。
CUDBGResult  ( *readLaneStatus )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, bool* error )
读取给定 Lane 的状态。对于特定的错误值,请使用 readLaneException。
CUDBGResult  ( *readLocalMemory )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint64_t addr, void* buf, uint32_t sz )
读取本地内存段中地址的内容。
CUDBGResult  ( *readPC )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint64_t* pc )
读取给定活动 Lane 上的 PC。
CUDBGResult  ( *readParamMemory )( uint32_t dev, uint32_t sm, uint32_t wp, uint64_t addr, void* buf, uint32_t sz )
读取参数内存段中地址的内容。
CUDBGResult  ( *readPinnedMemory )( uint64_t addr, void* buf, uint32_t sz )
读取系统内存中 pinned 地址的内容。
CUDBGResult  ( *readPredicates )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint32_t predicates_size, uint32_t* predicates )
读取硬件 predicate 寄存器的内容。
CUDBGResult  ( *readRegister )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint32_t regno, uint32_t* val )
读取硬件寄存器的内容。
CUDBGResult  ( *readRegisterRange )( uint32_t devId, uint32_t sm, uint32_t wp, uint32_t ln, uint32_t index, uint32_t registers_size, uint32_t* registers )
读取硬件寄存器范围内硬件寄存器的内容。
CUDBGResult  ( *readReturnAddress )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint32_t level, uint64_t* ra )
读取调用级别的物理返回地址。
CUDBGResult  ( *readReturnAddress32 )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t level, uint64_t* ra )
读取调用级别的物理返回地址。
CUDBGResult  ( *readSharedMemory )( uint32_t dev, uint32_t sm, uint32_t wp, uint64_t addr, void* buf, uint32_t sz )
读取共享内存段中地址的内容。
CUDBGResult  ( *readSyscallCallDepth )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint32_t* depth )
读取给定 Lane 的系统调用 (syscall) 的调用深度。
CUDBGResult  ( *readTextureMemory )( uint32_t devId, uint32_t vsm, uint32_t wp, uint32_t id, uint32_t dim, uint32_t* coords, void* buf, uint32_t sz )
自 CUDA 12.0 起,此方法不再受支持。
CUDBGResult  ( *readTextureMemoryBindless )( uint32_t devId, uint32_t vsm, uint32_t wp, uint32_t texSymtabIndex, uint32_t dim, uint32_t* coords, void* buf, uint32_t sz )
自 CUDA 12.0 起,此方法不再受支持。
CUDBGResult  ( *readThreadIdx )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, CuDim3* threadIdx )
读取在有效 Lane 上运行的 CUDA thread index。
CUDBGResult  ( *readUniformPredicates )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t predicates_size, uint32_t* predicates )
读取 uniform predicate 寄存器的内容。
CUDBGResult  ( *readUniformRegisterRange )( uint32_t devId, uint32_t sm, uint32_t wp, uint32_t regno, uint32_t registers_size, uint32_t* registers )
读取一系列 uniform 寄存器。
CUDBGResult  ( *readValidLanes )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t* validLanesMask )
读取给定 Warp 上 valid lanes 的位掩码。
CUDBGResult  ( *readValidWarps )( uint32_t dev, uint32_t sm, uint64_t* validWarpsMask )
读取给定 SM 上 valid warps 的位掩码。
CUDBGResult  ( *readVirtualPC )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint64_t* pc )
读取给定活动 Lane 上的虚拟 PC。
CUDBGResult  ( *readVirtualReturnAddress )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint32_t level, uint64_t* ra )
读取调用级别的虚拟返回地址。
CUDBGResult  ( *readVirtualReturnAddress32 )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t level, uint64_t* ra )
读取调用级别的虚拟返回地址。
CUDBGResult  ( *readWarpState )( uint32_t dev, uint32_t sm, uint32_t wp, CUDBGWarpState* state )
获取给定 Warp 的状态。
CUDBGResult  ( *readWarpState60 )( uint32_t devId, uint32_t sm, uint32_t wp, CUDBGWarpState60* state )
获取给定 Warp 的状态。
CUDBGResult  ( *requestCleanupOnDetach )( uint32_t appResumeFlag )
请求在分离时清理驱动程序状态。
CUDBGResult  ( *requestCleanupOnDetach55 )( )
请求在分离时清理驱动程序状态。
CUDBGResult  ( *resumeDevice )( uint32_t dev )
恢复已暂停的 CUDA 设备。
CUDBGResult  ( *resumeWarpsUntilPC )( uint32_t devId, uint32_t sm, uint64_t warpMask, uint64_t virtPC )
在指定的虚拟 PC 处插入临时断点,并恢复给定 SM 上指定位掩码中的所有 Warp。与 CUDBGAPI_st::resumeDevice 相比,CUDBGAPI_st::resumeWarpsUntilPC 通过恢复同一 SM 上选定的一组 Warp,提供了更精细的控制。主要预期用途是在预先知道目标 PC 时加速单步执行过程。客户端可以发出此 API,而不是单独单步执行每个 Warp 直到命中目标 PC。使用此 API 时,CUDA 内核中的错误将不再被精确报告。在无法恢复 Warp 的情况下,此 API 将返回 CUDBG_ERROR_WARP_RESUME_NOT_POSSIBLE。然后,客户端应回退到使用 CUDBGAPI_st::singleStepWarp 或 CUDBGAPI_st::resumeDevice。
CUDBGResult  ( *setBreakpoint )( uint32_t dev, uint64_t addr )
在给定设备的给定指令地址处设置断点。在设置断点之前,应调用 CUDBGAPI_st::getAdjustedCodeAddress 以获取调整后的断点地址。
CUDBGResult  ( *setBreakpoint31 )( uint64_t addr )
在给定的指令地址处设置断点。
CUDBGResult  ( *setKernelLaunchNotificationMode )( CUDBGKernelLaunchNotifyMode mode )
设置启动通知策略。
CUDBGResult  ( *setNotifyNewEventCallback )( CUDBGNotifyNewEventCallback callback )
向 API 提供要调用的函数,以将新的应用程序或设备事件通知调试器。
CUDBGResult  ( *setNotifyNewEventCallback31 )( CUDBGNotifyNewEventCallback31 callback, void* data )
向 API 提供要调用的函数,以将新的应用程序或设备事件通知调试器。
CUDBGResult  ( *setNotifyNewEventCallback40 )( CUDBGNotifyNewEventCallback40 callback )
向 API 提供要调用的函数,以将新的应用程序或设备事件通知调试器。
CUDBGResult  ( *singleStepWarp )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t nsteps, uint64_t* warpMask )
在暂停的 CUDA 设备上单步执行单个 Warp nsteps 次。范围内的最后一条指令应为控制流指令。
CUDBGResult  ( *singleStepWarp40 )( uint32_t dev, uint32_t sm, uint32_t wp )
在暂停的 CUDA 设备上单步执行单个 Warp。
CUDBGResult  ( *singleStepWarp41 )( uint32_t dev, uint32_t sm, uint32_t wp, uint64_t* warpMask )
在暂停的 CUDA 设备上单步执行单个 Warp。
CUDBGResult  ( *suspendDevice )( uint32_t dev )
暂停正在运行的 CUDA 设备。
CUDBGResult  ( *unsetBreakpoint )( uint32_t dev, uint64_t addr )
取消给定设备的指定指令地址上的断点。
CUDBGResult  ( *unsetBreakpoint31 )( uint64_t addr )
取消给定指令地址上的断点。
CUDBGResult  ( *writeCCRegister )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint32_t val )
写入硬件 CC 寄存器。
CUDBGResult  ( *writeGenericMemory )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint64_t addr, const void* buf, uint32_t sz )
将内容写入通用地址空间中的地址。此函数确定给定地址是否属于本地、共享或全局内存窗口。然后,它会考虑作为输入提供的硬件坐标来访问内存。
CUDBGResult  ( *writeGlobalMemory )( uint64_t addr, const void* buf, uint32_t sz )
将内容写入全局地址空间中的地址。如果该地址在多个设备上有效,并且其中一个设备不支持 UVA,则会返回错误。
CUDBGResult  ( *writeGlobalMemory31 )( uint32_t dev, uint64_t addr, const void* buf, uint32_t sz )
将内容写入全局内存段中的地址。
CUDBGResult  ( *writeGlobalMemory55 )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint64_t addr, const void* buf, uint32_t sz )
将内容写入全局内存段中的地址(Fermi+ 上的整个 40 位 VA)。
CUDBGResult  ( *writeLocalMemory )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint64_t addr, const void* buf, uint32_t sz )
将内容写入本地内存段中的地址。
CUDBGResult  ( *writeParamMemory )( uint32_t dev, uint32_t sm, uint32_t wp, uint64_t addr, const void* buf, uint32_t sz )
将内容写入参数内存段中的地址。
CUDBGResult  ( *writePinnedMemory )( uint64_t addr, const void* buf, uint32_t sz )
将内容写入系统内存中的固定地址。
CUDBGResult  ( *writePredicates )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint32_t predicates_size, const uint32_t* predicates )
将内容写入硬件谓词寄存器。
CUDBGResult  ( *writeRegister )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint32_t regno, uint32_t val )
将内容写入硬件寄存器。
CUDBGResult  ( *writeSharedMemory )( uint32_t dev, uint32_t sm, uint32_t wp, uint64_t addr, const void* buf, uint32_t sz )
将内容写入共享内存段中的地址。
CUDBGResult  ( *writeUniformPredicates )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t predicates_size, const uint32_t* predicates )
写入统一谓词寄存器。
CUDBGResult  ( *writeUniformRegister )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t regno, uint32_t val )
将内容写入统一寄存器。

变量

CUDBGResult ( *CUDBGAPI_st::acknowledgeEvent30 )( CUDBGEvent30* event )

告知调试器 API 事件已被处理。自 CUDA 3.0 起。

参数
event
- 指向已被处理的事件的指针
返回值

CUDBG_SUCCESS

CUDBGResult ( *CUDBGAPI_st::acknowledgeEvents42 )( )

告知调试器 API 同步事件已被处理。自 CUDA 3.1 起。

返回值

CUDBG_SUCCESS

CUDBGResult ( *CUDBGAPI_st::acknowledgeSyncEvents )( )

告知调试器 API 同步事件已被处理。自 CUDA 5.0 起。

返回值

CUDBG_SUCCESS

CUDBGResult ( *CUDBGAPI_st::clearAttachState )( )

在分离之前清除特定于附加状态的状态。自 CUDA 5.0 起。

返回值

CUDBG_SUCCESS

CUDBGResult ( *CUDBGAPI_st::disassemble )( uint32_t dev, uint64_t addr, uint32_t* instSize, char* buf, uint32_t sz )

反汇编指令地址处的指令。自 CUDA 3.0 起。

参数
dev
- 设备索引
addr
- 指令地址
instSize
- 指令大小(32 位或 64 位)
buf
- 反汇编指令缓冲区
sz
- 反汇编指令缓冲区大小
返回值

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_UNKNOWN

CUDBGResult ( *CUDBGAPI_st::finalize )( )

终止 API 并释放所有内存。自 CUDA 3.0 起。

另请参阅

initialize

返回值

CUDBG_SUCCESS, CUDBG_ERROR_UNINITIALIZED, CUDBG_ERROR_COMMUNICATION_FAILURE, CUDBG_ERROR_UNKNOWN

CUDBGResult ( *CUDBGAPI_st::generateCoredump )( const char* filename, CUDBGCoredumpGenerationFlags flags )

为当前的 GPU 状态生成 core dump。自 CUDA 12.3 起

参数
filename
- 目标 core dump 文件名
flags
- core dump 生成标志/选项
返回值

CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_NOT_SUPPORTED

CUDBGResult ( *CUDBGAPI_st::getAdjustedCodeAddress )( uint32_t devId, uint64_t address, uint64_t* adjustedAddress, CUDBGAdjAddrAction adjAction )

客户端必须在插入断点之前或在需要上一个或下一个代码地址时调用此函数。返回给定设备的给定代码地址的调整后的代码地址。自 CUDA 5.5 起。

另请参阅

unsetBreakpoint

参数
devId
- 设备索引
address
adjustedAddress
- 调整后的地址
adjAction
- 是否需要调整后的下一个、上一个或当前地址
返回值

CUDBG_SUCCESS, CUDBG_ERROR_UNINITIALIZED, CUDBG_ERROR_INVALID_ADDRESS, CUDBG_ERROR_INVALID_DEVICE

CUDBGResult ( *CUDBGAPI_st::getBlockDim )( uint32_t dev, uint32_t sm, uint32_t wp, CuDim3* blockDim )

获取给定块中线程的数量。自 CUDA 3.0 起。

另请参阅

getGridDim

参数
dev
- 设备索引
sm
- SM 索引
wp
- warp 索引
blockDim
- 返回的块中线程的数量
返回值

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_GRID, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::getClusterDim )( uint32_t dev, uint64_t gridId64, CuDim3* clusterDim )

获取给定集群中块的数量。自 CUDA 12.0 起。

另请参阅

getBlockDim

getGridDim

参数
dev
- 设备索引
gridId64
- grid ID
clusterDim
- 返回的集群中块的数量
返回值

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_GRID, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::getConstBankAddress )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t bank, uint32_t offset, uint64_t* address )

将常量 bank 编号和偏移量转换为 GPU VA。自 CUDA 12.3 起

参数
dev
- 设备索引
sm
- SM 索引
wp
- warp 索引
bank
- 常量 bank 编号
offset
- bank 内的偏移量
address
- (输出)GPU VA
返回值

CUDBG_ERROR_NOT_SUPPORTED

CUDBGResult ( *CUDBGAPI_st::getDeviceName )( uint32_t dev, char* buf, uint32_t sz )

获取设备名称字符串。自 CUDA 6.5 起。

另请参阅

getSMType

getDeviceType

参数
dev
- 设备索引
buf
- 目标缓冲区
sz
- 缓冲区的大小
返回值

CUDBG_SUCCESS, CUDBG_ERROR_BUFFER_TOO_SMALL, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::getDevicePCIBusInfo )( uint32_t devId, uint32_t* pciBusId, uint32_t* pciDevId )

获取与设备 devId 关联的 PCI 总线和设备 ID。

参数
devId
- cuda 设备 ID
pciBusId
- 将存储相应 PCI BUS ID 的指针
pciDevId
- 将存储相应 PCI DEVICE ID 的指针
返回值

CUDBG_ERROR_INVALID_ARGS, CUDBG_SUCCESS, CUDBG_ERROR_INVALID_DEVICE

CUDBGResult ( *CUDBGAPI_st::getDeviceType )( uint32_t dev, char* buf, uint32_t sz )

获取设备的字符串描述。自 CUDA 3.0 起。

另请参阅

getSMType

参数
dev
- 设备索引
buf
- 目标缓冲区
sz
- 缓冲区的大小
返回值

CUDBG_SUCCESS, CUDBG_ERROR_BUFFER_TOO_SMALL, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::getElfImage )( uint32_t dev, uint32_t sm, uint32_t wp, bool  relocated, void* *elfImage, uint64_t* size )

获取给定设备上 grid 的重定位或非重定位 ELF 映像和大小。自 CUDA 4.0 起。

参数
dev
- 设备索引
sm
- SM 索引
wp
- warp 索引
relocated
- 设置为 true 以指定重定位的 ELF 映像,否则为 false
*elfImage
- 指向 ELF 映像的指针
size
- ELF 映像的大小(64 位)
返回值

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_GRID, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::getElfImage32 )( uint32_t dev, uint32_t sm, uint32_t wp, bool  relocated, void* *elfImage, uint32_t* size )

获取给定设备上 grid 的重定位或非重定位 ELF 映像和大小。自 CUDA 3.0 起。

参数
dev
- 设备索引
sm
- SM 索引
wp
- warp 索引
relocated
- 设置为 true 以指定重定位的 ELF 映像,否则为 false
*elfImage
- 指向 ELF 映像的指针
size
- ELF 映像的大小(32 位)
返回值

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_GRID, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::getElfImageByHandle )( uint32_t devId, uint64_t handle, CUDBGElfImageType type, void* elfImage, uint64_t size )

获取给定设备上给定 handle 的重定位或非重定位 ELF 映像。handle 在 ELF 映像加载通知事件中提供。

自 CUDA 6.0 起。

参数
devId
- 设备索引
handle
- elf 映像 handle
type
- 请求的 ELF 映像类型
elfImage
- 指向 ELF 映像的指针
size
返回值

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::getErrorStringEx )( char* buf, uint32_t bufSz, uint32_t* msgSz )

使用以空字符结尾的 ASCII 字符串编码的错误消息填充用户提供的缓冲区。错误消息特定于上次失败的 API 调用,并在每次 API 调用后失效。自 CUDA 12.2 起。

另请参阅

getErrorString

参数
buf
- 目标缓冲区
bufSz
- 目标缓冲区的大小(以字节为单位)
msgSz
- 错误消息的大小,包括终止空字符。
返回值

CUDBG_SUCCESS, CUDBG_ERROR_BUFFER_TOO_SMALL CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::getGridAttribute )( uint32_t dev, uint32_t sm, uint32_t wp, CUDBGAttribute attr, uint64_t* value )

获取 grid 属性的值。自 CUDA 3.1 起。

参数
dev
- 设备索引
sm
- SM 索引
wp
- warp 索引
attr
- 属性
value
- 返回的属性值
返回值

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_GRID, CUDBG_ERROR_INVALID_ATTRIBUTE, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::getGridAttributes )( uint32_t dev, uint32_t sm, uint32_t wp, CUDBGAttributeValuePair* pairs, uint32_t numPairs )

在单个 API 调用中获取多个 grid 属性值。自 CUDA 3.1 起。

参数
dev
- 设备索引
sm
- SM 索引
wp
- warp 索引
pairs
- 属性/值对数组
numPairs
- 数组中属性/值对的数量
返回值

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_GRID, CUDBG_ERROR_INVALID_ATTRIBUTE, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::getGridDim )( uint32_t dev, uint32_t sm, uint32_t wp, CuDim3* gridDim )

获取给定 grid 中块的数量。自 CUDA 4.0 起。

另请参阅

getBlockDim

参数
dev
- 设备索引
sm
- SM 索引
wp
- warp 索引
gridDim
- 返回的 grid 中块的数量
返回值

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_GRID, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::getGridDim32 )( uint32_t dev, uint32_t sm, uint32_t wp, CuDim2* gridDim )

获取给定 grid 中块的数量。自 CUDA 3.0 起。

另请参阅

getBlockDim

参数
dev
- 设备索引
sm
- SM 索引
wp
- warp 索引
gridDim
- 返回的 grid 中块的数量
返回值

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_GRID, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::getGridInfo )( uint32_t dev, uint64_t gridId64, CUDBGGridInfo* gridInfo )

获取有关指定 grid 的信息。如果 grid 的上下文已被销毁,即使 grid ID 正确,该函数也会返回 CUDBG_ERROR_INVALID_GRID。自 CUDA 12.0 起。

参数
dev
gridId64
gridInfo
- 指向客户端分配的结构的指针,将在其中返回 grid 信息。
返回值

CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_GRID, CUDBG_SUCCESS

CUDBGResult ( *CUDBGAPI_st::getGridInfo55 )( uint32_t dev, uint64_t gridId64, CUDBGGridInfo55* gridInfo )

获取有关指定 grid 的信息。如果 grid 的上下文已被销毁,即使 grid ID 正确,该函数也会返回 CUDBG_ERROR_INVALID_GRID。自 CUDA 5.5 起。

参数
dev
gridId64
gridInfo
- 指向客户端分配的结构的指针,将在其中返回 grid 信息。
返回值

CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_GRID, CUDBG_SUCCESS

CUDBGResult ( *CUDBGAPI_st::getGridStatus )( uint32_t dev, uint64_t gridId64, CUDBGGridStatus* status )

检查与给定 gridId 对应的 grid 是否仍然存在于设备上。自 CUDA 5.5 起。

参数
dev
gridId64
- 64 位 grid ID
status
- 枚举指示 grid 状态是 INVALID、PENDING、ACTIVE、SLEEPING、TERMINATED 还是 UNDETERMINED
返回值

CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_GRID, CUDBG_ERROR_INTERNAL

CUDBGResult ( *CUDBGAPI_st::getGridStatus50 )( uint32_t dev, uint32_t gridId, CUDBGGridStatus* status )

检查与给定 gridId 对应的 grid 是否仍然存在于设备上。自 CUDA 5.0 起。

参数
dev
gridId
- grid ID
status
- 枚举指示 grid 状态是 INVALID、PENDING、ACTIVE、SLEEPING、TERMINATED 还是 UNDETERMINED
返回值

CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_GRID, CUDBG_ERROR_INTERNAL

CUDBGResult ( *CUDBGAPI_st::getHostAddrFromDeviceAddr )( uint32_t dev, uint64_t device_addr, uint64_t* host_addr )

给定设备虚拟地址,返回相应的系统内存虚拟地址。自 CUDA 4.1 起。

另请参阅

readGenericMemory

writeGenericMemory

参数
dev
- 设备索引
device_addr
- 设备内存地址
host_addr
- 返回的系统内存地址
返回值

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_CONTEXT, CUDBG_ERROR_INVALID_MEMORY_SEGMENT

CUDBGResult ( *CUDBGAPI_st::getLoadedFunctionInfo )( uint32_t devId, uint64_t handle, CUDBGLoadedFunctionInfo* info, uint32_t startIndex, uint32_t numEntries )

获取给定模块的已加载函数的节号和地址。自 CUDA 11.8 起

参数
devId
handle
- ELF/cubin 映像 handle
info
startIndex
numEntries
- 要读取的函数加载条目的数量
返回值

CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_NOT_SUPPORTED

CUDBGResult ( *CUDBGAPI_st::getLoadedFunctionInfo118 )( uint32_t devId, uint64_t handle, CUDBGLoadedFunctionInfo* info, uint32_t numEntries )

获取给定模块的已加载函数的节号和地址。自 CUDA 11.8 起

参数
devId
handle
- ELF/cubin 映像 handle
info
numEntries
- 要读取的函数加载条目的数量
返回值

CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_NOT_SUPPORTED

CUDBGResult ( *CUDBGAPI_st::getManagedMemoryRegionInfo )( uint64_t startAddress, CUDBGMemoryInfo* memoryInfo, uint32_t memoryInfo_size, uint32_t* numEntries )

返回一个已排序的托管内存区域列表。已排序的内存区域列表从包含指定起始地址的区域开始。如果起始地址设置为 0,则返回一个已排序的托管内存区域列表,该列表从起始地址最低的托管内存区域开始。自 CUDA 6.0 起。

参数
startAddress
- 列表中的第一个区域必须包含的地址。如果起始地址设置为 0,则返回的托管内存区域列表从起始地址最低的托管内存区域开始。
memoryInfo
- 客户端分配的 CUDBGMemoryInfo 类型的内存区域记录数组。
memoryInfo_size
- memoryInfo 可以容纳的 CUDBGMemoryInfo 类型记录的数量。
numEntries
- 指向客户端分配变量的指针,该变量保存 memoryInfo 中返回的有效条目数。有效条目是连续的,并从 memoryInfo[0] 开始。
返回值

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_ADDRESS, CUDBG_ERROR_INTERNAL

CUDBGResult ( *CUDBGAPI_st::getNextAsyncEvent50 )( CUDBGEvent50* event )

将异步事件队列中的下一个可用事件复制到 'event' 中,并将其从队列中移除。异步事件队列与普通事件队列分开保存,不需要调试客户端的确认。自 CUDA 5.0 起。

参数
event
- 指向事件容器的指针,事件参数将复制到该容器中
返回值

CUDBG_SUCCESS, CUDBG_ERROR_NO_EVENT_AVAILABLE, CUDBG_ERROR_INVALID_ARGS

CUDBGResult ( *CUDBGAPI_st::getNextAsyncEvent55 )( CUDBGEvent55* event )

将异步事件队列中的下一个可用事件复制到 'event' 中,并将其从队列中移除。异步事件队列与普通事件队列分开保存,不需要调试客户端的确认。自 CUDA 5.5 起。

参数
event
- 指向事件容器的指针,事件参数将复制到该容器中
返回值

CUDBG_SUCCESS, CUDBG_ERROR_NO_EVENT_AVAILABLE, CUDBG_ERROR_INVALID_ARGS

CUDBGResult ( *CUDBGAPI_st::getNextEvent )( CUDBGEventQueueType type, CUDBGEvent* event )

将下一个可用事件复制到 'event' 中,并将其从队列中移除。自 CUDA 6.0 起。

参数
type
- 应用程序事件队列类型
event
- 指向事件容器的指针,事件参数将复制到该容器中
返回值

CUDBG_SUCCESS, CUDBG_ERROR_NO_EVENT_AVAILABLE, CUDBG_ERROR_INVALID_ARGS

CUDBGResult ( *CUDBGAPI_st::getNextEvent30 )( CUDBGEvent30* event )

将事件队列中的下一个可用事件复制到 'event' 中,并将其从队列中移除。自 CUDA 3.0 起。

参数
event
- 指向事件容器的指针,事件参数将复制到该容器中
返回值

CUDBG_SUCCESS, CUDBG_ERROR_NO_EVENT_AVAILABLE, CUDBG_ERROR_INVALID_ARGS

CUDBGResult ( *CUDBGAPI_st::getNextEvent32 )( CUDBGEvent32* event )

将事件队列中的下一个可用事件复制到 'event' 中,并将其从队列中移除。自 CUDA 3.1 起。

参数
event
- 指向事件容器的指针,事件参数将复制到该容器中
返回值

CUDBG_SUCCESS, CUDBG_ERROR_NO_EVENT_AVAILABLE, CUDBG_ERROR_INVALID_ARGS

CUDBGResult ( *CUDBGAPI_st::getNextEvent42 )( CUDBGEvent42* event )

将事件队列中的下一个可用事件复制到 'event' 中,并将其从队列中移除。自 CUDA 4.0 起。

参数
event
- 指向事件容器的指针,事件参数将复制到该容器中
返回值

CUDBG_SUCCESS, CUDBG_ERROR_NO_EVENT_AVAILABLE, CUDBG_ERROR_INVALID_ARGS

CUDBGResult ( *CUDBGAPI_st::getNextSyncEvent50 )( CUDBGEvent50* event )

自 CUDA 5.0 起。

参数
event
- 指向事件容器的指针,事件参数将复制到该容器中
返回值

CUDBG_SUCCESS, CUDBG_ERROR_NO_EVENT_AVAILABLE, CUDBG_ERROR_INVALID_ARGS

CUDBGResult ( *CUDBGAPI_st::getNextSyncEvent55 )( CUDBGEvent55* event )

将同步事件队列中的下一个可用事件复制到 'event' 中,并将其从队列中移除。自 CUDA 5.5 起。

参数
event
- 指向事件容器的指针,事件参数将复制到该容器中
返回值

CUDBG_SUCCESS, CUDBG_ERROR_NO_EVENT_AVAILABLE, CUDBG_ERROR_INVALID_ARGS

CUDBGResult ( *CUDBGAPI_st::getNumDevices )( uint32_t* numDev )

获取已安装 CUDA 设备的数量。自 CUDA 3.0 起。

另请参阅

getNumSMs

getNumWarps

getNumLanes

getNumRegisters

参数
numDev
- 返回的设备数量
返回值

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::getNumLanes )( uint32_t dev, uint32_t* numLanes )

获取设备上每个 warp 的 lane 数量。自 CUDA 3.0 起。

另请参阅

getNumDevices

getNumSMs

getNumWarps

getNumRegisters

参数
dev
- 设备索引
numLanes
- 返回的 lane 数量
返回值

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::getNumPredicates )( uint32_t dev, uint32_t* numPredicates )

获取设备上每个 lane 的谓词寄存器数量。自 CUDA 6.5 起。

另请参阅

getNumDevices

getNumSMs

getNumWarps

getNumLanes

getNumRegisters

参数
dev
- 设备索引
numPredicates
- 返回的谓词寄存器数量
返回值

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::getNumRegisters )( uint32_t dev, uint32_t* numRegs )

获取设备上每个 lane 的寄存器数量。自 CUDA 3.0 起。

另请参阅

getNumDevices

getNumSMs

getNumWarps

getNumLanes

参数
dev
- 设备索引
numRegs
- 返回的寄存器数量
返回值

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::getNumSMs )( uint32_t dev, uint32_t* numSMs )

获取设备上 SM 的总数。自 CUDA 3.0 起。

另请参阅

getNumDevices

getNumWarps

getNumLanes

getNumRegisters

参数
dev
- 设备索引
numSMs
- 返回的 SM 数量
返回值

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::getNumUniformPredicates )( uint32_t dev, uint32_t* numPredicates )

获取设备上每个 warp 的统一谓词寄存器数量。自 CUDA 10.0 起。

另请参阅

getNumUniformPredicates

参数
dev
- 设备索引
numPredicates
- 返回的统一谓词寄存器数量
返回值

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::getNumUniformRegisters )( uint32_t dev, uint32_t* numRegs )

获取设备上每个 warp 的统一寄存器数量。自 CUDA 10.0 起。

另请参阅

getNumRegisters

参数
dev
- 设备索引
numRegs
- 返回的统一寄存器数量
返回值

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::getNumWarps )( uint32_t dev, uint32_t* numWarps )

获取设备上每个 SM 的 warp 数量。自 CUDA 3.0 起。

另请参阅

getNumDevices

getNumSMs

getNumLanes

getNumRegisters

参数
dev
- 设备索引
numWarps
- 返回的 warp 数量
返回值

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::getPhysicalRegister30 )( uint64_t pc, char* reg, uint32_t* buf, uint32_t sz, uint32_t* numPhysRegs, CUDBGRegClass* regClass )

如果虚拟寄存器名称 'reg' 在给定的 PC 上处于活动状态,则获取分配给该虚拟寄存器名称 'reg' 的物理寄存器号。自 CUDA 3.0 起。

参数
pc
- 程序计数器
reg
- 虚拟寄存器索引
buf
- 物理寄存器名称
sz
- 物理寄存器名称缓冲区大小
numPhysRegs
- 返回的物理寄存器名称数量
regClass
- 物理寄存器的类别
返回值

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_UKNOWN_FUNCTION, CUDBG_ERROR_UNKNOWN

CUDBGResult ( *CUDBGAPI_st::getPhysicalRegister40 )( uint32_t dev, uint32_t sm, uint32_t wp, uint64_t pc, char* reg, uint32_t* buf, uint32_t sz, uint32_t* numPhysRegs, CUDBGRegClass* regClass )

如果虚拟寄存器名称 'reg' 在给定的 PC 上处于活动状态,则获取分配给该虚拟寄存器名称 'reg' 的物理寄存器号。如果虚拟寄存器名称映射到多个物理寄存器,则物理寄存器索引最低的物理寄存器将包含虚拟寄存器的最高位,而物理寄存器索引最高的物理寄存器将包含最低位。

自 CUDA 3.1 起。

参数
dev
- 设备索引
sm
- SM 索引
wp
- warp 索引
pc
- 程序计数器
reg
- 虚拟寄存器索引
buf
- 物理寄存器名称
sz
- 物理寄存器名称缓冲区大小
numPhysRegs
- 返回的物理寄存器名称数量
regClass
- 物理寄存器的类别
返回值

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_UKNOWN_FUNCTION, CUDBG_ERROR_UNKNOWN

CUDBGResult ( *CUDBGAPI_st::getSmType )( uint32_t dev, char* buf, uint32_t sz )

获取设备的 SM 类型。自 CUDA 3.0 起。

另请参阅

getDeviceType

参数
dev
- 设备索引
buf
- 目标缓冲区
sz
- 缓冲区的大小
返回值

CUDBG_SUCCESS, CUDBG_ERROR_BUFFER_TOO_SMALL, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::getTID )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t* tid )

获取托管网格上下文的 Linux 线程 ID。自 CUDA 3.0 起。

参数
dev
- 设备索引
sm
- SM 索引
wp
- warp 索引
tid
- 返回的线程 ID
返回值

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_GRID, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::initialize )( )

初始化 API。自 CUDA 3.0 起。

另请参阅

finalize

返回值

CUDBG_SUCCESS, CUDBG_ERROR_UNKNOWN

CUDBGResult ( *CUDBGAPI_st::initializeAttachStub )( )

初始化 attach stub。自 CUDA 5.0 起。

返回值

CUDBG_SUCCESS

CUDBGResult ( *CUDBGAPI_st::isDeviceCodeAddress )( uintptr_t addr, bool* isDeviceAddress )

确定虚拟地址是否驻留在设备代码中。自 CUDA 3.0 起。

参数
addr
- 虚拟地址
isDeviceAddress
- 如果地址驻留在设备代码中,则为 true
返回值

CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_UNINITIALIZED, CUDBG_SUCCESS

CUDBGResult ( *CUDBGAPI_st::isDeviceCodeAddress55 )( uintptr_t addr, bool* isDeviceAddress )

确定虚拟地址是否驻留在设备代码中。此 API 已强烈弃用。请改用 CUDBGAPI_st::isDeviceCodeAddress。自 CUDA 3.0 起。

参数
addr
- 虚拟地址
isDeviceAddress
- 如果地址驻留在设备代码中,则为 true
返回值

CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_UNINITIALIZED, CUDBG_SUCCESS

CUDBGResult ( *CUDBGAPI_st::lookupDeviceCodeSymbol )( char* symName, bool* symFound, uintptr_t* symAddr )

确定符号是否表示设备代码中的函数,并返回其虚拟地址。自 CUDA 3.0 起。

参数
symName
- 符号名称
symFound
- 如果找到符号,则设置为 true
symAddr
- 如果找到符号,则为符号虚拟地址
返回值

CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_UNINITIALIZED, CUDBG_SUCCESS

CUDBGResult ( *CUDBGAPI_st::memcheckReadErrorAddress )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint64_t* address, ptxStorageKind* storage )

获取 memcheck 检测到错误的地址。自 CUDA 5.0 起。

参数
dev
- 设备索引
sm
- SM 索引
wp
- warp 索引
ln
- lane 索引
address
- memcheck 检测到的返回地址
storage
- 返回的地址的地址类别
返回值

CUDBG_ERROR_NOT_SUPPORTED,

CUDBGResult ( *CUDBGAPI_st::readActiveLanes )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t* activeLanesMask )

读取有效 warp 上的活动 lane 的位掩码。自 CUDA 3.0 起。

另请参阅

readGridId

readBlockIdx

readThreadIdx

readBrokenWarps

readValidWarps

readValidLanes

参数
dev
- 设备索引
sm
- SM 索引
wp
- warp 索引
activeLanesMask
- 返回的活动 lane 的位掩码
返回值

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::readBlockIdx )( uint32_t dev, uint32_t sm, uint32_t wp, CuDim3* blockIdx )

读取在有效 warp 上运行的 CUDA block 索引。自 CUDA 4.0 起。

另请参阅

readGridId

readThreadIdx

readBrokenWarps

readValidWarps

readValidLanes

readActiveLanes

参数
dev
- 设备索引
sm
- SM 索引
wp
- warp 索引
blockIdx
- 返回的 CUDA block 索引
返回值

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::readBlockIdx32 )( uint32_t dev, uint32_t sm, uint32_t wp, CuDim2* blockIdx )

读取在有效 warp 上运行的二维 CUDA block 索引。自 CUDA 3.0 起。

另请参阅

readGridId

readThreadIdx

readBrokenWarps

readValidWarps

readValidLanes

readActiveLanes

参数
dev
- 设备索引
sm
- SM 索引
wp
- warp 索引
blockIdx
- 返回的 CUDA block 索引
返回值

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::readBrokenWarps )( uint32_t dev, uint32_t sm, uint64_t* brokenWarpsMask )

读取给定 SM 上断点处的 warp 的位掩码。自 CUDA 3.0 起。

另请参阅

readGridId

readBlockIdx

readThreadIdx

readValidWarps

readValidLanes

readActiveLanes

参数
dev
- 设备索引
sm
- SM 索引
brokenWarpsMask
- 返回的中断 warp 的位掩码
返回值

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::readCCRegister )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint32_t* val )
参数
dev
- 设备索引
sm
- SM 索引
wp
- warp 索引
ln
- lane 索引
val
- 缓冲区
返回值

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_LANE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::readCallDepth )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint32_t* depth )

读取给定 lane 的调用深度(调用次数)。自 CUDA 4.0 起。

另请参阅

readReturnAddress

readVirtualReturnAddress

参数
dev
- 设备索引
sm
- SM 索引
wp
- warp 索引
ln
- lane 索引
depth
- 返回的调用深度
返回值

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_INVALID_LANE, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::readCallDepth32 )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t* depth )

读取给定 warp 的调用深度(调用次数)。自 CUDA 3.1 起。

另请参阅

readReturnAddress32

readVirtualReturnAddress32

参数
dev
- 设备索引
sm
- SM 索引
wp
- warp 索引
depth
- 返回的调用深度
返回值

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::readClusterIdx )( uint32_t dev, uint32_t sm, uint32_t wp, CuDim3* clusterIdx )

读取在有效 warp 上运行的 CUDA 集群索引。自 CUDA 12.0 起。

另请参阅

readGridId

readThreadIdx

readBlockIdx

readBrokenWarps

readValidWarps

readValidLanes

readActiveLanes

参数
dev
- 设备索引
sm
- SM 索引
wp
- warp 索引
clusterIdx
- 返回的 CUDA 集群索引
返回值

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::readCodeMemory )( uint32_t dev, uint64_t addr, void* buf, uint32_t sz )

读取代码内存段中地址的内容。自 CUDA 3.0 起。

另请参阅

readConstMemory

readGenericMemory

readParamMemory

readSharedMemory

readTextureMemory

readLocalMemory

readRegister

readPC

参数
dev
- 设备索引
addr
- 内存地址
buf
- 缓冲区
sz
- 缓冲区的大小
返回值

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_UNINITIALIZED, CUDBG_ERROR_MEMORY_MAPPING_FAILED

CUDBGResult ( *CUDBGAPI_st::readConstMemory )( uint32_t dev, uint64_t addr, void* buf, uint32_t sz )

读取常量内存段中地址的内容。自 CUDA 3.0 起。

另请参阅

readCodeMemory

readGenericMemory

readParamMemory

readSharedMemory

readTextureMemory

readLocalMemory

readRegister

readPC

参数
dev
- 设备索引
addr
- 内存地址
buf
- 缓冲区
sz
- 缓冲区的大小
返回值

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_UNINITIALIZED, CUDBG_ERROR_MEMORY_MAPPING_FAILED

CUDBGResult ( *CUDBGAPI_st::readDeviceExceptionState )( uint32_t devId, uint64_t* mask, uint32_t numWords )

获取设备上 SM 的异常状态。自 CUDA 9.0 起

另请参阅

getNumSMs

参数
devId
- cuda 设备 ID
mask
- 任意大小的位字段,如果 SM i 遇到异常,则在 (1 << i) 处包含 1
numWords
返回值

CUDBG_ERROR_INVALID_ARGS, CUDBG_SUCCESS, CUDBG_ERROR_INVALID_DEVICE

CUDBGResult ( *CUDBGAPI_st::readDeviceExceptionState80 )( uint32_t devId, uint64_t* exceptionSMMask )

获取设备上 SM 的异常状态。自 CUDA 5.5 起

参数
devId
- cuda 设备 ID
exceptionSMMask
- 位字段,如果 SM i 遇到异常,则在 (1 << i) 处包含 1
返回值

CUDBG_ERROR_INVALID_ARGS, CUDBG_SUCCESS, CUDBG_ERROR_INVALID_DEVICE

CUDBGResult ( *CUDBGAPI_st::readErrorPC )( uint32_t devId, uint32_t sm, uint32_t wp, uint64_t* errorPC, bool* errorPCValid )

如果存在硬件报告的错误 PC,则获取它。自 CUDA 6.0 起

参数
devId
- 设备索引
sm
- SM 索引
wp
errorPC
- 异常的 PC
errorPCValid
- 布尔值,指示返回的错误 PC 是否有效
返回值

CUDBG_SUCCESS CUDBG_ERROR_UNINITIALIZED CUDBG_ERROR_INVALID_DEVICE CUDBG_ERROR_INVALID_SM CUDBG_ERROR_INVALID_WARP CUDBG_ERROR_INVALID_ARGS CUDBG_ERROR_UNKNOWN_FUNCTION

CUDBGResult ( *CUDBGAPI_st::readGenericMemory )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint64_t addr, void* buf, uint32_t sz )

读取通用地址空间中地址的内容。此函数确定给定地址是否属于本地、共享或全局内存窗口。然后,它在访问内存时会考虑作为输入提供的硬件坐标。自 CUDA 6.0 起。

另请参阅

readCodeMemory

readConstMemory

readParamMemory

readSharedMemory

readTextureMemory

readLocalMemory

readRegister

readPC

参数
dev
- 设备索引
sm
- SM 索引
wp
- warp 索引
ln
- lane 索引
addr
- 内存地址
buf
- 缓冲区
sz
返回值

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_LANE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_UNINITIALIZED, CUDBG_ERROR_MEMORY_MAPPING_FAILED, CUDBG_ERROR_ADDRESS_NOT_IN_DEVICE_MEM

CUDBGResult ( *CUDBGAPI_st::readGlobalMemory )( uint64_t addr, void* buf, uint32_t sz )

读取全局地址空间中地址的内容。如果地址在多个设备上有效,并且其中一个设备不支持 UVA,则返回错误。自 CUDA 6.0 起。

另请参阅

readCodeMemory

readConstMemory

readParamMemory

readSharedMemory

readTextureMemory

readLocalMemory

readRegister

readPC

参数
addr
- 内存地址
buf
- 缓冲区
sz
返回值

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_UNINITIALIZED, CUDBG_ERROR_MEMORY_MAPPING_FAILED, CUDBG_ERROR_INVALID_MEMORY_ACCESS, CUDBG_ERROR_ADDRESS_NOT_IN_DEVICE_MEM CUDBG_ERROR_AMBIGUOUS_MEMORY_ADDRESS_

CUDBGResult ( *CUDBGAPI_st::readGlobalMemory31 )( uint32_t dev, uint64_t addr, void* buf, uint32_t sz )

读取全局内存段中地址的内容。自 CUDA 3.0 起。

另请参阅

readCodeMemory

readConstMemory

readParamMemory

readSharedMemory

readTextureMemory

readLocalMemory

readRegister

readPC

参数
dev
- 设备索引
addr
- 内存地址
buf
- 缓冲区
sz
- 缓冲区的大小
返回值

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_UNINITIALIZED, CUDBG_ERROR_MEMORY_MAPPING_FAILED

CUDBGResult ( *CUDBGAPI_st::readGlobalMemory55 )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint64_t addr, void* buf, uint32_t sz )

读取全局内存段中地址的内容(Fermi+ 上完整的 40 位 VA)。自 CUDA 3.2 起。

另请参阅

readCodeMemory

readConstMemory

readParamMemory

readSharedMemory

readTextureMemory

readLocalMemory

readRegister

readPC

参数
dev
- 设备索引
sm
- SM 索引
wp
- warp 索引
ln
- lane 索引
addr
- 内存地址
buf
- 缓冲区
sz
- 缓冲区的大小
返回值

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_LANE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_UNINITIALIZED, CUDBG_ERROR_MEMORY_MAPPING_FAILED, CUDBG_ERROR_ADDRESS_NOT_IN_DEVICE_MEM

CUDBGResult ( *CUDBGAPI_st::readGridId )( uint32_t dev, uint32_t sm, uint32_t wp, uint64_t* gridId64 )

读取在有效 warp 上运行的 64 位 CUDA 网格索引。自 CUDA 5.5 起。

另请参阅

readBlockIdx

readThreadIdx

readBrokenWarps

readValidWarps

readValidLanes

readActiveLanes

参数
dev
- 设备索引
sm
- SM 索引
wp
- warp 索引
gridId64
返回值

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::readGridId50 )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t* gridId )

读取在有效 Warp 上运行的 CUDA 网格索引。自 CUDA 3.0 起。

另请参阅

readBlockIdx

readThreadIdx

readBrokenWarps

readValidWarps

readValidLanes

readActiveLanes

参数
dev
- 设备索引
sm
- SM 索引
wp
- warp 索引
gridId
- 返回的 CUDA 网格索引
返回值

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::readLaneException )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, CUDBGException_t* exception )

读取给定 Lane 的异常类型。自 CUDA 3.1 起。

参数
dev
- 设备索引
sm
- SM 索引
wp
- warp 索引
ln
- lane 索引
exception
- 返回的异常类型
返回值

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_LANE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::readLaneStatus )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, bool* error )

读取给定 Lane 的状态。对于特定的错误值,请使用 readLaneException。自 CUDA 3.0 起。

参数
dev
- 设备索引
sm
- SM 索引
wp
- warp 索引
ln
- lane 索引
error
- 如果存在错误,则为 true
返回值

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_LANE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::readLocalMemory )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint64_t addr, void* buf, uint32_t sz )

读取本地内存段中地址的内容。自 CUDA 3.0 起。

另请参阅

readCodeMemory

readConstMemory

readGenericMemory

readParamMemory

readSharedMemory

readTextureMemory

readRegister

readPC

参数
dev
- 设备索引
sm
- SM 索引
wp
- warp 索引
ln
- lane 索引
addr
- 内存地址
buf
- 缓冲区
sz
- 缓冲区的大小
返回值

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_LANE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_UNINITIALIZED, CUDBG_ERROR_MEMORY_MAPPING_FAILED

CUDBGResult ( *CUDBGAPI_st::readPC )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint64_t* pc )
参数
dev
- 设备索引
sm
- SM 索引
wp
- warp 索引
ln
- lane 索引
pc
- 返回的 PC
返回值

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_LANE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_UNKNOWN_FUNCTION, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::readParamMemory )( uint32_t dev, uint32_t sm, uint32_t wp, uint64_t addr, void* buf, uint32_t sz )

读取参数内存段中地址的内容。自 CUDA 3.0 起。

另请参阅

readCodeMemory

readConstMemory

readGenericMemory

readSharedMemory

readTextureMemory

readLocalMemory

readRegister

readPC

参数
dev
- 设备索引
sm
- SM 索引
wp
- warp 索引
addr
- 内存地址
buf
- 缓冲区
sz
- 缓冲区的大小
返回值

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_UNINITIALIZED, CUDBG_ERROR_MEMORY_MAPPING_FAILED

CUDBGResult ( *CUDBGAPI_st::readPinnedMemory )( uint64_t addr, void* buf, uint32_t sz )

读取系统内存中 pinned 地址的内容。自 CUDA 3.2 起。

另请参阅

readCodeMemory

readConstMemory

readGenericMemory

readParamMemory

readSharedMemory

readTextureMemory

readLocalMemory

readRegister

readPC

参数
addr
- 系统内存地址
buf
- 缓冲区
sz
- 缓冲区的大小
返回值

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_MEMORY_MAPPING_FAILED, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::readPredicates )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint32_t predicates_size, uint32_t* predicates )
参数
dev
- 设备索引
sm
- SM 索引
wp
- warp 索引
ln
- lane 索引
predicates_size
- 要读取的谓词寄存器数量
predicates
- 缓冲区
返回值

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_LANE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::readRegister )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint32_t regno, uint32_t* val )
参数
dev
- 设备索引
sm
- SM 索引
wp
- warp 索引
ln
- lane 索引
regno
- 寄存器索引
val
- 缓冲区
返回值

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_LANE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::readRegisterRange )( uint32_t devId, uint32_t sm, uint32_t wp, uint32_t ln, uint32_t index, uint32_t registers_size, uint32_t* registers )

读取硬件寄存器范围内硬件寄存器的内容。自 CUDA 6.0 起。

另请参阅

readCodeMemory

readConstMemory

readGenericMemory

readParamMemory

readSharedMemory

readTextureMemory

readLocalMemory

readPC

readRegister

参数
devId
sm
- SM 索引
wp
- warp 索引
ln
- lane 索引
index
- 要读取的第一个寄存器的索引
registers_size
- 要读取的寄存器数量
registers
- 缓冲区
返回值

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_LANE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::readReturnAddress )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint32_t level, uint64_t* ra )

读取调用级别的物理返回地址。自 CUDA 4.0 起。

另请参阅

readCallDepth

readVirtualReturnAddress

参数
dev
- 设备索引
sm
- SM 索引
wp
- warp 索引
ln
- lane 索引
level
- 指定的调用级别
ra
- 返回的 level 的返回地址
返回值

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_INVALID_LANE, CUDBG_ERROR_INVALID_GRID, CUDBG_ERROR_INVALID_CALL_LEVEL, CUDBG_ERROR_ZERO_CALL_DEPTH, CUDBG_ERROR_UNKNOWN_FUNCTION, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::readReturnAddress32 )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t level, uint64_t* ra )

读取调用级别的物理返回地址。自 CUDA 3.1 起。

另请参阅

readCallDepth32

readVirtualReturnAddress32

参数
dev
- 设备索引
sm
- SM 索引
wp
- warp 索引
level
- 指定的调用级别
ra
- 返回的 level 的返回地址
返回值

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_INVALID_GRID, CUDBG_ERROR_INVALID_CALL_LEVEL, CUDBG_ERROR_ZERO_CALL_DEPTH, CUDBG_ERROR_UNKNOWN_FUNCTION, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::readSharedMemory )( uint32_t dev, uint32_t sm, uint32_t wp, uint64_t addr, void* buf, uint32_t sz )

读取共享内存段中地址的内容。自 CUDA 3.0 起。

另请参阅

readCodeMemory

readConstMemory

readGenericMemory

readParamMemory

readLocalMemory

readTextureMemory

readRegister

readPC

参数
dev
- 设备索引
sm
- SM 索引
wp
- warp 索引
addr
- 内存地址
buf
- 缓冲区
sz
- 缓冲区的大小
返回值

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_UNINITIALIZED, CUDBG_ERROR_MEMORY_MAPPING_FAILED

CUDBGResult ( *CUDBGAPI_st::readSyscallCallDepth )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint32_t* depth )

读取给定 Lane 的系统调用深度。自 CUDA 4.1 起。

另请参阅

readReturnAddress

readVirtualReturnAddress

参数
dev
- 设备索引
sm
- SM 索引
wp
- warp 索引
ln
- lane 索引
depth
- 返回的调用深度
返回值

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_INVALID_LANE, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::readTextureMemory )( uint32_t devId, uint32_t vsm, uint32_t wp, uint32_t id, uint32_t dim, uint32_t* coords, void* buf, uint32_t sz )
参数
devId
- 设备索引
vsm
- SM 索引
wp
- warp 索引
id
- 纹理 ID(重定位 ELF 镜像中 DW_AT_location 属性的值)
dim
- 纹理维度(1 到 4)
coords
- 大小为 dim 的坐标数组
buf
- 结果缓冲区
sz
- 缓冲区的大小
返回值

CUDBG_ERROR_NOT_SUPPORTED,

CUDBGResult ( *CUDBGAPI_st::readTextureMemoryBindless )( uint32_t devId, uint32_t vsm, uint32_t wp, uint32_t texSymtabIndex, uint32_t dim, uint32_t* coords, void* buf, uint32_t sz )
参数
devId
- 设备索引
vsm
- SM 索引
wp
- warp 索引
texSymtabIndex
- 纹理符号的全局符号表索引
dim
- 纹理维度(1 到 4)
coords
- 大小为 dim 的坐标数组
buf
- 结果缓冲区
sz
- 缓冲区的大小
返回值

CUDBG_ERROR_NOT_SUPPORTED

CUDBGResult ( *CUDBGAPI_st::readThreadIdx )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, CuDim3* threadIdx )

读取在有效 Lane 上运行的 CUDA 线程索引。自 CUDA 3.0 起。

另请参阅

readGridId

readBlockIdx

readBrokenWarps

readValidWarps

readValidLanes

readActiveLanes

参数
dev
- 设备索引
sm
- SM 索引
wp
- warp 索引
ln
- lane 索引
threadIdx
- 返回的 CUDA 线程索引
返回值

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_LANE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::readUniformPredicates )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t predicates_size, uint32_t* predicates )

读取统一谓词寄存器的内容。自 CUDA 10.0 起。

另请参阅

readPredicates

参数
dev
- 设备索引
sm
- SM 索引
wp
- warp 索引
predicates_size
- 要读取的谓词寄存器数量
predicates
- 缓冲区
返回值

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::readUniformRegisterRange )( uint32_t devId, uint32_t sm, uint32_t wp, uint32_t regno, uint32_t registers_size, uint32_t* registers )

读取统一寄存器范围。自 CUDA 10.0 起。

另请参阅

readRegister

参数
devId
sm
- SM 索引
wp
- warp 索引
regno
- 统一寄存器文件的起始索引
registers_size
- 要读取的字节数
registers
- 指向缓冲区的指针
返回值

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::readValidLanes )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t* validLanesMask )

读取给定 Warp 上有效 Lane 的位掩码。自 CUDA 3.0 起。

另请参阅

readGridId

readBlockIdx

readThreadIdx

readBrokenWarps

readValidWarps

readActiveLanes

参数
dev
- 设备索引
sm
- SM 索引
wp
- warp 索引
validLanesMask
- 返回的有效 Lane 的位掩码
返回值

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::readValidWarps )( uint32_t dev, uint32_t sm, uint64_t* validWarpsMask )

读取给定 SM 上有效 Warps 的位掩码。自 CUDA 3.0 起。

另请参阅

readGridId

readBlockIdx

readThreadIdx

readBrokenWarps

readValidLanes

readActiveLanes

参数
dev
- 设备索引
sm
- SM 索引
validWarpsMask
- 返回的有效 Warps 的位掩码
返回值

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::readVirtualPC )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint64_t* pc )

读取给定活动 Lane 上的虚拟 PC。自 CUDA 3.0 起。

另请参阅

readPC

参数
dev
- 设备索引
sm
- SM 索引
wp
- warp 索引
ln
- lane 索引
pc
- 返回的 PC
返回值

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_LANE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_UNINITIALIZED, CUDBG_ERROR_UNKNOWN_FUNCTION

CUDBGResult ( *CUDBGAPI_st::readVirtualReturnAddress )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint32_t level, uint64_t* ra )

读取调用级别的虚拟返回地址。自 CUDA 4.0 起。

另请参阅

readCallDepth

readReturnAddress

参数
dev
- 设备索引
sm
- SM 索引
wp
- warp 索引
ln
- lane 索引
level
- 指定的调用级别
ra
- 返回的 level 的虚拟返回地址
返回值

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_INVALID_LANE, CUDBG_ERROR_INVALID_GRID, CUDBG_ERROR_INVALID_CALL_LEVEL, CUDBG_ERROR_ZERO_CALL_DEPTH, CUDBG_ERROR_UNKNOWN_FUNCTION, CUDBG_ERROR_UNINITIALIZED, CUDBG_ERROR_INTERNAL

CUDBGResult ( *CUDBGAPI_st::readVirtualReturnAddress32 )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t level, uint64_t* ra )

读取调用级别的虚拟返回地址。自 CUDA 3.1 起。

另请参阅

readCallDepth32

readReturnAddress32

参数
dev
- 设备索引
sm
- SM 索引
wp
- warp 索引
level
- 指定的调用级别
ra
- 返回的 level 的虚拟返回地址
返回值

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_INVALID_GRID, CUDBG_ERROR_INVALID_CALL_LEVEL, CUDBG_ERROR_ZERO_CALL_DEPTH, CUDBG_ERROR_UNKNOWN_FUNCTION, CUDBG_ERROR_UNINITIALIZED, CUDBG_ERROR_INTERNAL

CUDBGResult ( *CUDBGAPI_st::readWarpState )( uint32_t dev, uint32_t sm, uint32_t wp, CUDBGWarpState* state )

获取给定 Warp 的状态。自 CUDA 12.0 起。

参数
dev
- 设备索引
sm
- SM 索引
wp
- warp 索引
state
- 指向包含 Warp 状态的结构的指针
返回值

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_UNINITIALIZED,

CUDBGResult ( *CUDBGAPI_st::readWarpState60 )( uint32_t devId, uint32_t sm, uint32_t wp, CUDBGWarpState60* state )

获取给定 Warp 的状态。自 CUDA 6.0 起。

参数
devId
sm
- SM 索引
wp
- warp 索引
state
- 指向包含 Warp 状态的结构的指针
返回值

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_UNINITIALIZED,

CUDBGResult ( *CUDBGAPI_st::requestCleanupOnDetach )( uint32_t appResumeFlag )

请求在分离时清理驱动程序状态。自 CUDA 6.0 起。

参数
appResumeFlag
- 从应用程序的进程空间读取的 CUDBG_RESUME_FOR_ATTACH_DETACH 的值。
返回值

CUDBG_SUCCESS CUDBG_ERROR_COMMUNICATION_FAILURE CUDBG_ERROR_INVALID_ARGS CUDBG_ERROR_INTERNAL

CUDBGResult ( *CUDBGAPI_st::requestCleanupOnDetach55 )( )

请求在分离时清理驱动程序状态。自 CUDA 5.0 起。

返回值

CUDBG_SUCCESS CUDBG_ERROR_COMMUNICATION_FAILURE CUDBG_ERROR_INVALID_ARGS CUDBG_ERROR_INTERNAL

CUDBGResult ( *CUDBGAPI_st::resumeDevice )( uint32_t dev )

恢复已暂停的 CUDA 设备。自 CUDA 3.0 起。

另请参阅

suspendDevice

singleStepWarp

参数
dev
- 设备索引
返回值

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_RUNNING_DEVICE, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::resumeWarpsUntilPC )( uint32_t devId, uint32_t sm, uint64_t warpMask, uint64_t virtPC )

在指定的虚拟 PC 处插入一个临时断点,并恢复给定 SM 上指定位掩码中的所有 Warps。与 CUDBGAPI_st::resumeDevice 相比,CUDBGAPI_st::resumeWarpsUntilPC 通过恢复同一 SM 上选定的一组 Warps 提供了更精细的控制。主要预期用途是在预先知道目标 PC 的情况下加速单步执行过程。客户端可以发出此 API,而不是单步执行每个 Warp 直到命中目标 PC。当使用此 API 时,CUDA 内核中的错误将不再被精确报告。在无法恢复 Warps 的情况下,此 API 将返回 CUDBG_ERROR_WARP_RESUME_NOT_POSSIBLE。然后,客户端应回退到使用 CUDBGAPI_st::singleStepWarp 或 CUDBGAPI_st::resumeDevice。自 CUDA 6.0 起。

另请参阅

resumeDevice

参数
devId
- 设备索引
sm
- SM 索引
warpMask
- 要恢复的 Warps 的位掩码(1 = 恢复,0 = 不恢复)
virtPC
- 将在其中插入临时断点的虚拟 PC
返回值

CUDBG_SUCCESS CUDBG_ERROR_INVALID_ARGS CUDBG_ERROR_INVALID_DEVICE CUDBG_ERROR_INVALID_SM CUDBG_ERROR_INVALID_WARP_MASK CUDBG_ERROR_WARP_RESUME_NOT_POSSIBLE CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::setBreakpoint )( uint32_t dev, uint64_t addr )

在给定设备的给定指令地址处设置断点。在设置断点之前,应调用 CUDBGAPI_st::getAdjustedCodeAddress 以获取调整后的断点地址。自 CUDA 3.2 起。

另请参阅

unsetBreakpoint

参数
dev
- 设备索引
addr
- 指令地址
返回值

CUDBG_SUCCESS, CUDBG_ERROR_UNINITIALIZED, CUDBG_ERROR_INVALID_ADDRESS, CUDBG_ERROR_INVALID_DEVICE

CUDBGResult ( *CUDBGAPI_st::setBreakpoint31 )( uint64_t addr )

在给定指令地址处设置断点。自 CUDA 3.0 起。

另请参阅

unsetBreakpoint31

参数
addr
- 指令地址
返回值

CUDBG_SUCCESS, CUDBG_ERROR_UNINITIALIZED, CUDBG_ERROR_INVALID_ADDRESS

CUDBGResult ( *CUDBGAPI_st::setKernelLaunchNotificationMode )( CUDBGKernelLaunchNotifyMode mode )

设置启动通知策略。自 CUDA 5.5 起。

参数
mode
- 用于传递内核启动通知的模式
返回值

CUDBG_SUCCESS

CUDBGResult ( *CUDBGAPI_st::setNotifyNewEventCallback )( CUDBGNotifyNewEventCallback callback )

向 API 提供函数,以调用该函数来通知调试器新的应用程序或设备事件。自 CUDA 4.1 起。

参数
callback
- 回调函数
返回值

CUDBG_SUCCESS

CUDBGResult ( *CUDBGAPI_st::setNotifyNewEventCallback31 )( CUDBGNotifyNewEventCallback31 callback, void* data )

向 API 提供函数,以调用该函数来通知调试器新的应用程序或设备事件。自 CUDA 3.0 起。

参数
callback
- 回调函数
data
- 调用回调函数时要传递的指针
返回值

CUDBG_SUCCESS

CUDBGResult ( *CUDBGAPI_st::setNotifyNewEventCallback40 )( CUDBGNotifyNewEventCallback40 callback )

向 API 提供函数,以调用该函数来通知调试器新的应用程序或设备事件。自 CUDA 3.2 起。

参数
callback
- 回调函数
返回值

CUDBG_SUCCESS

CUDBGResult ( *CUDBGAPI_st::singleStepWarp )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t nsteps, uint64_t* warpMask )

在暂停的 CUDA 设备上单步执行单个 Warp nsteps 次。范围内的最后一条指令应为控制流指令。自 CUDA 7.5 起。

另请参阅

resumeDevice

suspendDevice

参数
dev
- 设备索引
sm
- SM 索引
wp
- warp 索引
nsteps
- 单步执行的步数
warpMask
- 已单步执行的 Warps
返回值

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_RUNNING_DEVICE, CUDBG_ERROR_UNINITIALIZED, CUDBG_ERROR_UNKNOWN

CUDBGResult ( *CUDBGAPI_st::singleStepWarp40 )( uint32_t dev, uint32_t sm, uint32_t wp )

在暂停的 CUDA 设备上单步执行单个 Warp。自 CUDA 3.0 起。

另请参阅

resumeDevice

suspendDevice

singleStepWarp

参数
dev
- 设备索引
sm
- SM 索引
wp
- warp 索引
返回值

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_RUNNING_DEVICE, CUDBG_ERROR_UNINITIALIZED, CUDBG_ERROR_UNKNOWN, CUDBG_ERROR_WARP_RESUME_NOT_POSSIBLE

CUDBGResult ( *CUDBGAPI_st::singleStepWarp41 )( uint32_t dev, uint32_t sm, uint32_t wp, uint64_t* warpMask )

单步执行在一个暂停的 CUDA 设备上的单个 warp。自 CUDA 4.1 版本起。

另请参阅

resumeDevice

suspendDevice

参数
dev
- 设备索引
sm
- SM 索引
wp
- warp 索引
warpMask
- 已单步执行的 Warps
返回值

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_RUNNING_DEVICE, CUDBG_ERROR_UNINITIALIZED, CUDBG_ERROR_UNKNOWN

CUDBGResult ( *CUDBGAPI_st::suspendDevice )( uint32_t dev )

暂停正在运行的 CUDA 设备。自 CUDA 3.0 版本起。

另请参阅

resumeDevice

singleStepWarp

参数
dev
- 设备索引
返回值

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_RUNNING_DEVICE, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::unsetBreakpoint )( uint32_t dev, uint64_t addr )

取消设置给定设备的给定指令地址处的断点。自 CUDA 3.2 版本起。

另请参阅

setBreakpoint

参数
dev
- 设备索引
addr
- 指令地址
返回值

CUDBG_SUCCESS, CUDBG_ERROR_UNINITIALIZED, CUDBG_ERROR_INVALID_ADDRESS, CUDBG_ERROR_INVALID_DEVICE

CUDBGResult ( *CUDBGAPI_st::unsetBreakpoint31 )( uint64_t addr )

取消设置给定指令地址处的断点。自 CUDA 3.0 版本起。

另请参阅

setBreakpoint31

参数
addr
- 指令地址
返回值

CUDBG_SUCCESS, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::writeCCRegister )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint32_t val )

写入硬件 CC 寄存器。自 CUDA 6.5 版本起。

另请参阅

writeConstMemory

writeGenericMemory

writeGlobalMemory

writeParamMemory

writeSharedMemory

writeTextureMemory

writeLocalMemory

writeRegister

writePredicates

参数
dev
- 设备索引
sm
- SM 索引
wp
- warp 索引
ln
- lane 索引
val
- 要写入 CC 寄存器的值
返回值

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_LANE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::writeGenericMemory )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint64_t addr, const void* buf, uint32_t sz )

将内容写入通用地址空间中的地址。此函数确定给定地址是否属于本地、共享或全局内存窗口。然后,它访问内存,同时考虑作为输入提供的硬件坐标。自 CUDA 6.0 版本起。

另请参阅

writeParamMemory

writeSharedMemory

writeLocalMemory

writeRegister

参数
dev
- 设备索引
sm
- SM 索引
wp
- warp 索引
ln
- lane 索引
addr
- 内存地址
buf
- 缓冲区
sz
返回值

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_LANE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_UNINITIALIZED, CUDBG_ERROR_MEMORY_MAPPING_FAILED, CUDBG_ERROR_ADDRESS_NOT_IN_DEVICE_MEM

CUDBGResult ( *CUDBGAPI_st::writeGlobalMemory )( uint64_t addr, const void* buf, uint32_t sz )

将内容写入全局地址空间中的地址。如果该地址在多个设备上有效,并且其中一个设备不支持 UVA,则会返回错误。自 CUDA 6.0 版本起。

另请参阅

writeParamMemory

writeSharedMemory

writeLocalMemory

writeRegister

参数
addr
- 内存地址
buf
- 缓冲区
sz
返回值

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_UNINITIALIZED, CUDBG_ERROR_MEMORY_MAPPING_FAILED, CUDBG_ERROR_INVALID_MEMORY_ACCESS, CUDBG_ERROR_ADDRESS_NOT_IN_DEVICE_MEM CUDBG_ERROR_AMBIGUOUS_MEMORY_ADDRESS_

CUDBGResult ( *CUDBGAPI_st::writeGlobalMemory31 )( uint32_t dev, uint64_t addr, const void* buf, uint32_t sz )

将内容写入全局内存段中的地址。自 CUDA 3.0 版本起。

另请参阅

writeParamMemory

writeSharedMemory

writeLocalMemory

writeRegister

参数
dev
- 设备索引
addr
- 内存地址
buf
- 缓冲区
sz
- 缓冲区的大小
返回值

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_LANE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_UNINITIALIZED, CUDBG_ERROR_MEMORY_MAPPING_FAILED

CUDBGResult ( *CUDBGAPI_st::writeGlobalMemory55 )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint64_t addr, const void* buf, uint32_t sz )

将内容写入全局内存段中的地址(Fermi+ 上的整个 40 位 VA)。自 CUDA 3.2 版本起。

另请参阅

writeParamMemory

writeSharedMemory

writeLocalMemory

writeRegister

参数
dev
- 设备索引
sm
- SM 索引
wp
- warp 索引
ln
- lane 索引
addr
- 内存地址
buf
- 缓冲区
sz
- 缓冲区的大小
返回值

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_LANE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_UNINITIALIZED, CUDBG_ERROR_MEMORY_MAPPING_FAILED, CUDBG_ERROR_ADDRESS_NOT_IN_DEVICE_MEM

CUDBGResult ( *CUDBGAPI_st::writeLocalMemory )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint64_t addr, const void* buf, uint32_t sz )

将内容写入本地内存段中的地址。自 CUDA 3.0 版本起。

另请参阅

writeGenericMemory

writeParamMemory

writeSharedMemory

writeRegister

参数
dev
- 设备索引
sm
- SM 索引
wp
- warp 索引
ln
- lane 索引
addr
- 内存地址
buf
- 缓冲区
sz
- 缓冲区的大小
返回值

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_LANE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_UNINITIALIZED, CUDBG_ERROR_MEMORY_MAPPING_FAILED

CUDBGResult ( *CUDBGAPI_st::writeParamMemory )( uint32_t dev, uint32_t sm, uint32_t wp, uint64_t addr, const void* buf, uint32_t sz )

将内容写入参数内存段中的地址。自 CUDA 3.0 版本起。

另请参阅

writeGenericMemory

writeSharedMemory

writeLocalMemory

writeRegister

参数
dev
- 设备索引
sm
- SM 索引
wp
- warp 索引
addr
- 内存地址
buf
- 缓冲区
sz
- 缓冲区的大小
返回值

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_UNINITIALIZED, CUDBG_ERROR_MEMORY_MAPPING_FAILED

CUDBGResult ( *CUDBGAPI_st::writePinnedMemory )( uint64_t addr, const void* buf, uint32_t sz )

将内容写入系统内存中的固定地址。自 CUDA 3.2 版本起。

另请参阅

readCodeMemory

readConstMemory

readGenericMemory

readParamMemory

readSharedMemory

readLocalMemory

readRegister

readPC

参数
addr
- 系统内存地址
buf
- 缓冲区
sz
- 缓冲区的大小
返回值

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_MEMORY_MAPPING_FAILED, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::writePredicates )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint32_t predicates_size, const uint32_t* predicates )

将内容写入硬件谓词寄存器。自 CUDA 6.5 版本起。

另请参阅

writeConstMemory

writeGenericMemory

writeGlobalMemory

writeParamMemory

writeSharedMemory

writeTextureMemory

writeLocalMemory

writeRegister

参数
dev
- 设备索引
sm
- SM 索引
wp
- warp 索引
ln
- lane 索引
predicates_size
- 要写入的谓词寄存器数量
predicates
- 缓冲区
返回值

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_LANE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::writeRegister )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t ln, uint32_t regno, uint32_t val )

将内容写入硬件寄存器。自 CUDA 3.0 版本起。

另请参阅

writeGenericMemory

writeParamMemory

writeSharedMemory

writeLocalMemory

参数
dev
- 设备索引
sm
- SM 索引
wp
- warp 索引
ln
- lane 索引
regno
- 寄存器索引
val
- 缓冲区
返回值

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_LANE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::writeSharedMemory )( uint32_t dev, uint32_t sm, uint32_t wp, uint64_t addr, const void* buf, uint32_t sz )

将内容写入共享内存段中的地址。自 CUDA 3.0 版本起。

另请参阅

writeGenericMemory

writeParamMemory

writeLocalMemory

writeRegister

参数
dev
- 设备索引
sm
- SM 索引
wp
- warp 索引
addr
- 内存地址
buf
- 缓冲区
sz
- 缓冲区的大小
返回值

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_UNINITIALIZED, CUDBG_ERROR_MEMORY_MAPPING_FAILED

CUDBGResult ( *CUDBGAPI_st::writeUniformPredicates )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t predicates_size, const uint32_t* predicates )

写入统一谓词寄存器。自 CUDA 10.0 版本起。

另请参阅

readUniformPredicate

writeRegister

参数
dev
- 设备索引
sm
- SM 索引
wp
- warp 索引
predicates_size
- 要写入的谓词寄存器数量
predicates
- 缓冲区
返回值

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_UNINITIALIZED

CUDBGResult ( *CUDBGAPI_st::writeUniformRegister )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t regno, uint32_t val )

将内容写入统一寄存器。自 CUDA 10.0 版本起。

另请参阅

writeRegister

readUniformRegisterRange

参数
dev
- 设备索引
sm
- SM 索引
wp
- warp 索引
regno
- 寄存器索引
val
- 缓冲区
返回值

CUDBG_SUCCESS, CUDBG_ERROR_INVALID_ARGS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_INVALID_SM, CUDBG_ERROR_INVALID_WARP, CUDBG_ERROR_UNINITIALIZED