2016-12-12 60 views
2

在我的機器上,下面代碼中對cudeMemPrefetchAsync的調用返回10(cuda錯誤無效設備),而不是0.該設置是運行Windows 10並帶有NVidia GTX 1080 GPU和板載Intel HD Graphics 530的Alienware 17筆記本電腦。使用驅動程序來自NVidia(移動驅動程序)的376.19)。GTX 1080(Pascal)上的cudaMemPrefetchAsync錯誤?

我編譯了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); 
} 
+0

只是爲了確保 - 只有在調用'cudaMemAttachGlobal'調用之後,您纔會收到無效的設備錯誤,對嗎? – einpoklum

回答

1

有知道錯誤由NVIDIA員工爲Windows系統環境確認(見本post鈕,我

在另一方面,有報道稱,類似的代碼你在Linux下細的工作如此,或與Maxwell卡

我確實有和你一樣的issue,但到現在還沒有解決方案,甚至使用CUDA 9.0 RC。我的建議是現在使用常規內存方法,因爲有超過一年的報告,但沒有修復。