Intel® Fortran Compiler 19.0 Developer Guide and Reference

Intel® Many Integrated Core Architecture (Intel® MIC Architecture)

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® Fortran Compiler provides several elements to enable programming for and building binaries to run on the Intel® Many Integrated Core Architecture (Intel® MIC Architecture), including:

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.

Programming for 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 directive

OFFLOAD_ATTRIBUTE directive

OFFLOAD_TRANSFER directive

OFFLOAD_WAIT directive

OFFLOAD BEGIN and END OFFLOAD directive

Note

These directives are deprecated.

Directives to control the data transfer between the CPU and the coprocessor.

__INTEL_OFFLOAD macro

__TARGET_ARCH_MIC macro

__AVX512F__ macro

__AVX512CD__ macro

__AVX512ER__ macro

__AVX512PF__ macro

Note

The __INTEL_OFFLOAD macro is deprecated.

Predefined preprocessor symbols for use with the Intel® Xeon Phi™ product family x200 (formerly code name Knights Landing).

ATTRIBUTES OFFLOAD directive

A directive for placing variables and functions on the coprocessor.

APIs in mic_lib.f90

Note

These functions are deprecated.

A set of functions for:

  • dealing with multiple coprocessors

  • calling functions on the CPU to modify the coprocessor's execution environment

  • writing code that should not be built for CPU-only execution

Building for Intel® MIC Architecture

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*)

Note

This 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

Note

This 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

Note

This variable is deprecated.

Controls the I/O proxy of stderr and stdout.

See Also