GTX 1080(Pascal)上的cudaMemPrefetchAsync错误?

GTX 1080(Pascal)上的cudaMemPrefetchAsync错误?,cuda,nvidia,Cuda,Nvidia,在我的机器上,在下面的代码中调用CUDEMMPREFETCHSync返回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。我也在调试和发布模式下测试过,

在我的机器上,在下面的代码中调用CUDEMMPREFETCHSync返回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);
}
#包括“cuda_runtime.h”
#包括“设备启动参数.h”
int main()
{
int*数据;
尺寸长度=10;
cudaError\u t err=cudaSetDevice(0);
err=cudaMallocManaged(重新解释铸件和数据),len,CUDAMATTACHglobal;
err=cudaMemPrefetchAsync(数据,len,0,0);
}

有一个NVIDIA Windows系统环境员工确认的已知错误(见botton,i

另一方面,有报道称,像您这样的代码在LinuxSO或Maxwell卡下运行良好


我也有同样的想法,但直到现在还没有解决方案,甚至使用CUDA 9.0 RC。我的建议是暂时使用常规内存方法,因为有一年多的报告,但没有修复方法。

只是为了额外确保-只有在
CudamAttachGlobal
调用之后,而不是之前,您才会收到无效设备错误,对吗?