Partilhar via


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

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