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 du matériel en parallèle des données. Pour plus d’informations, consultez Vue d’ensemble de L’AMP C++

Syntaxe

namespace Concurrency;

Membres

Espaces de noms

Nom Description
Concurrency::direct3d, espace de noms Fournit des fonctions qui prennent en charge l’interopérabilité D3D. Permet une utilisation transparente des ressources D3D pour le calcul dans le code AMP et l’utilisation des ressources créées dans le code AMP dans le code D3D, sans créer de copies intermédiaires redondantes. Vous pouvez utiliser C++ AMP pour accélérer de manière incrémentielle les sections nécessitant beaucoup de ressources de calcul de vos applications DirectX et utiliser l’API D3D sur les données produites à partir de calculs AMP.
Concurrency::fast_math, espace de noms Les fonctions de l’espace fast_math de noms ne sont pas conformes à C99. Seules les versions à précision unique de chaque fonction sont fournies. Ces fonctions utilisent les fonctions intrinsèques DirectX, qui sont plus rapides que les fonctions correspondantes dans l’espace precise_math de noms et ne nécessitent pas de prise en charge 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 source avec le code C99 ; les deux versions prennent et retournent des valeurs à précision unique.
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 de l’espace precise_math de noms sont conformes à C99. Les versions simple précision et double précision de chaque fonction sont incluses. Ces fonctions, qui incluent les fonctions à précision unique, nécessitent une prise en charge étendue de double précision sur l’accélérateur.

Classes

Nom Description
accelerator, classe Représente une abstraction d’un nœud de calcul optimisé pour dp physique.
accelerator_view, classe Représente une abstraction d’appareil virtuel sur un accélérateur parallèle de données AMP C++.
accelerator_view_removed, classe 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 Windows.
array, classe Agrégat de données sur un accelerator_view domaine de grille. Il s’agit d’une collection de variables, une pour chaque élément d’un domaine grid. Chaque variable contient une valeur qui correspond à un type C++.
array_view, classe Représente une vue des données d’un tableau<T,N>.
completion_future, classe Représente un avenir qui correspond à une opération asynchrone AMP C++.
extent, classe Représente un vecteur de valeurs entières N qui spécifient les limites d’un espace n dimensionnel ayant une origine de 0. Les valeurs du vecteur de coordonnées sont classées de la plus importante à la moins significative. Par exemple, dans l’espace 3dimensionnel cartésien, le vecteur d’étendue (7,5,3) représente un espace dans lequel les coordonnées z sont comprises entre 0 et 7, les coordonnées y sont comprises entre 0 et 5 et les plages de coordonnées x comprises entre 0 et 3.
index, classe Définit un point d’index ndimensionnel.
invalid_compute_domain, classe Exception levée lorsque le runtime ne peut pas démarrer un noyau à l’aide du domaine de calcul spécifié sur le parallel_for_each site d’appel.
out_of_memory (classe) Exception levée lorsqu’une méthode échoue en raison d’un manque de mémoire système ou d’appareil.
runtime_exception, classe Type de base pour les exceptions dans la bibliothèque AMP C++.
tile_barrier, classe Classe de capacité qui est uniquement créatable par le système et transmise à une lambda en mosaïque parallel_for_each dans le cadre du tiled_index paramètre. Il fournit une méthode, wait()dont l’objectif est de synchroniser l’exécution des threads qui s’exécutent dans le groupe de threads (vignette).
tiled_extent, classe Un tiled_extent objet est un extent objet d’une à trois dimensions qui subdivit l’espace d’étendue en mosaïques unidimensionnelles, à deux dimensions ou à trois dimensions.
tiled_index, classe Fournit un index dans un tiled_grid objet. Cette classe a des propriétés pour accéder à l’élément par rapport à l’origine de vignette locale et par rapport à l’origine globale.
uninitialized_object, classe Exception levée lorsqu’un objet non initialisé est utilisé.
unsupported_feature, classe Exception levée lorsqu’une fonctionnalité non prise en charge est utilisée.

Énumérations

Nom Description
énumération access_type Spécifie le type d’accès aux 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== Operator (C++ AMP) Détermine si les structures de données spécifiées sont égales.
operator != Operator (C++ AMP) Détermine si les structures de données spécifiées sont inégales.
operator+ Operator (C++ AMP) Calcule la somme par composant des arguments spécifiés.
operator- Operator (C++ AMP) Calcule la différence par composant entre les arguments spécifiés.
operator* Operator (C++ AMP) Calcule le produit par composant des arguments spécifiés.
operator/ Operator (C++ AMP) Calcule le quotient par composant des arguments spécifiés.
operator% Operator (C++ AMP) Calcule le module du premier argument spécifié par le deuxième argument spécifié.

Functions

Nom Description
all_memory_fence Bloque l’exécution de tous les threads d’une vignette jusqu’à ce que tous les accès à la mémoire soient terminés.
amp_uninitialize Annule l’initialisation du runtime AMP C++.
atomic_compare_exchange Surcharge. Si la valeur stockée à l’emplacement spécifié est égale à la première valeur spécifiée, la deuxième valeur spécifiée est stockée dans le même emplacement qu’une opération atomique.
atomic_exchange Surcharge. Définit la valeur stockée à l’emplacement spécifié sur la valeur spécifiée en tant qu’opération atomique.
atomic_fetch_add Surcharge. Définit la valeur stockée à l’emplacement spécifié sur la somme de cette valeur et d’une valeur spécifiée en tant qu’opération atomique.
atomic_fetch_and Surcharge. Définit la valeur stockée à l’emplacement spécifié au niveau and du bit de cette valeur et une valeur spécifiée en tant qu’opération atomique.
atomic_fetch_dec Surcharge. Décrémente la valeur stockée à l’emplacement spécifié et stocke le résultat au même emplacement qu’une opération atomique.
atomic_fetch_inc Surcharge. Incrémente la valeur stockée à l’emplacement spécifié et stocke le résultat au même emplacement qu’une opération atomique.
atomic_fetch_max Surcharge. Définit la valeur stockée à l’emplacement spécifié sur la plus grande de cette valeur et une valeur spécifiée en tant qu’opération atomique.
atomic_fetch_min Surcharge. Définit la valeur stockée à l’emplacement spécifié sur la plus petite de cette valeur et une valeur spécifiée en tant qu’opération atomique.
atomic_fetch_or Surcharge. Définit la valeur stockée à l’emplacement spécifié au niveau or du bit de cette valeur et une valeur spécifiée en tant qu’opération atomique.
atomic_fetch_sub Surcharge. Définit la valeur stockée à l’emplacement spécifié sur la différence de cette valeur et une valeur spécifiée en tant qu’opération atomique.
atomic_fetch_xor Surcharge. Définit la valeur stockée à l’emplacement spécifié au niveau xor du bit de cette valeur et une valeur spécifiée en tant qu’opération atomique.
copy Copie un objet AMP C++. Toutes les exigences de transfert de données synchrones sont remplies. Les données ne peuvent pas être copiées lorsque le code exécute du code sur un accélérateur. La forme générale de cette fonction est copy(src, dest).
copy_async Copie un objet AMP C++ et retourne completion_future qui peuvent être attendus. Les données ne peuvent pas être copiées lorsque le code s’exécute sur un accélérateur. La forme générale de cette fonction est copy(src, dest).
direct3d_abort Abandonne l’exécution d’une fonction qui a la restrict(amp) clause de restriction.
direct3d_errorf 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 Imprime une chaîne mise en forme dans la fenêtre Sortie de Visual Studio. Elle est appelée à partir d’une fonction qui a la restrict(amp) clause de restriction.
global_memory_fence Bloque l’exécution de tous les threads d’une vignette jusqu’à ce que tous les accès à la mémoire globale soient terminés.
fonction parallel_for_each (AMP C++) Exécute une fonction dans le domaine de calcul.
tile_static_memory_fence Bloque l’exécution de tous les threads d’une vignette jusqu’à ce que tile_static les accès à la mémoire soient terminés.

Constantes

Nom Description
constante HLSL_MAX_NUM_BUFFERS Nombre maximal de mémoires tampons autorisées par DirectX.
constante MODULENAME_MAX_LENGTH Stocke la longueur maximale du nom du module. Cette valeur doit être identique sur le compilateur et le runtime.

Spécifications

En-tête : amp.h

Voir aussi

Référence (C++ AMP)