OneAPI is an open and standards-based specification that supports multiple architecture types, including but not limited to GPU, CPU, and FPGA. The specification has direct programming and API-based programming paradigms. Intel® OneAPI is a software suite that includes various tools and libraries to support the OneAPI specification. This article documents the process of installing Intel® OneAPI-2024.0 on CentOS 7.6.
Intel oneAPI consists of two parts, the former being the Base Toolkit, and the latter must rely on the former, Intel oneAPI HPC Toolkit, which means they need to be installed sequentially.
Base Toolkit
Base Toolkit is Intel’s basic API toolkit that includes the following libraries and others.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Intel® oneAPI DPC++/C++ Compiler
Intel® DPC++ Compatibility Tool
Intel® oneAPI DPC++ Library
Intel® oneAPI Math Kernel Library
Intel® oneAPI Threading Building Blocks
Intel® oneAPI Collective Communications Library
Intel® oneAPI Data Analytics Library
Intel® oneAPI Deep Neural Networks Library
Intel® Integrated Performance Primitives
Intel® VTune™ Profiler
Intel® Advisor
Intel® Distribution for GDB*
Intel® Distribution for Python* (separate download required)
Intel® FPGA Add-on for oneAPI Base Toolkit (separate download required)
If the version information is output, then the installation is successful.
1
2
Intel(R) MPI Library for Linux* OS, Version 2021.11 Build 20231005(id: 74c4a23)Copyright 2003-2023, Intel Corporation.
icx instructions
Intel® oneAPI DPC++/C++ Compiler (icx) is Intel’s next-gen compiler based on Clang/LLVM technology plus Intel proprietary optimizations and code generation.
icx is Intel’s next-generation compiler based on Clang/LLVM technology, with Intel’s proprietary optimizations and code generation.
LLVM helped achieve the goal of providing a better C/C++ compiler for Intel architecture. The latest Intel C/C++ compiler uses the LLVM architecture, offering faster compile times, better optimization, enhanced standards support, and support for GPU and FPGA offloading.
Benefits of adopting LLVM
The LLVM open source project is a collection of modular and reusable compiler and toolchain technologies that supports multiple processor architectures and programming languages. The Clang open source project provides a C/C++ frontend, supporting the latest language standards for the LLVM project. Including Clang, LLVM is maintained by a large and very active development community.
There are many benefits to using LLVM, the first being faster build times. It is well known that Clang is very fast! When we used the Intel C/C++ Compiler from the Intel oneAPI 2021.3 toolkit, we measured a 14% reduction in build time. In addition to reducing build time, adopting Clang allows us to benefit from the community’s support for the latest C++ language standards and contribute results to give back to the community.
Intel has a long history of contributing to and supporting open-source projects, including ten years of contributions to LLVM. Our proactive collaboration today includes optimization report supplements, expanded floating-point model support, and vector enhancements. Intel directly contributes to the LLVM project and has a staging area (Intel LLVM Technology Project) for SYCL support.
On Intel architecture, the Intel C/C++ compiler is expected to provide higher performance than the base Clang+LLVM compiler. The upcoming Intel C/C++ compilers will be versions (icx) that have adopted the LLVM open-source infrastructure. We will continue our long-term efforts to contribute to the Clang and LLVM projects, including providing optimizations for them. Not all optimization techniques will be accepted upstream, sometimes because they are too new, and sometimes because they are too specific to Intel architecture. This is to be expected and is the same situation as with other compilers that have adopted LLVM.
Intel C/C++ compilers have consistently provided the best performance. The classic version of the Intel C/C++ compiler achieved an 18% advantage over GCC, while the Intel C/C++ compiler based on LLVM achieved a 41% advantage.