CudaDeviceSynchronize()进入for循环错误6

时间:2013-02-13 16:43:45

标签: cuda gpu gpgpu

编辑:

我已经向Cuda申请了一个图像描述符...我测试了它的图像并且一切顺利...之后我想尝试很多图像(即10000)来测试时间串行和并行之间的区别。所以我把我的代码放到for循环(而不是分配和内存释放)。问题发生在这里...当我尝试这个时,似乎应用程序和更具体的功能cudaDeviceSynchronize()崩溃与错误代码6.现在,我做了一个搜索,我发现,一方面这个错误可能是因为在cudaDeviceSynchronize()之前调用的内核,因为内核是异步的,事实是通常只有一个特定的cudaDeviceSynchronize()函数崩溃,这是在特定内核之后调用的。一次或两次崩溃后,另一个内核再次崩溃。那问题可能就是内核吗?我对此表示怀疑,因为它可以在10或100张图像上完美运行,并且可以检查Nsight内存。

另一方面,我发现了一些看门狗计时器...当我用Nsight禁用它并再次运行我的程序时,电脑完全冻结了。所以我想,由于某种原因,某些线程或所有线程都没有结束它们的操作,所以cudaDeviceSynchronize()不允许程序继续,并且在2秒后(默认)看门狗定时器停止应用程序。关于为什么内核滞后的任何想法?可能是因为我的设备?我正在使用GeForce G 103M和Capability 1.1,Cuda 4.2版,Windows 7和Visual Studio 2010。

非常感谢!

0 个答案:

没有答案