2

I have a kernel that's failing with CUDA_EXCEPTION_5, Warp Out-of-range Address.

cuda-gdb automatically places the focus on a specific block. Is that the block where the error is occuring or when nvidia documentation states CUDA_EXCEPTION_5 "is not precise" it means the debugger can't determine which block/thread that specific exception occurred in?

If it's only granular to the warp is there a way to find out within cuda-gdb which warp the exception occurred within and which blocks belong to that warp?

4

2 回答 2

4

cuda-gdb 并不总是能够精确检测抛出异常的线程。为了提高精度,您需要在使用“set cuda memcheck on”命令启动应用程序之前启用 memcheck 集成。请注意,在启用集成 memcheck 的情况下运行应用程序会降低性能。

于 2012-12-03T23:11:09.013 回答
1

在 CUDA 5.0 中,从 cuda-gdb 中使用 cuda-memcheck 具有与独立运行时类似的内存访问错误检测功能。独立的 cuda-memcheck 应用程序具有额外的功能,例如检测竞争条件、检测内存泄漏以及继续超过第一个错误的能力。cuda-memcheck 与 autostep 无关,当与 cuda-gdb 集成时,将在第一次检测到超出范围或未对齐内存访问的错误时准确停止应用程序。

于 2012-12-04T17:32:03.630 回答