在 cuda-cdb 中切换块焦点
很简单...我想改变 cuda-gdb 中的焦点。我可以更改为当前块(块 0)内的不同线程,但不能更改为不同的块。我使用的是cuda/cuda-gdb 3.0
3.0手册中的方式:
(cuda-gdb) cuda 块 当前 CUDA 焦点:块 (0,0)。 (cuda-gdb)cuda 块(9,0) CUDA 焦点不变。 (cuda-gdb) cuda 线程 (9,0,0) 新的 CUDA 焦点:设备 0、sm 1、warp 0、通道 9、网格 42672、块 (0,0)、线程 (9,0,0)。
或其他方式(来自 3.2 手册):
(cuda-gdb) 线程 [当前线程2(线程140272898447104(LWP 28681))] [当前 CUDA 线程 <<<(0,0),(0,0,0)>>] (cuda-gdb) 线程<<<(9),(10)>>> 切换到<<<(9,0),(10,0,0)>> my_kernel 中的 0x000000000246a5c8 <<<(16,1),(128,1,1)>>> ... (cuda-gdb) 线程 [当前线程2(线程140272898447104(LWP 28681))] [当前 CUDA 线程 <<<(0,0),(0,0,0)>>] (cuda-gdb)线程<<<20>>>>> 切换到<<<(0,0),(20,0,0)>> my_kernel 中的 0x000000000246a5c8 <<<(16,1),(128,1,1)>>> ... (cuda-gdb) 线程 [当前线程2(线程140272898447104(LWP 28681))] [当前 CUDA 线程 <<<(0,0),(20,0,0)>>]
我做错了什么?
CUDA 3.0 | ubuntu 9.04 | ubuntu 9.04 GTX 480
Pretty simple... I want to change focus in cuda-gdb. I can change to a different thread within the current block (block 0), but not to a different block. I'm using cuda/cuda-gdb 3.0
The way in the 3.0 manual:
(cuda-gdb) cuda block Current CUDA focus: block (0,0). (cuda-gdb) cuda block (9,0) CUDA focus unchanged. (cuda-gdb) cuda thread (9,0,0) New CUDA focus: device 0, sm 1, warp 0, lane 9, grid 42672, block (0,0), thread (9,0,0).
or the other way (from the 3.2 manual):
(cuda-gdb) thread [Current Thread 2 (Thread 140272898447104 (LWP 28681))] [Current CUDA Thread <<<(0,0),(0,0,0)>>>] (cuda-gdb) thread <<<(9),(10)>>> Switching to <<<(9,0),(10,0,0)>>> 0x000000000246a5c8 in my_kernel <<<(16,1),(128,1,1)>>> ... (cuda-gdb) thread [Current Thread 2 (Thread 140272898447104 (LWP 28681))] [Current CUDA Thread <<<(0,0),(0,0,0)>>>] (cuda-gdb) thread <<<20>>> Switching to <<<(0,0),(20,0,0)>>> 0x000000000246a5c8 in my_kernel <<<(16,1),(128,1,1)>>> ... (cuda-gdb) thread [Current Thread 2 (Thread 140272898447104 (LWP 28681))] [Current CUDA Thread <<<(0,0),(20,0,0)>>>]
What am I doing wrong?
cuda 3.0 | ubuntu 9.04 | gtx 480
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果运行
info cuda sm
(IIRC),您可以看到当前活动的块。无法切换到已完成执行的块(或块内的扭曲)。如果您想查看特定块,那么您应该能够中断内核函数本身,然后更改焦点,然后继续调试会话。
If you run
info cuda sm
(IIRC) you can see the currently active blocks. It's not possible to switch to a block (or a warp within a block) that has already completed execution.If you want to look at a specific block then you should be able to break on the kernel function itself, then change focus, then continue the debugging session.