你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
安装程序 BuildMklDnn VS 2017
为 CNTK 创建编译的 MKL-DNN 0.14
如果要自行为CNTK生成 MKL-DNN 0.14,请按照以下说明进行操作。 编译的 MKL-DNN 版本将位于 c:\local\mklml-mkldnn-0.14
- 从 cmake.org 安装 CMake。
- 从中 https://github.com/intel/mkl-dnn/releases/download/v0.14/mklml_win_2018.0.3.20180406.zip 下载和解压缩 MKLML 二进制文件
c:\local\mklml-mkldnn-0.14
- 从 https://github.com/01org/mkl-dnn/archive/v0.14.zip中下载并解压缩 MKL-DNN 源。
以下步骤假定 MKL-DNN 源已解压缩到目录 c:\local\src\mkl-dnn-0.14
。 下面的说明将在目录中 c:\local\mklml-mkldnn-0.14
创建 MKL-DNN 库和头文件。 如果此位置在案例中有所不同,请调整以下步骤以匹配目录结构。
请注意,MKL-DNN 标头和库存储在与 MKLML 相同的位置以简化设置,因为它们的文件名不同。 mkl_dnn* 文件适用于 MKL 中未开放源代码的 dnn 函数,而 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 ( 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"
对于 Visual Studio 2017 Community 版本,请运行:
setx VS2017INSTALLDIR "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community"
- 启动 64 位Visual Studio 2017 开发环境。 最简单的方法是使用标准 windows 命令行界面中的所需参数在Visual Studio目录中执行批处理文件
vcvarsall.bat
:
"%VS2017INSTALLDIR%\VC\Auxiliary\Build\vcvarsall.bat" amd64 --vcvars_ver=14.11
如果在系统上找不到此批处理文件,请重新访问 VS2017 的安装,并确保已选择“VC++版本 15.4 v14.11 工具集”选项。 2.创建生成目录,并将 MKLROOT for MKL-DNN cmake 设置为查找 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