Intel的数学函数库MKL中包含了很多科学计算中需要用到的数学函数,如方程求解,矢量运算,矩阵运算等等。但我们经常为了应用MKL中的很少的几个库函数而不得不把庞大MKL的动态库添加到应用软件的发布包里面,而且mkl中的动态库相互之间的调用关系比较复杂,不小心还会漏掉几个而造成麻烦。
实际上,在MKL中提供了自定义MKL库的方法,可以仅把需要用到的几个函数生成一个独特的动态库文件,发布时可以仅把这个库文件包含进去就可以了,它的运行将不需要依赖Intel的库文件,而且文件的体积也会小很多。具体方法是:
1. 在Intel MKL安装目录下的tools/builder子目录,该目录中有个makefile文件,在这个目录下执行make命令就可以生成相应的自定义库文件。
2. 当然make命令需要加一些参数,需要导出的函数可以写在一个文本文件中,每行定义一个函数名,如
dgetrf_
dgetrs_
daxpy_
在make命令生成时加上export=[filename]; 另外make命令需要选择生成文件的应用平台,是32位或是64位的。

本文介绍如何创建用户自定义的Intel MKL库,以避免在项目中引入整个庞大的MKL动态库。通过MKL的tools/builder目录下的makefile,结合特定参数和函数列表文本文件,可以生成仅包含所需函数的动态库,减少发布包大小且不依赖Intel库文件。在执行make命令时需指定export文件和应用平台(如ia32或intel64),但文档中关于target参数的描述可能存在混淆,需要进一步澄清。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



