Configuração BuildMklDnn VS 2017
Criando um MKL-DNN 0.14 compilado para CNTK
Se quiser construir o MKL-DNN 0.14 para CNTK si mesmo, siga estas instruções. A versão compilada MKL-DNN será localizada em c:\local\mklml-mkldnn-0.14
- Instale o CMake a partir de cmake.org.
- Descarregue e desembale o binário MKLML de https://github.com/intel/mkl-dnn/releases/download/v0.14/mklml_win_2018.0.3.20180406.zip
c:\local\mklml-mkldnn-0.14
- Faça o download e desembale as fontes MKL-DNN de https://github.com/01org/mkl-dnn/archive/v0.14.zip.
As seguintes medidas pressupõem que as fontes MKL-DNN foram desapertadas para o diretório c:\local\src\mkl-dnn-0.14
. As instruções abaixo criarão as bibliotecas MKL-DNN e os ficheiros de cabeçalho no diretório c:\local\mklml-mkldnn-0.14
. Se esta localização diferir no seu caso, por favor adapte os passos abaixo para combinar com a sua estrutura de diretório.
Note que os cabeçalhos e bibliotecas MKL-DNN são armazenados no mesmo local que MKLML para simpilificar a configuração, uma vez que os seus nomes de ficheiros são diferentes. mkl_dnn* os ficheiros são para funções dnn em MKL que não é open source, enquanto os ficheiros mkldnn* são construídos a partir de open source MKL-DNN.
Existem duas formas de construir a biblioteca CNTK MKL-DNN, seja através de um ficheiro de lote ou manualmente.
Construindo através de um arquivo de lote
No diretório Tools\devInstall\Windows
encontra-se o ficheiro buildMklDnnVS17.bat
do lote. Este ficheiro de lote requer dois parâmetros para construir a CNTK biblioteca MKL-DNN. O primeiro parâmetro é o diretório dos ficheiros de origem MKL-DNN que desempacotou acima, o segundo parâmetro é o diretório de destino da biblioteca MKL-DNN criada. No nosso caso, siga estes passos a partir de um pedido de comando de Windows padrão:
c:
cd \repos\cntk\Tools\devInstall\Windows
buildMklDnnVS17 C:\local\src\mkl-dnn-0.14 C:\local\mklml-mkldnn-0.14
Desaprova a variável MKL_PATH
ambiente para a localização MKL-DNN (este é o segundo parâmetro na invocação de comando acima, não a localização das fontes!
setx MKL_PATH c:\local\mklml-mkldnn-0.14
Passos de construção manual para uma biblioteca CNTK MKL-DNN
Nota
Se VS2017INSTALLDIR
a variável ambiente não foi definida pelo instalador Visual Studio, coloque-a manualmente. O diretório de instalação exato depende tanto da versão (2017 neste caso) como da oferta (Comunidade, Empresa, 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 empresarial de 2017, corra:
setx VS2017INSTALLDIR "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise"
Para Visual Studio edição comunitária de 2017, corra:
setx VS2017INSTALLDIR "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community"
- Lançar um ambiente de desenvolvimento de 64 bits Visual Studio 2017. A forma mais conveniente é executar o ficheiro de lote no diretório
vcvarsall.bat
Visual Studio com os parâmetros necessários a partir de uma concha de comando padrão do windows:
"%VS2017INSTALLDIR%\VC\Auxiliary\Build\vcvarsall.bat" amd64 --vcvars_ver=14.11
Se não conseguir encontrar este ficheiro de lote no seu sistema, por favor reveja a instalação do VS2017 e certifique-se de que tem a opção de ferramentas 'VC++ versão 15.4 v14.11' selecionada. 2. Crie um diretório de construção e coloque a MKLROOT para a MKL-DNN cmake para localizar a biblioteca MKLML:
cd c:\local\src\mkl-dnn-0.14
set MKLROOT=c:\local\mklml-mkldnn-0.14
- Crie uma construção de desbloqueio utilizando o CMake e copie o binário construído para MKL_PATH (o utilizador pode substituir o desbloqueio por depuração para criar uma construção 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