本文介绍了请解释CUDA编程指南中的cudaMemcpyToSymbol示例代码的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

Is there a problem in this example code from the CUDA C Programming Guide?

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

我不明白如何写入devData而没有devData的地址

I can't understand how it could write to devData without having the address of devData

推荐答案

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

Actually it seems that cudaMemcpyToSymbol has another signature.

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编程指南中的cudaMemcpyToSymbol示例代码的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-13 06:46