我正在cuda 4.2制作一个程序,我遇到了这个问题...
我需要对2张图像执行相同的代码。所以我把代码放在for
循环中,我在for循环之前调用了所有cudaMalloc
一次。循环中的代码使用cudaMemcpy(..,..,..,cudaMemcpyHostToDevice)
到相同的设备数组指针。所以我认为新值(来自第一张图像)将取代第二张循环中的旧值(来自第二张图像)。但是cudaMemcpy(..,..,..,cudaMemcpyHostToDevice)
失败了......
我必须使用其他功能吗?
非常感谢!
答案 0 :(得分:1)
我有一个类似的问题, 事实证明我在循环结束时调用了cudaFree(),但是在循环之前只调用了cudaMalloc()一次。 这意味着当我第一次在不再分配内存后尝试将值复制到GPU上时,我最终确保CudaMalloc和CudaFree都在循环之外并且运行正常。