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 C++ AMP Overview
Syntax
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-konform. Für jede Funktion werden nur Versionen mit einfacher Genauigkeit bereitgestellt. Diese Funktionen verwenden die intrinsischen 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-konform. 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 |
---|---|
accelerator-Klasse | 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. |
array-Klasse | 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 | 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-Aufzählung | Gibt den Datenzugriffstyp an. |
queuing_mode-Aufzählung | 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 | Blockiert die Ausführung aller Threads in einer Kachel, bis alle Speicherzugriffe abgeschlossen sind. |
amp_uninitialize | Hebt die Initialisierung der C++ AMP-Laufzeit auf. |
atomic_compare_exchange | Ü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 | Überladen. Legt den Wert, der am angegebenen Speicherort abgelegt ist, als atomischen Vorgang auf den angegebenen Wert fest. |
atomic_fetch_add | Ü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 | Ü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 | Überladen. Dekrementiert den Wert, der am angegebenen Speicherort abgelegt ist, und speichert das Ergebnis als atomischen Vorgang an demselben Speicherort. |
atomic_fetch_inc | Überladen. Inkrementiert den Wert, der am angegebenen Speicherort abgelegt ist, und speichert das Ergebnis als atomischen Vorgang an demselben Speicherort. |
atomic_fetch_max | Ü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 | Ü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 | Ü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 | Ü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 | Ü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 | 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 | Kopiert ein C++AMP-Objekt und gibt completion_future zurück, auf die 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 | Bricht die Ausführung einer Funktion mit der Einschränkungsklausel restrict(amp) ab. |
direct3d_errorf | Druckt eine formatierte Zeichenfolge in das Visual Studio-Ausgabefenster und löst eine runtime_exception Ausnahme aus, die dieselbe Formatierungszeichenfolge aufweist. |
direct3d_printf | Druckt eine formatierte Zeichenfolge in das Visual Studio-Ausgabefenster. Sie wird von einer Funktion mit der Einschränkungsklausel restrict(amp) aufgerufen. |
global_memory_fence | 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 | 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