インテル® C++ コンパイラー 16.0 ユーザー・リファレンス・ガイド
このトピックは、インテル® メニー・インテグレーテッド・コア (インテル® MIC) アーキテクチャーにのみ適用されます。
ターゲットが CPU のみの実行の場合にビルドされないコードを記述できます。
デフォルトでは、コンパイラーはマクロ __INTEL_OFFLOAD を定義します。ソースコードを (ヘテロジニアスまたはネイティブに) コプロセッサーで実行するようにカスタマイズしている場合、#ifdef __INTEL_OFFLOAD セクション内にコードを記述できます。
例えば、このマクロを使用してオフロードビルドでのみ実行されるようにホストのコードを保護できます (offload.h の omp_set_num_threads_target ファミリーの API の呼び出しなど)。
ホスト・コンパイラーのセクションは、[Q]offload optional コンパイラー・オプション、Qmic コンパイラー・オプション (Windows*)、または mmic コンパイラー・オプション (Linux*) を指定してコンパイルした場合のみ動作します。
#include <stdio.h> __declspec(target(mic)) void print() { #ifdef __INTEL_OFFLOAD #ifdef __MIC__ printf("Using offload compiler : Hello from the coprocessor\n"); fflush(0); #else /* !__MIC__ */ printf("Using offload compiler : Hello from the CPU\n"); #endif /* __MIC__ */ #else /* !__INTEL_OFFLOAD */ printf("Using host compiler : Hello from the CPU\n"); #endif /* __INTEL_OFFLOAD */ } int main() { #pragma offload target(mic) print(); }