用户自定义的MKL库的创建
2012-01-31 18:36
381 查看
Intel的数学函数库MKL中包含了很多科学计算中需要用到的数学函数,如方程求解,矢量运算,矩阵运算等等。但我们经常为了应用MKL中的很少的几个库函数而不得不把庞大MKL的动态库添加到应用软件的发布包里面,而且mkl中的动态库相互之间的调用关系比较复杂,不小心还会漏掉几个而造成麻烦。
实际上,在MKL中提供了自定义MKL库的方法,可以仅把需要用到的几个函数生成一个独特的动态库文件,发布时可以仅把这个库文件包含进去就可以了,它的运行将不需要依赖Intel的库文件,而且文件的体积也会小很多。具体方法是:
1. 在Intel MKL安装目录下的tools/builder子目录,该目录中有个makefile文件,在这个目录下执行make命令就可以生成相应的自定义库文件。
2. 当然make命令需要加一些参数,需要导出的函数可以写在一个文本文件中,每行定义一个函数名,如
在make命令生成时加上export=[filename]; 另外make命令需要选择生成文件的应用平台,是32位或是64位的。
具体命令参数可参考intel mkl的文档中中的说明,
这一页介绍了makefile的参数。
但有一个问题令人费解:上述文档中说make命令的target参数可以是libuni,dylibuni,help这三个,而后边举例的时候target参数却是ia32?而我实际使用的情况来看,用libuni和dylibuni是会出错的,32位下的target应该是ia32,而64位下的target应该是intel64才对。不知道是文档的错误还是怎么回事?
实际上,在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才对。不知道是文档的错误还是怎么回事?
相关文章推荐
- 在Myeclipse中创建自定义用户类库
- 选择字段,创建用户自定义的水晶报表
- 选择字段,创建用户自定义的水晶报表
- 【Android Training - UserInfo】记住登入用户的信息[Lesson 3 - 创建自定义的账户]
- Chapter 2 User Authentication, Authorization, and Security(7):创建和使用用户自定义服务器角色
- 在MyEclipse2017中创建用户自定义类库
- 在SQL中创建用户自定义拼音函数
- Chapter 2 User Authentication, Authorization, and Security(7):创建和使用用户自定义服务器角色
- MongoDB创建一个用户自定义角色
- ROS Navigation-----costmap_2d之创建自定义用户层
- Chapter 2 User Authentication, Authorization, and Security(7):创建和使用用户自定义服务器角色
- 用户创建自定义的参数ID
- 创建自定义用户登录 ( MVC 4 Razor)
- 29行代码搞定批量自定义创建用户,并生成日志
- 431.chapter3.创建表,约束和用户自定义类型
- WordPress创建对用户不可见的自定义栏目
- 【一步一步学习VBA】创建用户自定义类或者自定义类型
- java 用户自定义字段创建数据表
- 在Qsys中创建用户自定义IP
- 批量创建用户账号和自定义回收站