Concurrency 名前空間 (C++ AMP)
データ並列ハードウェアでの C++ コードの実行を高速化するクラスと関数を提供します。 詳細については、「C++ AMP の概要」を参照してください。
構文
namespace Concurrency;
メンバー
名前空間
名前 | 説明 |
---|---|
Concurrency::direct3d 名前空間 | D3D の相互運用性をサポートする関数を提供します。 AMP コードでの計算に D3D のリソースをシームレスに使用できるようになり、AMP で作成したリソースを D3D コードで使用することができ、冗長な中間コピーを作成する必要がありません。 C++ AMP を使用して、DirectX アプリケーションの計算中心のセクションの処理をインクリメントに加速し、AMP の計算から生成されるデータに対して D3D API を使用することができます。 |
Concurrency::fast_math 名前空間 | fast_math 名前空間の関数は C99 に準拠していません。 各関数の各単精度のバージョンのみが用意されています。 これらの関数は DirectX 組み込み関数を使用します。これは、precise_math 名前空間の対応する関数よりも高速で、アクセラレータでの倍精度の拡張サポートを必要としませんが、正確さに欠けます。 C99 コードとのソース レベルの互換性のための各関数には 2 つのバージョンがあります。どちらのバージョンも単精度の値を受け取り、返します。 |
Concurrency::graphics 名前空間 | グラフィックス プログラミング用に設計された型と関数を提供します。 |
Concurrency::precise_math 名前空間 | precise_math 名前空間の関数は C99 に準拠しています。 各関数の単精度バージョンと倍精度のバージョンの両方が含まれます。 単精度関数を含む、これらの関数ではアクセラレータでの倍精度の拡張サポートが必要です。 |
クラス
名前 | 説明 |
---|---|
accelerator クラス | 物理的に DP に最適化されたコンピューティング ノードの抽象化を表します。 |
accelerator_view クラス | C ++. AMP のデータ並列アクセラレータでの仮想デバイスの抽象化を表します。 |
accelerator_view_removed クラス | 基になる DirectX の呼び出しが Windows のタイムアウト検出と回復機構が原因で失敗した場合にスローされる例外。 |
array クラス | グリッド ドメインの accelerator_view のデータ集合体。 これは、グリッド ドメインの各要素に対して 1 つずつの変数のコレクションです。 各変数はいずれかの C++ 型に対応する値を保持します。 |
array_view クラス | array<T,N> 内のデータのビューを表します。 |
completion_future クラス | C++ AMP 非同期操作に対応する予定を表します。 |
extent クラス | 原点が 0 である N 次元空間の境界を指定する N 個の整数値のベクターを表します。 座標ベクターの値は最上位から最下位へ順に並べ替えられます。 たとえば、デカルトの 3 次元空間では、範囲ベクター (7,5,3) は、z 座標の範囲が 0 ~ 7、y 座標の範囲が 0 ~ 5、x 座標の範囲が 0 ~ 3 である空間を表します。 |
index クラス | N 次元のインデックス位置を定義します。 |
invalid_compute_domain クラス | ランタイムが、parallel_for_each 呼び出しサイトで指定された計算ドメインを使用してカーネルを起動できない場合にスローされる例外。 |
out_of_memory クラス | システムまたはデバイスのメモリ不足のためにメソッドが失敗した場合にスローされる例外。 |
runtime_exception クラス | C++ AMP ライブラリの例外の基本型。 |
tile_barrier クラス | システムによってのみ作成できる機能クラスであり、parallel_for_each パラメーターの一部として、タイルの tiled_index ラムダに渡されます。 これは 1 つのメソッド、wait() を提供します。その目的は、スレッド グループ (タイル) で実行されるスレッドの実行を同期することです。 |
tiled_extent クラス | tiled_extent オブジェクトは 3 つの次元のいずれかの extent オブジェクトであり、範囲空間を 1、2、または 3 次元のタイルに再分割します。 |
tiled_index クラス | tiled_grid オブジェクトにインデックスを提供します。 このクラスには、ローカル タイルの原点およびグローバル原点を基準として要素にアクセスするためのプロパティがあります。 |
uninitialized_object クラス | 初期化されていないオブジェクトが使用される場合にスローされる例外です。 |
unsupported_feature クラス | サポートされていない機能が使用される場合にスローされる例外です。 |
列挙型
名前 | 説明 |
---|---|
access_type列挙 | データ アクセスの種類を指定します。 |
queuing_mode列挙 | アクセラレータでサポートされているキュー モードを指定します。 |
演算子
演算子 | 説明 |
---|---|
operator== 演算子 (C++ AMP) | 指定したデータ構造が等しいかどうかを判断します。 |
operator!= 演算子 (C++ AMP) | 指定したデータ構造が等しくないかどうかを判断します。 |
operator+ 演算子 (C++ AMP) | 指定された引数の要素ごとの合計を計算します。 |
operator- 演算子 (C++ AMP) | 指定された引数の要素ごとの差を計算します。 |
operator* 演算子 (C++ AMP) | 指定された引数の要素ごとの積を計算します。 |
operator/ 演算子 (C++ AMP) | 指定された引数のコンポーネントごとの商を計算します。 |
operator% 演算子 (C++ AMP) | 2 番目の指定された引数による 1 番目の指定された引数の剰余を計算します。 |
関数
名前 | 説明 |
---|---|
all_memory_fence | すべてのメモリ アクセスが完了するまでタイルのすべてのスレッドの実行をブロックします。 |
amp_uninitialize | C++ AMP ランタイムを初期化前の状態に戻します。 |
atomic_compare_exchange | 過負荷です。 指定した位置に格納されている値が 1 番目の指定された値と同じ場合、2 番目の指定された値は分割不可能な操作として同じ位置に格納されます。 |
atomic_exchange | 過負荷です。 指定した位置に格納された値を分割不可能な操作として指定された値に設定します。 |
atomic_fetch_add | 過負荷です。 指定した位置に格納された値をその値および分割不可能な操作として指定された値の合計に設定します。 |
atomic_fetch_and | 過負荷です。 指定された位置に格納されている値をその値と分割不可能な操作として指定された値のビットごとの and に設定します。 |
atomic_fetch_dec | 過負荷です。 指定した位置に格納されている値をデクリメントし、分割不可能な操作としてしてその結果を同じ位置に格納します。 |
atomic_fetch_inc | 過負荷です。 指定した位置に格納されている値をインクリメントし、分割不可能な操作としてその結果を同じ位置に格納します。 |
atomic_fetch_max | 過負荷です。 指定された位置に格納された値を、その値および分割不可能な操作として指定された値の大きい方の値に設定します。 |
atomic_fetch_min | 過負荷です。 指定された位置に格納された値をその値および分割不可能な操作として指定された値の小さい方の値に設定します。 |
atomic_fetch_or | 過負荷です。 指定された位置に格納されている値をその値と分割不可能な操作として指定された値のビットごとの or に設定します。 |
atomic_fetch_sub | 過負荷です。 指定された位置に格納された値を、その値と分割不可能な操作として指定された値の差に設定します。 |
atomic_fetch_xor | 過負荷です。 指定された位置に格納されている値をその値と分割不可能な操作として指定された値のビットごとの xor に設定します。 |
copy | C++ AMP オブジェクトをコピーします。 すべての同期データ転送の要件が満たされます。 アクセラレータでコードを実行しているときにデータをコピーすることはできません。 この関数の一般的な形式は copy(src, dest) です。 |
copy_async | C++ AMP オブジェクトをコピーし、待機できる completion_future を返します。 アクセラレータでコードを実行しているときにデータはコピーできません。 この関数の一般的な形式は copy(src, dest) です。 |
direct3d_abort | 制限句 restrict(amp) がある関数の実行を中止します。 |
direct3d_errorf | 書式指定文字列を Visual Studio の [出力] ウィンドウに出力し、同じ書式指定文字列がある runtime_exception 例外を発生させます。 |
direct3d_printf | Visual Studio の [出力] ウィンドウに書式指定文字列を出力します。 これは制限句 restrict(amp) がある関数から呼び出されます。 |
global_memory_fence | すべてのグローバル メモリ アクセスが完了するまでタイルのすべてのスレッドの実行をブロックします。 |
parallel_for_each関数 (C++ AMP) | 計算ドメインを越えて関数を実行します。 |
tile_static_memory_fence | tile_static メモリ アクセスが完了するまでタイルのすべてのスレッドの実行をブロックします。 |
定数
名前 | 説明 |
---|---|
HLSL_MAX_NUM_BUFFERS定数 | DirectX で許容される最大バッファー数。 |
MODULENAME_MAX_LENGTH 定数 | モジュール名の最大長を格納します。 この値は、コンパイラとランタイムで同じにする必要があります。 |
要件
ヘッダー: amp.h