2013-02-11 72 views
-2

我在cuda 4.2中制作程序,我遇到这个问题...cudaMemcpy替换现有值?

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

我必须使用另一个功能吗?

非常感谢!

+0

你知道它给出了什么错误吗?尝试使用[cudaGetErrorString](http://developer.download.nvidia.com/compute/cuda/4_1/rel/toolkit/docs/online/group__CUDART__ERROR_g38e5684c158c22144ad3c269ad61bc78.html) – 2013-02-11 17:44:19

+0

您可以显示代码吗? – sgarizvi 2013-02-11 17:46:57

回答

1

我有一个潜在的类似问题, 原来我在循环结束时调用cudaFree(),但在循环之前只调用了一次cudaMalloc()。 这意味着当我第一次不再分配内存后,试图将值复制到GPU上时,我最终确定CudaMalloc和CudaFree都在循环之外,并且工作正常。