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
