Sdílet prostřednictvím


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ů

Jméno 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

Jméno 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

Jméno 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

Jméno 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

Jméno 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

Viz také

Referenční dokumentace (C++ AMP)