Freigeben über


Concurrency-Namespace (C++ AMP)

Stellt Klassen und Funktionen bereit, die die Ausführung von C++-Code auf datenparalleler Hardware beschleunigen. Weitere Informationen finden Sie unter Übersicht über C++ AMP

namespace Concurrency;

Member

Namespaces

Name

Beschreibung

Concurrency::direct3d-Namespace

Stellt Funktionen bereit, welche die D3D-Interoperabilität unterstützen. Ermöglicht die einfache Verwendung von D3D-Ressourcen für Berechnungen in AMP-Code sowie die Verwendung von in AMP erstellten Ressourcen in D3D-Code, ohne dass redundante Zwischenkopien erstellt werden. Sie können C++ AMP verwenden, um die berechnungsintensiven Abschnitte Ihrer DirectX-Anwendungen inkrementell zu beschleunigen und die D3D-API für Daten nutzen, die aus AMP-Berechnungen resultieren.

Concurrency::fast_math-Namespace

Funktionen im fast_math-Namespace sind nicht C99-kompatibel. Für jede Funktion werden nur Versionen mit einfacher Genauigkeit bereitgestellt. Diese Funktionen verwenden die systeminternen DirectX-Funktionen, die schneller als die entsprechenden Funktionen im precise_math-Namespace sind und keine erweiterte Unterstützung doppelter Genauigkeit auf der Zugriffstaste benötigen. Sie sind jedoch weniger genau. Für jede Funktion gibt es zwei Versionen für Quellebenenkompatibilität mit Code C99. Beide Versionen akzeptieren und geben Werte mit einfacher Genauigkeit zurück.

Concurrency::graphics-Namespace

Stellt Typen und Funktionen bereit, die für die Grafikprogrammierung vorgesehen sind.

Concurrency::precise_math-Namespace

Funktionen im precise_math-Namespace sind C99-kompatibel. Für jede Funktion sind Versionen mit einfacher und doppelter Genauigkeit enthalten. Diese Funktionen, Funktionen mit einfacher Genauigkeit eingeschlossen, erfordern erweiterte Unterstützung doppelter Genauigkeit auf der Zugriffstaste.

Klassen

Name

Beschreibung

Zugriffstastenklasse

Stellt eine Abstraktion eines physischen DP-optimierten Berechnungsknotens dar.

accelerator_view-Klasse

Stellt die Abstraktion eines virtuellen Geräts für einen datenparallelen C++ AMP-Beschleuniger dar.

accelerator_view_removed-Klasse

Die Ausnahme, die ausgelöst wird, wenn ein zugrunde liegender DirectX-Aufruf aufgrund des Windows-TDR-Mechanismus (Timeout Detection and Recovery) fehlschlägt.

Arrayklasse

Ein Datenaggregat auf einem accelerator_view-Objekt in der Rasterdomäne. Es ist eine Auflistung von Variablen, eine für jedes Element in einer "grid"-Domäne. Jede Variable enthält einen Wert, der einem C++-Typ entspricht.

array_view-Klasse

Stellt eine Ansicht in die Daten in einem array<T,N> dar.

completion_future-Klasse

Stellt ein "future"-Objekt dar, das einem asynchronen C++ AMP-Vorgang entspricht.

extent-Klasse (C++ AMP)

Stellt einen Vektor von n ganzzahligen Werten dar, die die Grenzen eines n-dimensionalen Raums mit dem Ursprung 0 angeben. Die Werte im Koordinatenvektor sind vom wichtigsten zum am wenigsten wichtigen Wert sortiert. Im kartesischen 3-dimensionalen Raum stellt der "extent"-Vektor (7,5,3) beispielsweise einen Raum dar, in dem die z-Koordinate im Bereich von 0 bis 7, die y-Koordinate im Bereich von 0 bis 5 und die x-Koordinate im Bereich von 0 bis 3 liegt.

index-Klasse

Definiert einen n-dimensionalen Indexpunkt.

invalid_compute_domain-Klasse

Die Ausnahme, die ausgelöst wird, wenn die Laufzeit einen Kernel nicht mithilfe der "compute"-Domäne starten kann, die auf der parallel_for_each-Aufrufsite angegeben wird.

out_of_memory-Klasse

Die Ausnahme, die ausgelöst wird, wenn eine Methode aufgrund unzureichenden System- oder Gerätearbeitsspeichers fehlschlägt.

runtime_exception-Klasse

Der Basistyp für Ausnahmen in der C++ AMP-Bibliothek.

tile_barrier-Klasse

Eine Funktionsklasse, die vom System nur erstellt werden kann und einem unterteilten parallel_for_each-Lambda als Teil des tiled_index-Parameters übergeben wird. Sie stellt eine einzige Methode, die Methode wait(), bereit, die dazu dient, die Ausführung von Threads zu synchronisieren, die in der Threadgruppe (Kachel) ausgeführt werden.

tiled_extent-Klasse

Ein tiled_extent-Objekt ist ein extent-Objekt einer bis drei Dimensionen, das den "extent"-Bereich in ein-, zwei- oder dreidimensionale Kacheln unterteilt.

tiled_index-Klasse

Stellt einen Index für ein tiled_grid-Objekt bereit. Diese Klasse verfügt über Eigenschaften, über die auf ein Element relativ zum lokalen Kachelursprung und relativ zum globalen Ursprung zugegriffen werden kann.

uninitialized_object-Klasse

Die Ausnahme, die ausgelöst wird, wenn ein nicht initialisiertes Objekt verwendet wird.

unsupported_feature-Klasse

Die Ausnahme, die ausgelöst wird, wenn eine nicht unterstützte Funktion verwendet wird.

Enumerationen

Name

Beschreibung

access_type-Enumeration

Gibt den Datenzugriffstyp an.

queuing_mode-Enumeration

Gibt die Modi für das Hinzufügen zur Warteschlange an, die auf dem Beschleuniger unterstützt werden.

Operatoren

Operator

Beschreibung

operator==-Operator (C++-AMP)

Bestimmt, ob die angegebenen Datenstrukturen gleich sind.

operator!=-Operator (C++-AMP)

Bestimmt, ob die angegebenen Datenstrukturen ungleich sind.

operator+ Operator (C++ AMP)

Berechnet die komponentenbezogene Summe der angegebenen Argumente.

operator- Operator (C++ AMP)

Berechnet die Differenz zwischen den angegebenen Argumenten pro Komponente.

operator* Operator (C++ AMP)

Berechnet das komponentenbezogene Produkt der angegebenen Argumente.

operator/ Operator (C++ AMP)

Berechnet den komponentenbezogenen Quotienten der angegebenen Argumente.

operator% Operator (C++ AMP)

Berechnet den Modul des angegebenen ersten Arguments dividiert durch das zweite angegebene Argument.

Funktionen

Name

Beschreibung

all_memory_fence-Funktion

Blockiert die Ausführung aller Threads in einer Kachel, bis alle Speicherzugriffe abgeschlossen sind.

amp_uninitialize-Funktion

Hebt die Initialisierung der C++ AMP-Laufzeit auf.

atomic_compare_exchange-Funktion

Überladen. Wenn der Wert, der am angegebenen Speicherort abgelegt ist, mit dem ersten angegebenen Wert übereinstimmt, wird der zweite angegebene Wert als atomischen Vorgang an demselben Speicherort abgelegt.

atomic_exchange-Funktion (C++-AMP)

Überladen. Legt den Wert, der am angegebenen Speicherort abgelegt ist, als atomischen Vorgang auf den angegebenen Wert fest.

atomic_fetch_add-Funktion (C++-AMP)

Überladen. Legt den Wert, der am angegebenen Speicherort abgelegt ist, als atomischen Vorgang auf die Summe dieses Werts und auf einen angegebenen Wert fest.

atomic_fetch_and-Funktion (C++-AMP)

Überladen. Legt den Wert, der am angegebenen Speicherort abgelegt ist, als atomischen Vorgang auf das bitweise and dieses Werts und auf einen angegebenen Wert fest.

atomic_fetch_dec-Funktion

Überladen. Dekrementiert den Wert, der am angegebenen Speicherort abgelegt ist, und speichert das Ergebnis als atomischen Vorgang an demselben Speicherort.

atomic_fetch_inc-Funktion

Überladen. Inkrementiert den Wert, der am angegebenen Speicherort abgelegt ist, und speichert das Ergebnis als atomischen Vorgang an demselben Speicherort.

atomic_fetch_max-Funktion

Überladen. Legt den Wert, der am angegebenen Speicherort abgelegt ist, als atomischen Vorgang größer als diesen Wert und auf einen angegebenen Wert fest.

atomic_fetch_min-Funktion

Überladen. Legt den Wert, der am angegebenen Speicherort abgelegt ist, als atomischen Vorgang kleiner als diesen Wert und auf einen angegebenen Wert fest.

atomic_fetch_or-Funktion (C++-AMP)

Überladen. Legt den Wert, der am angegebenen Speicherort abgelegt ist, als atomischen Vorgang auf das bitweise or dieses Werts und auf einen angegebenen Wert fest.

atomic_fetch_sub-Funktion (C++-AMP)

Überladen. Legt den Wert, der am angegebenen Speicherort abgelegt ist, als atomischen Vorgang auf die Differenz dieses Werts und auf einen angegebenen Wert fest.

atomic_fetch_xor-Funktion (C++-AMP)

Überladen. Legt den Wert, der am angegebenen Speicherort abgelegt ist, als atomischen Vorgang auf das bitweise xor dieses Werts und auf einen angegebenen Wert fest.

copy-Funktion

Kopiert ein C++ AMP-Objekt. Alle Anforderungen der synchronen Datenübertragung werden erfüllt. Es können keine Daten kopiert werden, wenn auf einer Zugriffstaste Code ausgeführt wird. Das allgemeine Format dieser Funktion ist copy(src, dest).

copy_async-Funktion

Kopiert ein C++ AMP-Objekt und gibt ein completion_future-Objekt zurück, auf das gewartet werden kann. Es können keine Daten kopiert werden, wenn auf einer Zugriffstaste Code ausgeführt wird. Das allgemeine Format dieser Funktion ist copy(src, dest).

direct3d_abort-Funktion

Bricht die Ausführung einer Funktion mit der Einschränkungsklausel restrict(amp) ab.

direct3d_errorf-Funktion

Gibt eine formatierte Zeichenfolge im Visual Studio-Fenster Ausgabe aus und löst eine runtime_exception-Ausnahme mit derselben Formatierungszeichenfolge aus.

direct3d_printf-Funktion

Gibt eine formatierte Zeichenfolge im Visual Studio-Fenster Ausgabe aus. Sie wird von einer Funktion mit der Einschränkungsklausel restrict(amp) aufgerufen.

global_memory_fence-Funktion

Blockiert die Ausführung aller Threads in einer Kachel, bis alle globalen Speicherzugriffe abgeschlossen sind.

parallel_for_each-Funktion (C++ AMP)

Führt eine Funktion übergreifend über die "compute"-Domäne aus.

tile_static_memory_fence-Funktion

Blockiert die Ausführung aller Threads in einer Kachel, bis alle Speicherzugriffe vom Typ tile_static abgeschlossen sind.

Konstanten

Name

Beschreibung

HLSL_MAX_NUM_BUFFERS-Konstante

Die maximale Anzahl der von DirectX zugelassenen Puffer.

MODULENAME_MAX_LENGTH-Konstante

Speichert die maximale Länge des Modulnamens. Dieser Wert muss für den Compiler und die Laufzeit identisch sein.

Anforderungen

Header: amp.h

Siehe auch

Weitere Ressourcen

Referenz (C++ AMP)