Пожалуйста, объясните пример кода cudaMemcpyToSymbol из Руководства по программированию CUDA - PullRequest
9 голосов
/ 21 ноября 2011

Есть ли проблема в этом примере кода из Руководства по программированию CUDA C?

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

Я не могу понять, как он мог писать в devData, не имея адреса devData

1 Ответ

7 голосов
/ 21 ноября 2011

На самом деле кажется, что 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);
}

Эта соответствует вашему случаю.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...