Intel C Compiler
   HOME

TheInfoList



OR:

Intel oneAPI DPC++/C++ Compiler and Intel C++ Compiler Classic (deprecated icc and icl is in Intel OneAPI HPC toolkit) are
Intel Intel Corporation is an American multinational corporation and technology company headquartered in Santa Clara, California, and Delaware General Corporation Law, incorporated in Delaware. Intel designs, manufactures, and sells computer compo ...
’s C, C++, SYCL, and Data Parallel C++ (DPC++) compilers for Intel processor-based systems, available for
Windows Windows is a Product lining, product line of Proprietary software, proprietary graphical user interface, graphical operating systems developed and marketed by Microsoft. It is grouped into families and subfamilies that cater to particular sec ...
,
Linux Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
, and
macOS macOS, previously OS X and originally Mac OS X, is a Unix, Unix-based operating system developed and marketed by Apple Inc., Apple since 2001. It is the current operating system for Apple's Mac (computer), Mac computers. With ...
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, 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 i386, 80386 microprocessor in 1985. IA-32 is the first incarn ...
, Intel 64 (aka
x86-64 x86-64 (also known as x64, x86_64, AMD64, and Intel 64) is a 64-bit extension of the x86 instruction set architecture, instruction set. It was announced in 1999 and first available in the AMD Opteron family in 2003. It introduces two new ope ...
), Core,
Xeon Xeon (; ) is a brand of x86 microprocessors designed, manufactured, and marketed by Intel, targeted at the non-consumer workstation, server, and embedded markets. It was introduced in June 1998. Xeon processors are based on the same archite ...
, 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 Visual Studio is an integrated development environment (IDE) developed by Microsoft. It is used to develop computer programs including websites, web apps, web services and mobile apps. Visual Studio uses Microsoft software development platforms ...
and Eclipse IDE development environments, and supports threading via Intel oneAPI Threading Building Blocks,
OpenMP OpenMP 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 systems, including Solaris, ...
, and native threads. DPC++ builds on the SYCL 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 C17, C-17 or C.17 may refer to: Transportation * , a 1917 British C-class submarine Air * Boeing C-17 Globemaster III, a military transport aircraft * Lockheed Y1C-17 Vega, a six-passenger monoplane * Cierva C.17, a 1928 English experimental ...
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, also called LLVM Core, is a target-independent optimizer and code generator. It can be used to develop a Compiler#Front end, frontend for any programming language and a Compiler#Back end, backend for any instruction set architecture. LLVM i ...
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 extension of the x86 instruction set architecture, instruction set. It was announced in 1999 and first available in the AMD Opteron family in 2003. It introduces two new ope ...
CPUs and GPUs 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 extension of the x86 instruction set architecture, instruction set. It was announced in 1999 and first available in the AMD Opteron family in 2003. It introduces two new ope ...
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.


Debugging

The Intel compiler provides debugging information that is standard for the common debuggers ( DWARF 2 on Linux, similar to gdb, 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 ext ...
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 on Windows, or
Eclipse An eclipse is an astronomical event which occurs when an astronomical object or spacecraft is temporarily obscured, by passing into the shadow of another body or by having another body pass between it and the viewer. This alignment of three ...
on Linux). In addition to the VTune profiler, there is Intel Advisor 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 leaks, 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 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 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'' (often also called El Reg) is a British Technology journalism, technology news website co-founded in 1994 by Mike Magee (journalist), Mike Magee and John Lettice. The online newspaper's Nameplate_(publishing), masthead Logo, s ...
'' 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 1999:


See also

* Cilk Plus * Data Analytics Library * Intel Developer Zone * Intel Fortran Compiler * Integrated Performance Primitives * Math Kernel Library * Intel Parallel Studio * VTune *
List of C compilers 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 ...


References


External links


Intel oneAPI DPC++/C++ Compiler





Intel Software Technical Documentation site
{{Intel software C (programming language) compilers C++ compilers C++ Compiler