oneAPI是一个开放、统一的跨架构编程模型,旨在简化跨多架构的开发过程,可以帮助开发者可以用于 CPU、GPU、FPGA 或是其它硬件加速器开发 AI 应用。简单来说,OneAPI 旨在提供一个适用于各类计算架构的统一编程模型和应用程序接口,从而让开发者可以自由选择架构以解决他们所面临的问题,无需为了新的架构和平台而重写软件。
官网:https://www.intel.com/content/www/us/en/developer/tools/oneapi/overview.html
我自己需要oneAPI提供的:
(1) Intel Visual Fortran编译器(ifort/ifx),此外,Intel还提供C/C++编译器(icc/icpc)
(2) MKL函数库
IVF之前是独立的收费软件,现在被Intel并入了oneAPI并成为了免费软件,可以从intel官网上下载。MKL函数库在Base Toolkit内,Fortran编译器在HPC Toolkit中,因此需要在官网上下载两个工具包:
oneAPI Base Toolkit
oneAPI HPC Toolkit
如果使用离线安装包
按照提示安装即可,有无GUI界面均可正常安装。安装过程中会提示的警告包括:
(1) 需要Eclipse作为IDE,可选项,即使没有Eclipse也可以用VS Code+makefile编译;
(2) 提示没有Intel GPU,说明CPU中没有自带核显并且也没有安装Intel 独显,不能使用Intel GPU加速的相关功能;
(3) 提示缺少依赖库,根据提示使用APT/YUM包管理器安装即可。
默认安装到/opt/intel/oneapi位置,安装完成后如果没有配置环境变量,依旧不能使用。
在/opt/intel/oneapi文件夹下会找到setvars.sh文件,运行命令
source /opt/intel/oneapi/setvars.sh
该文件将自动配置环境变量,但仅限当前终端使用,终端关闭或开启新终端时,此环境变量将失效。有两种办法,第一种,将上述命令写入~/.bashrc中,每次启动新终端都会运行次命令,或者将此命令写入makefile中,每次make时均会运行此命令。
intel64 将会生成和使用64位架构的代码及运行库;
ia32 将会生成和使用32位架构的代码及运行库。
其他参数,可以使用命令:
source /<install_dir>/setvars.sh --help
安装完成后,运行命令“ifort -V”可以查看IVF的版本信息,说明安装成功。
如果使用包管理器
打开终端
预安装准备:
# Redhat, Fedora, CentOS and related
more /etc/redhat-release
# Ubuntu, Debian, others
more /etc/lsb-release
如果使用YUM/DNF:
在临时文件夹建立repo文件,在终端输入
tee > /tmp/oneAPI.repo << EOF [oneAPI] name=Intel® oneAPI repository baseurl=https://yum.repos.intel.com/oneapi enabled=1 gpgcheck=1 repo_gpgcheck=1 gpgkey=https://yum.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB EOF
将repo文件移动至目标文件夹
sudo mv /tmp/oneAPI.repo /etc/yum.repos.d
如果使用APT:
# download the key to system keyring wget -O- https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB \ | gpg --dearmor | sudo tee /usr/share/keyrings/oneapi-archive-keyring.gpg > /dev/null # add signed entry to apt sources and configure the APT client to use Intel repository: echo "deb [signed-by=/usr/share/keyrings/oneapi-archive-keyring.gpg] https://apt.repos.intel.com/oneapi all main" | sudo tee /etc/apt/sources.list.d/oneAPI.list
安装
sudo yum install intel-basekit intel-hpckit sudo apt install intel-basekit intel-hpckit