accelerator — Klasa
Akcelerator to funkcja sprzętowa zoptymalizowana pod kątem przetwarzania równoległego danych. Akcelerator może być urządzeniem dołączonym do magistrali PCIe (takiej jak procesor GPU) lub może być rozszerzoną instrukcją ustawioną na głównym procesorze CPU.
Składnia
class accelerator;
Elementy członkowskie
Konstruktory publiczne
Nazwa/nazwisko | opis |
---|---|
konstruktor akceleratora | Inicjuje nowe wystąpienie klasy accelerator . |
~destruktor akceleratora | accelerator Niszczy obiekt. |
Metody publiczne
Nazwa/nazwisko | opis |
---|---|
create_view | Tworzy i zwraca accelerator_view obiekt w tym akceleratorze. |
get_all | Zwraca wektor accelerator obiektów reprezentujących wszystkie dostępne akceleratory. |
get_auto_selection_view | Zwraca automatyczne zaznaczenie accelerator_view . |
get_dedicated_memory | Zwraca dedykowaną pamięć dla accelerator klasy , w kilobajtach. |
get_default_cpu_access_type | Zwraca domyślne access_type dla utworzonych w tym akceleratorze. |
get_default_view | Zwraca obiekt domyślny accelerator_view skojarzony z obiektem accelerator . |
get_description | Zwraca krótki opis accelerator urządzenia. |
get_device_path | Zwraca ścieżkę urządzenia. |
get_has_display | Określa, czy accelerator element jest dołączony do wyświetlacza. |
get_is_debug | Określa, czy accelerator warstwa DEBUG jest włączona na potrzeby rozbudowanego raportowania błędów. |
get_is_emulated | Określa, czy accelerator element jest emulowany. |
get_supports_cpu_shared_memory | Określa, czy obsługuje pamięć współdzieloną accelerator |
get_supports_double_precision | Określa, czy accelerator element jest dołączony do wyświetlacza. |
get_supports_limited_double_precision | Określa, czy accelerator ma ograniczoną obsługę obliczeń matematycznych o podwójnej precyzji. |
get_version | Zwraca wersję pliku accelerator . |
set_default | Zwraca ścieżkę domyślnego akceleratora. |
set_default_cpu_access_type | Ustawia domyślne access_typeprocesora CPU dla tablic i niejawnych alokacji pamięci wykonanych w tym accelerator obiekcie . |
Operatory publiczne
Nazwa/nazwisko | opis |
---|---|
operator!= | Porównuje ten accelerator obiekt z innym i zwraca false , jeśli są one takie same; w przeciwnym razie zwraca wartość true . |
operator = | Kopiuje zawartość określonego accelerator obiektu do tego. |
operator== | Porównuje ten accelerator obiekt z innym i zwraca true , jeśli są one takie same; w przeciwnym razie zwraca wartość false . |
Publiczne elementy członkowskie danych
Nazwa/nazwisko | opis |
---|---|
cpu_accelerator | Pobiera stałą ciągu dla procesora CPU accelerator . |
dedicated_memory | Pobiera dedykowaną pamięć dla parametru w kilobajtach accelerator . |
default_accelerator | Pobiera stałą ciągu dla wartości domyślnej accelerator . |
default_cpu_access_type | Pobiera lub ustawia domyślne access_typeprocesora CPU dla tablic i niejawnych alokacji pamięci wykonanych w tym accelerator obiekcie . |
default_view | Pobiera obiekt domyślny accelerator_view skojarzony z obiektem accelerator . |
opis | Pobiera krótki opis accelerator urządzenia. |
device_path | Pobiera ścieżkę urządzenia. |
direct3d_ref | Pobiera stałą ciągu dla odwołania accelerator Direct3D. |
direct3d_warp | Pobiera stałą accelerator ciągu dla obiektu, którego można użyć do wykonywania kodu C++ AMP na procesorach wielordzeniowych korzystających z rozszerzeń SIMD przesyłania strumieniowego (SSE). |
has_display | Pobiera wartość logiczną wskazującą, czy accelerator element jest dołączony do wyświetlacza. |
is_debug | Wskazuje, czy accelerator dla warstwy DEBUG włączono obszerne raportowanie błędów. |
is_emulated | Wskazuje, czy accelerator element jest emulowany. |
supports_cpu_shared_memory | Wskazuje, czy obsługuje pamięć współdzieloną accelerator . |
supports_double_precision | Wskazuje, czy akcelerator obsługuje matematykę o podwójnej precyzji. |
supports_limited_double_precision | Wskazuje, czy akcelerator ma ograniczoną obsługę obliczeń matematycznych o podwójnej precyzji. |
version | Pobiera wersję pliku accelerator . |
Hierarchia dziedziczenia
accelerator
Uwagi
Akcelerator to funkcja sprzętowa zoptymalizowana pod kątem przetwarzania równoległego danych. Akcelerator jest często dyskretnym procesorem GPU, ale może być również wirtualną jednostką po stronie hosta, taką jak urządzenie REF DirectX, WARP (urządzenie po stronie procesora CPU przyspieszone za pomocą instrukcji SSE) lub sam procesor CPU.
Obiekt można utworzyć accelerator
, wyliczając dostępne urządzenia lub uzyskując domyślne urządzenie, urządzenie referencyjne lub urządzenie WARP.
Wymagania
Nagłówek: amprt.h
Przestrzeń nazw: współbieżność
~akcelerator
accelerator
Niszczy obiekt.
~accelerator();
Wartość zwracana
akcelerator
Inicjuje nowe wystąpienie klasy akceleratora.
accelerator();
explicit accelerator(const std::wstring& _Device_path);
accelerator(const accelerator& _Other);
Parametry
_Device_path
Ścieżka urządzenia fizycznego.
_Inny
Akcelerator do skopiowania.
cpu_accelerator
Pobiera stałą ciągu dla akceleratora procesora CPU.
static const wchar_t cpu_accelerator[];
create_view
Tworzy i zwraca accelerator_view
obiekt w tym akceleratorze przy użyciu określonego trybu kolejkowania. Gdy tryb kolejkowania nie zostanie określony, nowe accelerator_view
używa trybu kolejkowania queuing_mode::natychmiastowego kolejkowania.
accelerator_view create_view(queuing_mode qmode = queuing_mode_automatic);
Parametry
qmode
Tryb kolejkowania.
Wartość zwracana
Nowy accelerator_view
obiekt w tym akceleratorze przy użyciu określonego trybu kolejkowania.
dedicated_memory
Pobiera dedykowaną pamięć dla parametru w kilobajtach accelerator
.
__declspec(property(get= get_dedicated_memory)) size_t dedicated_memory;
default_accelerator
Pobiera stałą ciągu dla wartości domyślnej accelerator
.
static const wchar_t default_accelerator[];
default_cpu_access_type
Domyślna access_type procesora CPU dla tablic i niejawnych alokacji pamięci wykonanych w tym obiekcie accelerator
.
__declspec(property(get= get_default_cpu_access_type)) access_type default_cpu_access_type;
default_view
Pobiera domyślny widok akceleratora skojarzony z elementem accelerator
.
__declspec(property(get= get_default_view)) accelerator_view default_view;
opis
Pobiera krótki opis accelerator
urządzenia.
__declspec(property(get= get_description)) std::wstring description;
device_path
Pobiera ścieżkę akceleratora. Ścieżka jest unikatowa w systemie.
__declspec(property(get= get_device_path)) std::wstring device_path;
direct3d_ref
Pobiera stałą ciągu dla akceleratora odwołania Direct3D.
static const wchar_t direct3d_ref[];
direct3d_warp
Pobiera stałą accelerator
ciągu dla obiektu, którego można użyć do wykonywania kodu C++ AMP na procesorach wielordzeniowych przy użyciu rozszerzeń SIMD przesyłania strumieniowego (SSE).
static const wchar_t direct3d_warp[];
get_all
Zwraca wektor accelerator
obiektów reprezentujących wszystkie dostępne akceleratory.
static inline std::vector<accelerator> get_all();
Wartość zwracana
Wektor dostępnych akceleratorów
get_auto_selection_view
Zwraca accelerator_view automatycznego zaznaczenia, które po określeniu jako cel parallel_for_each powoduje, że docelowy accelerator_view do wykonania jądra parallel_for_each do automatycznego wybrania przez środowisko uruchomieniowe. We wszystkich innych celach accelerator_view zwrócona przez tę metodę jest taka sama jak domyślna accelerator_view domyślnego akceleratora
static accelerator_view __cdecl get_auto_selection_view();
Wartość zwracana
Auto zaznaczenie accelerator_view.
get_dedicated_memory
Zwraca dedykowaną pamięć dla accelerator
klasy , w kilobajtach.
size_t get_dedicated_memory() const;
Wartość zwracana
Dedykowana pamięć dla klasy w kilobajtach accelerator
.
get_default_cpu_access_type
Pobiera domyślne access_type procesora CPU dla utworzonych w tym akceleratorze
access_type get_default_cpu_access_type() const;
Wartość zwracana
Domyślny access_type procesora CPU dla utworzonych w tym akceleratorze.
get_default_view
Zwraca obiekt domyślny accelerator_view
skojarzony z obiektem accelerator
.
accelerator_view get_default_view() const;
Wartość zwracana
Obiekt domyślny accelerator_view
skojarzony z obiektem accelerator
.
get_description
Zwraca krótki opis accelerator
urządzenia.
std::wstring get_description() const;
Wartość zwracana
Krótki opis accelerator
urządzenia.
get_device_path
Zwraca ścieżkę akceleratora. Ścieżka jest unikatowa w systemie.
std::wstring get_device_path() const;
Wartość zwracana
Ścieżka wystąpienia urządzenia unikatowego dla całego systemu.
get_has_display
Zwraca wartość logiczną, która wskazuje, czy accelerator
może wyświetlać dane wyjściowe.
bool get_has_display() const;
Wartość zwracana
true
accelerator
jeśli element może wyświetlić dane wyjściowe do wyświetlania; w przeciwnym razie . false
get_is_debug
Określa, czy accelerator
warstwa DEBUG jest włączona na potrzeby rozbudowanego raportowania błędów.
bool get_is_debug() const;
Wartość zwracana
true
accelerator
jeśli dla warstwy DEBUG włączono obszerne raportowanie błędów. W przeciwnym razie wartość false
.
get_is_emulated
Określa, czy accelerator
element jest emulowany.
bool get_is_emulated() const;
Wartość zwracana
true
accelerator
jeśli element jest emulowany. W przeciwnym razie wartość false
.
get_supports_cpu_shared_memory
Zwraca wartość logiczną wskazującą, czy akcelerator obsługuje pamięć dostępną zarówno przez akcelerator, jak i procesor CPU.
bool get_supports_cpu_shared_memory() const;
Wartość zwracana
true
jeśli akcelerator obsługuje pamięć współdzieloną procesora CPU; w przeciwnym razie, false
.
get_supports_double_precision
Zwraca wartość logiczną wskazującą, czy akcelerator obsługuje matematyczną podwójną precyzję, w tym pomnożoną sumę pomnożoną (FMA), dzielenie, wzajemne i rzutowanie między elementami int
i double
bool get_supports_double_precision() const;
Wartość zwracana
true
jeśli akcelerator obsługuje podwójną precyzję matematyczną; w przeciwnym razie, false
.
get_supports_limited_double_precision
Zwraca wartość logiczną wskazującą, czy akcelerator ma ograniczoną obsługę matematycznej podwójnej precyzji. Jeśli akcelerator ma tylko ograniczoną obsługę, pomnóżdzanie add (FMA), dzielenie, wzajemne i rzutowanie między elementami int
i double
nie są obsługiwane.
bool get_supports_limited_double_precision() const;
Wartość zwracana
true
jeśli akcelerator ma ograniczoną obsługę obliczeń matematycznych o podwójnej precyzji; w przeciwnym razie, false
.
get_version
Zwraca wersję pliku accelerator
.
unsigned int get_version() const;
Wartość zwracana
Wersja pliku accelerator
.
has_display
Pobiera wartość logiczną, która wskazuje, czy accelerator
może wyświetlać dane wyjściowe.
__declspec(property(get= get_has_display)) bool has_display;
is_debug
Pobiera wartość logiczną wskazującą, czy accelerator
warstwa DEBUG jest włączona na potrzeby rozbudowanego raportowania błędów.
__declspec(property(get= get_is_debug)) bool is_debug;
is_emulated
Pobiera wartość logiczną wskazującą, czy accelerator
element jest emulowany.
__declspec(property(get= get_is_emulated)) bool is_emulated;
operator!=
Porównuje ten accelerator
obiekt z innym i zwraca false
, jeśli są one takie same; w przeciwnym razie zwraca wartość true
.
bool operator!= (const accelerator& _Other) const;
Parametry
_Inny
Obiekt accelerator
do porównania z tym obiektem.
Wartość zwracana
false
jeśli dwa accelerator
obiekty są takie same; w przeciwnym razie true
.
operator =
Kopiuje zawartość określonego accelerator
obiektu do tego.
accelerator& operator= (const accelerator& _Other);
Parametry
_Inny
accelerator
Obiekt do skopiowania.
Wartość zwracana
Odwołanie do tego accelerator
obiektu.
operator==
Porównuje ten accelerator
obiekt z innym i zwraca true
, jeśli są one takie same; w przeciwnym razie zwraca wartość false
.
bool operator== (const accelerator& _Other) const;
Parametry
_Inny
Obiekt accelerator
do porównania z tym obiektem.
Wartość zwracana
true
jeśli inny accelerator
obiekt jest taki sam jak ten accelerator
obiekt; w przeciwnym razie false
.
set_default
Ustawia domyślny akcelerator do użycia dla dowolnej operacji, która niejawnie używa domyślnego akceleratora. Ta metoda powiedzie się tylko wtedy, gdy wybrany akcelerator domyślny środowiska uruchomieniowego nie został jeszcze użyty w operacji, która niejawnie używa domyślnego akceleratora
static inline bool set_default(std::wstring _Path);
Parametry
_Ścieżka
Ścieżka do akceleratora.
Wartość zwracana
true
jeśli wywołanie zakończy się powodzeniem podczas ustawiania domyślnego akceleratora. W przeciwnym razie wartość false
.
set_default_cpu_access_type
Ustaw domyślną access_type procesora CPU dla tablic utworzonych w tym akceleratorze lub dla niejawnych alokacji pamięci w ramach array_views dostępnego w tym akceleratorze. Ta metoda powiedzie się tylko wtedy, gdy default_cpu_access_type dla akceleratora nie została jeszcze zastąpiona przez poprzednie wywołanie tej metody, a środowisko uruchomieniowe wybrane default_cpu_access_type dla tego akceleratora nie zostało jeszcze użyte do przydzielania tablicy lub niejawnej alokacji pamięci, która wspiera array_view dostęp do tego akceleratora.
bool set_default_cpu_access_type(access_type _Default_cpu_access_type);
Parametry
_Default_cpu_access_type
Domyślna access_type procesora, która ma być używana na potrzeby alokacji pamięci tablicy/array_view w tym akceleratorze.
Wartość zwracana
Wartość logiczna wskazująca, czy domyślna access_type procesora CPU dla akceleratora została pomyślnie ustawiona.
supports_cpu_shared_memory
Pobiera wartość logiczną wskazującą, czy obsługuje pamięć udostępnioną accelerator
.
__declspec(property(get= get_supports_cpu_shared_memory)) bool supports_cpu_shared_memory;
supports_double_precision
Pobiera wartość logiczną wskazującą, czy akcelerator obsługuje matematyczną podwójną precyzję.
__declspec(property(get= get_supports_double_precision)) bool supports_double_precision;
supports_limited_double_precision
Pobiera wartość logiczną wskazującą, czy akcelerator ma ograniczoną obsługę matematycznej podwójnej precyzji. Jeśli akcelerator ma tylko ograniczoną obsługę, pomnóżdzanie add (FMA), dzielenie, wzajemne i rzutowanie między elementami int
i double
nie są obsługiwane.
__declspec(property(get= get_supports_limited_double_precision)) bool supports_limited_double_precision;
version
Pobiera wersję pliku accelerator
.
__declspec(property(get= get_version)) unsigned int version;