Fortran:vs2019+oneAPI如何配置并调用MKL库

最近因为读研需要,刚开始学习Fortran,恰好要用到MKL库。记录一下配置并调用MKL库。

在装好VS2019与oneAPI的情况下,oneAPI是包含有MKL库的,不需要另外下载MKL。

步骤一、首先新建一个项目,打开“工具”→“选项”→“Intel Compilers and Libraries”→“IFX Intel Fortran”→“Compilers”

添加路径:将 Executables, Includes 和 Libraries 分别编辑添加路径(这里是用64位(×64),32位(×86)路径请见本文末尾的参考链接!):

D:\intel oneAPI Base Toolkit,v.2022\mkl\2022.0.2\bin\intel64

D:\intel oneAPI Base Toolkit,v.2022\mkl\2022.0.2\include

D:\intel oneAPI Base Toolkit,v.2022\mkl\2022.0.2\lib\intel64

Fortran:vs2019+oneAPI如何配置并调用MKL库_第1张图片

注意:这路径里面的mkl文件夹是在你oneAPI的安装文件夹里面找到的(这里我是安装在D盘),正如上面所说oneAPI是包含有MKL库。

步骤二、打开“项目”→“属性”→“Linker”→“input”→“Additional Dependencies”

添加以下内容(这里是用64位(×64平台),32位(×86平台)添加内容请见本文末尾的参考链接!):

mkl_intel_ilp64.lib mkl_intel_thread.lib mkl_core.lib libiomp5md.lib

Fortran:vs2019+oneAPI如何配置并调用MKL库_第2张图片

注意:除了上面内容要添加外,如果你要使用 lapack95,那么你还要另外添加上 mkl_lapack95_lp64.lib(32位,即×86是mkl_lapack95.lib),如果你要使用 blas95 ,那么你还要另外添加 mkl_blas95_lp64.lib(32位我不知道是啥,盲猜mkl_blas95.lib),每个.lib注意用一个空格隔开,其它函数也是类似另外添加上去。

步骤三、打开“项目”→“Fortran”→“Libraries”→“Use Intel Math Kernel Library”→“parallel (/Qmkl:parallel)”

Fortran:vs2019+oneAPI如何配置并调用MKL库_第3张图片

然后就大功告成了,当然步骤二和步骤三只针对你当前的项目管用(因为你是在项目里设置的),如果你用VS2019建了其它项目,那么要重新在新建的项目了设置步骤二和步骤三。

以下附上测试代码,运行成功即代表配置成功!我懒得自己写了,代码来自:

“Intel Visual Fortran2013+Visual Studio中使用MKL库 - 知乎 (zhihu.com)”

program main
    use lapack95
    implicit none    
    
    !geev
    real*8 :: a(4,4)=(/ 1.0,3.2,5.0,7.9,2.,4.3,6.,8.,9.4,10.,11.,12.,2.,5.,6.,9. /)
    real*8 :: wr(4),wi(4),vr(4,4),vl(4,4) !wr和wi分别为特征值实部和虚部,vr和vl分别为右和左特征向量
    
    call geev(a,wr,wi,vl,vr)
    
end program main

其他参考链接:intel MKL 在 Visual Studio 中的配置 - 掘金 (juejin.cn)https://juejin.cn/post/7018396753569251365

​​​​这篇博文简要记录一下使用MKL函数库计算一般矩阵的特征值与特征向量:一、设置vs(我用的是vs2013+ivf2013)(1)点击项目>属性(2)点击Fortran>Libraries>Use Intel Math Kernel Library>Parallel(3)首先你得明确你的解决方案是win32还是x64的。如果解决方案是win32,打开工程属性->Fortran->Labraries->Use Intel Math Kernel Libraryhttps://blog.csdn.net/Dawncdm/article/details/115498404?spm=1001.2101.3001.6650.2&utm_medium=distribute.pc_relevant.none-task-blog-2~default~CTRLIST~Rate-2.pc_relevant_antiscanv2&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2~default~CTRLIST~Rate-2.pc_relevant_antiscanv2&utm_relevant_index=5

你可能感兴趣的:(oneapi)