Partager via


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

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.batde 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"
  1. 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
  1. 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