3.3. 设备执行控制
变量
- CUDBGResult ( *CUDBGAPI_st::resumeDevice )( uint32_t dev )
- 恢复已暂停的 CUDA 设备。
- CUDBGResult ( *CUDBGAPI_st::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 ( *CUDBGAPI_st::singleStepWarp )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t nsteps, uint64_t* warpMask )
- 在暂停的 CUDA 设备上单步执行单个 Warp nsteps 次。范围内的最后一条指令应为控制流指令。
- CUDBGResult ( *CUDBGAPI_st::singleStepWarp40 )( uint32_t dev, uint32_t sm, uint32_t wp )
- 在暂停的 CUDA 设备上单步执行单个 Warp。
- CUDBGResult ( *CUDBGAPI_st::singleStepWarp41 )( uint32_t dev, uint32_t sm, uint32_t wp, uint64_t* warpMask )
- 在暂停的 CUDA 设备上单步执行单个 Warp。
- CUDBGResult ( *CUDBGAPI_st::suspendDevice )( uint32_t dev )
- 暂停正在运行的 CUDA 设备。
变量
- CUDBGResult ( *CUDBGAPI_st::resumeDevice )( uint32_t dev )
-
参数
- 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 上指定位掩码中的所有 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。自 CUDA 6.0 起。
参见
参数
- devId
- - 设备索引
- sm
- - SM 索引
- warpMask
- - 要恢复的 Warp 的位掩码 (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::singleStepWarp )( uint32_t dev, uint32_t sm, uint32_t wp, uint32_t nsteps, uint64_t* warpMask )
-
参数
- dev
- - 设备索引
- sm
- - SM 索引
- wp
- - Warp 索引
- nsteps
- - 单步步数
- warpMask
- - 已单步执行的 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
- CUDBGResult ( *CUDBGAPI_st::singleStepWarp40 )( uint32_t dev, uint32_t sm, uint32_t wp )
-
参数
- 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 )
-
参数
- dev
- - 设备索引
- sm
- - SM 索引
- wp
- - Warp 索引
- warpMask
- - 已单步执行的 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
- CUDBGResult ( *CUDBGAPI_st::suspendDevice )( uint32_t dev )
-
参数
- dev
- - 设备索引
返回值
CUDBG_SUCCESS, CUDBG_ERROR_INVALID_DEVICE, CUDBG_ERROR_RUNNING_DEVICE, CUDBG_ERROR_UNINITIALIZED