TypechoJoeTheme

MetMan's Blog

网站页面

Intel MKL数学库使用辅助工具

MetMan博 主
2023-10-21
/
0 评论
/
102 阅读
/
413 个字
/
百度已收录
10/21
本文最后更新于 2023年10月21日,已超过 335天没有更新。如果文章内容或图片资源失效,请留言反馈,我会及时处理,谢谢!

Intel oneMKL(oneAPI Math Kernel Library)数学库在Intel CPU上经过精心优化,其性能比普通的Blas/Lapack好很多。如果追求计算性能,建议使用oenMKL数学库。

由于oneMKL支持以下特点使其编译链接选项复杂。

  • 多套编译器
  • 多种编程语言
  • 多种计算架构
  • 静态/动态库链接方式
  • 串行/多线程支持

如何获取正取的MKL库编译链接信息呢?

目前找到两种简单的方式,一种通过Intel官网网页工具,一种是MKL库自带的命令行工具。

网页辅助工具

Intel官方提供了一个网页帮助用户指定使用环境从而生成编译链接信息。

网页链接:https://www.intel.com/content/www/us/en/developer/tools/oneapi/onemkl-link-line-advisor.html

界面如下图所示:

其中选择框含义如下:

  • Select Intel@ product: 选择使用的MKL版本
  • Select OS: 选择使用的操作系统
  • Select programming language: 选择应用程序使用的编程语言,C/C++、Fortran、DPC++
  • Select compiler: 选择使用的编译器,对于Fortran应用,支持Intel Fortran Classic、Intel Fortran Compiler(两者区别见之前的文章)、PGI Fortran、GNU Fortran
  • Select architecture: 选择CPU架构平台64位还是32位
  • Select dynamic or static linking: 选择静态库链接还是动态库链接
  • Select interface layer: 传递给MKL函数的整型参数是32bit还是64bit
  • Select OpenMP library: 是否需要调用线程安全的MKL库
  • Link with Intel oneMKL libraries explicitly: 是否需要明确指定链接的MKL库,区别是可能多出了lmkl_intel_lp64 -lmkl_sequential -lmkl_core

在笔者使用的机器平台上对应选择如下图所示,生成了对应的编译链接选项。

编译安装程序示例:

$ ifort -mkl=sequential mkl_app.f90 -L${MKLROOT}/lib/intel64 -lpthread -lm -ldl

By the way:

使用的Intel 2022.3.0版本,mkl编译选项建议换成-qmkl=sequential

ifort: command line remark #10412: option '-mkl=sequential' is deprecated and will be removed in a future release. Please use the replacement option '-qmkl=sequential'

命令行工具mkl_link_tool

该命令行工具安装在mkl库中bin子目录里。

$ mkl_link_tool -interactive

交互式选择前面介绍的使用环境选项,最后生成编译链接信息。

比如:

Configuration
=============

OS:                     lnx
Architecture:           intel64
Compiler:               intel_f
Linking:                dynamic
Interface layer:        lp64
Parallel:               no

Output
======

Compiler option(s):
 -mkl=sequential

Linking line:
 -L${MKLROOT}/lib/intel64 -lpthread -lm -ldl

Environment variable(s):
There is no recommended environment variables
朗读
赞(0)
赞赏
感谢您的支持,我会继续努力哒!
版权属于:

MetMan's Blog

本文链接:

https://blog.metman.top/index.php/archives/27/(转载时请注明本文出处及文章链接)

评论 (0)

互动读者

标签云

最新回复

暂无回复

登录
X
用户名
密码