用的cuda10.1,c++多线程编程时出现以下问题怎么解决?

我原来用的CUDA8.0,换了新电脑后8.0安装不了,就安装了10.1,修改好相关设置后,在运行代码时,到了某一行,前面的数值都正确,成功打印了,到了

cudaError_t err = cudaMemcpy2D(host_solidflag, sizeof(float) * m_picture_size[0], d_solidflag, m_pitch, sizeof(float) * m_picture_size[0], m_picture_size[1], cudaMemcpyDeviceToHost);

这一句,下面就报错了

if (err != cudaSuccess) printf("%s\n", cudaGetErrorString(err));

以前没有这种情况过。
错误提示:an illegal memory access was encountered

具体要看你的代码中数组的尺寸,思路类似
https://www.cnblogs.com/superxiaoying/p/9001714.html