CUDA程序出错~~求救

自己编写的一个cuda程序,处理大量数据,用到了大量的GLOBAL内存,刚开始运行结果完全正确,但是运行几次之后,结果就出错了,都变成了1.#QNAN0e+000。但是,把电脑重启或者注销一下,就可以了,然后再运行几次,又出现这种情况。。。。。。。。。请问这是什么原因造成的呢?
我刚开始以为是 内存没有释放,导致内存不足,但是我检查了程序,一一对照,都有释放。
请问各位有没有遇到过这种问题?

我以前也出现过这情况!
可能除了0
可能是数非常小

还有可能是因为应该转型 的没有转型

总之原因不太确定得自己找

遇到过一次这样的情况,
当时的原因是host端传递的数据和kernel函数处理的数据量不一样

是指kernel处理的数据超出了HOST传递的数据么?我只是HOST传递的数据大于KERNEL处理的数据,这样没问题吧?

[ 本帖最后由 我带刺 于 2010-5-14 15:53 编辑 ]

[

是指kernel处理的数据超出了HOST传递的数据么?我只是HOST传递的数据大于KERNEL处理的数据,这样没问题吧?

是指kernel处理的数据超出了HOST传递的数据么?我只是HOST传递的数据大于KERNEL处理的数据,这样没问题吧?

应当没有问题

有遇到过啊
但是我的是比较低级的错误,数组用错了,呵呵
你应该不会是这个

第一次情况是host端传入的数据小于kernel函数定义的数据的数量。。
第二种情况是device传递回host端的数据小于kernel函数中处理的数据的数量。。
遇到两次都出现过这种错误,不过偶尔有时候,clean,rebuild之后,这种错误会消失。。