我的问题是这样的:
首先,我的程序应该是没有问题的,因为我测试了1000、2000、5000、10000、20000、30000个点的计算,都没有问题
然后,我继续测试32996个点的计算,数据只有怎么多。然后运行的时候提示错误:
cudaDeviceSynchronize returned error code 4 after launching MIComputeKernel!
我想请教下这是因为什么呢,数组下标越界吗?可是我运行30000个点都没有问题呢?
还有我想问下cudaDeviceSynchronize的返回值的代表意义,有没有一个错误码的意义表格呢?
求大神指导!
楼主您好,2分钟没有回复您不代表没人正在回复。
您的cudaDeviceSynchronize()返回的是您上次的错误。而根据您的描述,您的kernel中有问题。
错误代码4是Unspecified Launch Failure, 这往往代表您有越界或者不正确的指针使用。
请按这个方向进行检查。
您的第二个问题:
所有的错误代码可以用cudaGetErrorString()来取得。请阅读手册中该函数的说明并使用它。
感谢您的来访。
版主,请问返回错误代码30是什么意思。。用cudaGetErrorString返回的是 unknown error…
楼主您好,错误30他本身就叫cuda error unkown.
此错误往往出现在windows平台上的kernel中有错误的访存或者访问越界的情况。
请按照此方向检查贵代码。