你当前正在访问 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

以下步骤假定 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"
  1. 启动 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
  1. 使用 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