如果把块数和线程数调低,程序会出现device illegal address的错误,把块数和线程数调高(1024,1024),程序就不会出现这个错误,能正常结束。
调试了好久,找不到原因,感觉代码逻辑没有问题,我检查了很多遍。
(在显存申请了一百多兆的空间,把数据从主机传到显存上了,调试看来数据没有错误)
是否能从其它角度给点建议?真的很让人郁闷的问题啊
LZ您好:
这个错误是访存越界造成的,请您检查您的代码。
如果直接检查不易查出的话,您可以考虑借助cudaMemcheck这个工具辅助您检查。
大致如此,祝您调试顺利~