Intel oneAPI 使用

  • Intel oneAPI 包括对 OpenMP 的支持

  • 参考:安装 Intel® oneAPI Base Toolkit 和 Intel® oneAPI HPC

  • Intel oneAPI 暂不支持 Arch Linux

  • Intel-oneAPI 中的 MKL (Math Kernel Library) 提供数学库: FFTW、BLAS、LAPACK、ScaLAPACK、Vector Math Library (VML)、Data Fitting Library、Sparse BLAS 等

1
2
3
4
5
6
7
8
9
${MKLROOT}/include         # MKL 头文件路径
${MKLROOT}/lib/intel64 # MKL 库文件路径

-lmkl_intel_lp64 # LP64 模型
-lmkl_sequential # 单线程库
-lmkl_core # 核心库

${MKLROOT}/include/fftw # FFTW
${MKLROOT}/lib/intel64 # BLACS、LAPACK 和 SCALAPACK
  • Intel oneAPI 在官网只能下载最新版本;官网未对 Ubuntu23.04 进行测试;旧版下载:Intel

  • intel-oneAPI/2023.2 是这一系列套件中最后一个支持经典 C/C++/Fortran 编译器的版本(Intel-oneAPI 2024 开始没有了 icc 和 icpc)

  • Intel® oneAPI Base Toolkit 2024 版包含的东西

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Intel® oneAPI Collective Communications Library
Intel® oneAPI Data Analytics Library
Intel® oneAPI Deep Neural Network Library
Intel® oneAPI DPC++/C++ Compiler (separate download required)
Intel® oneAPI DPC++ Library
Intel® oneAPI Math Kernel Library
Intel® oneAPI Threading Building Blocks
Intel® Advisor
Intel® Distribution for GDB*
Intel® Distribution for Python* (separate download required)
Intel® DPC++ Compatibility Tool
Intel® Integrated Performance Primitives
Intel® VTune™ Profiler
Optional: Intel® FPGA Add-on for oneAPI Base Toolkit
  • Intel® oneAPI HPC Toolkit 2024 版包含的东西(缺少 C++ Compiler Classic)
1
2
3
4
5
Intel® oneAPI DPC++/C++ Compiler (separate download required)
Intel® Fortran Compiler & Intel® Fortran Compiler Classic (separate download required)
Intel® Inspector
Intel® MPI Library
Intel® Trace Analyzer and Collector
  • 安装:先 Base,后 HPC
1
2
3
4
5
6
7
8
9
# 下载 Offline 安装版本

# 默认安装到 /opt/intel;无 sudo,则默认安装到 ~/intel
sudo sh ./l_BaseKit_p_XXX_offline.sh
sudo sh ./l_HPCKit_p_XXX_offline.sh

# 将以下命令添加到 ~/.bashrc 或 ~/.zshrc 中
# 使得登录开启 Intel oneAPI 环境
source /opt/intel/oneapi/setvars.sh intel64
  • 检查
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
icc -v
icpc -v
ifort -v
mpiicc -v
mpiifort -v

icx -v
icpx -v

# icc mpiicc mpicc 三者区别
icc # Intel C Compiler;Intel 提供的高性能 C 编译器
mpiicc # MPI Intel C Compiler;基于 icc 的 MPI 版本,特殊的编译器包装器,用于编译使用 MPI 的并行程序;Intel MPI + icc
mpicc # 广泛用于编译 MPI 程序的通用 C 编译器包装器;Intel MPI + gcc


# Intel Classic 编译器
icc
icpc
ifort

# Intel oneAPI 编译器
icx
icpx
ifx

# GNU 编译器
gcc
g++
gfortran

# NVHPC 编译器
nvc
nvc++
nvfortran
  • Intel Classic C++ Compiler 是 Intel 长期提供的传统编译器,也被称为 ICC。它主要是为了优化 Intel 硬件(如 x86 CPU 系列)而设计,并且支持 C++ 和 OpenMP 的多版本

  • Intel LLVM C++ Compiler 是基于 LLVM 的编译器,这是 Intel 在 oneAPI 框架下推出的新型编译器,也被称为 DPC++/C++ Compiler。这个编译器旨在提供一个统一的编程模型,支持多种硬件平台,包括 CPU、GPU 和 FPGA

  • Intel oneAPI 卸载:Uninstall oneAPI Toolkits and Components

1
2
cd /opt/intel/oneapi/installer
sudo ./installer