请解释CUDA编程指南中的CUDAMEMCPITOSYMBOL示例代码

请解释CUDA编程指南中的CUDAMEMCPITOSYMBOL示例代码,cuda,Cuda,CUDA C编程指南中的示例代码有问题吗 __device__ float devData; float value = 3.14f; cudaMemcpyToSymbol(devData, &value, sizeof(float)); 我无法理解它如何在没有devData地址的情况下向devData写入数据。实际上,cudaMemcpyToSymbol似乎还有另一个签名 模板 __内联主机错误( const T&symbol, const void*src, 大小不可计数, 大小

CUDA C编程指南中的示例代码有问题吗

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

我无法理解它如何在没有devData地址的情况下向devData写入数据。实际上,cudaMemcpyToSymbol似乎还有另一个签名

模板
__内联主机错误(
const T&symbol,
const void*src,
大小不可计数,
大小\u t偏移=0,
枚举cudaMemcpyKind kind=cudaMemcpyHostToDevice
)
{
返回cudaMemcpyToSymbol((const char*)&symbol,src,count,offset,kind);
}

这一个将符合您的情况。

所有观众,如果这个问题符合UPVOUT标准,请不要忽略UPVOUT!
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);
}