一、软件下载和安装
在Windows系统下,需要先安装Visual Studio,再安装Intel oneAPI。在Linux系统下,只需要安装Intel oneAPI即可,参考这篇:在Linux系统下Fortran和MKL环境的安装和设置。
安装步骤如下:
1. Visual Studio下载:https://visualstudio.microsoft.com/zh-hans/downloads/,安装组件选择”使用C++的桌面开发“(可默认安装,也可选择性安装,参考后面截图)。
2. Fortran下载步骤如下:
- Intel免费开发工具:https://www.intel.com/content/www/us/en/developer/tools/oneapi/toolkits.html。
- 首先下载Intel oneAPI Base Toolkit,安装。
- 其次下载Intel oneAPI HPC Toolkit,安装。
如果是联网环境,Intel oneAPI推荐下载online安装包,而非offline安装包。这样在筛选组件后,下载的文件大小会小很多。组件可按默认安装,也可选择性安装。以下是个人挑选的组件(满足个人需求,仅作参考):
(1)Visual Studio中组件选择:

(2)oneAPI Base Toolkit中组件选择:

(3)Intel® oneAPI HPC Toolkit中组件选择:

二、MKL环境设置
如果安装了Visual Studio和Fortran,但调用不了MKL库,那么在Visual Studio中设置:
1. 菜单栏 项目——》‘工程文件名’属性——》配置属性——》Fortran——》Libraries——》Use Intel Math Kernal Library选中Parallel,以及Use Common Windows Libraries选中Yes
2. 菜单栏 项目——》‘工程文件名’属性——》配置属性——》Linker——》Input——》Additional Dependencies——》填入 mkl_blas95_lp64.lib mkl_lapack95_lp64.lib
或者填入(后面几个我也还不知道有什么用,也可以附带加上):mkl_blas95_lp64.lib mkl_lapack95_lp64.lib mkl_intel_lp64_dll.lib mkl_intel_thread_dll.lib mkl_core_dll.lib libiomp5md.lib
说明:文件大概是在这里 C:\Program Files (x86)\Intel\oneAPI\mkl\2022.0.3\lib\intel64。详细的连接设置也可参考官方的这个链接:https://www.intel.com/content/www/us/en/developer/tools/oneapi/onemkl-link-line-advisor.html。
如果要使用到OpenMP并行,还需要设置:菜单栏 项目——》‘工程文件名’属性——》配置属性——》Fortran——》 Language——》Process OpenMP Directives选中 Generate Parallel Code (/Qopenmp)。
更多链接:
- 目前Intel Parallel Studio XE已经下架,无法更新序列号。替代是Intel oneAPI,可直接免费下载安装,不需要序列号。消息可参考:Trial license of intel parallel studio xe. - Intel Community。
- 开发工具:https://software.intel.com/content/www/cn/zh/develop/tools.html,Intel免费开发工具在底部的”快速访问“中”学术、研究、开源的免费工具“。
- Intel账户注册:https://www.intel.com/content/www/us/en/forms/basic-intel-registration.html。
- Intel登录系统后台:https://registrationcenter.intel.com/en/products/。
- 其他参考资料:visual studio 2022中oneAPI MKL库的配置。
【说明:本站主要是个人的一些笔记和代码分享,内容可能会不定期修改。为了使全网显示的始终是最新版本,这里的文章未经同意请勿转载。引用请注明出处:https://www.guanjihuan.com】
博主您好,按照你的步骤操作了之后,调用blas内的函数,比如dot,终端还是显示:There is no matching specific function for this generic function reference. [DOT]。这是啥情况呢?
头部说明要有,比如use blas95。参考这篇:Fortran常用语句。如果这样还是不行,我也不清楚如何处理。