Condividi tramite


Classe acceleratore

Un acceleratore è una funzionalità hardware ottimizzata per il calcolo parallelo dei dati. Un acceleratore può essere un dispositivo collegato a un bus PCIe (ad esempio una GPU) o potrebbe essere un set di istruzioni esteso sulla CPU principale.

Sintassi

class accelerator;

Membri

Costruttori pubblici

Nome Descrizione
Costruttore acceleratore Inizializza una nuova istanza della classe accelerator.
~accelerator Distruttore Elimina definitivamente l'oggetto accelerator .

Metodi pubblici

Nome Descrizione
create_view Crea e restituisce un accelerator_view oggetto su questo acceleratore.
get_all Restituisce un vettore di accelerator oggetti che rappresentano tutti gli acceleratori disponibili.
get_auto_selection_view Restituisce la selezione accelerator_viewautomatica .
get_dedicated_memory Restituisce la memoria dedicata per accelerator, espressa in kilobytes.
get_default_cpu_access_type Restituisce il access_type predefinito per i buffer creati su questo acceleratore.
get_default_view Restituisce l'oggetto predefinito accelerator_view associato all'oggetto accelerator.
get_description Restituisce una breve descrizione del accelerator dispositivo.
get_device_path Restituisce il percorso del dispositivo.
get_has_display Determina se l'oggetto accelerator è collegato a uno schermo.
get_is_debug Determina se il livello DEBUG di accelerator è abilitato per la segnalazione di errori in modo estensivo.
get_is_emulated Determina se l'oggetto accelerator viene emulato.
get_supports_cpu_shared_memory Determina se supporta la accelerator memoria condivisa
get_supports_double_precision Determina se il accelerator è connesso a un display.
ottenere_supporta_precisione_doppia_limitata Determina se accelerator ci sia un supporto limitato per la matematica a precisione doppia.
get_version (ottieni_versione) Restituisce la versione di accelerator.
set_default Restituisce il percorso dell'acceleratore predefinito.
imposta_tipo_accesso_cpu_predefinito Imposta il access_type CPU predefinito per le matrici e le allocazioni di memoria implicite eseguite su questo oggetto accelerator.

Operatori pubblici

Nome Descrizione
Operatore != Confronta l'oggetto accelerator con un altro oggetto e restituisce false se sono uguali; in caso contrario, restituisce true.
Operatore = Copia il contenuto dell'oggetto specificato accelerator in questo oggetto.
operator== Confronta l'oggetto accelerator con un altro oggetto e restituisce true se sono uguali; in caso contrario, restituisce false.

Membri di dati pubblici

Nome Descrizione
cpu_accelerator Ottiene una costante stringa per la CPU accelerator.
dedicated_memory Ottiene la memoria dedicata per accelerator, in kilobyte.
default_accelerator Ottiene una costante stringa per l'oggetto predefinito accelerator.
tipo_accesso_cpu_predefinito Ottiene o imposta il access_type cpu predefinito per le matrici e le allocazioni di memoria implicite eseguite su questo acceleratoroggetto .
default_view Ottiene l'oggetto predefinito accelerator_view associato all'oggetto accelerator.
descrizione Ottiene una breve descrizione del accelerator dispositivo.
device_path Ottiene il percorso del dispositivo.
direct3d_ref Ottiene una stringa costante per un riferimento Direct3D accelerator.
direct3d_warp Ottiene la costante stringa per un accelerator oggetto che è possibile usare per l'esecuzione di codice C++ AMP su CPU multi-core che usano Streaming SIMD Extensions (SSE).
ha_display Ottiene un valore booleano che indica se l'oggetto accelerator è associato a una visualizzazione.
is_debug Indica se il accelerator ha il livello DEBUG abilitato per un'ampia segnalazione degli errori.
is_emulated Indica se l'oggetto accelerator è emulato.
supporta_la_memoria_condivisa_della_cpu Indica se supporta la accelerator memoria condivisa.
supporta doppia precisione Indica se l'acceleratore supporta la matematica a precisione doppia.
supporta la precisione doppia limitata Indica se l'acceleratore ha un supporto limitato per la matematica a precisione doppia.
versione Ottiene la versione di accelerator.

Gerarchia di ereditarietà

accelerator

Osservazioni:

Un acceleratore è una funzionalità hardware ottimizzata per il calcolo parallelo dei dati. Un acceleratore è spesso una GPU discreta, ma può anche essere un'entità lato host virtuale, ad esempio un dispositivo DirectX REF, un WARP (un dispositivo lato CPU accelerato tramite istruzioni SSE) o la CPU stessa.

È possibile costruire un accelerator oggetto enumerando i dispositivi disponibili oppure recuperando il dispositivo predefinito, il dispositivo di riferimento o il dispositivo WARP.

Requisiti

Intestazione: amprt.h

Spazio dei nomi: Concurrency

~acceleratore

Elimina definitivamente l'oggetto accelerator .

~accelerator();

Valore restituito

acceleratore

Inizializza una nuova istanza della classe acceleratore.

accelerator();

explicit accelerator(const std::wstring& _Device_path);

accelerator(const accelerator& _Other);

Parametri

_Device_path
Percorso del dispositivo fisico.

_Altro
L'acceleratore per copiare.

cpu_accelerator

Ottiene una costante di stringa per l'acceleratore CPU.

static const wchar_t cpu_accelerator[];

crea_vista

Crea un oggetto accelerator_view su questo acceleratore e lo restituisce, utilizzando la modalità di accodamento specificata. Quando la modalità di accodamento non è specificata, la nuova accelerator_view usa la modalità di accodamento queuing_mode::immediate.

accelerator_view create_view(queuing_mode qmode = queuing_mode_automatic);

Parametri

qmode
Modalità di accodamento.

Valore restituito

accelerator_view Nuovo oggetto su questo acceleratore, utilizzando la modalità di accodamento specificata.

memoria dedicata

Ottiene la memoria dedicata per accelerator, in kilobyte.

__declspec(property(get= get_dedicated_memory)) size_t dedicated_memory;

acceleratore_predefinito

Ottiene una costante stringa per l'oggetto predefinito accelerator.

static const wchar_t default_accelerator[];

default_cpu_access_type

Il access_type predefinito della CPU per le matrici e le allocazioni di memoria implicite fatte su questo accelerator.

__declspec(property(get= get_default_cpu_access_type)) access_type default_cpu_access_type;

vista_predefinita

Ottiene la visualizzazione dell'acceleratore predefinita associata all'oggetto accelerator.

__declspec(property(get= get_default_view)) accelerator_view default_view;

descrizione

Ottiene una breve descrizione del accelerator dispositivo.

__declspec(property(get= get_description)) std::wstring description;

percorso_del_dispositivo

Ottiene il percorso dell'acceleratore. Il percorso è univoco nel sistema.

__declspec(property(get= get_device_path)) std::wstring device_path;

direct3d_ref

Ottiene una costante di stringa per un acceleratore di riferimento Direct3D.

static const wchar_t direct3d_ref[];

direct3d_warp

Ottiene la costante stringa per un accelerator oggetto che è possibile usare per l'esecuzione del codice C++ AMP su CPU multi-core tramite Streaming SIMD Extensions (SSE).

static const wchar_t direct3d_warp[];

get_all

Restituisce un vettore di accelerator oggetti che rappresentano tutti gli acceleratori disponibili.

static inline std::vector<accelerator> get_all();

Valore restituito

Vettore di acceleratori disponibili

get_auto_selection_view

Restituisce il accelerator_view di selezione automatica, che quando specificato come destinazione parallel_for_each restituisce il accelerator_view di destinazione per l'esecuzione del kernel parallel_for_each da selezionare automaticamente dal runtime. Per tutti gli altri scopi, il accelerator_view restituito da questo metodo è uguale al accelerator_view predefinito dell'acceleratore predefinito

static accelerator_view __cdecl get_auto_selection_view();

Valore restituito

Selezione automatica dell'acceleratore_view.

ottenere_memoria_dedicata

Restituisce la memoria dedicata per accelerator, espressa in kilobytes.

size_t get_dedicated_memory() const;

Valore restituito

La memoria dedicata per accelerator, espressa in kilobyte.

get_tipo_accesso_cpu_di_default

Ottiene il tipo di accesso CPU predefinito per i buffer creati su questo acceleratore

access_type get_default_cpu_access_type() const;

Valore restituito

Il tipo di accesso CPU predefinito per i buffer creati su questo acceleratore.

recupera_visualizzazione_predefinita

Restituisce l'oggetto predefinito accelerator_view associato all'oggetto accelerator.

accelerator_view get_default_view() const;

Valore restituito

Oggetto predefinito accelerator_view associato all'oggetto accelerator.

ottieni_descrizione

Restituisce una breve descrizione del accelerator dispositivo.

std::wstring get_description() const;

Valore restituito

Breve descrizione del accelerator dispositivo.

get_device_path

Restituisce il percorso dell'acceleratore. Il percorso è univoco nel sistema.

std::wstring get_device_path() const;

Valore restituito

Il percorso dell'istanza del dispositivo univoco a livello di sistema.

get_has_display

Restituisce un valore booleano che indica se accelerator può visualizzare su uno schermo.

bool get_has_display() const;

Valore restituito

true se l'oggetto accelerator può emettere un output su un display; in caso contrario, false.

get_is_debug

Determina se il livello DEBUG di accelerator è abilitato per la segnalazione di errori in modo estensivo.

bool get_is_debug() const;

Valore restituito

true se il accelerator livello DEBUG è abilitato per la segnalazione degli errori estesa. In caso contrario, false.

get_is_emulated

Determina se l'oggetto accelerator viene emulato.

bool get_is_emulated() const;

Valore restituito

true se il accelerator è emulato. In caso contrario, false.

get_supports_cpu_shared_memory

Restituisce un valore booleano che indica se l'acceleratore supporta la memoria accessibile sia dall'acceleratore che dalla CPU.

bool get_supports_cpu_shared_memory() const;

Valore restituito

true se l'acceleratore supporta la memoria condivisa della CPU; in caso contrario, false.

ottenere_supporta_doppia_precisione

Restituisce un valore booleano che indica se l'acceleratore supporta la matematica a precisione doppia, inclusa la moltiplicazione con accumulo fuso (FMA), la divisione, il reciproco e il casting tra int e double

bool get_supports_double_precision() const;

Valore restituito

true se l'acceleratore supporta la matematica a precisione doppia; in caso contrario, false.

get_supports_limited_double_precision

Restituisce un valore booleano che indica se l'acceleratore ha un supporto limitato per la matematica a precisione doppia. Se l'acceleratore ha solo un supporto limitato, l'aggiunta di moltiplicazione fuso (FMA), la divisione, il reciproco e il cast tra int e double non sono supportati.

bool get_supports_limited_double_precision() const;

Valore restituito

true se l'acceleratore ha un supporto limitato per la matematica a precisione doppia; in caso contrario, false.

get_version

Restituisce la versione di accelerator.

unsigned int get_version() const;

Valore restituito

Versione di accelerator.

has_display

Ottiene un valore booleano che indica se l'oggetto accelerator può restituire un output in una visualizzazione.

__declspec(property(get= get_has_display)) bool has_display;

is_debug

Ottiene un valore booleano che indica se il accelerator livello DEBUG è abilitato per la segnalazione degli errori estesa.

__declspec(property(get= get_is_debug)) bool is_debug;

is_emulato

Ottiene un valore booleano che indica se l'oggetto accelerator è emulato.

__declspec(property(get= get_is_emulated)) bool is_emulated;

operator!=

Confronta l'oggetto accelerator con un altro oggetto e restituisce false se sono uguali; in caso contrario, restituisce true.

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

Parametri

_Altro
Oggetto accelerator da confrontare con questo.

Valore restituito

false se i due accelerator oggetti sono uguali; in caso contrario, true.

operator=

Copia il contenuto dell'oggetto specificato accelerator in questo oggetto.

accelerator& operator= (const accelerator& _Other);

Parametri

_Altro
Oggetto accelerator da cui copiare.

Valore restituito

Riferimento a questo accelerator oggetto.

operator==

Confronta l'oggetto accelerator con un altro oggetto e restituisce true se sono uguali; in caso contrario, restituisce false.

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

Parametri

_Altro
Oggetto accelerator da confrontare con questo.

Valore restituito

true se l'altro accelerator oggetto è uguale a questo accelerator oggetto; in caso contrario, false.

set_default

Imposta l'acceleratore predefinito da utilizzare per qualsiasi operazione che usa in modo implicito l'acceleratore predefinito. Questo metodo ha esito positivo solo se il runtime ha selezionato l'acceleratore predefinito e non è già stato usato in un'operazione che utilizza implicitamente l'acceleratore predefinito.

static inline bool set_default(std::wstring _Path);

Parametri

_Percorso
Percorso dell'acceleratore.

Valore restituito

true se la chiamata ha esito positivo nell'impostare l'acceleratore predefinito. In caso contrario, false.

set_default_cpu_access_type

Impostare il access_type cpu predefinito per le matrici create su questo acceleratore o per le allocazioni di memoria implicite come parte di array_views a cui si accede su questo acceleratore. Questo metodo ha esito positivo solo se il default_cpu_access_type per l'acceleratore non è già stato sottoposto a override da una chiamata precedente a questo metodo e il runtime selezionato default_cpu_access_type per questo acceleratore non è ancora stato usato per allocare una matrice o per un'allocazione di memoria implicita che esegue il backup di un array_view a cui si accede su questo acceleratore.

bool set_default_cpu_access_type(access_type _Default_cpu_access_type);

Parametri

_Default_cpu_access_type
Il tipo di accesso predefinito della CPU da usare per le allocazioni della memoria di array/array_view su questo acceleratore.

Valore restituito

Valore booleano che indica se il tipo di accesso predefinito della cpu per l'acceleratore è stato impostato correttamente.

supporta_memoria_condivisa_CPU

Ottiene un valore booleano che indica se supporta la accelerator memoria condivisa.

__declspec(property(get= get_supports_cpu_shared_memory)) bool supports_cpu_shared_memory;

supporta la doppia precisione

Ottiene un valore booleano che indica se l'acceleratore supporta la matematica a precisione doppia.

__declspec(property(get= get_supports_double_precision)) bool supports_double_precision;

supporta_doppia_precisione_limitata

Ottiene un valore booleano che indica se l'acceleratore ha un supporto limitato per la matematica a precisione doppia. Se l'acceleratore ha solo un supporto limitato, l'aggiunta di moltiplicazione fuso (FMA), la divisione, il reciproco e il cast tra int e double non sono supportati.

__declspec(property(get= get_supports_limited_double_precision)) bool supports_limited_double_precision;

versione

Ottiene la versione di accelerator.

__declspec(property(get= get_version)) unsigned int version;

Vedi anche

Namespace Concurrency (C++ AMP)