accelerator, classe
Un accélérateur est une fonctionnalité matérielle optimisée pour l’informatique en parallèle des données. Un accélérateur peut être un appareil attaché à un bus PCIe (tel qu’un GPU), ou il peut s’agir d’une instruction étendue définie sur le processeur principal.
Syntaxe
class accelerator;
Membres
Constructeurs publics
Nom | Description |
---|---|
constructeur d’accélérateur | Initialise une nouvelle instance de la classe accelerator . |
~accélérateur Destructor | Détruit l’objet accelerator . |
Méthodes publiques
Nom | Description |
---|---|
create_view | Crée et retourne un accelerator_view objet sur cet accélérateur. |
get_all | Retourne un vecteur d’objets accelerator qui représentent tous les accélérateurs disponibles. |
get_auto_selection_view | Retourne la sélection accelerator_view automatique . |
get_dedicated_memory | Retourne la mémoire dédiée pour le accelerator , en kilo-octets. |
get_default_cpu_access_type | Retourne la access_type par défaut pour les mémoires tampons créées sur cet accélérateur. |
get_default_view | Retourne l’objet par défaut accelerator_view associé au accelerator . |
get_description | Retourne une brève description de l’appareil accelerator . |
get_device_path | Retourne le chemin d’accès de l’appareil. |
get_has_display | Détermine si l’objet accelerator est attaché à un affichage. |
get_is_debug | Détermine si la accelerator couche DEBUG est activée pour un rapport d’erreurs étendu. |
get_is_emulated | Détermine si l’émulation accelerator est émulée. |
get_supports_cpu_shared_memory | Détermine si la accelerator mémoire partagée prend en charge |
get_supports_double_precision | Détermine si l’objet accelerator est attaché à un affichage. |
get_supports_limited_double_precision | Détermine si la accelerator prise en charge limitée des mathématiques à double précision est limitée. |
get_version | Retourne la version du accelerator . |
set_default | Retourne le chemin d’accès de l’accélérateur par défaut. |
set_default_cpu_access_type | Définit la access_typeprocesseur par défaut pour les tableaux et les allocations de mémoire implicites effectuées sur ce accelerator . |
Opérateurs publics
Nom | Description |
---|---|
operator!= | Compare cet accelerator objet à un autre et retourne false s’ils sont identiques ; sinon, retourne true . |
operator= | Copie le contenu de l’objet spécifié accelerator dans celui-ci. |
operator== | Compare cet accelerator objet à un autre et retourne true s’ils sont identiques ; sinon, retourne false . |
Membres de données publics
Nom | Description |
---|---|
cpu_accelerator | Obtient une constante de chaîne pour l’UC accelerator . |
dedicated_memory | Obtient la mémoire dédiée pour le accelerator , en kilo-octets. |
default_accelerator | Obtient une constante de chaîne pour la valeur par défaut accelerator . |
default_cpu_access_type | Obtient ou définit la access_typeprocesseur par défaut pour les tableaux et les allocations de mémoire implicites effectuées sur ce accelerator . |
default_view | Obtient l’objet par défaut accelerator_view associé au accelerator . |
description | Obtient une brève description de l’appareil accelerator . |
device_path | Obtient le chemin d’accès de l’appareil. |
direct3d_ref | Obtient une constante de chaîne pour une référence accelerator Direct3D. |
direct3d_warp | Obtient la constante de chaîne d’un accelerator objet que vous pouvez utiliser pour exécuter du code AMP C++ sur des processeurs multicœurs qui utilisent les extensions SIMD de streaming (SSE). |
has_display | Obtient une valeur booléenne qui indique si l’objet accelerator est attaché à un affichage. |
is_debug | Indique si accelerator la couche DEBUG est activée pour les rapports d’erreurs étendus. |
is_emulated | Indique si l’émulation accelerator est émulée. |
supports_cpu_shared_memory | Indique si la accelerator mémoire partagée est prise en charge. |
supports_double_precision | Indique si l’accélérateur prend en charge les mathématiques à double précision. |
supports_limited_double_precision | Indique si l’accélérateur a une prise en charge limitée des mathématiques à double précision. |
version | Obtient la version du accelerator . |
Hiérarchie d'héritage
accelerator
Notes
Un accélérateur est une fonctionnalité matérielle optimisée pour l’informatique en parallèle des données. Un accélérateur est souvent un GPU discret, mais il peut également s’agir d’une entité côté hôte virtuelle telle qu’un appareil DirectX REF, un WARP (un appareil côté PROCESSEUR qui est accéléré par le biais d’instructions SSE) ou de l’UC elle-même.
Vous pouvez construire un accelerator
objet en énumérant les appareils disponibles ou en obtenant l’appareil par défaut, l’appareil de référence ou l’appareil WARP.
Spécifications
En-tête : amprt.h
Espace de noms : Concurrency
~accélérateur
Détruit l’objet accelerator
.
~accelerator();
Valeur de retour
accélérateur
Initialise une nouvelle instance de la classe accélérateur.
accelerator();
explicit accelerator(const std::wstring& _Device_path);
accelerator(const accelerator& _Other);
Paramètres
_Device_path
Chemin d’accès de l’appareil physique.
_Autre
Accélérateur à copier.
cpu_accelerator
Obtient une constante de chaîne pour l’accélérateur d’UC.
static const wchar_t cpu_accelerator[];
create_view
Crée et retourne un accelerator_view
objet sur cet accélérateur à l’aide du mode de mise en file d’attente spécifié. Lorsque le mode de mise en file d’attente n’est pas spécifié, le nouveau accelerator_view
utilise le mode de mise en file d’attente queuing_mode ::immediate .
accelerator_view create_view(queuing_mode qmode = queuing_mode_automatic);
Paramètres
qmode
Mode de mise en file d’attente.
Valeur de retour
Nouvel accelerator_view
objet sur cet accélérateur, en utilisant le mode de mise en file d’attente spécifié.
dedicated_memory
Obtient la mémoire dédiée pour le accelerator
, en kilo-octets.
__declspec(property(get= get_dedicated_memory)) size_t dedicated_memory;
default_accelerator
Obtient une constante de chaîne pour la valeur par défaut accelerator
.
static const wchar_t default_accelerator[];
default_cpu_access_type
Le processeur par défaut access_typepour les tableaux et les allocations de mémoire implicites effectuées sur ce accelerator
.
__declspec(property(get= get_default_cpu_access_type)) access_type default_cpu_access_type;
default_view
Obtient la vue d’accélérateur par défaut associée au accelerator
.
__declspec(property(get= get_default_view)) accelerator_view default_view;
description
Obtient une brève description de l’appareil accelerator
.
__declspec(property(get= get_description)) std::wstring description;
device_path
Obtient le chemin de l’accélérateur. Le chemin d’accès est unique sur le système.
__declspec(property(get= get_device_path)) std::wstring device_path;
direct3d_ref
Obtient une constante de chaîne pour un accélérateur de référence Direct3D.
static const wchar_t direct3d_ref[];
direct3d_warp
Obtient la constante de chaîne d’un accelerator
objet que vous pouvez utiliser pour exécuter votre code AMP C++ sur des processeurs multicœurs à l’aide des extensions SIMD de streaming (SSE).
static const wchar_t direct3d_warp[];
get_all
Retourne un vecteur d’objets accelerator
qui représentent tous les accélérateurs disponibles.
static inline std::vector<accelerator> get_all();
Valeur de retour
Vecteur des accélérateurs disponibles
get_auto_selection_view
Retourne l’accelerator_view de sélection automatique, qui, lorsqu’elle est spécifiée en tant que cible parallel_for_each, génère le accelerator_view cible pour l’exécution du noyau parallel_for_each à sélectionner automatiquement par le runtime. À toutes les autres fins, la accelerator_view retournée par cette méthode est identique à la accelerator_view par défaut de l’accélérateur par défaut
static accelerator_view __cdecl get_auto_selection_view();
Valeur de retour
Sélection automatique accelerator_view.
get_dedicated_memory
Retourne la mémoire dédiée pour le accelerator
, en kilo-octets.
size_t get_dedicated_memory() const;
Valeur de retour
Mémoire dédiée pour le accelerator
, en kilo-octets.
get_default_cpu_access_type
Obtient la access_type processeur par défaut pour les mémoires tampons créées sur cet accélérateur
access_type get_default_cpu_access_type() const;
Valeur de retour
Le processeur par défaut access_type pour les mémoires tampons créées sur cet accélérateur.
get_default_view
Retourne l’objet par défaut accelerator_view
associé au accelerator
.
accelerator_view get_default_view() const;
Valeur de retour
Objet par défaut accelerator_view
associé au accelerator
.
get_description
Retourne une brève description de l’appareil accelerator
.
std::wstring get_description() const;
Valeur de retour
Brève description de l’appareil accelerator
.
get_device_path
Retourne le chemin de l’accélérateur. Le chemin d’accès est unique sur le système.
std::wstring get_device_path() const;
Valeur de retour
Chemin d’accès d’instance d’appareil unique à l’échelle du système.
get_has_display
Retourne une valeur booléenne qui indique si la accelerator
sortie peut être affichée.
bool get_has_display() const;
Valeur de retour
true
si la accelerator
sortie vers un affichage ; sinon, false
.
get_is_debug
Détermine si la accelerator
couche DEBUG est activée pour un rapport d’erreurs étendu.
bool get_is_debug() const;
Valeur de retour
true
accelerator
si la couche DEBUG est activée pour un rapport d’erreurs étendu. Sinon, false
.
get_is_emulated
Détermine si l’émulation accelerator
est émulée.
bool get_is_emulated() const;
Valeur de retour
true
si la valeur accelerator
est émulée. Sinon, false
.
get_supports_cpu_shared_memory
Retourne une valeur booléenne indiquant si l’accélérateur prend en charge la mémoire accessible à la fois par l’accélérateur et l’UC.
bool get_supports_cpu_shared_memory() const;
Valeur de retour
true
si l’accélérateur prend en charge la mémoire partagée du processeur ; sinon, false
.
get_supports_double_precision
Retourne une valeur booléenne qui indique si l’accélérateur prend en charge les mathématiques de double précision, y compris l’ajout de multiplication fusionnée (FMA), la division, la réciproque et le cast entre int
et double
bool get_supports_double_precision() const;
Valeur de retour
true
si l’accélérateur prend en charge les mathématiques de double précision ; sinon, false
.
get_supports_limited_double_precision
Retourne une valeur booléenne qui indique si l’accélérateur a une prise en charge limitée des mathématiques de double précision. Si l’accélérateur n’a qu’une prise en charge limitée, la multiplication fusionnée ajoute (FMA), la division, la réciproque et la conversion entre int
et double
ne sont pas prises en charge.
bool get_supports_limited_double_precision() const;
Valeur de retour
true
si l’accélérateur a une prise en charge limitée des mathématiques de double précision ; sinon, false
.
get_version
Retourne la version du accelerator
.
unsigned int get_version() const;
Valeur de retour
Version du accelerator
.
has_display
Obtient une valeur booléenne qui indique si la accelerator
sortie peut être affichée.
__declspec(property(get= get_has_display)) bool has_display;
is_debug
Obtient une valeur booléenne qui indique si la accelerator
couche DEBUG est activée pour un rapport d’erreurs étendu.
__declspec(property(get= get_is_debug)) bool is_debug;
is_emulated
Obtient une valeur booléenne qui indique si la valeur accelerator
est émulée.
__declspec(property(get= get_is_emulated)) bool is_emulated;
operator!=
Compare cet accelerator
objet à un autre et retourne false
s’ils sont identiques ; sinon, retourne true
.
bool operator!= (const accelerator& _Other) const;
Paramètres
_Autre
Objet accelerator
à comparer à celui-ci.
Valeur de retour
false
si les deux accelerator
objets sont identiques ; sinon, true
.
opérateur =
Copie le contenu de l’objet spécifié accelerator
dans celui-ci.
accelerator& operator= (const accelerator& _Other);
Paramètres
_Autre
Objet accelerator
à copier.
Valeur de retour
Référence à cet accelerator
objet.
operator==
Compare cet accelerator
objet à un autre et retourne true
s’ils sont identiques ; sinon, retourne false
.
bool operator== (const accelerator& _Other) const;
Paramètres
_Autre
Objet accelerator
à comparer à celui-ci.
Valeur de retour
true
si l’autre accelerator
objet est identique à cet accelerator
objet ; sinon, false
.
set_default
Définit l’accélérateur par défaut à utiliser pour toute opération qui utilise implicitement l’accélérateur par défaut. Cette méthode réussit uniquement si l’accélérateur par défaut sélectionné par le runtime n’a pas déjà été utilisé dans une opération qui utilise implicitement l’accélérateur par défaut
static inline bool set_default(std::wstring _Path);
Paramètres
_Chemin
Chemin d’accès à l’accélérateur.
Valeur de retour
true
si l’appel réussit à définir l’accélérateur par défaut. Sinon, false
.
set_default_cpu_access_type
Définissez la access_type processeur par défaut pour les tableaux créés sur cet accélérateur ou pour les allocations de mémoire implicites dans le cadre de array_views accessibles sur cet accélérateur. Cette méthode réussit uniquement si l’default_cpu_access_type de l’accélérateur n’a pas déjà été remplacée par un appel précédent à cette méthode et que le runtime sélectionné default_cpu_access_type pour cet accélérateur n’a pas encore été utilisé pour allouer un tableau ou pour une allocation de mémoire implicite qui sauvegarde un array_view accessible sur cet accélérateur.
bool set_default_cpu_access_type(access_type _Default_cpu_access_type);
Paramètres
_Default_cpu_access_type
Le processeur par défaut access_type à utiliser pour les allocations de mémoire de tableau/array_view sur cet accélérateur.
Valeur de retour
Valeur booléenne indiquant si la access_type processeur par défaut de l’accélérateur a été correctement définie.
supports_cpu_shared_memory
Obtient une valeur booléenne indiquant si la accelerator
mémoire partagée est prise en charge.
__declspec(property(get= get_supports_cpu_shared_memory)) bool supports_cpu_shared_memory;
supports_double_precision
Obtient une valeur booléenne qui indique si l’accélérateur prend en charge les mathématiques de double précision.
__declspec(property(get= get_supports_double_precision)) bool supports_double_precision;
supports_limited_double_precision
Obtient une valeur booléenne qui indique si l’accélérateur a une prise en charge limitée des mathématiques de double précision. Si l’accélérateur n’a qu’une prise en charge limitée, la multiplication fusionnée ajoute (FMA), la division, la réciproque et la conversion entre int
et double
ne sont pas prises en charge.
__declspec(property(get= get_supports_limited_double_precision)) bool supports_limited_double_precision;
version
Obtient la version du accelerator
.
__declspec(property(get= get_version)) unsigned int version;