インテル® C++ コンパイラー 17.0 デベロッパー・ガイドおよびリファレンス

qopenmp-offload、Qopenmp-offload

target プラグマの OpenMP* オフロードコンパイルを有効/無効にします。 このオプションは、インテル® MIC アーキテクチャーおよびインテル® グラフィックス・テクノロジーにのみ適用されます。 -qopenmp-offload は、古いオプション -openmp-offload の後継オプションです。

アーキテクチャーの制限

インテル® MIC アーキテクチャーをターゲットとするインテル® 64 アーキテクチャー、インテル® グラフィックス・テクノロジーをターゲットとする IA-32 アーキテクチャー、またはインテル® グラフィックス・テクノロジーをターゲットとするインテル® 64 アーキテクチャーでのみ利用できます。

構文

Linux*:

-qopenmp-offload[=device]

-qno-openmp-offload

OS X*:

なし

Windows®:

/Qopenmp-offload[:device]

/Qopenmp-offload-

引数

device

target プラグマのデフォルトのデバイスを指定します。設定可能な値は以下のとおりです。

mic

ターゲットデバイスをインテル® MIC アーキテクチャーに指定します。これはデフォルトです。 この値は、インテル® 64 アーキテクチャー・ベースの Windows® および Linux* システムで利用できます。

gfx

ターゲットデバイスをインテル® グラフィックス・テクノロジーに指定します。 この値は、インテル® 64 アーキテクチャー・ベースの Windows® および Linux* システム、IA-32 アーキテクチャー・ベースの Windows® システムで利用できます。

host

オフロードの準備はしますが、ターゲットコードをホストシステムで実行します。 ターゲットデバイスが利用できない場合の #pragma omp target の動作をテストできます。 この値は、IA-32 およびインテル® 64 アーキテクチャー・ベースの Windows® および Linux* システムで利用できます。

デフォルト

-qno-openmp-offload または /Qopenmp-offload-

OpenMP* のオフロードコンパイルは無効です。ただし、[q または Q]openmp オプションを指定すると、デフォルトはオンになり、OpenMP* のオフロードコンパイルが有効になります。

説明

このオプションは、target プラグマの OpenMP* オフロードコンパイルを有効/無効にします。 オフロードを有効にすると、target プラグマのデフォルトのターゲットデバイスを指定できます。 デフォルトは mic です。

ほかの OpenMP* 機能に影響を与えることなく、オフロード機能を有効/無効にする場合もこのオプションを使用します。 この場合、OpenMP* ランタイム・ライブラリーのリンクは不要で、コンパイラーは OpenMP* ランタイムの初期化コードを生成する必要はありません。

このオプションと [q または Q]openmp を一緒に指定すると、ほかの OpenMP* 機能に影響します。

IDE オプション

Visual Studio®: [Code Generation [Intel C++] (コード生成 [インテル® C++])] > [Enable OpenMP Offloading Compilation and specify target device (OpenMP* オフロードコンパイルを有効にする)]

Eclipse*: [Code Generation (コード生成)] > [Enable OpenMP Offloading Compilation (OpenMP* オフロードコンパイルを有効にする)]

[Code Generation (コード生成)] > [Target Device for OpenMP Offloading Compilation (OpenMP* オフロードコンパイルのターゲットデバイス)]

Xcode*: なし

代替オプション

なし

次の例について考えてみます。

-qno-openmp -qopenmp-offload    ! Linux*
/Qopenmp- /Qopenmp-offload      ! Windows® 

上記は、[q または Q]openmp-offload のみを指定する場合と同じです。 この場合、オフロード・ライブラリーのみリンクされ、OpenMP* ライブラリーはリンクされません。また、TARGET 用の !$OMP ディレクティブのみ処理されます。

次の例について考えてみます。

-qopenmp -qopenmp-offload       ! Linux*
/Qopenmp /Qopenmp-offload       ! Windows® 

この場合、オフロード・ライブラリーと OpenMP* ライブラリーがリンクされ、OpenMP* ランタイムの初期化コードが生成されます。

関連情報