nvcc fatal : Cannot find compiler 'cl.exe' in PATH
我在測試使用Matlab2018a並行gpu計算程式設計步驟,安裝從英偉達官網下載的 cuda_9.2.148_win10
開發環境是VS2017,勾選安裝 適用於桌面的 VC++ 2015.3 v14.00 (v140) 工具集
1.安裝結束後,我們在計算機上點右鍵,開啟屬性->高階系統設定->環境變數,可以看到系統中多了CUDA_PATH和CUDA_PATH_V9_0兩個環境變數。
新建環境變數配置
CUDA_SDK_PATH = C:\ProgramData\NVIDIA Corporation\CUDA Samples\v9.2
CUDA_LIB_PATH = %CUDA_PATH%\lib\x64
CUDA_BIN_PATH = %CUDA_PATH%\bin
CUDA_SDK_BIN_PATH = %CUDA_SDK_PATH%\bin\win64
CUDA_SDK_LIB_PATH = %CUDA_SDK_PATH%\common\lib\x64
開啟cmd
>set cuda
檢視配置效果
2.首先啟動cmd DOS命令視窗,預設進來的是c:\users\Admistrator>路徑,輸入 cd .. 兩次如下
C:\Users\HASEE>cd..
C:\Users>cd..
C:\>cd C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.2\extras\demo_suite
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.2\extras\demo_suite
分別輸入deviceQuery.exe 和 bandwidthTest.exe,執行結果,Rsult=PASS則說明通過。
>> setenv('Path','C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.2\bin')
>> ! nvcc -ptx VecAdd.cu %VecAdd.cu是使用者構建的一個GPU函式
nvcc fatal : Cannot find compiler 'cl.exe' in PATH
解決方法
>> mex -setup
已將 options 檔案 'C:\Users\HASEE\AppData\Roaming\MathWorks\MATLAB\R2018a\mex_C_win64.xml' 重新命名為 'C:\Users\HASEE\AppData\Roaming\MathWorks\MATLAB\R2018a\mex_C_win64_backup.xml'。
MEX 配置為使用 'Microsoft Visual C++ 2017 (C)' 以進行 C 語言編譯。
警告: MATLAB C 和 Fortran API 已更改,現可支援
包含 2^32-1 個以上元素的 MATLAB 變數。您需要
更新程式碼以利用新的 API。
您可以在以下網址找到更多的相關資訊:
https://www.mathworks.com/help/matlab/matlab_external/upgrading-mex-files-to-use-64-bit-api.html。
要選擇不同的語言,請從以下選項中選擇一種命令:
mex -setup C++
mex -setup FORTRAN
>>
將微軟VS安裝目錄例如 C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\amd64
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin
新增到環境變數 系統變數PATH中
以上路徑僅以我安裝的 Visual Studio 2017 為例,你可能需要自己找到cl.exe真正的路徑。
最後要確保英偉達開發工具 cuda_9.2.148_win10安裝完後必須手動配置新增環境變數!Matlab報錯變成了下面的內容。
c1xx: fatal error C1083: 無法開啟原始檔: “VecAdd.cu”: No such file or directory
VecAdd.cu