Megosztás a következőn keresztül:


Egyidejűség névtere (C++ AMP)

Olyan osztályokat és függvényeket biztosít, amelyek felgyorsítják a C++ kód végrehajtását az adat-párhuzamos hardvereken. További információ: C++ AMP – áttekintés

Szemantika

namespace Concurrency;

Tagok

Namespaces

Név Description
Egyidejűség::d irect3d névtér Olyan függvényeket biztosít, amelyek támogatják a D3D-interoperabilitást. Lehetővé teszi a D3D-erőforrások zökkenőmentes használatát az AMP-kódban történő számításhoz, valamint az AMP-ben D3D-kódban létrehozott erőforrások használatát anélkül, hogy redundáns köztes másolatokat hoznánk létre. A C++ AMP használatával növekményesen gyorsíthatja fel a DirectX-alkalmazások számítási igényű szakaszait, és használhatja a D3D API-t az AMP-számításokból előállított adatokon.
Konkurencia::fast_math névtér A névtérben lévő fast_math függvények nem C99-konformak. Csak az egyes függvények egy pontosságú verziói vannak megadva. Ezek a függvények a DirectX belső függvényeket használják, amelyek gyorsabbak a névtér megfelelő precise_math függvényeinél, és nem igényelnek kiterjesztett dupla pontosságú támogatást a gázpedálon, de kevésbé pontosak. Minden függvénynek két verziója van a C99-kóddal való forrásszintű kompatibilitás érdekében; mindkét verzió egypontos értékeket vesz fel és ad vissza.
Concurrency::grafikus névtér Olyan típusokat és függvényeket biztosít, amelyek grafikus programozáshoz lettek tervezve.
Egyidejűség::precise_math Namespace A névtérben lévő precise_math függvények C99-konformak. Az egyes függvények egy-pontosságú és dupla pontosságú verziói is szerepelnek benne. Ezek a függvények – beleértve az egyszeres pontosságú függvényeket is – kiterjesztett dupla pontosságú támogatást igényelnek a gázpedálon.

Osztályok

Név Description
gyorsító osztály Fizikai DP-optimalizált számítási csomópont absztrakcióját jelöli.
accelerator_view osztály Virtuális eszköz absztrakciója egy C++ AMP adat-párhuzamosgyorsítón.
accelerator_view_removed osztály Az a kivétel, amely akkor fordul elő, ha egy mögöttes DirectX-hívás meghiúsul a Windows időtúllépés-észlelési és helyreállítási mechanizmusa miatt.
tömbosztály A rácstartományban lévő adathalmaz accelerator_view. Ez egy változók gyűjteménye, amely egy rácstartomány minden eleméhez tartozik. Minden változó egy C++ típusnak megfelelő értéket tartalmaz.
array_view osztály A T,N< tömb>adatainak nézetét jelöli.
completion_future osztály C++ AMP aszinkron műveletnek megfelelő jövőt jelöl.
extent class Az N egész szám értékeinek vektorát jelöli, amely egy 0 forrású N dimenziós tér határait határozza meg. A koordináta-vektor értékei a legjelentősebbtől a legkevésbé jelentősig vannak rendezve. A cartesian 3 dimenziós térben például a mértékvektor (7,5,3) egy olyan területet jelöl, amelyben a z koordináta 0 és 7 között, az y koordináta 0 és 5 között, az x koordináta pedig 0 és 3 között mozog.
index osztály N-dimenziós indexpontot határoz meg.
invalid_compute_domain osztály Az a kivétel, amely akkor fordul elő, ha a futtatókörnyezet nem tud kernelt elindítani a híváshelyen parallel_for_each megadott számítási tartomány használatával.
Memóriahiány osztály A rendszer- vagy eszközmemória hiánya miatt a metódusok meghibásodása esetén megjelenő kivétel.
runtime_exception Class A C++ AMP-kódtár kivételeinek alaptípusa.
az tile_barrier osztály Olyan képességosztály, amelyet csak a rendszer hozhat létre, és a tiled_index paraméter részeként egy csempézett parallel_for_each lambda számára kerül átadásra. Egy metódust biztosít, wait()amelynek célja a szálcsoportban (csempe) futó szálak végrehajtásának szinkronizálása.
tiled_extent osztály Az tiled_extent objektum egy-három extent dimenzióból álló objektum, amely a tértartományt egydimenziós, kétdimenziós vagy háromdimenziós csempékké alakítja.
tiled_index osztály Indexet biztosít egy tiled_grid objektumba. Ez az osztály a helyi csempe eredetéhez és a globális forráshoz viszonyítva rendelkezik az elemhez való hozzáféréshez szükséges tulajdonságokkal.
uninitialized_object osztály Az a kivétel, amely akkor keletkezik, amikor egy nem inicializált objektumot használnak.
unsupported_feature osztály A nem támogatott szolgáltatás használatakor megjelenő kivétel.

Számbavételek

Név Description
access_type számbavétel Megadja az adathozzáférés típusát.
queuing_mode felsorolás Megadja a gyorsítón támogatott sorba állítási módokat.

Működtetők

Operátor Description
operátor== Operátor (C++ AMP) Meghatározza, hogy a megadott adatstruktúrák egyenlőek-e.
operátor!= Operátor (C++ AMP) Meghatározza, hogy a megadott adatstruktúrák egyenlőtlenek-e.
operátor+ operátor (C++ AMP) Kiszámítja a megadott argumentumok összetevőalapú összegét.
operátor– Operátor (C++ AMP) Kiszámítja a megadott argumentumok közötti komponensenkénti különbséget.
operátor* Operátor (C++ AMP) Kiszámítja a megadott argumentumok összetevőalapú termékét.
Operátor/ Operátor (C++ AMP) Kiszámítja a megadott argumentumok összetevőalapú hányadosát.
operator% operátor (C++ AMP) Kiszámítja az első megadott argumentum modulusát a második megadott argumentum alapján.

Functions

Név Description
all_memory_fence Megakadályozza a lapkák összes szálának végrehajtását, amíg az összes memóriahozzáférés be nem fejeződik.
amp_uninitialize Nem inicializálja a C++ AMP futtatókörnyezetet.
atomic_compare_exchange Túlterhelt. Ha a megadott helyen tárolt érték megegyezik az első megadott értékkel, akkor a második megadott érték ugyanabban a helyen lesz tárolva, mint egy atomi művelet.
atomic_exchange Túlterhelt. A megadott helyen tárolt értéket a megadott értékre állítja atomi műveletként.
atomic_fetch_add Túlterhelt. A megadott helyen tárolt értéket az adott érték összegére állítja, egy megadott értéket pedig atomi műveletként.
atomic_fetch_and Túlterhelt. A megadott helyen tárolt értéket az adott érték bitenkénti értékére and állítja be, egy megadott értéket pedig atomi műveletként.
atomic_fetch_dec Túlterhelt. A megadott helyen tárolt érték csökken, és az eredményt ugyanazon a helyen tárolja, mint egy atomi művelet.
atomic_fetch_inc Túlterhelt. Növeli a megadott helyen tárolt értéket, és az eredményt ugyanazon a helyen tárolja, mint egy atomi művelet.
atomic_fetch_max Túlterhelt. A megadott helyen tárolt értéket az adott érték nagyobb értékére állítja be, egy megadott értéket pedig atomi műveletként.
atomic_fetch_min Túlterhelt. A megadott helyen tárolt értéket az adott érték kisebb értékére állítja be, egy megadott értéket pedig atomi műveletként.
atomic_fetch_or Túlterhelt. A megadott helyen tárolt értéket az adott érték bitenkénti értékére or állítja be, egy megadott értéket pedig atomi műveletként.
atomic_fetch_sub Túlterhelt. A megadott helyen tárolt értéket az adott érték különbségére és egy megadott értékre állítja atomi műveletként.
atomic_fetch_xor Túlterhelt. A megadott helyen tárolt értéket az adott érték bitenkénti értékére xor állítja be, egy megadott értéket pedig atomi műveletként.
copy C++ AMP-objektum másolása. Minden szinkron adatátviteli követelmény teljesül. Az adatok nem másolhatók, ha a kód kódot futtat egy gyorsítón. A függvény általános formája a .copy(src, dest)
copy_async Átmásolja a C++ AMP objektumot, és visszaad egy completion_future-t, amelyre várakozni lehet. Az adatok nem másolhatók, ha a kód egy gyorsítón fut. A függvény általános formája a .copy(src, dest)
direct3d_abort Megszakítja a korlátozási záradékkal rendelkező restrict(amp) függvény végrehajtását.
direct3d_errorf Formázott karakterláncot nyomtat a Visual Studio Kimeneti ablakára, és runtime_exception kivételt dob, amely ugyanazzal a formázási karakterlánccal van ellátva.
direct3d_printf Formázott sztringet nyomtat a Visual Studio Output ablakba. A meghívás egy olyan függvényből történik, amely rendelkezik a korlátozási restrict(amp) záradékkal.
global_memory_fence Megakadályozza minden szál végrehajtását egy csempében, amíg az összes globális memóriahozzáférés be nem fejeződik.
parallel_for_each függvény (C++ AMP) Egy függvényt futtat a számítási tartományban.
tile_static_memory_fence Blokkolja egy csempe összes szálának végrehajtását, amíg a memóriahozzáférések teljesen tile_static be nem fejeződnek.

Állandók

Név Description
HLSL_MAX_NUM_BUFFERS állandó A DirectX által engedélyezett pufferek maximális száma.
MODULENAME_MAX_LENGTH állandó A modul nevének maximális hosszát tárolja. Ennek az értéknek meg kell egyeznie a fordítóban és a futtatókörnyezetben.

Requirements

Fejléc: amp.h

Lásd még

Referencia (C++ AMP)