Przestrzeń nazw współbieżności (C++ AMP)
Udostępnia klasy i funkcje przyspieszające wykonywanie kodu C++ na sprzęcie równoległym danych. Aby uzyskać więcej informacji, zobacz C++ AMP Overview (Omówienie języka C++ AMP)
Składnia
namespace Concurrency;
Członkowie
Przestrzenie nazw
Nazwa/nazwisko | opis |
---|---|
Concurrency::direct3d, przestrzeń nazw | Udostępnia funkcje, które obsługują współdziałanie D3D. Umożliwia bezproblemowe korzystanie z zasobów D3D na potrzeby obliczeń w kodzie AMP oraz korzystanie z zasobów utworzonych w kodzie AMP w kodzie D3D bez tworzenia nadmiarowych kopii pośrednich. Możesz użyć języka C++ AMP, aby przyrostowo przyspieszyć sekcje intensywnie korzystające z obliczeń aplikacji DirectX i używać interfejsu API D3D na danych generowanych na podstawie obliczeń AMP. |
Concurrency::fast_math, przestrzeń nazw | Funkcje w fast_math przestrzeni nazw nie są zgodne z C99. Dostępne są tylko wersje pojedynczej precyzji każdej funkcji. Te funkcje korzystają z funkcji wewnętrznych DirectX, które są szybsze niż odpowiednie funkcje w precise_math przestrzeni nazw i nie wymagają rozszerzonej obsługi podwójnej precyzji w akceleratorze, ale są one mniej dokładne. Istnieją dwie wersje każdej funkcji w celu zapewnienia zgodności na poziomie źródła z kodem C99; obie wersje przyjmują i zwracają pojedyncze wartości precyzji. |
Concurrency::graphics, przestrzeń nazw | Udostępnia typy i funkcje przeznaczone do programowania graficznego. |
Concurrency::precise_math, przestrzeń nazw | Funkcje w precise_math przestrzeni nazw są zgodne z C99. Uwzględniono zarówno wersje pojedynczej precyzji, jak i podwójnej precyzji każdej funkcji. Te funkcje — w tym funkcje o pojedynczej precyzji — wymagają rozszerzonej obsługi podwójnej precyzji w akceleratorze. |
Klasy
Nazwa/nazwisko | opis |
---|---|
accelerator, klasa | Reprezentuje abstrakcję fizycznego węzła obliczeniowego zoptymalizowanego pod kątem programu DP. |
accelerator_view, klasa | Reprezentuje abstrakcję urządzenia wirtualnego w akceleratorze równoległym języka C++ AMP. |
accelerator_view_removed, klasa | Wyjątek zgłaszany, gdy bazowe wywołanie DirectX kończy się niepowodzeniem z powodu mechanizmu wykrywania i odzyskiwania systemu Windows. |
array, klasa | Dane agregowane w accelerator_view domenie siatki. Jest to zbiór zmiennych, po jednym dla każdego elementu w domenie siatki. Każda zmienna zawiera wartość odpowiadającą jednemu typowi języka C++. |
array_view, klasa | Reprezentuje widok danych w tablicy<T,N>. |
completion_future, klasa | Reprezentuje przyszłość odpowiadającą operacji asynchronicznej języka C++ AMP. |
extent, klasa | Reprezentuje wektor N wartości całkowitych określający granice przestrzeni N-wymiarowej, która ma początek 0. Wartości w wektorze współrzędnych są uporządkowane od najbardziej znaczących do najmniej znaczących. Na przykład w 3-wymiarowej przestrzeni kartezjańskiej wektor zakresu (7,5,3) reprezentuje przestrzeń, w której współrzędne z wahają się od 0 do 7, współrzędne y wahają się od 0 do 5, a zakresy współrzędnych x z zakresu od 0 do 3. |
index, klasa | Definiuje punkt indeksu N-wymiarowego. |
invalid_compute_domain, klasa | Wyjątek zgłaszany, gdy środowisko uruchomieniowe nie może uruchomić jądra przy użyciu domeny obliczeniowej określonej w lokacji parallel_for_each wywołania. |
out_of_memory, klasa | Wyjątek zgłaszany w przypadku niepowodzenia metody z powodu braku pamięci systemu lub urządzenia. |
runtime_exception, klasa | Podstawowy typ wyjątków w bibliotece C++ AMP. |
tile_barrier, klasa | Klasa możliwości, która jest tylko creatable przez system i jest przekazywana do kafelka parallel_for_each lambda w ramach parametru tiled_index . Zapewnia jedną metodę , wait() której celem jest synchronizowanie wykonywania wątków uruchomionych w grupie wątków (kafelek). |
tiled_extent, klasa | tiled_extent Obiekt jest obiektem extent od jednego do trzech wymiarów, który dzieli przestrzeń zakresu na jednowymiarowe, dwuwymiarowe lub trójwymiarowe kafelki. |
tiled_index, klasa | Udostępnia indeks do tiled_grid obiektu. Ta klasa ma właściwości dostępu do elementu względem lokalnego źródła kafelka i względem źródła globalnego. |
uninitialized_object, klasa | Wyjątek zgłaszany w przypadku użycia niezainicjowanego obiektu. |
unsupported_feature, klasa | Wyjątek zgłaszany, gdy jest używana nieobsługiwana funkcja. |
Wyliczenia
Nazwa/nazwisko | opis |
---|---|
wyliczenie access_type | Określa typ dostępu do danych. |
Wyliczenie queuing_mode | Określa tryby kolejkowania, które są obsługiwane w akceleratorze. |
Operatory
Operator | opis |
---|---|
operator== — Operator (C++ AMP) | Określa, czy określone struktury danych są równe. |
operator!= — Operator (C++ AMP) | Określa, czy określone struktury danych są nierówne. |
operator+ — Operator (C++ AMP) | Oblicza sumę mądry składników określonych argumentów. |
operator — Operator (C++ AMP) | Oblicza różnicę między określonymi argumentami. |
operator* — Operator (C++ AMP) | Oblicza produkt mądry składników określonych argumentów. |
operator/Operator (C++ AMP) | Oblicza iloraz mądry składników określonych argumentów. |
operator% — Operator (C++ AMP) | Oblicza modulo pierwszego określonego argumentu przez drugi określony argument. |
Funkcje
Nazwa/nazwisko | opis |
---|---|
all_memory_fence | Blokuje wykonywanie wszystkich wątków na kafelku do momentu ukończenia dostępu do wszystkich pamięci. |
amp_uninitialize | Uninitializuje środowisko uruchomieniowe C++ AMP. |
atomic_compare_exchange | Przeciążone. Jeśli wartość przechowywana w określonej lokalizacji jest porównywana z pierwszą określoną wartością, druga określona wartość jest przechowywana w tej samej lokalizacji co operacja niepodzielna. |
atomic_exchange | Przeciążone. Ustawia wartość przechowywaną w określonej lokalizacji na określoną wartość jako operację niepodzielna. |
atomic_fetch_add | Przeciążone. Ustawia wartość przechowywaną w określonej lokalizacji na sumę tej wartości i określoną wartość jako operację niepodzielna. |
atomic_fetch_and | Przeciążone. Ustawia wartość przechowywaną w określonej lokalizacji na bitową and wartość tej wartości i określoną wartość jako operację niepodzielna. |
atomic_fetch_dec | Przeciążone. Dekrementuje wartość przechowywaną w określonej lokalizacji i przechowuje wynik w tej samej lokalizacji co operacja niepodzielna. |
atomic_fetch_inc | Przeciążone. Zwiększa wartość przechowywaną w określonej lokalizacji i przechowuje wynik w tej samej lokalizacji co operacja niepodzielna. |
atomic_fetch_max | Przeciążone. Ustawia wartość przechowywaną w określonej lokalizacji na większą z tej wartości i określoną wartość jako operację niepodzielna. |
atomic_fetch_min | Przeciążone. Ustawia wartość przechowywaną w określonej lokalizacji na mniejszą z tej wartości i określoną wartość jako operację niepodzielna. |
atomic_fetch_or | Przeciążone. Ustawia wartość przechowywaną w określonej lokalizacji na bitową or wartość tej wartości i określoną wartość jako operację niepodzielna. |
atomic_fetch_sub | Przeciążone. Ustawia wartość przechowywaną w określonej lokalizacji na różnicę tej wartości i określoną wartość jako operację niepodzielna. |
atomic_fetch_xor | Przeciążone. Ustawia wartość przechowywaną w określonej lokalizacji na bitową xor wartość tej wartości i określoną wartość jako operację niepodzielna. |
Kopii | Kopiuje obiekt C++ AMP. Wszystkie wymagania dotyczące synchronicznego transferu danych są spełnione. Nie można skopiować danych, gdy kod uruchamia kod w akceleratorze. Ogólna forma tej funkcji to copy(src, dest) . |
copy_async | Kopiuje obiekt C++ AMP i zwraca completion_future , na które można czekać. Nie można skopiować danych, gdy kod jest uruchomiony w akceleratorze. Ogólna forma tej funkcji to copy(src, dest) . |
direct3d_abort | Przerywa wykonywanie funkcji, która ma klauzulę restrict(amp) ograniczenia. |
direct3d_errorf | Drukuje sformatowany ciąg w oknie Dane wyjściowe programu Visual Studio i zgłasza wyjątek runtime_exception, który ma ten sam ciąg formatowania. |
direct3d_printf | Drukuje sformatowany ciąg w oknie Dane wyjściowe programu Visual Studio. Jest wywoływana z funkcji, która ma klauzulę restrict(amp) ograniczenia. |
global_memory_fence | Blokuje wykonywanie wszystkich wątków na kafelku do momentu ukończenia dostępu do całej pamięci globalnej. |
parallel_for_each, funkcja (C++ AMP) | Uruchamia funkcję w domenie obliczeniowej. |
tile_static_memory_fence | Blokuje wykonywanie wszystkich wątków na kafelku do momentu tile_static ukończenia dostępu do pamięci. |
Stałe
Nazwa/nazwisko | opis |
---|---|
stała HLSL_MAX_NUM_BUFFERS | Maksymalna liczba buforów dozwolonych przez directX. |
stała MODULENAME_MAX_LENGTH | Przechowuje maksymalną długość nazwy modułu. Ta wartość musi być taka sama w kompilatorze i środowisku uruchomieniowym. |
Wymagania
Nagłówek: amp.h
Zobacz też
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla