关于cudaMemcpy的奇怪错误

关于cudaMemcpy的奇怪错误,cuda,Cuda,我的CUDA程序有一个很奇怪的错误。经过一整天的调试,我已经将这个bug缩小到了这段代码中,它只是将数组[0]中的数据复制到所有其他数组[1~9]。数组[0]中的所有项都是零,所以复制之后,数组[0~9]中的所有项都应该是零。然而,现实是一些内存被随机值破坏。在我的例子中,数组[8]中的某些条目是非零的。如果有人能复制我的bug,我真的很感激。非常感谢你 代码如下:(添加了cudaDeviceSynchronize()) 我得到的结果是: copied1 sum0=0 sum1=0 sum2=0

我的CUDA程序有一个很奇怪的错误。经过一整天的调试,我已经将这个bug缩小到了这段代码中,它只是将数组[0]中的数据复制到所有其他数组[1~9]。数组[0]中的所有项都是零,所以复制之后,数组[0~9]中的所有项都应该是零。然而,现实是一些内存被随机值破坏。在我的例子中,数组[8]中的某些条目是非零的。如果有人能复制我的bug,我真的很感激。非常感谢你

代码如下:(添加了cudaDeviceSynchronize())

我得到的结果是:

copied1
sum0=0
sum1=0
sum2=0
sum3=0
sum4=0
sum5=0
sum6=0
sum7=0
sum8=4.23087e+20
sum9=0
copied2
sum0=0
sum1=0
sum2=0
sum3=0
sum4=0
sum5=0
sum6=0
sum7=0
sum8=inf
sum9=0
copied3
sum0=0
sum1=0
sum2=0
sum3=0
sum4=0
sum5=0
sum6=0
sum7=0
sum8=inf
sum9=0
copied4
sum0=0
sum1=0
sum2=0
sum3=0
sum4=0
sum5=0
sum6=0
sum7=0
sum8=inf
sum9=0
copied5
sum0=0
sum1=0
sum2=0
sum3=0
sum4=0
sum5=0
sum6=0
sum7=0
sum8=inf
sum9=0
copied6
sum0=0
sum1=0
sum2=0
sum3=0
sum4=0
sum5=0
sum6=0
sum7=0
sum8=-1.08991e+38
sum9=0
copied7
sum0=0
sum1=0
sum2=0
sum3=0
sum4=0
sum5=0
sum6=0
sum7=0
sum8=-nan
sum9=0
copied8
sum0=0
sum1=0
sum2=0
sum3=0
sum4=0
sum5=0
sum6=0
sum7=0
sum8=0.0234719
sum9=0
copied9
sum0=0
sum1=0
sum2=0
sum3=0
sum4=0
sum5=0
sum6=0
sum7=0
sum8=2.51686e+17
sum9=0
谢谢,
Cui

我的问题可以通过回滚到旧的CUDA驱动程序版本来解决。几天前,我们似乎将CUDA工具包升级到了7.0,并安装了346.46版的新CUDA驱动程序。我知道这毫无意义,但问题是这个司机造成的。当我重新安装以前的驱动程序时,问题就解决了

谢谢你为帮助我所做的一切努力。这绝对是我见过的最难的错误

谢谢


Cui

我没有看到对
主机数组执行任何内存分配。有一个“assert(cudamalochost(&host\u数组,size)==cudaSuccess)”,我无法重现错误。所有sumX值均为零。你在哪个GPU上运行这个?什么是主机操作系统?什么CUDA版本?以下是信息:GPU:Tesla K20c,OS:Ubuntu14,CUDA版本:7.0。我还怀疑我的环境可能有问题,因为我认为这段代码看起来非常正确,但有什么问题吗?K20c是否启用了ECC?如果没有,请尝试启用它。不确定您是否建议这样做,但我怀疑您目前的分析是否表明346.46中存在错误。我使用346.46进行测试,无法用您提供的代码重现您的问题。因此,您的机器配置(与我的不同)中肯定有某种原因导致了这个问题,在您对驱动程序安装/卸载/重新安装所做的任何操作之后,它可能以某种方式发生了更改。然而,我认为这里没有足够的数据表明这是司机造成的。
nvcc test.cu -lrt -lcudart -o test -g -O3
copied1
sum0=0
sum1=0
sum2=0
sum3=0
sum4=0
sum5=0
sum6=0
sum7=0
sum8=4.23087e+20
sum9=0
copied2
sum0=0
sum1=0
sum2=0
sum3=0
sum4=0
sum5=0
sum6=0
sum7=0
sum8=inf
sum9=0
copied3
sum0=0
sum1=0
sum2=0
sum3=0
sum4=0
sum5=0
sum6=0
sum7=0
sum8=inf
sum9=0
copied4
sum0=0
sum1=0
sum2=0
sum3=0
sum4=0
sum5=0
sum6=0
sum7=0
sum8=inf
sum9=0
copied5
sum0=0
sum1=0
sum2=0
sum3=0
sum4=0
sum5=0
sum6=0
sum7=0
sum8=inf
sum9=0
copied6
sum0=0
sum1=0
sum2=0
sum3=0
sum4=0
sum5=0
sum6=0
sum7=0
sum8=-1.08991e+38
sum9=0
copied7
sum0=0
sum1=0
sum2=0
sum3=0
sum4=0
sum5=0
sum6=0
sum7=0
sum8=-nan
sum9=0
copied8
sum0=0
sum1=0
sum2=0
sum3=0
sum4=0
sum5=0
sum6=0
sum7=0
sum8=0.0234719
sum9=0
copied9
sum0=0
sum1=0
sum2=0
sum3=0
sum4=0
sum5=0
sum6=0
sum7=0
sum8=2.51686e+17
sum9=0