Delen via


BuildMklDnn VS 2017 instellen

Een gecompileerde MKL-DNN 0.14 maken voor CNTK

Als u de MKL-DNN 0.14 voor CNTK zelf wilt bouwen, volgt u deze instructies. De gecompileerde MKL-DNN-versie bevindt zich in c:\local\mklml-mkldnn-0.14

In de volgende stappen wordt ervan uitgegaan dat de MKL-DNN-bronnen zijn uitgepakt naar de map c:\local\src\mkl-dnn-0.14. In de onderstaande instructies worden de MKL-DNN-bibliotheken en headerbestanden in de map c:\local\mklml-mkldnn-0.14gemaakt. Als deze locatie in uw geval verschilt, past u de onderstaande stappen aan zodat deze overeenkomt met uw mapstructuur.

Houd er rekening mee dat MKL-DNN-headers en -bibliotheken worden opgeslagen op dezelfde locatie als MKLML om de installatie te simpilificeren, omdat hun bestandsnamen verschillen. mkl_dnn* bestanden zijn voor dnn-functies in MKL die niet open source, terwijl mkldnn*-bestanden zijn gebouwd op basis van open source MKL-DNN.

Er zijn twee manieren om de CNTK MKL-DNN-bibliotheek te bouwen, hetzij via een batchbestand of handmatig.

Bouwen via een batchbestand

In de map Tools\devInstall\Windows vindt u het batchbestand buildMklDnnVS17.bat. Dit batchbestand heeft twee parameters nodig om de CNTK MKL-DNN-bibliotheek te bouwen. De eerste parameter is de map van de MKL-DNN-bronbestanden die u hierboven hebt uitgepakt. De tweede parameter is de doelmap voor de gemaakte MKL-DNN-bibliotheek. In ons geval volgt u deze stappen van een standaard Windows opdrachtprompt:

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

Stel de omgevingsvariabele in MKL_PATH op de MKL-DNN-locatie (dit is de tweede parameter in de bovenstaande opdrachtaanroep, niet de locatie van de bronnen!

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

Handmatige buildstappen voor een CNTK MKL-DNN-bibliotheek

Notitie

Als VS2017INSTALLDIR de omgevingsvariabele niet is ingesteld door het Visual Studio-installatieprogramma, stelt u deze handmatig in. De exacte installatiemap is afhankelijk van zowel de versie (2017 in dit geval) als het aanbieden (Community, Enterprise, enzovoort) van Visual Studio, volgens het volgende patroon: C:\Program Files (x86)\Microsoft Visual Studio\<version>\<offering>

Voor Visual Studio Enterprise-editie 2017 voert u het volgende uit:

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

Voer voor Visual Studio communityversie 2017 de volgende opdracht uit:

setx VS2017INSTALLDIR "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community"
  1. Start een 64-bits Visual Studio 2017-ontwikkelomgeving. De handigste manier is om het batchbestand vcvarsall.bat uit te voeren in de map Visual Studio met de vereiste parameters uit een standaard Windows-opdrachtshell:
"%VS2017INSTALLDIR%\VC\Auxiliary\Build\vcvarsall.bat" amd64 --vcvars_ver=14.11

Als u dit batchbestand niet op uw systeem kunt vinden, gaat u opnieuw naar de installatie van VS2017 en controleert u of u de optie VC++ versie 15.4 v14.11 toolset hebt geselecteerd. 2. Maak een buildmap en stel MKLROOT in voor MKL-DNN cmake om MKLML-bibliotheek te zoeken:

cd c:\local\src\mkl-dnn-0.14
set MKLROOT=c:\local\mklml-mkldnn-0.14
  1. Maak een release-build met CMake en kopieer ingebouwde binaire bestanden naar MKL_PATH (de gebruiker kan de release vervangen door foutopsporing om een build voor foutopsporing te maken):
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