加速器是針對數據平行運算優化的硬體功能。 加速器可能是連接至PCIe總線的裝置(例如 GPU),或可能是主要 CPU 上的擴充指令集。
語法
class 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 是否已啟用 DEBUG 層,以便進行詳細的錯誤報告。 |
| 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_cpu_access_type | 設定預設的CPU訪問類型,用於在此accelerator上進行的數組和隱性記憶體分配。 |
公用運算子
| 名稱 | 描述 |
|---|---|
| 運算符!= | 比較這個 accelerator 物件與另一個 物件,如果它們相同,則傳回 false ;否則會傳 true回 。 |
| 運算子= | 將指定 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 | 取得物件的字串常數 accelerator ,這個物件可用於在使用串流 SIMD 延伸模組 (SSE) 的多核心 CPU 上執行 C++ AMP 程式代碼。 |
| 顯示器存在 | 取得佈林值,表示accelerator是否連接至顯示器。 |
| is_debug | 指出是否 accelerator 已啟用偵錯層以進行廣泛的錯誤報告。 |
| is_emulated | 指出是否 accelerator 模擬 。 |
| 支援 CPU 共用記憶體 | 指出是否 accelerator 支援共用記憶體。 |
| 支援雙精度 | 指出加速器是否支援雙精確度數學。 |
| 支持有限雙精度 | 指出加速器是否對雙精確度數學的支援有限。 |
| 版本 | 取得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 加速器的字串常數。
static const wchar_t cpu_accelerator[];
建立視圖
使用指定的佇列模式,在此加速器上建立並傳回 accelerator_view 物件。 未指定佇列模式時,新的 accelerator_view 會使用 queuing_mode::immediate 佇列模式。
accelerator_view create_view(queuing_mode qmode = queuing_mode_automatic);
參數
qmode
佇列模式。
傳回值
這個加速器上的新 accelerator_view 物件,使用指定的佇列模式。
專用記憶體
以 KB 為單位,取得accelerator的專用記憶體。
__declspec(property(get= get_dedicated_memory)) size_t dedicated_memory;
預設加速器
取得預設 accelerator的字串常數。
static const wchar_t default_accelerator[];
預設CPU存取類型
在此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;
說明
取得裝置的 accelerator 簡短描述。
__declspec(property(get= get_description)) std::wstring description;
設備路徑
取得加速器的路徑。 路徑在系統上是唯一的。
__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();
傳回值
可用加速器的向量
自動選取檢視取得
返回自動選擇的加速器檢視器 accelerator_view,當其被指定為 parallel_for_each 的目標時,運行時間會自動選擇執行 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 get_default_cpu_access_type() const;
傳回值
在此加速器上建立之緩衝區的預設 cpu access_type。
get_default_view(取得預設檢視)
傳回與accelerator_view相關聯的默認accelerator物件。
accelerator_view get_default_view() const;
傳回值
與accelerator_view相關聯的默認accelerator物件。
get_description
傳回裝置的 accelerator 簡短描述。
std::wstring get_description() const;
傳回值
accelerator 裝置的簡短描述。
取得設備路徑
傳回加速器的路徑。 路徑在系統上是唯一的。
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;
傳回值
如果accelerator已啟用偵錯層以進行廣泛的錯誤報告,則true。 否則為 false。
If permissible by the context, consider translating it to: 獲取是否已虛擬化
判斷 accelerator 是否已被模擬。
bool get_is_emulated() const;
傳回值
true 如果accelerator被模擬,則... 否則為 false。
取得支援CPU共用記憶體
傳回一個布爾值,指示此加速器是否支援加速器及 CPU 都能存取的記憶體。
bool get_supports_cpu_shared_memory() const;
傳回值
true 如果加速器支援 CPU 共用記憶體,則為 ;否則為 false。
獲取支持雙精度
傳回布爾值,表示加速器是否支援雙精度數學,包括融合乘加(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 如果加速器對雙精度數學的支援有限,則為true,否則為false。
get_version
傳回 accelerator 的版本。
unsigned int get_version() const;
傳回值
accelerator的版本。
具有顯示功能
取得一個布爾值,用於判斷是否可以將 accelerator 輸出到顯示器。
__declspec(property(get= get_has_display)) bool has_display;
is_debug
取得布爾值,指出是否 accelerator 已啟用偵錯層進行廣泛的錯誤報告。
__declspec(property(get= get_is_debug)) bool is_debug;
是否模擬
若 accelerator 是否被模擬,則返回布林值。
__declspec(property(get= get_is_emulated)) bool is_emulated;
operator!=
比較這個 accelerator 物件與另一個 物件,如果它們相同,則傳回 false ;否則會傳 true回 。
bool operator!= (const accelerator& _Other) const;
參數
_其他
要比較的 accelerator 物件與此物件。
傳回值
false 如果兩 accelerator 個物件相同,則為 ,否則為 true。
運算子=
將指定 accelerator 物件的內容複製到這個物件。
accelerator& operator= (const accelerator& _Other);
參數
_其他
要從accelerator複製的物件。
傳回值
這個 accelerator 對象的參考。
operator==
比較這個 accelerator 物件與另一個 物件,如果它們相同,則傳回 true ;否則會傳 false回 。
bool operator== (const accelerator& _Other) const;
參數
_其他
要比較的 accelerator 物件與此物件。
傳回值
true 如果另一個 accelerator 物件與這個 accelerator 物件相同,則為 ,否則為 false。
設定預設值
設定任何隱含會使用預設加速器的作業將使用的預設加速器。 只有當執行期間選定的預設加速器尚未在隱含使用它的作業中用過時,這個方法才會成功。
static inline bool set_default(std::wstring _Path);
參數
_路徑
通往加速器的路徑。
傳回值
true 如果設定為預設加速器的操作成功。 否則為 false。
set_default_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
用於此加速器上陣列/陣列視圖記憶體配置的預設 CPU 存取類型。
傳回值
布爾值,表示是否已成功將加速器的預設 CPU 訪問類型設置為 access_type。
支援 CPU 共享記憶體
取得布爾值,指出 是否 accelerator 支援共用記憶體。
__declspec(property(get= get_supports_cpu_shared_memory)) bool supports_cpu_shared_memory;
支援雙精度
取得布爾值,指出加速器是否支援雙精確度數學。
__declspec(property(get= get_supports_double_precision)) bool supports_double_precision;
支援受限的雙精度
取得布爾值,指出加速器是否對雙精確度數學的支援有限。 如果加速器只有有限的支援,則不支援int和double之間的融合乘加(FMA)、除法、倒數和型別轉換。
__declspec(property(get= get_supports_limited_double_precision)) bool supports_limited_double_precision;
版本
取得 accelerator 的版本。
__declspec(property(get= get_version)) unsigned int version;