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+ Operator (C++ AMP) | 計算指定自變數的元件總和。 |
operator- 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