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_view automatica . |
get_dedicated_memory | Restituisce la memoria dedicata per , accelerator espressa 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 accelerator oggetto . |
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 , accelerator in 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 accelerator oggetto . |
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 accelerator Direct3D. |
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 , accelerator
in 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 accelerator
oggetto .
__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 , accelerator
espressa in kilobyte.
size_t get_dedicated_memory() const;
Valore restituito
Memoria dedicata per , accelerator
espressa 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;