2016-02-19 39 views
0

我调试CUDA程序,得到了以下警告:如何找到其中检测Cuda的API错误时没有程序崩溃:cudaMemcpy返回(0XB)

warning: Cuda API error detected: cudaMemcpy returned (0xb) 

warning: Cuda API error detected: cudaMemcpy returned (0xb) 

warning: Cuda API error detected: cudaGetLastError returned (0xb) 

Error in kernel 
GPUassert: invalid argument 

当我“其中”在CUDA-GDB型,它说“没有堆栈”。

(cuda-gdb) where 
No stack. 

如何找到我的程序崩溃的地方?

回答

2

在这里找到答案:http://on-demand.gputechconf.com/gtc/2012/presentations/S0027A-Monday-Debugging-Experience-CUDA.pdf @第27页。

首先,您需要:

(cuda-gdb) set cuda api_failures stop 

当错误发生之后,它会停止:

Cuda API error detected: cudaMemcpy returned (0xb) 
(cuda-gdb) where 
#0 0x00007fffea6a06d0 in cudbgReportDriverApiError() from  /usr/lib64/nvidia/libcuda.so.1 
#1 0x00007fffea6a2c36 in cudbgReportDriverInternalError() from /usr/lib64/nvidia/libcuda.so.1 
#2 0x00007fffea6eed93 in cudbgGetAPIVersion() from /usr/lib64/nvidia/libcuda.so.1 
... 
相关问题