cuda-gdb会自动为CUDA_EXCEPTION_5 Warp超出范围的地址错误选择正确的焦点吗?

时间:2012-12-03 19:59:01

标签: debugging exception cuda

我的内核在CUDA_EXCEPTION_5失败,Warp超出范围的地址。

cuda-gdb会自动将焦点放在特定的块上。是发生错误的块还是当nvidia文档声明CUDA_EXCEPTION_5“不准确”时,这意味着调试器无法确定发生特定异常的块/线程?

如果它只是对warp的细化,那么有一种方法可以在cuda-gdb中查找哪个warp异常发生在哪个块中,哪个块属于该warp?

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:1)

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