Condividi tramite


Configurare BuildMklDnn VS 2017

Creazione di un MKL-DNN compilato 0.14 per CNTK

Se si vuole compilare MKL-DNN 0.14 per CNTK autonomamente, seguire queste istruzioni. La versione MKL-DNN compilata si trova in c:\local\mklml-mkldnn-0.14

I passaggi seguenti presuppongono che le origini MKL-DNN siano state decompresse nella directory c:\local\src\mkl-dnn-0.14. Le istruzioni seguenti creeranno le librerie MKL-DNN e i file di intestazione nella directory c:\local\mklml-mkldnn-0.14. Se questo percorso è diverso nel caso in questione, adattare i passaggi seguenti in modo che corrispondano alla struttura di directory.

Si noti che le intestazioni e le librerie MKL-DNN vengono archiviate nella stessa posizione di MKLML per simpilificare la configurazione, poiché i nomi dei file sono diversi. mkl_dnn* file sono destinati alle funzioni dnn in MKL che non è open source, mentre i file mkldnn* vengono compilati da open source MKL-DNN.

Esistono due modi per compilare la libreria CNTK MKL-DNN, tramite un file batch o manualmente.

Compilazione tramite un file batch

Nella directory Tools\devInstall\Windows si trova il file buildMklDnnVS17.batbatch . Questo file batch accetta due parametri per compilare la libreria CNTK MKL-DNN. Il primo parametro è la directory dei file di origine MKL-DNN decompressi, il secondo parametro è la directory di destinazione per la libreria MKL-DNN creata. In questo caso, seguire questa procedura da un prompt dei comandi di Windows standard:

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

Impostare la variabile MKL_PATH di ambiente sul percorso MKL-DNN (questo è il secondo parametro nella chiamata al comando precedente, non il percorso delle origini!

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

Passaggi di compilazione manuali per una libreria MKL-DNN CNTK

Nota

Se VS2017INSTALLDIR la variabile di ambiente non è stata impostata dal programma di installazione di Visual Studio, impostarla manualmente. La directory di installazione esatta dipende sia dalla versione (2017 in questo caso) che dall'offerta (Community, Enterprise e così via) di Visual Studio, in base al modello seguente: C:\Program Files (x86)\Microsoft Visual Studio\<version>\<offering>.

Per Visual Studio edizione Enterprise 2017, eseguire:

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

Per Visual Studio edizione Community 2017, eseguire:

setx VS2017INSTALLDIR "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community"
  1. Avviare un ambiente di sviluppo a 64 bit Visual Studio 2017. Il modo più pratico consiste nell'eseguire il file vcvarsall.bat batch nella directory Visual Studio con i parametri necessari da una shell dei comandi standard di Windows:
"%VS2017INSTALLDIR%\VC\Auxiliary\Build\vcvarsall.bat" amd64 --vcvars_ver=14.11

Se non è possibile trovare questo file batch nel sistema, rivedere l'installazione di VS2017 e assicurarsi di avere selezionato l'opzione "VC++ versione 15.4 v14.11". 2. Creare una directory di compilazione e impostare MKLROOT per MKL-DNN cmake per individuare la libreria MKLML:

cd c:\local\src\mkl-dnn-0.14
set MKLROOT=c:\local\mklml-mkldnn-0.14
  1. Creare una build di versione usando CMake e copiare il file binario compilato in MKL_PATH (l'utente può sostituire il rilascio con il debug per creare una compilazione di debug):
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