Freigeben über


Beschleunigerklasse

Ein Accelerator ist eine Hardwarefunktion, die für daten-parallele Computervorgänge optimiert ist. Ein Beschleuniger kann ein Gerät sein, das an einen PCIe-Bus angeschlossen wird (wie ein Grafikprozessor), oder es könnte ein erweiterter Befehlssatz auf der Haupt-CPU sein.

Syntax

class accelerator;

Mitglieder

Öffentliche Konstruktoren

Name Beschreibung
Accelerator-Konstruktor Initialisiert eine neue Instanz der accelerator-Klasse.
~Accelerator-Destruktor Zerstört das accelerator-Objekt.

Öffentliche Methoden

Name Beschreibung
create_view Erstellt und gibt ein accelerator_view-Objekt auf diesem Beschleuniger zurück.
get_all Gibt einen Vektor von accelerator-Objekten zurück, die alle verfügbaren Accelerators darstellen.
get_auto_selection_view Gibt die automatische Auswahlaccelerator_viewzurück.
get_dedicated_memory Gibt den dedizierten Arbeitsspeicher für das accelerator-Objekt in KB zurück.
get_default_cpu_access_type Gibt den Standard-access_type für Puffer zurück, die auf diesem Beschleuniger erstellt wurden.
get_default_view Gibt das standardmäßige accelerator_view-Objekt zurück, das mit dem accelerator-Objekt verknüpft ist.
get_description Gibt eine kurze Beschreibung des accelerator-Geräts zurück.
get_device_path Gibt den Pfad des physischen Geräts zurück.
get_has_display Bestimmt, ob das accelerator-Objekt mit einer Anzeige verbunden ist.
get_is_debug Bestimmt, für das accelerator-Objekt die DEBUG-Ebene für eine umfangreiche Fehlerberichterstattung aktiviert ist.
get_is_emulated Bestimmt, ob das accelerator-Objekt emuliert ist.
get_supports_cpu_shared_memory Bestimmt, ob das accelerator gemeinsamen Speicher unterstützt
get_supports_double_precision Bestimmt, ob das accelerator-Objekt mit einer Anzeige verbunden ist.
get_supports_limited_double_precision Bestimmt, ob das accelerator-Objekt über beschränkte Unterstützung für mathematische Funktionen mit doppelter Genauigkeit verfügt.
get_version Gibt die Version des accelerator-Objekts zurück.
set_default Gibt den Pfad der Standardzugriffstaste zurück.
set_default_cpu_access_type Legt den standardmäßigen CPU-Zugriffstyp für Arrays und implizite Speicherzuweisungen fest, die auf diesem accelerator vorgenommen werden.

Öffentliche Operatoren

Name Beschreibung
operator!= Vergleicht dieses accelerator Objekt mit einem anderen und gibt zurück false , wenn sie identisch sind; andernfalls wird zurückgegeben true.
operator= Kopiert den Inhalt des angegebenen accelerator-Objekts in dieses Objekt.
operator== Vergleicht dieses accelerator Objekt mit einem anderen und gibt zurück true , wenn sie identisch sind; andernfalls wird zurückgegeben false.

Öffentliche Datenmitglieder

Name Beschreibung
cpu_accelerator Ruft eine Stringkonstante für die CPU accelerator ab.
dedicated_memory Ruft den dedizierten Arbeitsspeicher für das accelerator-Objekt in Kilobyte ab.
default_accelerator Ruft eine Zeichenkettenkonstante für die Standard accelerator ab.
Standard-CPU-Zugriffstyp Dient zum Abrufen oder Festlegen des Standard-CPU-access_type für Arrays und implizite Speicherzuweisungen auf diesem accelerator.
default_view Ruft das standardmäßige accelerator_view-Objekt ab, das dem accelerator-Element zugeordnet ist.
Beschreibung Ruft eine kurze Beschreibung des accelerator-Geräts ab.
device_path Ruft den Pfad des Geräts ab.
direct3d_ref Ruft eine String-Konstante für den Direct3D-Referenzaccelerator ab.
direct3d_warp Ruft die Zeichenfolgenkonstante für ein accelerator Objekt ab, das Sie zum Ausführen von C++-AMP-Code auf Multi-Core-CPUs verwenden können, die Streaming SIMD-Erweiterungen (SSE) verwenden.
has_display Ruft einen booleschen Wert ab, der angibt, ob das accelerator-Objekt mit einer Anzeige verbunden ist.
is_debug Gibt an, ob für das accelerator-Objekt die DEBUG-Ebene für eine umfangreiche Fehlerberichterstattung aktiviert ist.
is_emulated Gibt an, ob das accelerator-Objekt emuliert ist.
supports_cpu_shared_memory Gibt an, ob accelerator freigegebenen Arbeitsspeicher unterstützt.
unterstützt_Doppelpräzision Gibt an, ob der Beschleuniger doppelte Präzision unterstützt.
unterstützt_eingeschränkte_doppelte_Genauigkeit Gibt an, ob der Beschleuniger über eingeschränkte Unterstützung für Doppelpräzisionsmathematik verfügt.
Version Ruft die Version der accelerator ab.

Vererbungshierarchie

accelerator

Hinweise

Ein Beschleuniger ist eine Hardwarefähigkeit, die für datenparallele Computervorgänge optimiert ist. Ein Beschleuniger ist häufig eine diskrete GPU, kann jedoch auch ein virtuelles hostseitiges Gerät wie ein DirectX REF-Gerät, ein WARP (ein CPU-seitiges Gerät, das mithilfe von SSE-Befehlen beschleunigt wird) oder die CPU selbst sein.

Sie können ein accelerator-Objekt erstellen, indem Sie die verfügbaren Geräte auflisten oder das Standardgerät, das Referenzgerät oder das WARP-Gerät abrufen.

Anforderungen

Kopfzeile: amprt.h

Namespace: Gleichzeitigkeit

~Beschleuniger

Zerstört das accelerator-Objekt.

~accelerator();

Rückgabewert

Beschleuniger

Initialisiert eine neue Instanz der Beschleunigerklasse.

accelerator();

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

accelerator(const accelerator& _Other);

Parameter

_Device_path
Der Pfad des physischen Geräts.

_Andere
Der Beschleuniger zum Kopieren.

CPU-Beschleuniger

Ruft eine Zeichenfolgenkonstante für den CPU-Beschleuniger ab.

static const wchar_t cpu_accelerator[];

create_view

Erstellt und gibt ein accelerator_view-Objekt auf diesem Beschleuniger mithilfe des angegebenen Warteschlangenmodus zurück. Wenn der Warteschlangenmodus nicht angegeben wird, verwendet der neue accelerator_view den Modus queuing_mode::immediate.

accelerator_view create_view(queuing_mode qmode = queuing_mode_automatic);

Parameter

qmode
Der Wartemodus.

Rückgabewert

Ein neues accelerator_view Objekt auf diesem Beschleuniger unter Verwendung des angegebenen Warteschlangenmodus.

dedizierter Speicher

Ruft den dedizierten Arbeitsspeicher für das accelerator-Objekt in Kilobyte ab.

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

Standardbeschleuniger

Ruft eine Zeichenkettenkonstante für die Standard accelerator ab.

static const wchar_t default_accelerator[];

default_cpu_access_type

Der standardmäßige CPU-access_type für Arrays und implizite Speicherzuweisungen erfolgt auf diesem accelerator.

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

Standardansicht

Ruft die standardmäßige Beschleunigeransicht ab, die der accelerator zugeordnet ist.

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

Beschreibung

Ruft eine kurze Beschreibung des accelerator-Geräts ab.

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

Gerätepfad

Ruft den Pfad des Beschleunigers ab. Der Pfad ist im System eindeutig.

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

direct3d_ref

Ruft eine Zeichenfolgenkonstante für einen Direct3D-Referenzbeschleuniger ab.

static const wchar_t direct3d_ref[];

direct3d_warp

Ruft die Zeichenfolgenkonstante für ein accelerator Objekt ab, das Sie zum Ausführen des C++-AMP-Codes auf Multi-Core-CPUs mit Streaming SIMD-Erweiterungen (SSE) verwenden können.

static const wchar_t direct3d_warp[];

get_all

Gibt einen Vektor von accelerator-Objekten zurück, die alle verfügbaren Accelerators darstellen.

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

Rückgabewert

Der Vektor der verfügbaren Beschleuniger

get_auto_selection_view

Gibt das accelerator_view-Objekt zur automatischen Auswahl des Ziel-accelerator_view zurück, das, wenn es als Ziel für parallel_for_each angegeben wird, in dem Ziel-accelerator_view resultiert, damit der parallel_for_each-Kernel von der Laufzeit automatisch ausgewählt wird. Für alle anderen Zwecke ist das von dieser Methode zurückgegebene accelerator_view dasselbe wie das standartmäßige accelerator_view des default accelerator.

static accelerator_view __cdecl get_auto_selection_view();

Rückgabewert

Die automatische Auswahl "accelerator_view".

get_dedicated_memory

Gibt den dedizierten Arbeitsspeicher für das accelerator-Objekt in KB zurück.

size_t get_dedicated_memory() const;

Rückgabewert

Der dedizierte Speicher für die accelerator, in Kilobyte.

get_standardprozessor_zugriffsart einstellen

Ruft den standardmäßigen CPU-access_type für Puffer ab, die auf diesem Beschleuniger erstellt wurden.

access_type get_default_cpu_access_type() const;

Rückgabewert

Der standardmäßige CPU-Zugriffstyp für Puffer, die auf diesem Beschleuniger erstellt werden.

standardansicht_abrufen

Gibt das standardmäßige accelerator_view-Objekt zurück, das mit dem accelerator-Objekt verknüpft ist.

accelerator_view get_default_view() const;

Rückgabewert

Das Standardobjekt accelerator_view , das dem acceleratorzugeordnet ist.

get_description

Gibt eine kurze Beschreibung des accelerator-Geräts zurück.

std::wstring get_description() const;

Rückgabewert

Eine kurze Beschreibung des accelerator Geräts.

get_device_path

Gibt den Pfad des Beschleunigers zurück. Der Pfad ist im System eindeutig.

std::wstring get_device_path() const;

Rückgabewert

Der systemweite eindeutige Geräteinstanzpfad.

get_has_display

Gibt einen booleschen Wert zurück, der angibt, ob die accelerator auf einem Bildschirm dargestellt werden kann.

bool get_has_display() const;

Rückgabewert

truewenn der accelerator an ein Anzeigegerät ausgeben kann; andernfalls false.

get_is_debug

Bestimmt, für das accelerator-Objekt die DEBUG-Ebene für eine umfangreiche Fehlerberichterstattung aktiviert ist.

bool get_is_debug() const;

Rückgabewert

true wenn die accelerator DEBUG-Ebene für umfangreiche Fehlerberichterstattung aktiviert ist. Andernfalls, false.

get_is_emulated

Bestimmt, ob das accelerator-Objekt emuliert ist.

bool get_is_emulated() const;

Rückgabewert

true wenn die accelerator emuliert ist. Andernfalls, false.

Unterstützt_Cpu_Gemeinsamer_Speicher_Abfragen

Gibt einen booleschen Wert zurück, der angibt, ob der Beschleuniger Speicher unterstützt, auf den sowohl der Beschleuniger als auch die CPU zugreifen können.

bool get_supports_cpu_shared_memory() const;

Rückgabewert

truefalls der Beschleuniger den gemeinsam genutzten CPU-Speicher unterstützt; andernfallsfalse.

get_supports_double_precision # Diese Funktion überprüft die Unterstützung für doppelte Genauigkeit

Gibt einen booleschen Wert zurück, der angibt, ob der Beschleuniger die Mathematik mit doppelter Genauigkeit unterstützt, einschließlich Fused Multiply Add (FMA), Division, Reziprok und Umwandlung zwischen int und double.

bool get_supports_double_precision() const;

Rückgabewert

truewenn der Beschleuniger Berechnungen mit doppelter Genauigkeit unterstützt; andernfalls false.

unterstützt_begrenzte_Doppelpräzision_abfragen

Gibt einen Booleschen Wert zurück, der angibt, ob der Accelerator eingeschränkte Unterstützung für Double-Precision-Mathematik bietet. Wenn der Beschleuniger nur eingeschränkt unterstützt wird, werden FMA (fused multiply add), Division, Kehrwertberechnung und Konvertierungen zwischen int und double nicht unterstützt.

bool get_supports_limited_double_precision() const;

Rückgabewert

truewenn der Beschleuniger eine eingeschränkte Unterstützung für Mathematik mit doppelter Genauigkeit hat; andernfalls false.

Version_abrufen

Gibt die Version von accelerator zurück.

unsigned int get_version() const;

Rückgabewert

Die Version der accelerator.

hat_anzeige

Ruft einen booleschen Wert ab, der angibt, ob die Ausgabe in eine Anzeige möglich ist.

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

is_debug

Ruft einen booleschen Wert ab, der angibt, ob die accelerator-DEBUG-Schicht für umfangreiche Fehlerberichterstattung aktiviert ist.

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

wird_emuliert

Ruft einen booleschen Wert ab, der angibt, ob die accelerator emuliert ist.

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

Operator!=

Vergleicht dieses accelerator Objekt mit einem anderen und gibt zurück false , wenn sie identisch sind; andernfalls wird zurückgegeben true.

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

Parameter

_Andere
Das accelerator Objekt, das mit diesem verglichen werden soll.

Rückgabewert

false wenn die beiden accelerator Objekte gleich sind; andernfalls true.

operator =

Kopiert den Inhalt des angegebenen accelerator-Objekts in dieses Objekt.

accelerator& operator= (const accelerator& _Other);

Parameter

_Andere
Das accelerator-Objekt, aus dem kopiert werden soll.

Rückgabewert

Ein Verweis auf das accelerator-Objekt.

operator==

Vergleicht dieses accelerator Objekt mit einem anderen und gibt zurück true , wenn sie identisch sind; andernfalls wird zurückgegeben false.

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

Parameter

_Andere
Das accelerator Objekt, das mit diesem verglichen werden soll.

Rückgabewert

true wenn das andere accelerator Objekt mit diesem accelerator Objekt identisch ist; andernfalls false.

Standardeinstellung festlegen

Legt den Standardbeschleuniger fest, der für eine beliebige Operation verwendet wird, die den Standardbeschleuniger implizit nutzt. Diese Methode ist nur erfolgreich, wenn der von der Laufzeit ausgewählte Standardbeschleuniger nicht bereits in einem Vorgang verwendet wurde, der implizit denselben Standardbeschleuniger benutzt.

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

Parameter

_Pfad
Der Pfad zum Beschleuniger.

Rückgabewert

true wenn der Aufruf erfolgreich ist und die Standardtastenkombination festgelegt wird. Andernfalls, false.

set_default_cpu_access_type

Legen Sie den Standard-CPU-Zugriffstyp für Arrays fest, die auf diesem Beschleuniger erstellt wurden, oder für implizite Speicherzuweisungen als Teil von Array-Ansichten, auf die auf diesem Beschleuniger zugegriffen wird. Diese Methode ist nur erfolgreich, wenn der default_cpu_access_type für den Beschleuniger nicht bereits durch einen vorherigen Aufruf dieser Methode überschrieben wurde und der vom Laufzeitsystem gewählte default_cpu_access_type für diesen Beschleuniger noch nicht zur Zuordnung eines Arrays oder für eine implizite Speicherallokation verwendet wurde, die ein auf diesem Beschleuniger zugegriffenes array_view unterstützt.

bool set_default_cpu_access_type(access_type _Default_cpu_access_type);

Parameter

_Default_cpu_access_type
Der standardmäßige CPU-Zugriffsart, die bei der Speichervergabe für Array/Array_View auf diesem Beschleuniger verwendet wird.

Rückgabewert

Ein boolescher Wert, der angibt, ob der Standardwert des CPU-access_type für den Beschleuniger erfolgreich festgelegt wurde.

unterstützt_cpu-gemeinsamer_speicher

Ruft einen booleschen Wert ab, der angibt, ob das accelerator gemeinsamen Speicher unterstützt.

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

unterstützt_doppelte_Präzision

Ruft einen booleschen Wert ab, der angibt, ob der Beschleuniger doppelte Präzision unterstützt.

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

unterstützt_eingeschränkte_doppelte_Genauigkeit

Ruft einen booleschen Wert ab, der angibt, ob der Beschleuniger eingeschränkte Unterstützung für Doppelpräzisions-Berechnungen bietet. Wenn der Beschleuniger nur eingeschränkt unterstützt wird, sind fused multiply-add (FMA), Division, Reziprok und Umwandlungen zwischen int und double nicht unterstützt.

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

Ausgabe

Ruft die Version der accelerator ab.

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

Siehe auch

Concurrency-Namespace (C++ AMP)