CUDA 新版本 Visual Studio 和 CUDA 兼容性的小問題


▶ 升級到 Visual Studio 2017 和 CUDA 9.1 之后,直接編譯以前的 CUDA C 程序出現了如下報錯:

1 嚴重性    代碼    說明    項目    文件    行    禁止顯示狀態
2 錯誤(活動)    E0029    應輸入表達式    cudaProject    d:\Code\CUDA\cudaProject\cudaProject\kernel.cu    116    
3 錯誤(活動)    E0029    應輸入表達式    cudaProject    d:\Code\CUDA\cudaProject\cudaProject\kernel.cu    118    
4 錯誤    MSB3721    命令“"D:\Program\CUDA9.1\bin\nvcc.exe" -gencode=arch=compute_30,code=\"sm_30,compute_30\" --use-local-env --cl-version 2017 -ccbin "D:\Program\VisualStudio2017\VC\Tools\MSVC\14.13.26128\bin\HostX86\x64" -x cu  -ID:\Program\CUDA9.1\include -ID:\Program\CUDA9.1\include  -G   --keep-dir x64\Debug -maxrregcount=0  --machine 64 --compile -cudart static  -g   -DWIN32 -DWIN64 -D_DEBUG -D_CONSOLE -D_MBCS -Xcompiler "/EHsc /W3 /nologo /Od /FS /Zi /RTC1 /MDd " -o x64\Debug\kernel.cu.obj "D:\Code\CUDA\cudaProject\cudaProject\kernel.cu"”已退出,返回代碼為 2。    cudaProject    D:\Program\VisualStudio2017\Common7\IDE\VC\VCTargets\BuildCustomizations\CUDA 9.1.targets    707    
5 錯誤    C1189    #error:  -- unsupported Microsoft Visual Studio version! Only the versions 2012, 2013, 2015 and 2017 are supported!    cudaProject    d:\program\cuda9.1\include\crt\host_config.h    135    

● 那兩個“應輸入表達式”是讀不了 <<< 和 >>> 操作符;

● 最后那個錯很直接,在 host_config.h 中有下列對 Visual Studio 的版本篩選,Visual Studio 2015 (v140) 的 _MSC_VER 等於 1900

 1 #if defined(__CUDACC__)
 2 
 3 ...
 4 
 5 #if defined(_WIN32)
 6 
 7 #if _MSC_VER < 1600 || _MSC_VER > 1911
 8 
 9 #error -- unsupported Microsoft Visual Studio version! Only the versions 2012, 2013, 2015 and 2017 are supported!
10 
11 #elif _MSC_VER == 1600 /* _MSC_VERION == 1600 */
12 
13 #pragma message("support for Microsoft Visual Studio 2010 has been deprecated!")
14 
15 #endif /* _MSC_VER < 1600 || _MSC_VER > 1800 || _MSC_VERSION == 1600 */
16 
17 #endif /* _WIN32 */
18 
19 ...
20 
21 #endif /* __CUDACC__ */

 

● 經指點(http://tieba.baidu.com/p/5476899594),把平台的版本從 Visual Studio 2017 (v141) 降到 Visual Studio 2015 (v140) 就編譯通過了。

  

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM