【发布时间】:2016-12-12 09:05:06
【问题描述】:
在我的机器上,下面代码中对 cudeMemPrefetchAsync 的调用返回 10(cuda 错误无效设备)而不是 0。设置是运行 Windows 10、NVidia GTX 1080 GPU 和板载 Intel HD Graphics 530 的 Alienware 17 笔记本电脑。使用来自 NVidia 的驱动程序 376.19(移动驱动程序)。
我已经为 compute_61、sm_61 编译。另一位用户尝试在 Pascal 架构 (Titan X) 上运行相同的代码,结果正确返回 0。我还在 Debug 和 Release 模式下对此进行了测试,结果相同。有什么想法吗?
#include "cuda_runtime.h"
#include "device_launch_parameters.h"
int main()
{
int* data;
size_t len = 10;
cudaError_t err = cudaSetDevice(0);
err = cudaMallocManaged(reinterpret_cast<void **>(&data), len, cudaMemAttachGlobal);
err = cudaMemPrefetchAsync(data, len, 0, 0);
}
【问题讨论】:
-
只是为了更加确定 - 只有在
cudaMemAttachGlobal调用之后才会收到无效设备错误,而不是之前,对吧?