Obor názvů souběžnosti (C++ AMP)
Poskytuje třídy a funkce, které urychlují spouštění kódu jazyka C++ na hardwaru paralelně s daty. Další informace najdete v tématu Přehled C++ AMP
Syntaxe
namespace Concurrency;
Členové
Obory názvů
Název | Popis |
---|---|
Concurrency::direct3d – obor názvů | Poskytuje funkce, které podporují interoperabilitu D3D. Umožňuje bezproblémové použití prostředků D3D pro výpočetní prostředky v kódu AMP a použití prostředků vytvořených v AMP v kódu D3D bez nutnosti vytvářet redundantní zprostředkující kopie. Pomocí C++ AMP můžete inkrementálně zrychlit oddíly náročné na výpočetní výkon aplikací DirectX a použít rozhraní API D3D pro data vytvořená z výpočtů AMP. |
Concurrency::fast_math – obor názvů | Funkce v fast_math oboru názvů nejsou v souladu s C99. K dispozici jsou pouze verze s jednou přesností každé funkce. Tyto funkce používají vnitřní funkce DirectX, které jsou rychlejší než odpovídající funkce v precise_math oboru názvů a nevyžadují rozšířenou podporu dvojité přesnosti na akcelerátoru, ale jsou méně přesné. Existují dvě verze každé funkce pro kompatibilitu na úrovni zdroje s kódem C99; obě verze přebírají a vracejí hodnoty s jednou přesností. |
Concurrency::graphics – obor názvů | Poskytuje typy a funkce navržené pro programování grafiky. |
Concurrency::precise_math – obor názvů | Funkce v oboru názvů jsou v souladu s jazykem precise_math C99. Součástí jsou verze s jednoduchou přesností i dvojitou přesností každé funkce. Tyto funkce – to zahrnuje funkce s jednoduchou přesností – vyžadují rozšířenou podporu dvojité přesnosti na akcelerátoru. |
Třídy
Název | Popis |
---|---|
accelerator – třída | Představuje abstrakci fyzického výpočetního uzlu optimalizovaného pro DP. |
accelerator_view – třída | Představuje abstrakci virtuálního zařízení v akcelerátoru dat C++ AMP. |
accelerator_view_removed – třída | Výjimka, která se vyvolá, když základní volání DirectX selže kvůli mechanismu zjišťování a obnovení časového limitu Systému Windows. |
array – třída | Agregace dat v accelerator_view doméně mřížky Jedná se o kolekci proměnných, jednu pro každý prvek v doméně mřížky. Každá proměnná obsahuje hodnotu, která odpovídá určitému typu C++. |
array_view – třída | Představuje zobrazení dat v matici<T,N>. |
completion_future – třída | Představuje budoucnost, která odpovídá asynchronní operaci C++ AMP. |
extent – třída | Představuje vektor celočíselné hodnoty N, které určují hranice Ndimenzionálního prostoru, který má původ 0. Hodnoty v souřadnicovém vektoru jsou seřazeny od nejvýznamnějších po nejméně významné. Například v kartézském trojrozměrném prostoru představuje vektor rozsahu (7,5,3) prostor, ve kterém souřadnice z se pohybuje od 0 do 7, rozsahy souřadnic y od 0 do 5 a souřadnice x se pohybuje od 0 do 3. |
index – třída | Definuje Ndimenzionální indexový bod. |
invalid_compute_domain – třída | Výjimka, která se vyvolá, když modul runtime nemůže spustit jádro pomocí výpočetní domény zadané v lokalitě parallel_for_each volání. |
out_of_memory – třída | Výjimka, která se vyvolá, když metoda selže kvůli nedostatku systémové paměti nebo paměti zařízení. |
runtime_exception – třída | Základní typ výjimek v knihovně C++ AMP. |
tile_barrier – třída | Třída schopností, která je v systému pouze creatable a je předána dlaždici parallel_for_each lambda jako součást parametru tiled_index . Poskytuje jednu metodu, wait() jejíž účelem je synchronizovat provádění vláken spuštěných ve skupině vláken (dlaždice). |
tiled_extent – třída | Objekt tiled_extent je extent objekt jednoho až tří dimenzí, který rozděluje prostor rozsahu na jednorozměrné, dvourozměrné nebo trojrozměrné dlaždice. |
tiled_index – třída | Poskytuje index objektu tiled_grid . Tato třída má vlastnosti pro přístup k elementu vzhledem k místnímu zdroji dlaždice a vzhledem k globálnímu původu. |
uninitialized_object – třída | Výjimka, která je vyvolána při použití neinicializovaného objektu. |
unsupported_feature – třída | Výjimka, která se vyvolá při použití nepodporované funkce. |
Výčty
Název | Popis |
---|---|
access_type – výčet | Určuje datový typ přístupu. |
queuing_mode – výčet | Určuje režimy řízení front, které jsou podporovány v akcelerátoru. |
Operátory
Operátor | Popis |
---|---|
operator== – operátor (C++ AMP) | Určuje, zda jsou zadané datové struktury stejné. |
operator!= – operátor (C++ AMP) | Určuje, zda jsou zadané datové struktury nerovné. |
operator+ – operátor (C++ AMP) | Vypočítá součet zadaných argumentů podle komponent. |
operator- Operator (C++ AMP) | Vypočítá rozdíl mezi zadanými argumenty. |
operator* – operátor (C++ AMP) | Vypočítá součin součást-moudrý součin zadaných argumentů. |
operator/Operator (C++ AMP) | Vypočítá podíl komponentně-moudrý podíl zadaných argumentů. |
operator% – operátor (C++ AMP) | Vypočítá moduly prvního zadaného argumentu druhým zadaným argumentem. |
Funkce
Název | Popis |
---|---|
all_memory_fence | Blokuje provádění všech vláken na dlaždici, dokud se nedokončí všechny přístupy k paměti. |
amp_uninitialize | Neinicializuje modul runtime C++ AMP. |
atomic_compare_exchange | Přetíženo. Pokud se hodnota uložená v zadaném umístění porovná s první zadanou hodnotou, uloží se druhá zadaná hodnota ve stejném umístění jako atomická operace. |
atomic_exchange | Přetíženo. Nastaví hodnotu uloženou v zadaném umístění na zadanou hodnotu jako atomické operace. |
atomic_fetch_add | Přetíženo. Nastaví hodnotu uloženou v zadaném umístění na součet této hodnoty a zadanou hodnotu jako atomické operace. |
atomic_fetch_and | Přetíženo. Nastaví hodnotu uloženou v zadaném umístění na bitovou and hodnotu této hodnoty a zadanou hodnotu jako atomické operace. |
atomic_fetch_dec | Přetíženo. Sníží hodnotu uloženou v zadaném umístění a uloží výsledek do stejného umístění jako atomická operace. |
atomic_fetch_inc | Přetíženo. Zvýší hodnotu uloženou v zadaném umístění a uloží výsledek do stejného umístění jako atomická operace. |
atomic_fetch_max | Přetíženo. Nastaví hodnotu uloženou v zadaném umístění na větší z této hodnoty a zadanou hodnotu jako atomické operace. |
atomic_fetch_min | Přetíženo. Nastaví hodnotu uloženou v zadaném umístění na menší z této hodnoty a zadanou hodnotu jako atomické operace. |
atomic_fetch_or | Přetíženo. Nastaví hodnotu uloženou v zadaném umístění na bitovou or hodnotu této hodnoty a zadanou hodnotu jako atomické operace. |
atomic_fetch_sub | Přetíženo. Nastaví hodnotu uloženou v zadaném umístění na rozdíl od této hodnoty a zadané hodnoty jako atomické operace. |
atomic_fetch_xor | Přetíženo. Nastaví hodnotu uloženou v zadaném umístění na bitovou xor hodnotu této hodnoty a zadanou hodnotu jako atomické operace. |
kopírovat | Zkopíruje objekt C++ AMP. Jsou splněny všechny synchronní požadavky na přenos dat. Data se nedají zkopírovat, když kód spouští kód na akcelerátoru. Obecná forma této funkce je copy(src, dest) . |
copy_async | Zkopíruje objekt C++ AMP a vrátí completion_future , na který lze čekat. Data se nedají zkopírovat, když je kód spuštěný na akcelerátoru. Obecná forma této funkce je copy(src, dest) . |
direct3d_abort | Přeruší provádění funkce, která má restrict(amp) klauzuli omezení. |
direct3d_errorf | Vytiskne formátovaný řetězec do okna Výstup sady Visual Studio a vyvolá výjimku runtime_exception, která má stejný formátovací řetězec. |
direct3d_printf | Vytiskne formátovaný řetězec do okna Výstup sady Visual Studio. Volá se z funkce, která má klauzuli restrict(amp) omezení. |
global_memory_fence | Blokuje provádění všech vláken na dlaždici, dokud se nedokončí všechny globální přístupy k paměti. |
funkce parallel_for_each (C++ AMP) | Spustí funkci napříč výpočetní doménou. |
tile_static_memory_fence | Blokuje provádění všech vláken na dlaždici, dokud tile_static se nedokončí přístup k paměti. |
Konstanty
Název | Popis |
---|---|
konstanta HLSL_MAX_NUM_BUFFERS | Maximální počet vyrovnávacích pamětí povolených rozhraním DirectX. |
konstanta MODULENAME_MAX_LENGTH | Uloží maximální délku názvu modulu. Tato hodnota musí být stejná v kompilátoru a modulu runtime. |
Požadavky
Záhlaví: amp.h