cudaMemcpy取代现有值?

时间:2013-02-11 17:37:09

标签: cuda

我正在cuda 4.2制作一个程序,我遇到了这个问题...

我需要对2张图像执行相同的代码。所以我把代码放在for循环中,我在for循环之前调用了所有cudaMalloc一次。循环中的代码使用cudaMemcpy(..,..,..,cudaMemcpyHostToDevice)到相同的设备数组指针。所以我认为新值(来自第一张图像)将取代第二张循环中的旧值(来自第二张图像)。但是cudaMemcpy(..,..,..,cudaMemcpyHostToDevice)失败了......

我必须使用其他功能吗?

非常感谢!

1 个答案:

答案 0 :(得分:1)

我有一个类似的问题, 事实证明我在循环结束时调用了cudaFree(),但是在循环之前只调用了cudaMalloc()一次。 这意味着当我第一次在不再分配内存后尝试将值复制到GPU上时,我最终确保CudaMalloc和CudaFree都在循环之外并且运行正常。