在我的机器上,下面代码中对cudeMemPrefetchAsync的调用返回10(cuda错误无效设备)而不是0.该设置是运行Windows 10的Alienware 17笔记本电脑,带有NVidia GTX 1080 GPU和板载Intel HD Graphics 530。来自NVidia(移动驱动程序)的376.19驱动程序。)
我为compute_61,sm_61编译。另一个用户尝试在Pascal架构(Titan X)上运行相同的代码,并且它正确地返回0。我也在调试和发布模式下测试了这个结果。有什么想法吗?
#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);
}