Настройка BuildMklDnn VS 2017
Создание скомпилированного MKL-DNN 0.14 для CNTK
Если вы хотите создать MKL-DNN 0.14 для CNTK самостоятельно, следуйте этим инструкциям. Скомпилированная версия MKL-DNN будет находиться в c:\local\mklml-mkldnn-0.14
- Установите CMake из cmake.org.
- Скачивание и распаковка двоичного файла MKLML в https://github.com/intel/mkl-dnn/releases/download/v0.14/mklml_win_2018.0.3.20180406.zip папку
c:\local\mklml-mkldnn-0.14
- Скачайте и распакуйте источники MKL-DNN из https://github.com/01org/mkl-dnn/archive/v0.14.zip.
В следующих шагах предполагается, что источники MKL-DNN были распакованы в каталог c:\local\src\mkl-dnn-0.14
. Приведенные ниже инструкции создают библиотеки MKL-DNN и файлы заголовков в каталоге c:\local\mklml-mkldnn-0.14
. Если это расположение отличается в вашем случае, адаптируйте приведенные ниже действия в соответствии со структурой каталогов.
Обратите внимание, что заголовки и библиотеки MKL-DNN хранятся в том же расположении, что и MKLML для имитации установки, так как их имена файлов отличаются. файлы mkl_dnn* предназначены для функций dnn в MKL, которые не открытый код, а файлы mkldnn* создаются на основе открытый код MKL-DNN.
Существует два способа создания библиотеки CNTK MKL-DNN с помощью пакетного файла или вручную.
Сборка с помощью пакетного файла
В каталоге Tools\devInstall\Windows
вы найдете пакетный файл buildMklDnnVS17.bat
. Этот пакетный файл принимает два параметра для сборки библиотеки CNTK MKL-DNN. Первый параметр — это каталог исходных файлов MKL-DNN, которые вы распаковали выше, второй параметр является конечным каталогом для созданной библиотеки MKL-DNN. В нашем случае выполните следующие действия из стандартной командной строки Windows:
c:
cd \repos\cntk\Tools\devInstall\Windows
buildMklDnnVS17 C:\local\src\mkl-dnn-0.14 C:\local\mklml-mkldnn-0.14
Задайте для переменной MKL_PATH
среды расположение MKL-DNN (это второй параметр в вызове команды выше, а не расположение источников!
setx MKL_PATH c:\local\mklml-mkldnn-0.14
Действия по сборке вручную для библиотеки CNTK MKL-DNN
Примечание
Если VS2017INSTALLDIR
переменная среды не была задана установщиком Visual Studio, установите ее вручную. Точный каталог установки зависит от версии (2017 в данном случае) и предложения (Community, Enterprise и т. д.) Visual Studio в соответствии со следующим шаблоном: C:\Program Files (x86)\Microsoft Visual Studio\<version>\<offering>
Для выпуска Visual Studio 2017 Enterprise выполните следующую команду:
setx VS2017INSTALLDIR "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise"
Для выпуска Community Visual Studio 2017 выполните следующую команду:
setx VS2017INSTALLDIR "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community"
- Запустите 64-разрядную среду разработки Visual Studio 2017. Самый удобный способ — выполнить пакетный файл
vcvarsall.bat
в каталоге Visual Studio с необходимыми параметрами из стандартной командной оболочки Windows:
"%VS2017INSTALLDIR%\VC\Auxiliary\Build\vcvarsall.bat" amd64 --vcvars_ver=14.11
Если вы не можете найти этот пакетный файл в системе, вернитесь к установке VS2017 и убедитесь, что выбран параметр "VC++ версии 15.4 версии 14.11". 2. Создайте каталог сборки и задайте cmake MKL-DNN для mkL-DNN, чтобы найти библиотеку MKLML:
cd c:\local\src\mkl-dnn-0.14
set MKLROOT=c:\local\mklml-mkldnn-0.14
- Создайте сборку выпуска с помощью CMake и скопируйте встроенный двоичный файл в MKL_PATH (пользователь может заменить выпуск на отладку для создания отладочной сборки):
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