Linux下Intel编译器oneAPI安装和链接MKL库编译
- Linux下安装oneAPI
-
- 下载Toolkit
- 下载离线安装包
- 开始安装
- 初始化环境
- 可能遇到的问题
- 编译问题
-
- 链接MKL库
- Fortran的双精度编译
- 找不到icc如何处理
Linux下安装oneAPI
很多时候再Windows下使用VStudio+ivf+mkl进行编译的程序,在Linux下使用会遇到一些问题,这是因为linux下默认的gcc、g++还有gfortran都是开源编译器,与Intel的编译器icc、icpc和ifort所编译的方式不同,因此采用VStudio+ivf+mkl库所写的程序会在linux下无法直接编译,特别是程序中使用了MKL的相关函数情况下,就更需要安装oneAPI,安装教程参考:Linux下安装Intel 安装intel编译器 oneAPI.
具体操作方式如下:
下载Toolkit
访问Intel官方网站,搜索toolkit,或者 Intel toolkit 访问,在该页面下方有不同的toolkit,注意不支持Fortran77.
我们主要采用的是Base toolkit和HPC toolkit,其中如上图所示,不同的包里面有不同的工具,Base主要包含一些数学库,HPC包含C/C++和Fortran的编译器。
下载离线安装包
上述的Download,下载库文件,官方推荐下载离线目录,并且还提供下载教程
Base toolkit离线安装包大概有3G,HPC toolkit离线安装包大概有1G.
开始安装
下载完成之后,开始安装,首先按照官方教程安装Base toolkit
输入之后会弹出图形界面,按照图形界面的指示进行安装即可,默认安装路径是
同样的,HPC toolkit的安装方式也一样
初始化环境
上述安装完成之后,Intel的oneapi环境并没有启动,此时输入icc、icpc或者ifort都弹出没有该命令,因此需要初始化oneAPI环境,采用命令
- 手动初始化
此时终端弹出初始化输出结果
此时再在终端输入
即可看到icc所对应的版本,表明在该终端下,oneapi环境已经启动。
- 自动初始化
也可以将初始化命令放到.bashrc文件中,这样每一次启动终端,就会自动初始化环境
在中添加
或者在中设置alias,然后在终端输入即可启动环境
但是需要注意,oneapi中带有Intel python环境,每次初始化用,之前安装的anaconda环境会被自动取代,如果初始化之后输入conda init 则.bashrc文件中conda环境路径也会给成Intel环境的路径,注意备份好.bashrc文件,因此本人目前还是在终端输入指令启动环境
注释,这个环境替代问题在最新版本似乎已经没有了
可能遇到的问题
(来自参考链接)
一般来说运行安装脚本几十秒后即可启动安装界面。若有读者运行安装脚本超过3 min仍无反应,屏幕上只有Extract xxxxxxxx completed!字样,而未切换至安装界面,那么可以按键盘组合键Ctrl+C中断安装。然后改用完全静默安装模式
在安装MKL库时若有同样问题,可同样执行
这样也是默认安装进/opt/intel/。
编译问题
链接MKL库
如上所述,当采用MKL编写程序时,在编译时,编译器必须采用icc( C )、icpc(C++)、ifort(fortran),在编译时,需要给定指令-qmkl,进行链接mkl库编译,例如
Fortran的双精度编译
在采用ifort编译时,Intel的Fortran编译器默认采用的是单精度编译,例如程序中的real,默认给定的是单精度编译,一次需要加上opt控制指令进行双精度编译,如
找不到icc如何处理
根据oneapi官网的更新公告, icc,icpc在2023.2月之后的版本被废弃,取而代之的是icx,官网截图如下。推荐用户根据更新公告中的内容做出相应的修改。
Intel-oneapi提供了一个官方的社区,在该链接 下Gethelp,即可找到对应的社区,如图所示,用户可以在该链接下搜索自己所遇到的问题。
今天的文章
安装intel编译器分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/128875.html