インテル® Fortran コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス
このトピックは、インテル® メニー・インテグレーテッド・コア (インテル® MIC) アーキテクチャーをターゲットとする場合にのみ適用されます。
インテル® Fortran コンパイラーでは、インテル® メニー・インテグレーテッド・コア (インテル® MIC) アーキテクチャーで実行するバイナリーのプログラミングとビルド用にさまざまな機能が用意されています。
言語拡張
コンパイラー・オプション
環境変数
OpenMP*
オフロード用に定義されているコードは、Linux* または Windows* を実行するインテル® Xeon® プロセッサー・ベースのホストおよびインテル® MIC アーキテクチャーをサポートするターゲットで実行します。
コードのセクションをオフロードしてインテル® MIC アーキテクチャーで実行できる並列プログラム、またはインテル® MIC アーキテクチャーでネイティブに実行できる並列プログラムを記述することができます。インテル® MIC アーキテクチャー向けのプログラミング拡張を含むソースファイルをコンパイルすると、ホストバイナリーとオフロードバイナリーの両方を含む FAT バイナリーが作成されます。コンパイル時に指定されたオプションに応じて、FAT バイナリーはオブジェクト、アーカイブ、または実行ファイルになります。FAT バイナリーからオフロードバイナリーを抽出する方法は、オフロード抽出ツール (offload_extract) に関連するトピックを参照してください。
コンパイラーには、インテル® MIC アーキテクチャー向けのプログラミング用に、次の言語拡張が用意されています。
名前 |
説明 |
---|---|
OFFLOAD ディレクティブ OFFLOAD_ATTRIBUTE ディレクティブ OFFLOAD_TRANSFER ディレクティブ OFFLOAD_WAIT ディレクティブ OFFLOAD BEGIN および END OFFLOAD ディレクティブ PREFETCH/NOPREFETCH ディレクティブ |
CPU とコプロセッサー間のデータ転送を制御するディレクティブ。 |
__INTEL_OFFLOAD マクロ __TARGET_ARCH_MIC マクロ __AVX512F__ マクロ __AVX512CD__ マクロ __AVX512ER__ マクロ __AVX512PF__ マクロ |
インテル® Xeon Phi™ x200 製品ファミリー (開発コード名 Knights Landing) で使用可能なプリプロセッサー・シンボル。 |
ATTRIBUTES OFFLOAD ディレクティブ |
コプロセッサーに変数と関数を配置するためのディレクティブ。 |
mic_lib.f90 の API |
次の処理を行う関数のセットが用意されています。
|
コンパイラーには、インテル® MIC アーキテクチャー用のバイナリーをビルドするときに使用できる、次のコンパイラー・オプションと環境変数が用意されています。
コンパイラー・オプション |
説明 |
---|---|
Qoffload- (Windows*) qno-offload (Linux*) |
オフロードの言語構造を無視します。 |
Qoffload-arch、qoffload-arch |
オフロードコードのターゲット・アーキテクチャーを指定します。 |
Qoffload-attribute-target、qoffload-attribute-target |
ソースファイル中のすべてのグローバルルーチンとグローバル・データ・オブジェクトにオフロード属性 target(mic) のフラグを付けます。 |
Qoffload-option、qoffload-option |
指定したターゲットとツールで使うオプションを指定します。 |
Qopt-report-phase:offload、qopt-report-phase=offload |
最適化レポートを生成するときに使用する offload 最適化フェーズを指定する |
Qopt-assume-safe-padding、qopt-assume-safe-padding |
変数と動的に割り当てられたメモリーがオブジェクト境界を越えてパディングされているとコンパイラーが仮定するかどうかを制御します。 |
Qopt-threads-per-core、qopt-threads-per-core |
アプリケーションで使用するコアあたりのスレッド数をコンパイラーに知らせます。 |
以下に、インテル® MIC アーキテクチャーで利用可能な環境変数の一部を示します。
環境変数 |
説明 |
---|---|
MIC_STACKSIZE |
コプロセッサーのスタックサイズを設定します。 |
MIC_ENV_PREFIX |
コプロセッサーに渡される環境変数を制御します。 |
MIC_PROXY_IO |
stderr と stdout の I/O プロキシーを制御します。 |