Configurer BuildMklDnn VS 2017
Création d’un MKL-DNN compilé 0.14 pour CNTK
Si vous souhaitez générer le MKL-DNN 0.14 pour CNTK vous-même, suivez ces instructions. La version MKL-DNN compilée se trouve dans c:\local\mklml-mkldnn-0.14
- Installez CMake à partir de cmake.org.
- Télécharger et décompresser le fichier binaire MKLML à partir de https://github.com/intel/mkl-dnn/releases/download/v0.14/mklml_win_2018.0.3.20180406.zip
c:\local\mklml-mkldnn-0.14
- Téléchargez et décompressez les sources MKL-DNN à partir de https://github.com/01org/mkl-dnn/archive/v0.14.zip.
Les étapes suivantes supposent que les sources MKL-DNN ont été décompressées dans le répertoire c:\local\src\mkl-dnn-0.14
. Les instructions ci-dessous créent les bibliothèques MKL-DNN et les fichiers d’en-tête dans le répertoire c:\local\mklml-mkldnn-0.14
. Si cet emplacement diffère dans votre cas, adaptez les étapes ci-dessous pour qu’elle corresponde à votre structure de répertoires.
Notez que les en-têtes et bibliothèques MKL-DNN sont stockés au même emplacement que MKLML pour simpiler la configuration, car leurs noms de fichiers sont différents. mkl_dnn* fichiers sont destinés aux fonctions dnn dans MKL, ce qui n’est pas open source, tandis que les fichiers mkldnn* sont générés à partir de open source MKL-DNN.
Il existe deux façons de générer la bibliothèque MKL-DNN CNTK, par le biais d’un fichier de commandes ou manuellement.
Génération par le biais d’un fichier de commandes
Dans le répertoire Tools\devInstall\Windows
, vous trouvez le fichier buildMklDnnVS17.bat
de commandes . Ce fichier de commandes prend deux paramètres pour générer la bibliothèque MKL-DNN CNTK. Le premier paramètre est le répertoire des fichiers sources MKL-DNN que vous avez décompressés ci-dessus, le deuxième paramètre est le répertoire de destination de la bibliothèque MKL-DNN créée. Dans notre cas, suivez ces étapes à partir d’une invite de commandes standard Windows :
c:
cd \repos\cntk\Tools\devInstall\Windows
buildMklDnnVS17 C:\local\src\mkl-dnn-0.14 C:\local\mklml-mkldnn-0.14
Définissez la variable MKL_PATH
d’environnement sur l’emplacement MKL-DNN (il s’agit du deuxième paramètre de l’appel de commande ci-dessus, et non de l’emplacement des sources!
setx MKL_PATH c:\local\mklml-mkldnn-0.14
Étapes de génération manuelles pour une bibliothèque MKL-DNN CNTK
Notes
Si VS2017INSTALLDIR
la variable d’environnement n’a pas été définie par le programme d’installation Visual Studio, définissez-la manuellement. Le répertoire d’installation exact dépend de la version (2017 dans ce cas) et de l’offre (Community, Enterprise, etc.) de Visual Studio, selon le modèle suivant : C:\Program Files (x86)\Microsoft Visual Studio\<version>\<offering>
Pour Visual Studio édition Enterprise 2017, exécutez :
setx VS2017INSTALLDIR "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise"
Pour Visual Studio édition Community 2017, exécutez :
setx VS2017INSTALLDIR "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community"
- Lancez un environnement de développement 64 bits Visual Studio 2017. Le moyen le plus pratique consiste à exécuter le fichier
vcvarsall.bat
batch dans le répertoire Visual Studio avec les paramètres requis à partir d’un interpréteur de commandes Windows standard :
"%VS2017INSTALLDIR%\VC\Auxiliary\Build\vcvarsall.bat" amd64 --vcvars_ver=14.11
Si vous ne trouvez pas ce fichier batch sur votre système, revisitez l’installation de VS2017 et vérifiez que l’option « VC++ version 15.4 v14.11 » est sélectionnée. 2. Créez un répertoire de build et définissez MKLROOT pour MKL-DNN cmake pour localiser la bibliothèque MKLML :
cd c:\local\src\mkl-dnn-0.14
set MKLROOT=c:\local\mklml-mkldnn-0.14
- Créez une build de mise en production à l’aide de CMake et copiez le fichier binaire généré dans MKL_PATH (l’utilisateur peut remplacer la mise en production par le débogage pour créer une build de débogage) :
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