如何使用 CUDA-GDB 跳出 CUDA 内核?

问题描述 投票:0回答:1

我正在使用 CUDA-GDB 来探索一个大型 CUDA 项目。我可以使用以下命令发现第一个 CUDA 内核:

set cuda break_on_launch application

然后我可以通过内核进行单步调试,GDB 的

continue
将方便地带我到下一个内核启动。

此处所解释的那样我还可以禁用这些中断,返回到默认行为:

set cuda break_on_launch none

我想退出内核,并返回到主机代码。 GDB

finish
命令在这里没有帮助,报告:

(cuda-gdb) finish
"finish" not meaningful in the outermost frame.

是否可以退出 CUDA 内核并返回到主机代码的后续行?

cuda nvcc cuda-gdb
1个回答
0
投票

由于内核启动通常是异步的,因此“主机代码的后续行”不一定有明确的定义。

可以使用

thread
命令将焦点切换到任何主机线程,与普通 gdb 相同,这在 docs 中提到:

(cuda-gdb) info threads
(cuda-gdb) thread 1

您可以将环境变量

CUDA_LAUNCH_BLOCKING
设置为
1
以获得CPU和GPU之间的同步操作,这应该有助于探索(和调试)。

© www.soinside.com 2019 - 2024. All rights reserved.