ターゲット数を特定する

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

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

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

    #ifdef __INTEL_OFFLOAD
         print "(2X,A,/)", &
               "Checking for Intel® Xeon Phi™ (Target CPU) devices..."
         num_devices = OFFLOAD_NUMBER_OF_DEVICES()
         print "(4X,A,I6,/)","Number of Target devices installed: ",num_devices
    #endif

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

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

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

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

次へ


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