4

我正在尝试解决 CUDA 运行时错误。cuda-gdb 报告的调试信息(开启 cuda-memcheck):

warning: Cuda API error detected: cudaLaunch returned (0xb)  
warning: Cuda API error detected: cudaGetLastError returned (0xb)  
[Thread 0x7fa1a28c5700 (LWP 43041) exited]
[Thread 0x7fa1a16a5700 (LWP 43042) exited]
[Thread 0x7fa18df0e700 (LWP 43056) exited]

我检查了块、网格尺寸和正在使用的动态共享内存的大小,它们远低于限制。请告诉我 (0xb) 错误类型代表什么,我在 cuda 文档中没有找到它。另外,请告诉我有关如何解决此问题的任何建议?
设备:Kepler K20 (CC=3.5) 和 CUDA 5.5
代码太大,无法在此处粘贴。

4

2 回答 2

7

如果您在代码中进行了适当的 cuda 错误检查,您可以检索从cudaGetLastError调用中报告的 0xb 错误,并将其传递给解码器 ( cudaGetErrorString),它会告诉您更有意义的信息。

CUDA 运行时 API 错误代码在 中枚举driver_types.h,在标准 linux 安装中,它将在/usr/local/cuda/include Search 中,cudaSuccess这将是第一个枚举类型(即 0),然后继续直到找到错误号。

在这种情况下0xb(= 11) 指的是cudaErrorInvalidValue

/**
 * This indicates that one or more of the parameters passed to the API call
 * is not within an acceptable range of values.
 */
cudaErrorInvalidValue                 =     11,
于 2014-03-12T18:33:32.987 回答
1

我遇到了这个错误,显然是通过取消固定相关的主机内存来解决的。

于 2017-05-23T20:53:28.003 回答