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_viewautomatique .
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 acceleratorDirect3D.
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.

_Autres
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

trueaccelerator 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;

!=, opérateur

Compare cet accelerator objet à un autre et retourne false s’ils sont identiques ; sinon, retourne true.

bool operator!= (const accelerator& _Other) const;

Paramètres

_Autres
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

_Autres
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

_Autres
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;

Voir aussi

Concurrency, espace de noms (C++ AMP)