背景
要生成并运行用于深度学习的C++代码,必须有用于深度神经网络(英特尔MKL DNN)的英特尔数学内核库。不要使用预生成的库,因为缺少某些所需的文件。相反,从源代码构建库。
以下介绍了Windows和Linux平台上MKL-DNN的生成说明。
Windows MKL-DNN生成说明
要遵循这些说明,获取推荐的编译器和IDE:
- 微软Visual Studio 2017
- 英特尔C++编译程序18从英特尔并行工作室
这些指令假定使用Microsoft Visual Studio IDE和编译器。cmake也是必需的。
1.下载0.14版本的MKL-DNN源代码(可在
https://github.com/oneapi-src/oneDNN/archive/refs/tags/v0.14.zip
)这是文档中所示的MATLAB编码器版本所要求的(
//www.tianjin-qmedu.com/help/releases/R2019b/coder/ug/prerequisites-for-deep-learning-with-matlab-coder.html
).
2.将源代码解压到一个文件夹MKLDNN。从MKLDNN文件夹中,从命令提示符中,输入:
光盘剧本
。\ prepare_mkl.bat
光盘..
这将在MKLDNN\external\mklml_win_*\lib中创建这些库:
- libiomp5md.dll
- libiomp5md.lib
- mklml.dll
- mklml.lib
3.从MKLDNN文件夹中运行以下命令:
mkdir- p构建
光盘建筑
克马克-G“Visual Studio 15 2017 Win64”…
这将在/build中创建Visual Studio解决方案文件:
- 英特尔(R)MKL-DNN.sln
4.在Visual Studio中打开解决方案文件。设置
解决方案配置
下降到
释放
.点击
构建>构建解决方案
. 这将在MKLDNN\build\src\Release中创建以下库:
- mkldnn.dll
- mkldnn.lib
将这些库和步骤2中生成的库复制到C:\Program Files\mkl dnn\lib。
请注意,在Windows®操作系统上,仅当启用了8.3文件名时,路径中才允许使用特殊字符和空格。如果未启用,请将“C:\Program Files\mkl dnn\lib”替换为不包含空格的路径。有关8.3文件名的详细信息,请参阅Windows文档。
将以下文件从MKLDNN\include复制到C:\Program files\mkl dnn\include:
- mkldnn.h
- mkldnn.hpp
- mkldnn_debug.h
- mkldnn_类型.h
5.将MATLAB环境变量INTEL_MKLDNN设置为C:\Program Files\mkl dnn。在MATLAB命令窗口中,输入:
setenv (“INTEL_MKLDNN”,“C: \ Program Files \ mkl-dnn \”)
将C:\Program Files\mkl dnn\lib添加到PATH变量。
setenv (“路径”,[getenv(“INTEL_MKLDNN”)文件集“lib”pathsep getenv (“路径”)))
6.如果您还没有这样做,还应该为Windows设置环境变量。在Windows命令提示符中,输入:
设置路径=% %路径;C:\Program Files\mkl-dnn\
Linux MKL-DNN构建指令
要遵循这些说明,请获取推荐的编译器:
- GNUG++支持C++11万博1manbetx
Cmake也是必需的。
1.下载0.14版本的MKL-DNN源代码(可在
https://github.com/oneapi-src/oneDNN/archive/refs/tags/v0.14.tar.gz
)这是文档中所示的MATLAB编码器版本所要求的(
//www.tianjin-qmedu.com/help/releases/R2019b/coder/ug/prerequisites-for-deep-learning-with-matlab-coder.html
).
2.将源代码解压到一个文件夹MKLDNN。从MKLDNN文件夹中,从命令提示符中,输入:
光盘剧本
奇莫德+ x prepare_mkl.sh
/准备_mkl.sh
这将在MKLDNN/external/mklml_lnx_*/lib中创建这些库:
libiomp5.so
libmklml_intel.so。
3.从MKLDNN文件夹中运行以下命令:
mkdir- p构建
光盘建筑
克马克..
使
4.这将在MKLDNN/build/src下创建这些库:
- libmkldnn.so
- libmkldnn.so.0
- libmkldnn.so.0.14.0。
将这些库和步骤2中生成的库复制到/usr/local/mkl dnn/lib。
将以下文件从MKLDNN/include复制到/usr/local/mkl dnn/include:
- mkldnn.h
- mkldnn.hpp
- mkldnn_debug.h
- mkldnn_类型.h
5.将MATLAB环境变量INTEL_MKLDNN设置为/usr/local/mkl-dnn从MATLAB命令窗口,输入:
setenv (“INTEL_MKLDNN”,‘/usr/local/mkl dnn')
在PATH变量中添加/usr/local/mkl-dnn/lib:
setenv (“LD_LIBRARY_PATH”,[getenv(“INTEL_MKLDNN”)文件集“lib”pathsep getenv (“LD_LIBRARY_PATH”)));
如果您还没有这样做,那么还应该为Linux设置环境变量。在Linux终端中使用Linux语法将变量LD_LIBRARY_PATH设置为/usr/local/mkl dnn/lib,将环境变量INTEL_MKLDNN设置为/usr/local/mkl dnn。