Oblicz jądro - Compute kernel
W obliczeniowej , A jądra obliczeniowa jest rutynową zestawiane wysokowydajnego przyspieszacze (np przetwarzania grafiki jednostek (GPU), procesorów sygnałowych (DSP), lub w terenie programowalnych macierzy bramek (FPGA)), oddzielonych od, ale wykorzystywane przez program główny ( zazwyczaj działa na centralnej jednostce przetwarzania ). Czasami nazywane są one modułami cieniującymi obliczeniowymi , które współużytkują jednostki wykonawcze z modułami cieniującymi wierzchołków i modułami cieniującymi pikseli na procesorach graficznych, ale nie ograniczają się do wykonywania na jednej klasie urządzeń lub graficznych interfejsach API .
Opis
Jądra obliczeniowe z grubsza odpowiadają pętlom wewnętrznym podczas implementowania algorytmów w językach tradycyjnych (z wyjątkiem braku niejawnych operacji sekwencyjnych) lub kodowi przekazywanemu do wewnętrznych iteratorów .
Mogą być określone przez oddzielny język programowania, taki jak „ OpenCL C ” (zarządzany przez OpenCL API), jako „moduły cieniujące obliczeniowe ” napisane w języku cieniowania (zarządzane przez graficzny interfejs API, taki jak OpenGL ) lub osadzone bezpośrednio w kodzie aplikacji napisane w języku wysokiego poziomu , jak w przypadku C ++ AMP .
Przetwarzanie wektorowe
Ten paradygmat programowania dobrze odwzorowuje procesory wektorowe : zakłada się, że każde wywołanie jądra w partii jest niezależne, co pozwala na równoległe wykonywanie danych . Jednak w niektórych scenariuszach do synchronizacji między elementami (do pracy współzależnej) mogą być czasami używane niepodzielne operacje . Poszczególne wywołania otrzymują indeksy (w 1 lub więcej wymiarach), z których można wykonać dowolne adresowanie danych bufora (w tym operacje gromadzenia rozproszonego ), o ile przestrzegane jest założenie o nienakładaniu.
Vulkan API
Vulkan API zapewnia pośredni SPIR-V reprezentacji opisu zarówno graficzny Shaders i Oblicz jąder, w niezależnie języka i urządzenia niezależny sposób. Celem jest ułatwienie ewolucji języka i zapewnienie bardziej naturalnej możliwości wykorzystania możliwości obliczeniowych GPU, zgodnie z rozwojem sprzętu, takim jak ujednolicona architektura pamięci i heterogeniczna architektura systemu . Pozwala to na bliższą współpracę między CPU i GPU.
Zobacz też
- Jądro (przetwarzanie obrazu)
- DirectCompute
- CUDA
- OpenMP
- OpenCL
- SPIR-V
- SYCL
- Metal (API)
- GPGPU
- Procesor wektorowy
- Xeon Phi
- RISC-V § Przedłużenie wektora
- Cyfrowy procesor sygnałowy
- Tablica bramek programowalna przez użytkownika
- Akcelerator AI
- Manycore
- Przetwarzanie strumieniowe
- Komputer do operacji z funkcjami