Configurar o BuildMklDnn VS 2017
Criando um MKL-DNN 0.14 compilado para CNTK
Se você quiser criar o MKL-DNN 0.14 para CNTK você mesmo, siga estas instruções. A versão MKL-DNN compilada estará localizada em c:\local\mklml-mkldnn-0.14
- Instale o CMake do cmake.org.
- Baixar e desempacotar o binário MKLML de https://github.com/intel/mkl-dnn/releases/download/v0.14/mklml_win_2018.0.3.20180406.zip para
c:\local\mklml-mkldnn-0.14
- Baixe e desempacote as fontes MKL-DNN de https://github.com/01org/mkl-dnn/archive/v0.14.zip.
As etapas a seguir pressupõem que as fontes MKL-DNN foram descompactadas para o diretório c:\local\src\mkl-dnn-0.14
. As instruções abaixo criarão as bibliotecas MKL-DNN e os arquivos de cabeçalho no diretório c:\local\mklml-mkldnn-0.14
. Se esse local for diferente no seu caso, adapte as etapas abaixo para corresponder à sua estrutura de diretório.
Observe que os cabeçalhos e bibliotecas MKL-DNN são armazenados no mesmo local que o MKLML para simpilificar a instalação, uma vez que seus nomes de arquivo são diferentes. mkl_dnn* arquivos são para funções dnn no MKL que não é código aberto, enquanto arquivos mkldnn* são criados a partir de código aberto MKL-DNN.
Há duas maneiras de criar a CNTK biblioteca MKL-DNN, seja por meio de um arquivo em lote ou manualmente.
Criando por meio de um arquivo em lote
No diretório Tools\devInstall\Windows
, você encontra o arquivo buildMklDnnVS17.bat
em lote. Esse arquivo em lote usa dois parâmetros para criar a biblioteca MKL-DNN CNTK. O primeiro parâmetro é o diretório dos arquivos de origem MKL-DNN que você desempacotou acima, o segundo parâmetro é o diretório de destino da biblioteca MKL-DNN criada. Em nosso caso, siga estas etapas de um prompt de comando Windows padrão:
c:
cd \repos\cntk\Tools\devInstall\Windows
buildMklDnnVS17 C:\local\src\mkl-dnn-0.14 C:\local\mklml-mkldnn-0.14
Defina a variável MKL_PATH
de ambiente para o local MKL-DNN (este é o segundo parâmetro na invocação de comando acima, não o local de origem!
setx MKL_PATH c:\local\mklml-mkldnn-0.14
Etapas de build manuais para uma biblioteca MKL-DNN CNTK
Observação
Se VS2017INSTALLDIR
a variável de ambiente não foi definida pelo instalador Visual Studio, defina-a manualmente. O diretório de instalação exato depende da versão (2017 nesse caso) e da oferta (Community, Enterprise etc) de Visual Studio, de acordo com o seguinte padrão: C:\Program Files (x86)\Microsoft Visual Studio\<version>\<offering>
.
Para Visual Studio edição Enterprise de 2017, execute:
setx VS2017INSTALLDIR "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise"
Para Visual Studio edição Community de 2017, execute:
setx VS2017INSTALLDIR "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community"
- Inicie um ambiente de desenvolvimento de 64 bits Visual Studio 2017. A maneira mais conveniente é executar o arquivo
vcvarsall.bat
em lote no diretório Visual Studio com os parâmetros necessários de um shell de comando padrão do Windows:
"%VS2017INSTALLDIR%\VC\Auxiliary\Build\vcvarsall.bat" amd64 --vcvars_ver=14.11
Se você não conseguir encontrar esse arquivo em lote em seu sistema, reveja a instalação do VS2017 e verifique se você tem a opção "VC++ versão 15.4 v14.11 toolset" selecionada. 2. Crie um diretório de build e defina o cmake MKLROOT para MKL-DNN para localizar a biblioteca MKLML:
cd c:\local\src\mkl-dnn-0.14
set MKLROOT=c:\local\mklml-mkldnn-0.14
- Crie um build de versão usando CMake e copie um binário criado para MKL_PATH (o usuário pode substituir a versão por depuração para criar um build de depuração):
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