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 相關聯的默認accelerator_view 物件。 |
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 相關聯的默認accelerator_view 物件。 |
description | 取得裝置的 accelerator 簡短描述。 |
device_path | 取得裝置的路徑。 |
direct3d_ref | 取得 Direct3D 參考 accelerator 的字串常數。 |
direct3d_warp | 取得物件的字串常數 accelerator ,這個物件可用於在使用串流 SIMD 延伸模組 (SSE) 的多核心 CPU 上執行 C++ AMP 程式代碼。 |
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
命名空間: 並行
~加速器
accelerator
終結物件。
~accelerator();
傳回值
加速器
初始化快捷鍵類別的新實例。
accelerator();
explicit accelerator(const std::wstring& _Device_path);
accelerator(const accelerator& _Other);
參數
_Device_path
實體裝置的路徑。
_其他
要複製的加速器。
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
陣列的預設 cpu access_type,以及在此 accelerator
上所做的隱含記憶體配置。
__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
取得物件的字串常數 accelerator
,您可以使用串流 SIMD 延伸模組 (SSE) 在多核心 CPU 上執行C++ AMP 程式代碼。
static const wchar_t direct3d_warp[];
get_all
傳回代表所有可用快捷鍵的物件向量 accelerator
。
static inline std::vector<accelerator> get_all();
傳回值
可用加速器的向量
get_auto_selection_view
會傳回自動選取accelerator_view,當指定為parallel_for_each目標時,會導致目標accelerator_view執行運行時間自動選取parallel_for_each核心。 針對所有其他用途,此方法傳回的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
相關聯的默認accelerator_view
物件。
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
傳回 Boolean 值,指出 是否可以 accelerator
輸出至顯示器。
bool get_has_display() const;
傳回值
true
accelerator
如果可以輸出至顯示器,則為 ,false
否則為 。
get_is_debug
判斷 是否 accelerator
已啟用偵錯層進行廣泛的錯誤報告。
bool get_is_debug() const;
傳回值
true
accelerator
如果已開啟偵錯層進行廣泛的錯誤報告, 則為 。 否則為 false
。
get_is_emulated
判斷 是否 accelerator
模擬 。
bool get_is_emulated() const;
傳回值
true
如果 模擬 , accelerator
則為 。 否則為 false
。
get_supports_cpu_shared_memory
傳回布爾值,指出加速器是否支援加速器和 CPU 可存取的記憶體。
bool get_supports_cpu_shared_memory() const;
傳回值
true
如果加速器支援 CPU 共用記憶體,則為 ;否則為 false
。
get_supports_double_precision
傳回布爾值,這個值表示加速器是否支援雙精確度數學,包括融合乘法加法 (FMA)、除法、倒數和轉換之間的 int
和 double
bool get_supports_double_precision() const;
傳回值
true
如果快捷鍵支援雙精確度數學,則為 ;否則為 false
。
get_supports_limited_double_precision
傳回布爾值,指出加速器是否對雙精確度數學的支援有限。 如果加速器只有有限的支援,則不支援和之間的int
double
融合乘法加法(FMA)、除法、相互和轉換。
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
已啟用偵錯層進行廣泛的錯誤報告。
__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;
參數
_其他
要 accelerator
與這個對象比較的物件。
傳回值
false
如果兩 accelerator
個物件相同,則為 ,否則為 true
。
operator=
將指定 accelerator
物件的內容複製到這個物件。
accelerator& operator= (const accelerator& _Other);
參數
_其他
要 accelerator
從中複製的物件。
傳回值
這個 accelerator
對象的參考。
operator==
比較這個 accelerator
物件與另一個 物件,如果它們相同,則傳回 true
;否則會傳 false
回 。
bool operator== (const accelerator& _Other) const;
參數
_其他
要 accelerator
與這個對象比較的物件。
傳回值
true
如果另一個 accelerator
物件與這個 accelerator
物件相同,則為 ,否則為 false
。
set_default
設定要用於隱含使用預設快速鍵之任何作業的預設快捷鍵。 只有在運行時間選取的預設快速鍵尚未在隱含使用預設加速器的作業中,這個方法才會成功
static inline bool set_default(std::wstring _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_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
取得布爾值,指出加速器是否對雙精確度數學的支援有限。 如果加速器只有有限的支援,則不支援和之間的int
double
融合乘法加法(FMA)、除法、相互和轉換。
__declspec(property(get= get_supports_limited_double_precision)) bool supports_limited_double_precision;
version
取得的版本 accelerator
。
__declspec(property(get= get_version)) unsigned int version;