1. 程式人生 > >nvcc fatal : Cannot find compiler 'cl.exe' in PATH

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