LocalazyLocalazy
OpenCL je nový standard pro programování GPU a dalších vysoce paralelních procesorů. Je navržen tak, aby programátorům poskytl větší kontrolu nad tím, jak jsou data v těchto zařízeních zpracovávána, a aby byl kód lépe přenositelný mezi různými typy procesorů. Standard OpenCL již přijala řada společností, včetně společností Apple, AMD, IBM a nVidia. Podporuje ji také řada hlavních programovacích jazyků, včetně jazyků C, C++ a Fortran. Existuje několik věcí, kterými se OpenCL liší od ostatních programovacích jazyků pro GPU. Zaprvé je navržen tak, aby pracoval s širokou škálou procesorů, nejen s GPU. To znamená, že kód napsaný v OpenCL lze snadno přenést na jiné typy zařízení. Za druhé, OpenCL dává programátorům větší kontrolu nad tím, jak jsou data zpracovávána. V mnoha programovacích jazycích pro GPU se data zpracovávají lineárně, což znamená, že se zpracovávají od začátku do konce v jednom vlákně. OpenCL naproti tomu umožňuje zpracovávat data flexibilnějším způsobem. Díky tomu je snazší psát kód, který dokáže využít paralelismus GPU. A konečně, OpenCL je navržen tak, aby byl efektivnější než jiné programovací jazyky pro GPU. Je to proto, že používá efektivnější paměťový model a že umožňuje zpracovávat data flexibilnějším způsobem. Celkově je OpenCL slibným novým standardem pro programování GPU a dalších vysoce paralelních procesorů. Je navržen tak, aby byl přenositelnější a efektivnější než jiné programovací jazyky pro GPU a aby poskytoval programátorům větší kontrolu nad způsobem zpracování dat.