Intel C Compiler
   HOME

TheInfoList



OR:

Intel oneAPI DPC++/C++ Compiler and Intel C++ Compiler Classic are
Intel Intel Corporation is an American multinational corporation and technology company headquartered in Santa Clara, California. It is the world's largest semiconductor chip manufacturer by revenue, and is one of the developers of the x86 seri ...
’s C,
C++ C++ (pronounced "C plus plus") is a high-level general-purpose programming language created by Danish computer scientist Bjarne Stroustrup as an extension of the C programming language, or "C with Classes". The language has expanded significan ...
,
SYCL SYCL is a higher-level programming model to improve programming productivity on various hardware accelerators. It is a single-source embedded domain-specific language ( eDSL) based on pure C++17. It is a standard developed by Khronos Group, an ...
, and Data Parallel C++ (DPC++) compilers for Intel processor-based systems, available for
Windows Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, Windows NT for consumers, Windows Server for serv ...
,
Linux Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, which ...
, and
macOS macOS (; previously OS X and originally Mac OS X) is a Unix operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for Apple's Mac computers. Within the market of desktop and lapt ...
operating systems.


Overview

Intel oneAPI DPC++/C++ Compiler is available for Windows and Linux and supports compiling C, C++, SYCL, and Data Parallel C++ (DPC++)
source Source may refer to: Research * Historical document * Historical source * Source (intelligence) or sub source, typically a confidential provider of non open-source intelligence * Source (journalism), a person, publication, publishing institute o ...
, targeting Intel
IA-32 IA-32 (short for "Intel Architecture, 32-bit", commonly called i386) is the 32-bit version of the x86 instruction set architecture, designed by Intel and first implemented in the 80386 microprocessor in 1985. IA-32 is the first incarnation o ...
, Intel 64 (aka
x86-64 x86-64 (also known as x64, x86_64, AMD64, and Intel 64) is a 64-bit version of the x86 instruction set, first released in 1999. It introduced two new modes of operation, 64-bit mode and compatibility mode, along with a new 4-level paging ...
),
Core Core or cores may refer to: Science and technology * Core (anatomy), everything except the appendages * Core (manufacturing), used in casting and molding * Core (optical fiber), the signal-carrying portion of an optical fiber * Core, the centra ...
,
Xeon Xeon ( ) is a brand of x86 microprocessors designed, manufactured, and marketed by Intel, targeted at the non-consumer workstation, server, and embedded system markets. It was introduced in June 1998. Xeon processors are based on the same a ...
, and Xeon Scalable processors, as well as GPUs including Intel Processor Graphics Gen9 and above, Intel Xe architecture, and Intel Programmable Acceleration Card with Intel Arria 10 GX FPGA. Like Intel C++ Compiler Classic, it also supports the Microsoft Visual Studio and
Eclipse IDE Eclipse is an integrated development environment (IDE) used in computer programming. It contains a base workspace and an extensible plug-in system for customizing the environment. It is the second-most-popular IDE for Java development, and, un ...
development environments, and supports threading via Intel oneAPI
Threading Building Blocks oneAPI Threading Building Blocks (oneTBB; formerly Threading Building Blocks or TBB), is a C++ template library developed by Intel for parallel programming on multi-core processors. Using TBB, a computation is broken down into tasks that can ru ...
,
OpenMP OpenMP (Open Multi-Processing) is an application programming interface (API) that supports multi-platform shared-memory multiprocessing programming in C, C++, and Fortran, on many platforms, instruction-set architectures and operating syst ...
, and native threads. DPC++ builds on the
SYCL SYCL is a higher-level programming model to improve programming productivity on various hardware accelerators. It is a single-source embedded domain-specific language ( eDSL) based on pure C++17. It is a standard developed by Khronos Group, an ...
specification from The Khronos Group. It is designed to allow developers to reuse code across hardware targets (CPUs and accelerators such as GPUs and FPGAs) and perform custom tuning for a specific accelerator. DPC++ comprises C++17 and SYCL language features and incorporates open-source community extensions that make SYCL easier to use. Many of these extensions were adopted by the SYCL 2020 provisional specification including unified shared memory, group algorithms, and sub-groups. Intel announced in August 2021 the complete adoption of
LLVM LLVM is a set of compiler and toolchain technologies that can be used to develop a front end for any programming language and a back end for any instruction set architecture. LLVM is designed around a language-independent intermediate repre ...
for faster build times and benefits from supporting the latest C++ standards. Intel C++ Compiler Classic is available for Windows, Linux, and macOS and supports compiling C and C++ source, targeting Intel IA-32, Intel 64 (x86-64), Core, Xeon, and Xeon Scalable processors. It supports the Microsoft Visual Studio and Eclipse IDE development environments. Intel C++ Compiler Classic supports threading via Intel oneAPI Threading Building Blocks, OpenMP, and native threads.


Architectures

According to Intel, starting with the 2023.0 release, Intel oneAPI DPC++/C++ Compiler supports all current Intel general-purpose
x86-64 x86-64 (also known as x64, x86_64, AMD64, and Intel 64) is a 64-bit version of the x86 instruction set, first released in 1999. It introduced two new modes of operation, 64-bit mode and compatibility mode, along with a new 4-level paging ...
CPUs and
GPU A graphics processing unit (GPU) is a specialized electronic circuit designed to manipulate and alter memory to accelerate the creation of images in a frame buffer intended for output to a display device. GPUs are used in embedded systems, mobi ...
s including: * Processors: ** Legacy Intel IA-32 and Intel 64 (x86-64) processors ** Intel Core processors ** Intel Xeon processor family ** Intel Xeon Scalable processors ** Intel Xeon Processor Max Series * GPUs: ** Intel Processor Graphics Gen9 and above ** Intel Xe architecture ** Intel Programmable Acceleration Card with Intel 10 GX FPGA ** Intel Data Center GPUs including Flex Series and Max Series * Intel FPGAs Intel C++ Compiler Classic targets general-purpose Intel
x86-64 x86-64 (also known as x64, x86_64, AMD64, and Intel 64) is a 64-bit version of the x86 instruction set, first released in 1999. It introduced two new modes of operation, 64-bit mode and compatibility mode, along with a new 4-level paging ...
architecture CPUs including: * Legacy Intel IA-32 and Intel 64 (x86-64) processors * Intel Core processors * Intel Xeon processor family * Intel Xeon Scalable processors


Toolkits

The Intel oneAPI DPC++/C++ Compiler is available either as a standalone component or as part of the Intel oneAPI Base Toolkit, Intel oneAPI HPC Toolkit, and Intel oneAPI IoT Toolkit. The Intel C++ Compiler Classic is available either as a standalone component or as part of the Intel oneAPI Base Toolkit.


Documentation

Documentation can be found at th
Intel Software Technical Documentation site


Debugging

The Intel compiler provides debugging information that is standard for the common debuggers ( DWARF 2 on Linux, similar to
gdb The GNU Debugger (GDB) is a portable debugger that runs on many Unix-like systems and works for many programming languages, including Ada, C, C++, Objective-C, Free Pascal, Fortran, Go, and partially others. History GDB was first written by ...
, and
COFF The Common Object File Format (COFF) is a format for executable, object code, and shared library computer files used on Unix systems. It was introduced in Unix System V, replaced the previously used a.out format, and formed the basis for ex ...
for Windows). The flags to compile with debugging information are /Zi on Windows and -g on Linux. Debugging is done on Windows using the Visual Studio debugger and, on Linux, using gdb. While the Intel compiler can generate a gprof compatible profiling output, Intel also provides a kernel level, system-wide statistical profiler called Intel VTune Profiler. VTune can be used from a command line or through an included GUI on Linux or Windows. It can also be integrated into
Visual Studio Visual Studio is an integrated development environment (IDE) from Microsoft. It is used to develop computer programs including websites, web apps, web services and mobile apps. Visual Studio uses Microsoft software development platforms such ...
on Windows, or Eclipse on Linux). In addition to the VTune profiler, there is
Intel Advisor Intel Advisor (also known as "Advisor XE", "Vectorization Advisor" or "Threading Advisor") is a design assistance and analysis tool for SIMD vectorization, threading, memory use, and GPU offload optimization. The tool supports C, C++, Data Parall ...
that specializes in vectorization optimization, offload modeling, flow graph design and tools for threading design and prototyping. Intel also offers a tool for memory and threading error detection called Intel Inspector XE. Regarding memory errors, it helps detect
memory leak In computer science, a memory leak is a type of resource leak that occurs when a computer program incorrectly manages memory allocations in a way that memory which is no longer needed is not released. A memory leak may also happen when an object ...
s, memory corruption, allocation/de-allocation of API mismatches and inconsistent memory API usage. Regarding threading errors, it helps detect data races (both heap and stack), deadlocks and thread and synch API errors.


Support for non-Intel processors

Previous versions of Intel’s C/C++ compilers have been criticized for optimizing less aggressively for non-Intel processors; for example, Steve Westfield wrote in a 2005 article at the AMD website: The Danish developer and scholar Agner Fog wrote in 2009: This vendor-specific CPU dispatching may potentially impact the performance of software built with an Intel compiler or an Intel function library on non-Intel processors, possibly without the programmer’s knowledge. This has allegedly led to misleading benchmarks, including one incident when changing the CPUID of a
VIA Nano The VIA Nano (formerly code-named VIA Isaiah) is a 64-bit CPU for personal computers. The VIA Nano was released by VIA Technologies in 2008 after five years of development by its CPU division, Centaur Technology. This new Isaiah 64-bit architec ...
significantly improved results. In November 2009, AMD and Intel reached a legal settlement over this and related issues, and in late 2010, AMD settled a
US Federal Trade Commission The Federal Trade Commission (FTC) is an independent agency of the United States government whose principal mission is the enforcement of civil (non-criminal) antitrust law and the promotion of consumer protection. The FTC shares jurisdiction ov ...
antitrust investigation against Intel. The FTC settlement included a disclosure provision where Intel must: In compliance with this ruling, Intel added disclaimers to its compiler documentation: As late as 2013, an article in ''
The Register ''The Register'' is a British technology news website co-founded in 1994 by Mike Magee, John Lettice and Ross Alderson. The online newspaper's masthead sublogo is "''Biting the hand that feeds IT''." Their primary focus is information tec ...
'' alleged that the object code produced by the Intel compiler for the AnTuTu Mobile Benchmark omitted portions of the benchmark which showed increased performance compared to ARM platforms.


Release history

The following lists versions of the Intel C++ Compiler since 2003:


See also

* oneAPI
Data Analytics Library oneAPI Data Analytics Library (oneDAL; formerly Intel Data Analytics Acceleration Library or Intel DAAL), is a library of optimized algorithmic building blocks for data analysis stages most commonly associated with solving Big Data problems. T ...
(oneDAL) *
Intel Developer Zone The Intel Developer Zone is an international online program designed by Intel to encourage and support independent software vendors in developing applications for Intel hardware and software products. This support is provided for the key stages of t ...
(Intel DZ; support and discussion) *
Intel Fortran Compiler Intel Fortran Compiler, is a group of Fortran compilers from Intel for Windows, macOS, and Linux. Overview The compilers generate code for IA-32 and Intel 64 processors and certain non-Intel but compatible processors, such as certain AMD proces ...
* Intel
Integrated Performance Primitives Intel Integrated Performance Primitives (Intel IPP) is a multi-threaded software library of functions for multimedia and data processing applications, produced by Intel. The library supports Intel and compatible processors and is available for Li ...
(IPP) * Intel oneAPI
Math Kernel Library Intel oneAPI Math Kernel Library (Intel oneMKL; formerly Intel Math Kernel Library or Intel MKL) is a library of optimized math routines for science, engineering, and financial applications. Core math functions include BLAS, LAPACK, ScaLAPACK, ...
(oneMKL) *
Intel Parallel Studio Intel Parallel Studio XE was a software development product developed by Intel that facilitated native code development on Windows, macOS and Linux in C++ and Fortran for parallel computing. Parallel programming enables software programs to take ...
*
Cilk Plus Cilk, Cilk++, Cilk Plus and OpenCilk are general-purpose programming languages designed for multithreaded parallel computing. They are based on the C and C++ programming languages, which they extend with constructs to express parallel loop ...
*
VTune VTune Profiler (formerly VTune Amplifier) is a performance analysis tool for x86 based machines running Linux or Microsoft Windows operating systems. Many features work on both Intel and AMD hardware, but advanced hardware-based sampling require ...
Amplifier * AMD Optimizing C/C++ Compiler *
GNU Compiler Collection The GNU Compiler Collection (GCC) is an optimizing compiler produced by the GNU Project supporting various programming languages, hardware architectures and operating systems. The Free Software Foundation (FSF) distributes GCC as free software ...
*
LLVM LLVM is a set of compiler and toolchain technologies that can be used to develop a front end for any programming language and a back end for any instruction set architecture. LLVM is designed around a language-independent intermediate repre ...
/
Clang Clang is a compiler front end for the C, C++, Objective-C, and Objective-C++ programming languages, as well as the OpenMP, OpenCL, RenderScript, CUDA, and HIP frameworks. It acts as a drop-in replacement for the GNU Compiler Collection ...


References


External links


Intel oneAPI DPC++/C++ Compiler – Intel Developer Zone


(Intel)

{{Intel software C (programming language) compilers C++ compilers
C++ Compiler This page is intended to list all current compilers, compiler generators, interpreters, translators, tool foundations, assemblers, automatable command line interfaces ( shells), etc. Ada Compilers ALGOL 60 compilers ALGOL 68 compilers cf. ...