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

CPU のみの実行の場合にビルドされないコードの記述

このトピックは、インテル® メニー・インテグレーテッド・コア (インテル® MIC) アーキテクチャーにのみ適用されます。

ターゲットが CPU のみの実行の場合にビルドされないコードを記述できます。

デフォルトでは、コンパイラーはマクロ __INTEL_OFFLOAD を定義します。 ソースコードを (ヘテロジニアスまたはネイティブに) コプロセッサーで実行するようにカスタマイズしている場合、#ifdef __INTEL_OFFLOAD セクション内にコードを記述できます。

例えば、このマクロを使用してオフロードビルドでのみ実行されるようにホストのコードを保護できます (mic_lib.f90omp_set_num_threads_target ファミリーの API の呼び出しなど)。

ホスト・コンパイラーのセクションは、[Q]offload optional コンパイラー・オプション、Qmic コンパイラー・オプション (Windows®)、または mmic コンパイラー・オプション (Linux*) を指定してコンパイルした場合のみ動作します。

#ifdef __INTEL_OFFLOAD
   #ifdef __MIC__
          PRINT *,"Using offload compiler :  Hello from the coprocessor"
   #elif __TARGET_ARCH_MIC
          PRINT *,"Using offload compiler :  Hello from the coprocessor"
   #else  /* __MIC__ */
          PRINT *,"Using offload compiler :  Hello from the CPU"
   #endif  /* __MIC__ */
   #else
      #ifdef __MIC__
         PRINT *,"Using native compiler :  Hello from the coprocessor"
      #else
         PRINT *,"Using host compiler :  Hello from the CPU"
      #endif
#endif

関連情報