accelerator クラス
アクセラレータは、データ並列計算用に最適化されたハードウェアの機能です。 アクセラレータは、PCIe バス (GPU など) にアタッチされているデバイスである場合や主要 CPU の拡張命令セットである場合があります。
構文
class accelerator;
メンバー
パブリック コンストラクター
名前 | 説明 |
---|---|
accelerator コンストラクター | accelerator クラスの新しいインスタンスを初期化します。 |
~accelerator デストラクター | accelerator オブジェクトを破棄します。 |
パブリック メソッド
名前 | 説明 |
---|---|
create_view | このアクセラレータの accelerator_view オブジェクトを作成して返します。 |
get_all | 使用可能なすべてのアクセラレータを表す accelerator オブジェクトのベクターを返します。 |
get_auto_selection_view | 自動選択 accelerator_view を返します。 |
get_dedicated_memory | accelerator の専用のメモリ (KB 単位) を返します。 |
get_default_cpu_access_type | このアクセラレータで作成されるバッファーの既定の access_type を返します。 |
get_default_view | accelerator_view に関連付けられている既定の accelerator オブジェクトを返します。 |
get_description | accelerator デバイスの短い説明を返します。 |
get_device_path | デバイスのパスを返します。 |
get_has_display | accelerator がディスプレイにアタッチされるかどうかを決定します。 |
get_is_debug | accelerator が広範なエラー レポートに有効なデバッグ レイヤーを持つかどうかを決定します。 |
get_is_emulated | accelerator がエミュレートされるかどうかを決定します。 |
get_supports_cpu_shared_memory | accelerator が共有メモリをサポートするかどうかを決定します |
get_supports_double_precision | accelerator がディスプレイにアタッチされるかどうかを決定します。 |
get_supports_limited_double_precision | accelerator が倍精度サポートを制限するかどうかを決定します。 |
get_version | accelerator のバージョンを返します。 |
set_default | 既定のアクセラレータのパスを返します。 |
set_default_cpu_access_type | この accelerator で作成された配列と暗黙的なメモリ割り当ての既定の CPU access_type を設定します。 |
パブリック演算子
名前 | 説明 |
---|---|
operator!= | この accelerator オブジェクトを別のオブジェクトと比較し、それらが同じである場合は false を返します。それ以外の場合は true を返します。 |
operator= | 指定された accelerator オブジェクトの内容をこのオブジェクトにコピーします。 |
operator== | この accelerator オブジェクトを別のオブジェクトと比較し、それらが同じである場合は true を返します。それ以外の場合は false を返します。 |
パブリック データ メンバー
名前 | 説明 |
---|---|
cpu_accelerator | CPU accelerator の文字列定数を取得します。 |
dedicated_memory | accelerator の専用のメモリ (KB 単位) を取得します。 |
default_accelerator | 既定の accelerator の文字列定数を取得します。 |
default_cpu_access_type | この accelerator で作成された配列と暗黙的なメモリ割り当ての既定の CPU access_type を取得または設定します。 |
default_view | accelerator_view に関連付けられている既定の accelerator オブジェクトを取得します。 |
説明 | accelerator デバイスの短い説明を取得します。 |
device_path | デバイスのパスを取得します。 |
direct3d_ref | Direct3D 参照 accelerator の文字列定数を取得します。 |
direct3d_warp | ストリーミング SIMD 拡張命令 (SSE) を使用するマルチコア CPU で C++ AMP コードを実行するために使用できる accelerator オブジェクトの文字列定数を取得します。 |
has_display | accelerator がディスプレイにアタッチされているかどうかを示すブール値を取得します。 |
is_debug | accelerator に、広範なエラー レポートに有効なデバッグ レイヤーがあるかどうかを示します。 |
is_emulated | accelerator がエミュレートされるかどうかを示します。 |
supports_cpu_shared_memory | accelerator が共有メモリをサポートするかどうかを示します。 |
supports_double_precision | アクセラレータが倍精度数値演算をサポートするかどうかを示します。 |
supports_limited_double_precision | アクセラレータの倍精度数値演算のサポートが制限されているかどうかを示します。 |
version | accelerator のバージョンを取得します。 |
継承階層
accelerator
解説
アクセラレータは、データ並列計算用に最適化されたハードウェアの機能です。 多くの場合、アクセラレータは独立した GPU ですが、DirectX REF デバイス、WARP (SSE 命令で加速される CPU 側のデバイス)、または CPU 自体などの仮想ホスト側のエンティティでもあることがあります。
使用できるデバイスをエミュレートすることによって、または既定のデバイス、参照デバイス、または WARP デバイスを取得することによって、accelerator
オブジェクトを構築することができます。
要件
ヘッダー: amprt.h
名前空間: Concurrency
~accelerator
accelerator
オブジェクトを破棄します。
~accelerator();
戻り値
アクセラレータ
accelerator クラスの新しいインスタンスを初期化します。
accelerator();
explicit accelerator(const std::wstring& _Device_path);
accelerator(const accelerator& _Other);
パラメーター
_Device_path
物理デバイスのパスです。
_Other
コピーするアクセラレータです。
cpu_accelerator
CPU アクセラレータの文字列定数を取得します。
static const wchar_t cpu_accelerator[];
create_view
指定されたキュー モードを使用して、このアクセラレータに accelerator_view
オブジェクトを作成して返します。 キュー モードが指定されていない場合は、新しい accelerator_view
で queuing_mode::immediate キュー モードが使用されます。
accelerator_view create_view(queuing_mode qmode = queuing_mode_automatic);
パラメーター
qmode
キュー モード。
戻り値
指定されたキュー モードを使用する、このアクセラレータの新しい accelerator_view
オブジェクト。
dedicated_memory
accelerator
の専用のメモリ (KB 単位) を取得します。
__declspec(property(get= get_dedicated_memory)) size_t dedicated_memory;
default_accelerator
既定の accelerator
の文字列定数を取得します。
static const wchar_t default_accelerator[];
default_cpu_access_type
この accelerator
で作成された配列と暗黙的なメモリ割り当ての既定の CPU access_type。
__declspec(property(get= get_default_cpu_access_type)) access_type default_cpu_access_type;
default_view
accelerator
に関連付けられている既定のアクセラレータ ビューを取得します。
__declspec(property(get= get_default_view)) accelerator_view default_view;
description
accelerator
デバイスの短い説明を取得します。
__declspec(property(get= get_description)) std::wstring description;
device_path
アクセラレータのパスを取得します。 パスはシステム上で一意です。
__declspec(property(get= get_device_path)) std::wstring device_path;
direct3d_ref
Direct3D 参照アクセラレータの文字列定数を取得します。
static const wchar_t direct3d_ref[];
direct3d_warp
ストリーミング SIMD 拡張命令 (SSE) を使用するマルチコア CPU で C++ AMP コードを実行するために使用できる accelerator
オブジェクトの文字列定数を取得します。
static const wchar_t direct3d_warp[];
get_all
使用可能なすべてのアクセラレータを表す accelerator
オブジェクトのベクターを返します。
static inline std::vector<accelerator> get_all();
戻り値
使用可能なアクセラレータのベクター
get_auto_selection_view
ランタイムによって自動的に選択される parallel_for_each カーネルを実行するためにターゲットの accelerator_view で parallel_for_each ターゲット結果として指定される場合、自動選択の accelerator_view を返します。 その他のすべての目的については、このメソッドで返される accelerator_view は、既定のアクセラレータの既定の accelerator_view と同じです。
static accelerator_view __cdecl get_auto_selection_view();
戻り値
自動選択の accelerator_view。
get_dedicated_memory
accelerator
の専用のメモリ (KB 単位) を返します。
size_t get_dedicated_memory() const;
戻り値
accelerator
の専用メモリ (KB 単位)。
get_default_cpu_access_type
このアクセラレータで作成されるバッファーの既定の CPU access_type を取得します
access_type get_default_cpu_access_type() const;
戻り値
このアクセラレータで作成されるバッファーの既定の CPU access_type。
get_default_view
accelerator_view
に関連付けられている既定の accelerator
オブジェクトを返します。
accelerator_view get_default_view() const;
戻り値
accelerator
に関連付けられている既定の accelerator_view
オブジェクト。
get_description
accelerator
デバイスの短い説明を返します。
std::wstring get_description() const;
戻り値
accelerator
デバイスの短い説明。
get_device_path
アクセラレータのパスを返します。 パスはシステム上で一意です。
std::wstring get_device_path() const;
戻り値
システム全体で一意のデバイス インスタンス パス。
get_has_display
accelerator
がディスプレイに出力できるかどうかを示すブール値を返します。
bool get_has_display() const;
戻り値
accelerator
がディスプレイに出力できる場合は true
。それ以外の場合は false
。
get_is_debug
accelerator
が広範なエラー レポートに有効なデバッグ レイヤーを持つかどうかを決定します。
bool get_is_debug() const;
戻り値
accelerator
に、広範なエラー レポートが有効な DEBUG レイヤーがある場合は true
。 それ以外の場合は false
。
get_is_emulated
accelerator
がエミュレートされるかどうかを決定します。
bool get_is_emulated() const;
戻り値
accelerator
がエミュレートされる場合は true
。 それ以外の場合は false
。
get_supports_cpu_shared_memory
アクセラレータがアクセラレータと CPU の両方からアクセスできるメモリをサポートするかどうかを示すブール値を返します。
bool get_supports_cpu_shared_memory() const;
戻り値
アクセラレータが CPU 共有メモリをサポートする場合は true
。それ以外の場合は false
。
get_supports_double_precision
融合積和演算 (FMA)、除算、逆数、int
と double
間のキャストなどの倍精度演算をアクセラレータがサポートしているかどうかを示すブール値を返します。
bool get_supports_double_precision() const;
戻り値
アクセラレータが倍精度演算をサポートする場合は true
。それ以外の場合は false
。
get_supports_limited_double_precision
アクセラレータによる倍精度演算のサポートが制限されているかどうかを示すブール値を返します。 アクセラレータによるサポートが制限されている場合、融合積和演算 (FMA)、除算、逆数、int
と double
間のキャストはサポートされません。
bool get_supports_limited_double_precision() const;
戻り値
アクセラレータによる倍精度演算のサポートが制限されている場合は true
。それ以外の場合は false
。
get_version
accelerator
のバージョンを返します。
unsigned int get_version() const;
戻り値
accelerator
のバージョン。
has_display
accelerator
がディスプレイに出力できるかどうかを示すブール値を取得します。
__declspec(property(get= get_has_display)) bool has_display;
is_debug
accelerator
に広範なエラー レポートが有効な DEBUG レイヤーがあるかどうかを示すブール値を取得します。
__declspec(property(get= get_is_debug)) bool is_debug;
is_emulated
accelerator
がエミュレートされるかどうかを示すブール値を取得します。
__declspec(property(get= get_is_emulated)) bool is_emulated;
operator!=
この accelerator
オブジェクトを別のオブジェクトと比較し、それらが同じである場合は false
を返します。それ以外の場合は true
を返します。
bool operator!= (const accelerator& _Other) const;
パラメーター
_Other
このオブジェクトと比較する accelerator
オブジェクト。
戻り値
false
2 つの accelerator
オブジェクトが同じ場合は。それ以外の場合は true
。
operator=
指定された accelerator
オブジェクトの内容をこのオブジェクトにコピーします。
accelerator& operator= (const accelerator& _Other);
パラメーター
_Other
コピー元の accelerator
オブジェクト。
戻り値
この accelerator
オブジェクトへの参照。
operator==
この accelerator
オブジェクトを別のオブジェクトと比較し、それらが同じである場合は true
を返します。それ以外の場合は false
を返します。
bool operator== (const accelerator& _Other) const;
パラメーター
_Other
このオブジェクトと比較する accelerator
オブジェクト。
戻り値
比較対象の accelerator
オブジェクトがこの accelerator
オブジェクトと同じである場合は true
。それ以外の場合は false
。
set_default
暗黙的に既定のアクセラレータを使用するすべての操作に使用する既定のアクセラレータを設定します。 このメソッドは、ランタイムによって選択された既定のアクセラレータが暗黙的に既定のアクセラレータを使用する操作で既に使用されていない場合にのみ正常に終了します
static inline bool set_default(std::wstring _Path);
パラメーター
_Path
アクセラレータへのパス。
戻り値
true
既定のアクセラレータの設定で呼び出しが成功した場合は 。 それ以外の場合は false
。
set_default_cpu_access_type
このアクセラレータで作成される配列、またはこのアクセラレータでアクセスされる array_views の一部としての暗黙的なメモリ割り当ての、既定の CPU access_type を設定します。 アクセラレータの default_cpu_access_type が、このメソッドの以前の呼び出しによってまだオーバーライドされておらず、ランタイムによって選択されたこのアクセラレータの default_cpu_access_type が、このアクセラレータでの配列の割り当て、またはこのアクセラレータでアクセスされる array_view を支援する暗黙的なメモリ割り当てにまだ使用されていない場合にのみ、このメソッドは成功します。
bool set_default_cpu_access_type(access_type _Default_cpu_access_type);
パラメーター
_Default_cpu_access_type
このアクセラレータの array/array_view メモリ割り当てに使用される既定の CPU access_type。
戻り値
アクセラレータの既定の CPU access_type が正常に設定されたかどうかを示すブール値。
supports_cpu_shared_memory
accelerator
が共有メモリをサポートしているかどうか示すブール値を取得します。
__declspec(property(get= get_supports_cpu_shared_memory)) bool supports_cpu_shared_memory;
supports_double_precision
アクセラレータが倍精度演算をサポートしているかどうかを示すブール値を取得します。
__declspec(property(get= get_supports_double_precision)) bool supports_double_precision;
supports_limited_double_precision
アクセラレータによる倍精度演算のサポートが制限されているかどうかを示すブール値を取得します。 アクセラレータによるサポートが制限されている場合、融合積和演算 (FMA)、除算、逆数、int
と double
間のキャストはサポートされません。
__declspec(property(get= get_supports_limited_double_precision)) bool supports_limited_double_precision;
version
accelerator
のバージョンを取得します。
__declspec(property(get= get_version)) unsigned int version;