Condividi tramite


Classe accelerator

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 accelerator Inizializza una nuova istanza della classe accelerator.
Distruttore ~accelerator 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 , acceleratorespressa in kilobyte.
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 una visualizzazione.
get_is_debug Determina se il accelerator livello DEBUG è abilitato per la segnalazione degli errori estesa.
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 l'oggetto accelerator è collegato a una visualizzazione.
get_supports_limited_double_precision Determina se ha accelerator un supporto limitato per la matematica a precisione doppia.
get_version Restituisce la versione di accelerator.
set_default Restituisce il percorso dell'acceleratore predefinito.
set_default_cpu_access_type Imposta il access_typedella CPU predefinito per le matrici e le allocazioni di memoria implicite eseguite in questo acceleratoroggetto .

Operatori pubblici

Nome Descrizione
operator!= Confronta l'oggetto accelerator con un altro oggetto e restituisce false se sono uguali; in caso contrario, restituisce true.
operator= 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 dati pubblici

Nome Descrizione
cpu_accelerator Ottiene una costante stringa per la CPU accelerator.
dedicated_memory Ottiene la memoria dedicata per , acceleratorin kilobyte.
default_accelerator Ottiene una costante stringa per l'oggetto predefinito accelerator.
default_cpu_access_type Ottiene o imposta il access_typecpu predefinito per le matrici e le allocazioni di memoria implicite eseguite in questo acceleratoroggetto .
default_view Ottiene l'oggetto predefinito accelerator_view associato all'oggetto accelerator.
description Ottiene una breve descrizione del accelerator dispositivo.
device_path Ottiene il percorso del dispositivo.
direct3d_ref Ottiene una costante stringa per un riferimento acceleratorDirect3D.
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).
has_display Ottiene un valore booleano che indica se l'oggetto accelerator è associato a una visualizzazione.
is_debug Indica se il accelerator livello DEBUG è abilitato per la segnalazione degli errori estesa.
is_emulated Indica se l'oggetto accelerator è emulato.
supports_cpu_shared_memory Indica se supporta la accelerator memoria condivisa.
supports_double_precision Indica se l'acceleratore supporta la matematica a precisione doppia.
supports_limited_double_precision Indica se l'acceleratore ha un supporto limitato per la matematica a precisione doppia.
version 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
Acceleratore da copiare.

cpu_accelerator

Ottiene una costante stringa per l'acceleratore cpu.

static const wchar_t cpu_accelerator[];

create_view

Crea e restituisce un accelerator_view oggetto su questo acceleratore, 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.

dedicated_memory

Ottiene la memoria dedicata per , acceleratorin kilobyte.

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

default_accelerator

Ottiene una costante stringa per l'oggetto predefinito accelerator.

static const wchar_t default_accelerator[];

default_cpu_access_type

La cpu predefinita access_typeper matrici e allocazioni di memoria implicite eseguite in questo acceleratoroggetto .

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

default_view

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

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

description

Ottiene una breve descrizione del accelerator dispositivo.

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

device_path

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 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 accelerator_view.

get_dedicated_memory

Restituisce la memoria dedicata per , acceleratorespressa in kilobyte.

size_t get_dedicated_memory() const;

Valore restituito

Memoria dedicata per , acceleratorespressa in kilobyte.

get_default_cpu_access_type

Ottiene il access_type cpu predefinito per i buffer creati su questo acceleratore

access_type get_default_cpu_access_type() const;

Valore restituito

La cpu predefinita access_type per i buffer creati su questo acceleratore.

get_default_view

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.

get_description

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

Percorso dell'istanza univoca del dispositivo a livello di sistema.

get_has_display

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

bool get_has_display() const;

Valore restituito

true se l'oggetto accelerator può restituire un output in una visualizzazione; in caso contrario, false.

get_is_debug

Determina se il accelerator livello DEBUG è abilitato per la segnalazione degli errori estesa.

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 l'oggetto 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.

get_supports_double_precision

Restituisce un valore booleano che indica se l'acceleratore supporta la matematica a precisione doppia, incluso l'aggiunta di moltiplicazione fuso (FMA), la divisione, il reciproco e il cast 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_emulated

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 selezionato acceleratore predefinito non è già stato usato in un'operazione che usa in modo implicito l'acceleratore predefinito

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

Parametri

_Sentiero
Percorso dell'acceleratore.

Valore restituito

true se la chiamata ha esito positivo impostando 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
Cpu predefinita access_type da usare per le allocazioni di memoria array/array_view su questo acceleratore.

Valore restituito

Valore booleano che indica se la cpu predefinita access_type per l'acceleratore è stata impostata correttamente.

supports_cpu_shared_memory

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;

supports_double_precision

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;

supports_limited_double_precision

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

Spazio dei nomi Concurrency (C++ AMP)