Share via


Concurrency 命名空間 (C++ AMP)

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

語法

namespace Concurrency;

成員

命名空間

名稱 描述
Concurrency::direct3d 命名空間 提供支援 D3D 互通性的函式。 可讓您順暢地使用 D3D 資源在 AMP 程式碼中計算,以及在 D3D 程式碼中建立的資源使用,而不需要建立多餘的中繼複本。 您可以使用 C++ AMP,以累加方式加速 DirectX 應用程式的計算密集區段,並在從 AMP 計算產生的資料上使用 D3D API。
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 類別 基礎 DirectX 呼叫因 Windows 逾時偵測和復原機制而失敗時所擲回的例外狀況。
array 類別 方格定義域中 的資料匯總 accelerator_view 。 它是變數的集合,適用于方格定義域中的每個元素。 每個變數都會保留對應至某些 C++ 類型的值。
array_view 類別 表示陣列 < T,N > 中的資料檢視。
completion_future 類別 表示對應至 C++ AMP 非同步作業的未來。
extent 類別 表示 N 整數值的向量,指定具有 0 原點的 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 式 Lambda 做為參數的 tiled_index 一部分。 它提供一個方法, wait() 其用途是同步處理執行緒群組中執行的執行緒執行(圖格)。
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* Operator (C++ AMP) 計算指定引數的元件乘積。
operator/ Operator (C++ AMP) 計算指定引數的元件商數。
運算子% 運算子 (C++ AMP) 計算第一個指定引數的模數,由第二個指定的引數。

函式

名稱 描述
all_memory_fence 封鎖磚中所有線程的執行,直到所有記憶體存取都完成為止。
amp_uninitialize 取消初始化 C++ AMP 執行時間。
atomic_compare_exchange 已多載。 如果儲存在指定位置的值與第一個指定值相等,則第二個指定的值會儲存在與不可部分完成作業相同的位置。
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

另請參閱

參考 (C++ AMP)