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 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

Siehe auch

Referenz (C++ AMP)