Konfigurowanie kompilacjiMklDnn VS 2017

Tworzenie skompilowanego serwera MKL-DNN 0.14 dla CNTK

Jeśli chcesz utworzyć serwer MKL-DNN 0.14 dla CNTK siebie, postępuj zgodnie z tymi instrukcjami. Skompilowana wersja nazwy MKL-DNN będzie znajdować się w lokalizacji c:\local\mklml-mkldnn-0.14

W poniższych krokach założono, że źródła MKL-DNN zostały rozpakowane w katalogu c:\local\src\mkl-dnn-0.14. Poniższe instrukcje spowodują utworzenie bibliotek MKL-DNN i plików nagłówkowych w katalogu c:\local\mklml-mkldnn-0.14. Jeśli ta lokalizacja różni się w Twoim przypadku, dostosuj poniższe kroki, aby dopasować je do struktury katalogów.

Należy pamiętać, że nagłówki i biblioteki MKL-DNN są przechowywane w tej samej lokalizacji co MKLML w celu sympilowania konfiguracji, ponieważ ich nazwy plików są różne. pliki mkl_dnn* są przeznaczone dla funkcji dnn w MKL, które nie są open source, podczas gdy pliki mkldnn* są tworzone z open source MKL-DNN.

Istnieją dwa sposoby tworzenia biblioteki CNTK MKL-DNN za pośrednictwem pliku wsadowego lub ręcznie.

Kompilowanie za pomocą pliku wsadowego

W katalogu Tools\devInstall\Windows znajduje się plik buildMklDnnVS17.batwsadowy . Ten plik wsadowy przyjmuje dwa parametry do skompilowania biblioteki CNTK MKL-DNN. Pierwszy parametr to katalog plików źródłowych MKL-DNN rozpakowanych powyżej, drugi parametr jest katalogem docelowym dla utworzonej biblioteki MKL-DNN. W naszym przypadku wykonaj następujące kroki w standardowym wierszu polecenia Windows:

c:
cd \repos\cntk\Tools\devInstall\Windows
buildMklDnnVS17 C:\local\src\mkl-dnn-0.14 C:\local\mklml-mkldnn-0.14

Ustaw zmienną środowiskową MKL_PATH na lokalizację MKL-DNN (jest to drugi parametr w wywołaniu polecenia powyżej, a nie lokalizacja źródeł!

setx MKL_PATH c:\local\mklml-mkldnn-0.14

Ręczne kroki kompilacji dla biblioteki CNTK MKL-DNN

Uwaga

Jeśli VS2017INSTALLDIR zmienna środowiskowa nie została ustawiona przez instalatora Visual Studio, ustaw ją ręcznie. Dokładny katalog instalacyjny zależy od wersji (w tym przypadku 2017) i oferty (Community, Enterprise itp.) Visual Studio, zgodnie z następującym wzorcem: C:\Program Files (x86)\Microsoft Visual Studio\<version>\<offering>.

W przypadku wersji Visual Studio 2017 Enterprise uruchom polecenie:

setx VS2017INSTALLDIR "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise"

W przypadku wersji Visual Studio 2017 Community uruchom polecenie:

setx VS2017INSTALLDIR "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community"
  1. Uruchom 64-bitowe środowisko deweloperskie Visual Studio 2017. Najwygodniejszym sposobem jest wykonanie pliku vcvarsall.bat wsadowego w katalogu Visual Studio z wymaganymi parametrami w standardowej powłoce poleceń systemu Windows:
"%VS2017INSTALLDIR%\VC\Auxiliary\Build\vcvarsall.bat" amd64 --vcvars_ver=14.11

Jeśli nie możesz znaleźć tego pliku wsadowego w systemie, wróć do instalacji programu VS2017 i upewnij się, że wybrano opcję "VC++ w wersji 15.4 v14.11". 2. Utwórz katalog kompilacji i ustaw MKLROOT dla MKL-DNN cmake, aby zlokalizować bibliotekę MKLML:

cd c:\local\src\mkl-dnn-0.14
set MKLROOT=c:\local\mklml-mkldnn-0.14
  1. Utwórz kompilację wydania przy użyciu narzędzia CMake i skopiuj skompilowany plik binarny do MKL_PATH (użytkownik może zastąpić wydanie debugowaniem w celu utworzenia kompilacji debugowania):
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