Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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;
Mitglieder
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 sind als die entsprechenden Funktionen im precise_math-Namespace und keine Unterstützung für doppelte Genauigkeit auf dem Beschleuniger erfordern, sie sind jedoch weniger genau. Für jede Funktion gibt es zwei Versionen für Kompatibilität auf Quellcode-Ebene mit C99-Code. Beide Versionen akzeptieren und geben Einzelpräzisionswerte 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 – einschließlich der Einfachpräzisionsfunktionen – erfordern erweiterte Unterstützung bei doppelter Genauigkeit auf dem Beschleuniger. |
Klassen
| Name | Beschreibung |
|---|---|
| Accelerator-Klasse | Stellt eine Abstraktion eines physischen DP-optimierten Rechenknotens 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 der Daten in einem Array<T,N> dar. |
| completion_future Klasse | Stellt ein "Future"-Objekt dar, das einem asynchronen Vorgang in C++ AMP 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. |
| TileBarrier-Klasse | Eine Fähigkeitsklasse, die nur vom System erstellt werden kann und einem unterteilten parallel_for_each-Lambda als Bestandteil 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 mit einer bis zu drei Dimensionen, das den Raum 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 auf dem Beschleuniger unterstützten Warteschlangenmodi an. |
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 gespeichert ist, als atomare Operation auf den größeren der beiden Werte fest: den dort gespeicherten Wert oder einen angegebenen Wert. |
| atomic_fetch_min | Überladen. Legt den am angegebenen Speicherort gespeicherten Wert als atomare Operation auf den kleineren Wert von diesem und einem 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. |
| kopieren | Kopiert ein C++ AMP-Objekt. Alle Anforderungen der synchronen Datenübertragung werden erfüllt. Es können keine Daten kopiert werden, wenn Code auf einem Beschleuniger 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 Code auf einem Beschleuniger 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 verwendet. |
| 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 in der Rechendomä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
Kopfzeile: amp.h