Share via


Concurrency 命名空間 (C++ AMP)

提供為在資料平行硬體上執行的 C++ 程式碼加速的類別和函式。 如需詳細資訊,請參閱C++ AMP 概觀

namespace Concurrency;

Members

命名空間

名稱

描述

Concurrency::direct3d 命名空間

提供支援 D3D 互通性的函式。 啟用緊密整合用於 AMP 程式碼中的 D3D 資源計算,您毋需建立多餘的中間複本即可使用 AMP 程式碼在 D3D 模式下建立的資源。 您可以使用 C++ AMP,以累加方式加速 DirectX 應用程式的大量運算區段,並將 D3D 應用程式開發介面用於 AMP 計算所產生的資料。

Concurrency::fast_math 命名空間

fast_math 命名空間中的函式不符合 C99 標準。 僅提供每個函式的單精確度版本。 這些函式使用 DirectX 內建函式,比 precise_math 命名空間的對應函式更快速,而且不需要加速器的擴充雙精確度支援,不過它們比較不精確。 每個函式有兩個版本,以便在來源層級與 C99 程式碼相容;兩個版本會接受並傳回單精確度值。

Concurrency::graphics 命名空間

提供專為圖形程式設計而設計的類型與函式。

Concurrency::precise_math 命名空間

precise_math 命名空間中的函式符合 C99 標準。 每個函式的單精確度與雙精確度版本都有包含。 這些函式包括單精確度函式,在加速器上需要擴充的雙精確度支援。

類別

名稱

描述

accelerator 類別

代表實體 DP 最佳化運算節點的抽象層。

accelerator_view 類別

代表 C++ AMP 資料平行加速器的虛擬裝置抽象層。

accelerator_view_removed 類別

因為 Windows 逾時偵測和復原機制導致基礎 DirectX 呼叫失敗時,所擲回的例外狀況。

array 類別

方格網域中的 accelerator_view 的資料彙總。 它是變數的集合,對應方格網域中的每一個項目。 每個變數都會保留對應某個 C++ 類型的值。

array_view 類別

表示在陣列<T,N>的資料的檢視。

completion_future 類別

表示對應 C++ AMP 非同步處理操作的 future 。

extent 類別 (C++ AMP)

代表一個指定以 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 類別

tiled_index 參數的一部分,只能由系統建立並傳送至並排顯示的 parallel_for_each Lambda 的功能類別。 它提供 wait() 這種方法,用於同步處理在執行緒群組 (tile) 中執行的執行緒 。

tiled_extent 類別

tiled_extent 物件是有一至三個維度的 extent 物件,維度會將範圍空間劃分為一維、二維或三維的拼貼。

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)

計算第一個指定引數除以第二個指定引數的模數。

功能

名稱

描述

all_memory_fence 函式

封鎖 Tile 中所有執行緒的執行,直到所有的記憶體存取都已經完成。

amp_uninitialize 函式

取消初始化 C++ AMP 執行階段。

atomic_compare_exchange 函式

多載。 如果儲存於指定位置的值與第一個指定的值比較的結果為相等,則第二個指定的值會儲存到與不可部分完成的作業相同的位置。

atomic_exchange 函式 (C++ AMP)

多載。 將儲存在指定位置的值設定為指定的值,做為不可部分完成的作業。

atomic_fetch_add 函式 (C++ AMP)

多載。 將儲存在指定位置的值設為該值與所指定值的總和,做為不可部分完成的作業。

atomic_fetch_and 函式 (C++ AMP)

多載。 將儲存在指定位置的值設為該值與所指定值的位元 and,做為不可部分完成的作業。

atomic_fetch_dec 函式

多載。 將儲存在指定位置的值遞減,並將結果儲存在相同位置,做為不可部分完成的作業。

atomic_fetch_inc 函式

多載。 將儲存在指定位置的值遞增,並將結果儲存在相同位置,做為不可部分完成的作業。

atomic_fetch_max 函式

多載。 將儲存在指定位置的值設為該值與所指定值中較大的值,做為不可部分完成的作業。

atomic_fetch_min 函式

多載。 將儲存在指定位置的值設為該值與所指定值中較小的值,做為不可部分完成的作業。

atomic_fetch_or 函式 (C++ AMP)

多載。 將儲存在指定位置的值設為該值與所指定值的位元 or,做為不可部分完成的作業。

atomic_fetch_sub 函式 (C++ AMP)

多載。 將儲存在指定位置的值設為該值與所指定值的差異,做為不可部分完成的作業。

atomic_fetch_xor 函式 (C++ AMP)

多載。 將儲存在指定位置的值設為該值與所指定值的位元 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 函式

封鎖所有在 Tile 中執行緒的執行,直到所有全域記憶體的存取都已經完成。

parallel_for_each 函式 (C++ AMP)

在整個計算區域( compute domain )執行函式。

tile_static_memory_fence 函式

封鎖 Tile 中所有執行緒的執行,直到 tile_static 記憶體存取已經完成。

常數

名稱

描述

HLSL_MAX_NUM_BUFFERS 常數

DirectX 允許的最大緩衝區數目。

MODULENAME_MAX_LENGTH 常數

儲存模組名稱的最大長度。 這個值在編譯器和執行階段必須一致。

需求

**標頭:**amp.h

請參閱

其他資源

參考 (C++ AMP)