【发布时间】:2012-10-21 12:59:50
【问题描述】:
我有以下代码http://pastebin.com/vLeD1GJm 工作得很好,但如果我增加:
#define GPU_MAX_PW 100000000
到:
#define GPU_MAX_PW 1000000000
然后我收到:
frederico@zeus:~/Dropbox/coisas/projetos/delta_cuda$ optirun ./a
block size = 97657 grid 48828 grid 13951
unspecified launch failure in a.cu at line 447.. err number 4
我在具有 2GB 内存的 GTX 675M 上运行它。 GPU_MAX_PW 的第二个定义大约有 1000000000×2÷1024÷1024 = 1907 MB,所以我没有内存不足。由于我只分配更多内存,可能是什么问题?也许网格和块配置变得不可能?
注意错误是指向这一行的:
HANDLE_ERROR(cudaMemcpy(gwords, gpuHashes, sizeof(unsigned short) * GPU_MAX_PW, cudaMemcpyDeviceToHost));
【问题讨论】:
-
我在cudaThreadSynchronize()之后添加了一个验证码;并且错误就在那里,而不是在复制结果
-
如果你运行 nvidia-smi -a(GPU 上没有运行任何东西)报告了多少可用内存?
-
@RobertCrovella 它报告“免费:2037 MB”
-
您的 GTX 675M 是否也显示用户界面?在出现错误之前,您的内核使用
#define GPU_MAX_PW 1000000000运行了多长时间?当操作系统回收 GPU 用于 UI 显示时,您可能会遇到超时。 -
@tera 不,我正在使用我的英特尔显卡进行显示,GTX 675M 仅在我调用它时使用。时间大约是 3 秒
标签: cuda