Intel® C++ Compiler XE 13.1 User and Reference Guides
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
intrinsics
class libraries
OpenMP* considerations
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 |
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. |
|
__MIC__ macro __KNC__ macro __INTEL_OFFLOAD macro |
Predefined macros 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 several compiler options and environment variables that you can use when building a binary for Intel® MIC Architecture.
You can use the compiler options to:
ignore language constructs for offloading (no-offload)
build an application that runs natively on Intel® MIC Architecture (mmic)
flag every global routine and global data object in the source file with the offload attribute target(mic)(offload-attribute-target)
specify options to be used for the specified target and tool (offload-option)
(opt-report-phase=offload)
You can use environment variables for a variety of tasks, including:
setting the stack size on the coprocessor (MIC_STACKSIZE)
controlling environment variables passed to the coprocessor ( MIC_ENV_PREFIX)
controlling MIC I/O proxy (MIC_PROXY_IO)