User and Reference Guide for the Intel® C++ Compiler 14.0
This topic only applies to Intel® Many Integrated Core Architecture (Intel® MIC Architecture).
The Intel® 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* OS or Windows* OS, and on targets supporting Intel® MIC Architecture.
You can write parallel programs that can offload sections of code to run on Intel® MIC Architecture, or alternatively, that run natively on Intel® MIC Architecture. 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 prefetch/noprefetch pragma |
Pragmas to control the data transfer between the CPU and the coprocessor. |
|
_Cilk_offload keyword _Cilk_shared keyword |
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. |
|
target attribute |
An attribute to place variables and functions on the target. |
|
__MIC__ macro __KNC__ macro __INTEL_OFFLOAD macro |
Predefined macros you can use when programming for Intel® MIC Architecture. |
|
Intrinsics |
Intrinsics for Intel® MIC Architecture. |
|
Class libraries |
Class libraries for SIMD operations. |
|
APIs in offload.h |
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 |
|---|---|
|
The negative form of [Q]offload |
Ignores language constructs for offloading. |
|
Qmic (Windows* OS) mmic (Linux* OS) |
Builds an application that runs natively on Intel® MIC Architecture. |
|
[Q]offload-attribute-target |
Flags every global routine and global data object in the source file with the offload attribute target(mic). |
|
[Q]offload-option |
Specifies options to be used for the specified target and tool. |
|
[Q]opt-report-phase=offload |
Specifies the offload optimizer phase to use when optimization reports are generated. |
|
[Q]opt-assume-safe-padding |
Determines whether the compiler assumes that variables and dynamically allocated memory are padded past the end of the object. |
|
[Q]opt-streaming-cache-evict |
Specifies the cache eviction level to be used by the compiler for streaming loads and stores. |
|
[Q]opt-threads-per-core |
Informs the compiler about the number of hardware threads per core that will be used for an application. |
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 |
Controls the I/O proxy of stderr and stdout. |