インテル® Fortran コンパイラー XE 13.1 ユーザー・リファレンス・ガイド

オフロードの開始

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

OFFLOAD 宣言子を、 サブルーチン呼び出し文、x = func() 形式の関数呼び出し文、または OpenMP* parallel 宣言子の前に配置することができます。

次に例を示します。

  !DIR$ OFFLOAD BEGIN target(mic : target_id) &
                             inout(numEs) in(all_Vals) out(E_vals)
      do k = 1, MAXSZ
         if ( MODULO(all_Vals(k),2) == 0 ) then
             numEs = numEs + 1
             E_vals(numEs) = all_Vals(k)
         endif
      enddo
  !DIR$ END OFFLOAD

このコードブロックは、最初の 10 個の偶数を検索して配列に格納します。コードブロックの先頭および終了OFFLOAD 宣言子です。 コンパイラーは、CPU とコプロセッサーの両方で実行するようにコードブロックをビルドします。

ホスト CPU とコプロセッサーの命令セットは似ていますが、同じシステムメモリーを共有しません。このため、コードブロックで使用する変数はホスト CPU とコプロセッサーの両方に存在していなければなりません。宣言子は、指定子を使用してホスト CPU とコプロセッサー間でコピーする変数を定義します。

宣言子には、複数のコプロセッサーを持つシステムの特定のコプロセッサーを指定する target (mic:target_number) 指定子も含まれています。

デフォルトでは、コンパイラーは CPU とコプロセッサーの両方で実行するアプリケーションを生成しますが、-no-offload コンパイラー・オプションを使用して、同じソースコードから CPU のみで実行するアプリケーションを生成することもできます。

関連情報


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