0
__constant__ float constData[256];
float data[256];
cudaMemcpyToSymbol(constData, data, sizeof(data));
cudaMemcpyFromSymbol(data, constData, sizeof(data));
__device__ float devData;
float value = 3.14f;
cudaMemcpyToSymbol(devData, &value, sizeof(float));
__device__ float* devPointer;
float* ptr;
cudaMalloc(&ptr, 256 * sizeof(float));
cudaMemcpyToSymbol(devPointer, &ptr, sizeof(ptr));

这是取自 nvidia 网站的示例。根据同一个站点, cudaMemcpyToSymbol 的签名将指针作为第一个参数。变量 devData 不是一个指针,仍然被用来代替一个指针。这怎么可能?我也意识到签名已经改变,但为什么这在任何情况下都有意义?作为新函数的符号,这也是一个有效的参数吗?

4

1 回答 1

1

查看cudaMemcpyToSymbol() 的 C++ 版本的文档。

于 2013-04-15T02:31:16.693 回答