非常简单......我想在cuda-gdb中改变焦点。我可以更改为当前块中的不同线程(块0),但不能更改为其他块。我正在使用cuda / cuda-gdb 3.0
3.0手册中的方法:
(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).
或其他方式(来自3.2手册):
(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)>>>]
我做错了什么?
cuda 3.0 | ubuntu 9.04 | gtx 480
答案 0 :(得分:3)
如果您运行info cuda sm
(IIRC),则可以看到当前活动的块。无法切换到已完成执行的块(或块内的扭曲)。
如果你想查看一个特定的块,那么你应该能够打破内核函数本身,然后改变焦点,然后继续调试会话。