Intel® C++ Compiler 19.0 Developer Guide and Reference
This topic only applies when targeting Intel® Many Integrated Core Architecture (Intel® MIC Architecture).
Offload is not supported on Windows* systems.
The Intel® Xeon Phi™ processors are based on the Intel® Many Integrated Core architecture (Intel® MIC architecture).
The Intel® C++ Compiler provides several elements to enable programming for and building binaries to run on the Intel® Many Integrated Core Architecture (Intel® MIC Architecture), including:
language extensions
compiler options
environment variables
attributes
keywords
intrinsics
class libraries
OpenMP* considerations
Code that is defined for offloading runs on an Intel® Xeon® processor-based host, running Linux* or Windows*, and on targets supporting Intel® MIC Architecture.
You can write parallel programs that offload sections of code to run on the Intel® MIC Architecture, or alternatively, that run natively on Intel® MIC Architecture. Compiling a source file that contains extensions to facilitate programming for the Intel MIC Architecture creates what is called a fat binary which contains both the host binary and an offload binary. Fat binaries can be objects, archives, or executables depending on the options used at compilation. Refer to the documentation on the Offload Extract Tool (offload_extract) for information on how to extract the offload binary from the fat binary.
The compiler provides the following language extensions to facilitate programming for Intel® MIC Architecture:
Name |
Description |
---|---|
offload pragma offload_attribute pragma offload_transfer pragma offload_wait pragma |
NoteThese pragmas are deprecated.Pragmas to control the data transfer between the CPU and the coprocessor. |
_Cilk_offload keyword _Cilk_shared keyword |
NoteThese keywords are deprecated.Keywords to control the data transfer between the CPU and the coprocessor. The data to be exchanged between the CPU and the coprocessor can be arbitrarily complex. Intel® Cilk™ Plus is a deprecated feature. |
target attribute |
NoteThis attribute is deprecated.An attribute to place variables and functions on the target. |
__INTEL_OFFLOAD macro __TARGET_ARCH_MIC macro __AVX512F__ macro __AVX512CD__ macro __AVX512ER__ macro __AVX512PF__ macro |
NoteThe __INTEL_OFFLOAD macro is deprecated.Predefined macros for use with the Intel® Xeon Phi™ product family x200 (formerly code name Knights Landing). |
Intrinsics |
Intrinsics for Intel® MIC Architecture. |
Class libraries |
Class libraries for SIMD operations. |
APIs in offload.h |
NoteThese functions are deprecated.A set of functions for:
|
The compiler provides the following compiler options and environment variables that you can use when building a binary for Intel® MIC Architecture:
Compiler Option |
Description |
---|---|
Qoffload- (Windows*) qno-offload (Linux*) |
NoteThis option is deprecated.Ignores language constructs for offloading. |
Qoffload-arch, qoffload-arch |
Specifies the target architecture to use when offloading code. |
Qoffload-attribute-target, qoffload-attribute-target |
NoteThis option is deprecated.Flags every global routine and global data object in the source file with the offload attribute target(mic). |
Qoffload-option, qoffload-option |
Specifies options to be used for the specified target and tool. |
Qopt-report-phase:offload, qopt-report-phase=offload |
Specifies the offload optimizer phase to use when optimization reports are generated. |
The following environment variables are only a few of the available environment variables for Intel® MIC Architecture:
Environment Variable |
Description |
---|---|
MIC_STACKSIZE |
Sets the stack size on the coprocessor. |
MIC_ENV_PREFIX |
Controls environment variables passed to the coprocessor. |
MIC_PROXY_IO |
NoteThis variable is deprecated.Controls the I/O proxy of stderr and stdout. |