Share via


Concurrentie-Namespace (C++ AMP)

Biedt klassen en functies waarmee de uitvoering van C++-code op gegevensparallel hardware wordt versneld. Zie C++ AMP-overzicht voor meer informatie

Syntaxis

namespace Concurrency;

Leden

Naamruimten

Naam Description
Concurrency::Direct3D-naamruimte Biedt functies die D3D-interoperabiliteit ondersteunen. Maakt naadloos gebruik van D3D-resources mogelijk voor berekening in AMP-code en het gebruik van resources die zijn gemaakt in AMP in D3D-code, zonder redundante tussenliggende kopieën te maken. U kunt C++ AMP gebruiken om de rekenintensieve secties van uw DirectX-toepassingen stapsgewijs te versnellen en de D3D-API te gebruiken op gegevens die zijn geproduceerd uit AMP-berekeningen.
Concurrency::fast_math namespace Functies in de fast_math naamruimte zijn niet C99-conform. Er worden slechts versies met één precisie van elke functie opgegeven. Deze functies maken gebruik van de intrinsieke DirectX-functies, die sneller zijn dan de bijbehorende functies in de precise_math naamruimte en geen uitgebreide ondersteuning voor dubbele precisie op de accelerator vereisen, maar ze zijn minder nauwkeurig. Er zijn twee versies van elke functie voor compatibiliteit op broncodeniveau met C99-code; beide versies nemen en retourneren waarden met één precisie.
Gelijktijdigheid::graphics-naamruimte Biedt typen en functies die zijn ontworpen voor grafische programmering.
Concurrency::precise_math Namespace Functies in de precise_math naamruimte zijn C99 conform. Zowel versies met één precisie als dubbele precisie van elke functie zijn opgenomen. Deze functies, waaronder de functies met één precisie, vereisen uitgebreide ondersteuning voor dubbele precisie op de accelerator.

Klassen

Naam Description
acceleratorklasse Vertegenwoordigt een abstractie van een fysiek, door DP geoptimaliseerd rekenknooppunt.
accelerator_view-klasse Vertegenwoordigt een abstractie van een virtueel apparaat op een C++ AMP-gegevensparallelversneller.
accelerator_view_removed-klasse De uitzondering die wordt gegenereerd wanneer een onderliggende DirectX-aanroep mislukt vanwege het Windows time-outdetectie- en herstelmechanisme.
matrixklasse Een gegevensaggregatie op een accelerator_view in het grid-domein. Het is een verzameling variabelen, één voor elk element in een rasterdomein. Elke variabele bevat een waarde die overeenkomt met een C++-type.
array_view-klasse Vertegenwoordigt een weergave van de gegevens in een array<T,N>.
completion_future-klasse Vertegenwoordigt een toekomst die overeenkomt met een Asynchrone C++ AMP-bewerking.
extent Class Vertegenwoordigt een vector van N gehele getallen die de grenzen van een N-dimensionale ruimte opgeven die een oorsprong heeft van 0. De waarden in de coördinaatvector worden geordend van de belangrijkste naar de minst significante. In de cartesische 3dimensionale ruimte vertegenwoordigt de omvangsvector (7,5,3) bijvoorbeeld een ruimte waarin de z-coördinaat varieert van 0 tot 7, de y-coördinaat varieert van 0 tot 5 en de x-coördinaat varieert van 0 tot 3.
indexklasse Hiermee definieert u een N-dimensional indexpunt.
ongeldige_compute_domain-klasse De uitzondering die wordt gegenereerd wanneer de runtime geen kernel kan starten met behulp van het rekendomein dat is opgegeven op de parallel_for_each aanroepsite.
out_of_memory-klasse De uitzondering die wordt gegenereerd wanneer een methode mislukt vanwege een gebrek aan systeem- of apparaatgeheugen.
runtime_exception-klasse Het basistype voor uitzonderingen in de C++ AMP-bibliotheek.
tile_barrier-klasse Een mogelijkheidklasse die alleen door het systeem kan worden aangemaakt en wordt doorgegeven aan een tegel parallel_for_each lambda als onderdeel van de tiled_index parameter. Het biedt één methode, wait()waarvan het doel is om de uitvoering van threads die worden uitgevoerd in de threadgroep (tegel) te synchroniseren.
tiled_extent-klasse Een tiled_extent object is een extent object van één tot drie dimensies waarmee de ruimte wordt onderverdeeld in eendimensionale, tweedimensionale of driedimensionale tegels.
tiled_index-klasse Biedt een index in een tiled_grid object. Deze klasse heeft eigenschappen voor toegang tot element ten opzichte van de oorsprong van de lokale tegel en ten opzichte van de globale oorsprong.
uninitialized_object-klasse De uitzondering die wordt gegenereerd wanneer een niet-geïnitialiseerd object wordt gebruikt.
unsupported_feature-klasse De uitzondering die wordt gegenereerd wanneer een niet-ondersteunde functie wordt gebruikt.

Opsommingen

Naam Description
access_type Enumeratie Hiermee geeft u het gegevenstoegangstype op.
queuing_mode Enumeratie Hiermee geeft u de wachtrijmodi op die worden ondersteund op de accelerator.

Bedieners

Operator Description
operator== Operator (C++ AMP) Bepaalt of de opgegeven gegevensstructuren gelijk zijn.
operator!= Operator (C++ AMP) Bepaalt of de opgegeven gegevensstructuren ongelijk zijn.
operator+ Operator (C++ AMP) Berekent de som van de opgegeven argumenten op basis van het onderdeel.
operator- Operator (C++ AMP) Berekent het componentgewijze verschil tussen de opgegeven argumenten.
operator* Operator (C++ AMP) Berekent het componentgewijze product van de opgegeven argumenten.
operator/ Operator (C++ AMP) Berekent het quotiënt voor het onderdeel van de opgegeven argumenten.
operator% Operator (C++ AMP) Berekent de modulus van het eerste opgegeven argument door het tweede opgegeven argument.

Functions

Naam Description
all_memory_fence Hiermee blokkeert u de uitvoering van alle threads in een tegel totdat alle geheugentoegang is voltooid.
amp_uninitialize De-initialiseert de C++ AMP-runtime.
atomic_compare_exchange Overbelast. Als de waarde die op de opgegeven locatie is opgeslagen, gelijk is aan de eerste opgegeven waarde, wordt de tweede opgegeven waarde op dezelfde locatie opgeslagen als een atomische bewerking.
atomic_exchange Overbelast. Hiermee stelt u de waarde die is opgeslagen op de opgegeven locatie in op de opgegeven waarde als atomische bewerking.
atomic_fetch_add Overbelast. Stelt de waarde die is opgeslagen op de opgegeven locatie in op de som van die waarde en een opgegeven waarde als een atomische operatie.
atomic_fetch_and Overbelast. Hiermee stelt u de waarde die op de opgegeven locatie is opgeslagen in op het resultaat van een bitwise-operatie tussen die waarde en een opgegeven waarde, als een atomaire operatie.
atomic_fetch_dec Overbelast. Hiermee wordt de waarde die op de opgegeven locatie is opgeslagen, ongedaan gemaakt en wordt het resultaat opgeslagen op dezelfde locatie als een atomische bewerking.
atomic_fetch_inc Overbelast. Hiermee wordt de waarde die is opgeslagen op de opgegeven locatie verhoogd en wordt het resultaat opgeslagen op dezelfde locatie als een atomische bewerking.
atomic_fetch_max Overbelast. Stelt de waarde opgeslagen op de opgegeven locatie in op de grotere van die waarde en een opgegeven waarde, als een atomische operatie.
atomic_fetch_min Overbelast. Hiermee stelt u de waarde die op de opgegeven locatie is opgeslagen in op de kleiner van die waarde en een opgegeven waarde als atomische bewerking.
atomic_fetch_or Overbelast. Hiermee stelt u de waarde die op de opgegeven locatie is opgeslagen in bitwise or van die waarde en een opgegeven waarde in als atomische bewerking.
atomic_fetch_sub Overbelast. Hiermee stelt u de waarde die is opgeslagen op de opgegeven locatie in op het verschil van die waarde en een opgegeven waarde als atomische bewerking.
atomic_fetch_xor Overbelast. Hiermee stelt u de waarde die op de opgegeven locatie is opgeslagen in bitwise xor van die waarde en een opgegeven waarde in als atomische bewerking.
copy Hiermee kopieert u een C++ AMP-object. Aan alle vereisten voor synchrone gegevensoverdracht wordt voldaan. Gegevens kunnen niet worden gekopieerd wanneer code wordt uitgevoerd op een accelerator. De algemene vorm van deze functie is copy(src, dest).
copy_async Kopieert een C++ AMP-object en retourneert completion_future waarop kan worden gewacht. Gegevens kunnen niet worden gekopieerd wanneer code wordt uitgevoerd op een accelerator. De algemene vorm van deze functie is copy(src, dest).
direct3d_abort Hiermee wordt de uitvoering van een functie met de restrict(amp) beperkingscomponent afgebroken.
direct3d_errorf Hiermee wordt een opgemaakte tekenreeks naar het Visual Studio Uitvoervenster afgedrukt en genereert een uitzondering met dezelfde opmaaktekenreeks.
direct3d_printf Hiermee wordt een opgemaakte tekenreeks afgedrukt in het Visual Studio uitvoervenster. Het wordt aangeroepen vanuit een functie met de restrict(amp) beperkingscomponent.
global_memory_fence Hiermee blokkeert u de uitvoering van alle threads in een tegel totdat alle globale geheugentoegang is voltooid.
parallel_for_each, functie (C++ AMP) Voert een functie uit in het rekendomein.
tile_static_memory_fence Blokkeert de uitvoering van alle threads in een tegel totdat tile_static geheugentoegang beëindigd is.

Constanten

Naam Description
constante HLSL_MAX_NUM_BUFFERS Het maximum aantal buffers dat is toegestaan door DirectX.
MODULENAME_MAX_LENGTH constante Slaat de maximale lengte van de modulenaam op. Deze waarde moet hetzelfde zijn voor de compiler en de runtime.

Requirements

Koptekst: amp.h

Zie ook

Referentie (C++ AMP)