CUDA C编程指南中的示例代码中是否存在问题?

__device__ float devData;
float value = 3.14f;
cudaMemcpyToSymbol(devData, &value, sizeof(float));

我不了解没有devData的地址如何将其写入devData

最佳答案

实际上,似乎cudaMemcpyToSymbol具有另一个签名。

http://cudpp.googlecode.com/svn-history/r152/trunk/common/inc/dynlink/cuda_runtime_dynlink.h

template<class T>
__inline__ __host__ cudaError_t cudaMemcpyToSymbol(
  const T                   &symbol,
  const void                *src,
        size_t               count,
        size_t               offset = 0,
        enum cudaMemcpyKind  kind   = cudaMemcpyHostToDevice
)
{
  return cudaMemcpyToSymbol((const char*)&symbol, src, count, offset, kind);
}

这将符合您的情况。

关于cuda - 请解释《 CUDA编程指南》中的cudaMemcpyToSymbol示例代码,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8208401/

10-11 22:52
查看更多