Как найти, где происходит сбой программы при обнаружении ошибки API Cuda: возвращается cudaMemcpy (0xb)

Я отлаживаю программу CUDA и получил следующее предупреждение:

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
...
3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]