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