用户自定义的MKL库的创建

    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的文档中中的说明, 这一页介绍了makefile的参数。


    但有一个问题令人费解:上述文档中说make命令的target参数可以是libuni,dylibuni,help这三个,而后边举例的时候target参数却是ia32?而我实际使用的情况来看,用libuni和dylibuni是会出错的,32位下的target应该是ia32,而64位下的target应该是intel64才对。不知道是文档的错误还是怎么回事?

你可能感兴趣的:(文档,平台,makefile)