2014-03-12 114 views
3

我想解决一个CUDA运行时错误。通过CUDA-GDB(与CUDA的MEMCHECK)报告调试信息:cudaGetLastError returned(0xb)

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文档中找到它。另外,请告诉我有关如何解决此问题的任何建议?
设备:开普勒K20(CC = 3.5)和CUDA 5.5
代码太大,无法粘贴。

回答

5

如果您在代码中使用proper cuda error checking,则可以从cudaGetLastError调用中检索到正在报告的0xb错误,并将其传递给解码器(cudaGetErrorString),以告诉您更有意义的内容。

CUDA运行时API错误代码列举了driver_types.h,其中一个标准的Linux安装将在/usr/local/cuda/include搜索上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, 
0

我遇到这个错误,显然通过解锁该相关主机存储器解决它。

相关问题