代码部分
g_calculate_Fe << <(M->size_element + hfths - 1) / hfths, dim3(4, hfths, 1), 0, custr[1] >> > (Md);
g_calculate_Fb << <(M->size_frac + ths - 1) / ths, ths, 0, custr[2] >> > (Md);
src = cudaDeviceSynchronize();
if (src != cudaSuccess)
{
cout << M->step << " 计算错误 " << cudaGetErrorString(src) << endl;
break;
}
程序运行输出:
0 计算错误 an illegal memory access was encountered
之前查阅博客,线程分配时存在错误,但是对于这块不太理解,仅供参考
你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答
本次提问扣除的有问必答次数,已经为您补发到账户,我们后续会持续优化,扩大我们的服务范围,为您带来更好地服务。
这个不是很懂,看提示,应该是内存访问越界了,可以看下提示信息,debug下,看下哪行代码出错了。
debug工具给你推荐一个:
https://blog.csdn.net/u010212101/article/details/88669873 (C++程序/项目内存泄漏检查(valgrind)
代码不完整,检查一下变量定义