Partager via


Concurrency, espace de noms (C++ AMP)

Fournit des classes et des fonctions qui accélèrent l'exécution du code C++ sur le matériel parallèles de données. Pour plus d’informations, consultez Présentation de C++ AMP

namespace Concurrency;

Membres

Espaces de noms

Nom

Description

Concurrency::direct3d, espace de noms

Fournit les fonctions qui prennent en charge l'interopérabilité D3D Active de façon transparente les ressources D3D pour le calcul dans le code AMP et les ressources créées dans AMP dans le code D3D, sans créer de copies intermédiaires redondantes. Vous pouvez utiliser C++ AMP pour accélérer les sections intensives de calcul de façon incrémentielle de vos applications DirectX et utiliser l'API D3D sur les données générées par des calculs AMP.

Concurrency::fast_math, espace de noms

Les fonctions dans l'espace de noms fast_math ne sont pas conformes C99. Seuls les versions en simple précision de chaque fonction sont fournies. Ces fonctions utilisent des fonctions intrinsèques DirectX, qui sont plus rapides que les fonctions correspondantes dans l'espace de noms precise_math et ne nécessitent pas de prise en charge en double précision étendue sur l'accélérateur, mais elles sont moins précises. Il existe deux versions de chaque fonction pour la compatibilité au niveau de la source avec le code C99 ; les deux versions prennent et retournent des valeurs de simple précision.

Concurrency::graphics, espace de noms

Fournit des types et des fonctions conçus pour la programmation graphique.

Concurrency::precise_math, espace de noms

Les fonctions dans l'espace de noms precise_math sont conformes C99. La simple précision et les versions à double précision de chaque fonction sont incluses. Ces fonctions, y compris les fonctions en simple précision, requièrent la prise en charge en double précision étendu sur l'accélérateur.

Classes

Nom

Description

accelerator, classe

Représente une abstraction d'un nœud de calcul optimisé DP physique.

accelerator_view, classe

Représente une abstraction virtuelle de périphérique sur un accélérateur de données parallèle C++ AMP.

accelerator_view_removed, classe

L'exception levée lorsqu'un appel DirectX sous-jacent échoue en raison du mécanisme de détection et de récupération du délai d'attente de Windows.

array, classe

Agrégat de données sur une accelerator_view dans le domaine de grille. Il s'agit d'une collection de variables, une pour chaque élément dans un domaine de grille. Chaque variable contient une valeur qui correspond à un certain type C++.

array_view, classe

Représente une vue dans les données dans un tableau<T,N>.

completion_future, classe

Représente un futur qui correspond à l'opération asynchrone C++ AMP.

extent, classe (C++ AMP)

Représente un vecteur de N entiers qui spécifient les limites d'un espace à N dimensions dont l'origine est 0. Les valeurs dans le vecteur de coordination sont classées de la plus significative à la moins significative. Par exemple, dans l'espace en trois dimensions cartésien, le vecteur d'étendue (7,5,3) représente un espace dans lequel z varie de 0 à 7, y est compris entre 0 et 5, et x varie de 0 à 3.

index, classe

Définit un point d'index dimensionnel N.

invalid_compute_domain, classe

Exception levée lorsque le runtime ne peut pas démarrer cœur à l'aide du champ de calcul spécifié au site d'appel parallel_for_each.

out_of_memory, classe

L'exception levée lorsqu'une méthode échoue à cause d'un échec de mémoire du système ou du périphérique.

runtime_exception, classe

Type de base des exceptions dans la bibliothèque C++ AMP.

tile_barrier, classe

Une classe de capacité qui ne peut être créée que par le système et est transmise à une expression lambda parallel_for_each en mosaïque dans le cadre du paramètre tiled_index. Elle fournit une méthode unique, wait(), dont l'objectif est de synchroniser l'exécution des threads qui s'exécutent dans le groupe de threads (mosaïque).

tiled_extent, classe

Un objet tiled_extent est un objet extent d'une à trois dimensions qui subdivise l'espace d'extent en mosaïques unidimensionnelles, bidimensionnelles ou tridimensionnelles.

tiled_index, classe

Fournit un index dans un objet tiled_grid. Cette classe possède des propriétés pour accéder à l'élément par rapport à l'origine locale de la mosaïque et par rapport à l'origine globale.

uninitialized_object, classe

L'exception levée quand un objet non-initialisé est utilisé.

unsupported_feature, classe

L'exception levée quand une fonctionnalité non prise en charge est utilisée.

Énumérations

Nom

Description

access_type, énumération

Spécifie le type d'accès des données.

Énumération queuing_mode

Spécifie les modes de mise en file d'attente pris en charge sur l'accélérateur.

Opérateurs

Opérateur

Description

operator==, opérateur (C++ AMP)

Détermine si les structures de données spécifiées sont égales.

operator!=, opérateur (C++ AMP)

Détermine si les structures de données spécifiées sont inégales.

operator+, opérateur (C++ AMP)

Calcule la somme au niveau du composant pour les arguments spécifiés.

operator-, opérateur (C++ AMP)

Calcule la différence composante par composante, entre les arguments spécifiés.

operator*, opérateur (C++ AMP)

Calcule le produit au niveau du composant pour les arguments spécifiés.

operator/, opérateur (C++ AMP)

Calcule le quotient au niveau du composant des arguments spécifiés.

operator%, opérateur (C++ AMP)

Calcule le modulo du premier argument spécifié par le deuxième argument spécifié.

Fonctions

Nom

Description

all_memory_fence, fonction

Bloque l'exécution de tous les threads dans une mosaïque jusqu'à ce que tous les accès mémoire aient été effectués.

amp_uninitialize, fonction

Annule l'initialisation du runtime C++ AMP.

atomic_compare_exchange, fonction

Surchargé. Si la valeur enregistrée à l'emplacement spécifié est égale à la première valeur spécifiée, la deuxième valeur spécifiée est enregistrée au même emplacement qu'une opération atomique.

atomic_exchange, fonction (C++ AMP)

Surchargé. Définit la valeur enregistrée à l'emplacement spécifié à la valeur spécifiée comme une opération atomique.

atomic_fetch_add, fonction (C++ AMP)

Surchargé. Définit la valeur enregistrée à l'emplacement spécifié à la somme de cette valeur et une valeur spécifiée comme une opération atomique.

atomic_fetch_and, fonction (C++ AMP)

Surchargé. Définit la valeur enregistrée à l'emplacement spécifié à and de bits de cette valeur et une valeur spécifiée comme une opération atomique.

atomic_fetch_dec, fonction

Surchargé. Décrémente la valeur enregistrée à l'emplacement spécifié et stocke le résultat au même emplacement qu'une opération atomique.

atomic_fetch_inc, fonction

Surchargé. Incrémente la valeur enregistrée à l'emplacement spécifié et stocke le résultat au même emplacement qu'une opération atomique.

atomic_fetch_max, fonction

Surchargé. Définit la valeur enregistrée à l'emplacement spécifié à la plus grande de cette valeur et une valeur spécifiée comme une opération atomique.

atomic_fetch_min, fonction

Surchargé. Définit la valeur enregistrée à l'emplacement spécifié à la plus petite de cette valeur et une valeur spécifiée comme une opération atomique.

atomic_fetch_or, fonction (C++ AMP)

Surchargé. Définit la valeur enregistrée à l'emplacement spécifié à or de bits de cette valeur et une valeur spécifiée comme une opération atomique.

atomic_fetch_sub, fonction (C++ AMP)

Surchargé. Définit la valeur enregistrée à l'emplacement spécifié à la différence de cette valeur et une valeur spécifiée comme une opération atomique.

atomic_fetch_xor, fonction (C++ AMP)

Surchargé. Définit la valeur enregistrée à l'emplacement spécifié à xor de bits de cette valeur et une valeur spécifiée comme une opération atomique.

copy, fonction

Copie un objet C++ AMP. Toutes les demandes synchrones de transfert de données sont satisfaites. Les données ne peuvent pas être copiées lorsque le code exécute le code sur un accélérateur. La forme générale de cette fonction est copy(src, dest).

copy_async, fonction

Copie un objet C++ AMP et renvoie un completion_future sur lequel on peut se mettre en attente. Les données ne peuvent pas être copiées lorsque le code est exécuté sur un accélérateur. La forme générale de cette fonction est copy(src, dest).

direct3d_abort, fonction

Interrompt l'exécution d'une fonction avec la clause de restriction de restrict(amp).

direct3d_errorf, fonction

Imprime une chaîne mise en forme dans la fenêtre Sortie de Visual Studio et déclenche une exception runtime_exception qui a la même chaîne de mise en forme.

direct3d_printf, fonction

Imprime une chaîne mise en forme dans la fenêtre de sortie de Visual Studio. Appelée depuis une fonction qui a la clause de restriction restrict(amp).

global_memory_fence, fonction

Bloque l'exécution de tous les threads dans une mosaïque jusqu'à ce que tous les accès mémoire globaux aient été effectués.

parallel_for_each, fonction (C++ AMP)

Exécute une fonction sur le domaine de calcul.

tile_static_memory_fence, fonction

Bloque l'exécution de tous les threads dans une mosaïque jusqu'à ce que les accès mémoire tile_static aient été effectués.

Constantes

Nom

Description

HLSL_MAX_NUM_BUFFERS, constante

Nombre maximal de mémoires tampons autorisées par DirectX.

MODULENAME_MAX_LENGTH, constante

Stocke la longueur maximale du nom du module. Cette valeur doit être identique dans le compilateur et le runtime.

Configuration requise

En-tête : amp.h

Voir aussi

Autres ressources

Référence (C++ AMP)