インテル® C++ コンパイラー 16.0 ユーザー・リファレンス・ガイド
このトピックは、インテル® グラフィックス・テクノロジーをターゲットとする IA-32 およびインテル® 64 アーキテクチャーにのみ適用されます。
コンパイラーは、プロセッサー・グラフィックスを利用する 2 つのヘテロジニアス・オフロード・プログラミング・モデルを提供します。
同期オフロード:
このモデルは、#pragma offload 以下の並列ループとして並列 _Cilk_for ループを使用します。
CPU は、オフロードタスクの完了を待機してから実行を継続します。
コンパイラーは、並列 _Cilk_for ループを含むオフロード領域に基づいてデータ共有とカーネルの作成を行います。
非同期オフロード:
このモデルは、API を使用します。
CPU は、カーネルの完了を待つように要求されるまで実行を継続します。
データ共有とカーネルのエンキューをより細かく制御できます。データ共有とカーネルのエンキューは個別の処理なので、複数のカーネルでデータを共有できます。
インテル® グラフィックス・テクノロジー・ランタイムと gfx_rt.h ヘッダーファイルは、キューに追加されたユーザー定義のカーネル関数のオフロード、および CPU とプロセッサー・グラフィックス間のデータ共有をわずかなプログラミングの変更で制御できる非同期 API を提供します。この API は、カーネル・エントリー・ポイントの並列ループとして _Cilk_for を用いて記述された名前付きカーネルやダイレクトカーネルとともに使用できます。
この API には次の関数が含まれます。
名前 |
説明 |
---|---|
GfxTaskId _GFX_offload |
インオーダーのオフロードキューにタスクを追加します。 |
_GFX_wait |
タスクの完了を待ちます。 |
_GFX_share _GFX_unshare |
共有リニアデータを管理します。 |
GfxImage2D (C++ インターフェイス、クラス・コンストラクター) GfxSharedImage2D (C++ インターフェイス、クラス・コンストラクター) GfxResourceHandle _GFX_create_image_2d (C インターフェイス) _GFX_close_resource_handle (C インターフェイス) |
プロセッサー・グラフィックス操作の 2D イメージを作成/破棄します。 |
GfxImage2D::write (C インターフェイス) GfxSharedImage2D::write (C インターフェイス) GfxImage2::read (C インターフェイス) GfxSharedImage2::read (C インターフェイス) _GFX_read_image_2d (C インターフェイス) _GFX_write_image_2d (C インターフェイス) |
CPU と GPU 間で 2D イメージのコンテンツを同期します。 |