ターゲット数を特定する

このステップでは、ターゲットの数を特定するコードのセクションを確認します。

  1. [ソリューション エクスプローラー] で tbo_sort.c をダブルクリックします。

  2. 次のソースコードを探します。

    #ifdef __INTEL_OFFLOAD
       printf(" Checking for Intel® Xeon Phi™ (Target CPU)devices...\n\n");
       num_devices = _Offload_number_of_devices();
       printf(" Number of Target devices installed: %d\n\n",num_devices);
    #endif

このコードブロックの #ifdef プラグマには、事前定義済みマクロ __INTEL_OFFLOAD が含まれています。 デフォルトでは、ソースコードにオフロード言語拡張が含まれている場合、コンパイラーはこのマクロを定義して、そのコードブロックをホストでコンパイルして実行します。そうでない場合、コンパイラーはマクロを定義せず、そのコードブロックをコンパイルしません。no-offload コンパイラー・オプションを指定してコードをコンパイルすると、オフロード言語拡張が除外され、このマクロが定義されず、ホストでのみ実行するアプリケーションが生成されます。 ターゲットにオフロードする前にコードの動作を確認する場合、このオプションを使用します。

後で、no-offload コンパイラー・オプションを指定して同じソースコードをコンパイルするときに、このコードブロックとその他のオフロード言語拡張を除外します。

コードブロック内には、ターゲットの数を特定するコードも含まれています。_Offload_number_of_devices 関数は、取り付けられているターゲットの数と利用可能なターゲットの数を返します。 システムに取り付けられているターゲットあるいは利用可能なターゲットがない場合、この関数は -1 を返します。

次のステップでは、ホストとターゲットの両方で実行するように定義されているコードのセクションを確認します。

次へ


このヘルプトピックについてのフィードバックを送信