安裝程式 BuildMklDnn VS 2017
為 CNTK 建立編譯的 MKL-DNN 0.14
如果您想要自行建置 MKL-DNN 0.14 for CNTK,請遵循這些指示。 編譯的 MKL-DNN 版本將會位於 c:\local\mklml-mkldnn-0.14
- 從 cmake.org安裝 CMake。
- 從 下載 MKLML 二進位檔 https://github.com/intel/mkl-dnn/releases/download/v0.14/mklml_win_2018.0.3.20180406.zip 並將其解壓縮至
c:\local\mklml-mkldnn-0.14
- 從 https://github.com/01org/mkl-dnn/archive/v0.14.zip 下載並解壓縮 MKL-DNN 來源。
下列步驟假設 MKL-DNN 來源已解壓縮至目錄 c:\local\src\mkl-dnn-0.14
。 下列指示會在 目錄中 c:\local\mklml-mkldnn-0.14
建立 MKL-DNN 程式庫和標頭檔。 如果您的案例中此位置不同,請調整下列步驟以符合您的目錄結構。
請注意,MKL-DNN 標頭和程式庫會儲存在與 MKLML 相同的位置,因為其檔案名不同。 mkl_dnn* 檔案適用于 MKL 中不是開放原始碼的 dnn 函式,而 mkldnn* 檔案是從 開放原始碼 MKL-DNN 建置。
有兩種方式可以透過批次檔或手動建置CNTK MKL-DNN 程式庫。
透過批次檔建置
在目錄中 Tools\devInstall\Windows
,您找到批次檔 buildMklDnnVS17.bat
。 此批次檔會採用兩個參數來建置CNTK MKL-DNN 程式庫。 第一個參數是您上面解壓縮的 MKL-DNN 來源檔案目錄,第二個參數是所建立 MKL-DNN 程式庫的目的地目錄。 在我們的案例中,請遵循標準Windows命令提示字元中的下列步驟:
c:
cd \repos\cntk\Tools\devInstall\Windows
buildMklDnnVS17 C:\local\src\mkl-dnn-0.14 C:\local\mklml-mkldnn-0.14
將環境變數 MKL_PATH
設定為 MKL-DNN 位置, (這是上述命令調用中的第二個參數,而不是來源位置!
setx MKL_PATH c:\local\mklml-mkldnn-0.14
CNTK MKL-DNN 程式庫的手動建置步驟
注意
如果 VS2017INSTALLDIR
Visual Studio安裝程式未設定環境變數,請手動設定。 確切的安裝目錄取決於 2017 (2017版) ,並根據下列模式提供 (Community、Enterprise等 Visual Studio) : C:\Program Files (x86)\Microsoft Visual Studio\<version>\<offering>
。
針對Visual Studio 2017 Enterprise版,請執行:
setx VS2017INSTALLDIR "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise"
針對Visual Studio 2017 Community版,請執行:
setx VS2017INSTALLDIR "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community"
- 啟動 64 位Visual Studio 2017 開發環境。 最方便的方式是使用標準 Windows 命令殼層中的必要參數,在 Visual Studio 目錄中執行批次檔
vcvarsall.bat
:
"%VS2017INSTALLDIR%\VC\Auxiliary\Build\vcvarsall.bat" amd64 --vcvars_ver=14.11
如果您在系統上找不到此批次檔,請重新流覽 VS2017 的安裝,並確定您已選取 [VC++ 15.4 版 v14.11 工具組] 選項。 2.建立組建目錄,並設定 MKL-DNN Cmake 的 MKLROOT 以找出 MKLML 程式庫:
cd c:\local\src\mkl-dnn-0.14
set MKLROOT=c:\local\mklml-mkldnn-0.14
- 使用 CMake 建立發行組建,並將建置的二進位檔複製到MKL_PATH (使用者可能會以偵錯取代發行,以建立偵錯組建) :
cd cmake
cmake .. -G "Visual Studio 15" -DCMAKE_BUILD_TYPE=Release
msbuild "Intel(R) MKL-DNN.sln" /t:Rebuild /p:Configuration=Release /m
copy ..\include\* c:\local\mklml-mkldnn-0.14\include
copy src\Release\*.lib c:\local\mklml-mkldnn-0.14\lib
copy src\Release\*.dll c:\local\mklml-mkldnn-0.14\lib