Udostępnij za pośrednictwem


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ż

Dokumentacja (C++ AMP)