Výpočetní jádro - Compute kernel

Ve výpočtech je výpočetní jádro rutina kompilovaná pro akcelerátory s vysokou propustností (jako jsou grafické procesory (GPU), číslicové signální procesory (DSP) nebo polní programovatelná hradlová pole (FPGA)), oddělená od hlavního programu (ale používaná hlavním programem ( obvykle běžící na centrální procesorové jednotce ). Někdy se jim říká výpočetní shadery , sdílení výkonných jednotek s shadery vrcholů a pixel shadery na GPU, ale nejsou omezeny na provádění na jedné třídě zařízení nebo grafická rozhraní API .

Popis

Výpočetní jádra zhruba odpovídají vnitřním smyčkám při implementaci algoritmů v tradičních jazycích (kromě toho, že neexistuje implicitní sekvenční operace) nebo kódu předávanému interním iterátorům .

Mohou být specifikovány samostatným programovacím jazykem, jako je „ OpenCL C “ (spravováno OpenCL API), jako „výpočetní shadery “ napsané v stínovacím jazyce (spravované grafickým API, jako je OpenGL ), nebo vloženy přímo do kódu aplikace napsáno v jazyce vysoké úrovně , jako v případě C ++ AMP .

Vektorové zpracování

Toto programovací paradigma se dobře mapuje na vektorové procesory : existuje předpoklad, že každé vyvolání jádra v dávce je nezávislé, což umožňuje paralelní provádění dat . Avšak atomické operace mohou být někdy použity pro synchronizaci mezi prvky (pro vzájemně závislé práce), v některých případech. Jednotlivým vyvoláním jsou dány indexy (v 1 nebo více dimenzích), ze kterých lze provádět libovolné adresování dat vyrovnávací paměti (včetně operací bodového shromažďování ), pokud je respektován nepřekrývající se předpoklad.

Vulkan API

Vulkan API poskytuje meziprodukt SPIR-V zastoupení popsat jak grafické shadery , a spočítá jádra, v jazykově nezávislé a strojní nezávislým způsobem. Záměrem je usnadnit vývoj jazyka a poskytnout přirozenější schopnost využívat výpočetní schopnosti GPU v souladu s vývojem hardwaru, jako je Unified Memory Architecture a Heterogeneous System Architecture . To umožňuje užší spolupráci mezi CPU a GPU.

Viz také

Reference