【发布时间】:2014-07-06 20:00:41
【问题描述】:
首先我想说我真的很喜欢 CUDA 文档,虽然我发现很难找出哪个版本支持什么,但它非常棒且足智多谋。我正在使用计算能力为 2.0 的 CUDA 驱动程序版本 5.0,想知道是否支持 cudaHostAllocWriteCombined?
在我的代码中:
float *d_data, h_data;
h_data = new float[A];
assert(cudaHostAlloc((void **)&d_data, A * sizeof(float), cudaHostAllocWriteCombined) == cudaSuccess);
cudaError_t err = cudaMemcpy(d_data, h_data, A * sizeof(float), cudaMemcpyHostToDevice);
if (err != cudaSuccess)
{
std::cout << cudaGetErrorString(err) << std::endl;
return false;
}
错误返回无效参数,但是如果我使用 cudaHostAllocDefault 它似乎工作正常,我理解它是如何工作的快速写入慢读,这就是我想使用它的原因。
【问题讨论】:
-
cudaHostAllocWriteCombined 可能是 2.2 来源:naic.edu/~phil/hardware/nvidia/doc/src/simpleZeroCopy/doc/… 第 10 页
-
在较新的处理器架构上结合is useful 是值得怀疑的。