GPU vs CPU

GPU čili grafický procesor lze použít na mnohem více úkonů než jen na grafiku. Například Google pomocí těchto čipů vytváří modely lidského mozku, Salesforce je používá pro analýzu toku dat na Twitteru. GPU jsou tedy vhodné pro paralelní zpracování tisíců úloh ve stejném čase. Potřebný je však speciální software, který dokáže s grafickými procesory takto pracovat

Eric Holk, absolvent počítačových věd na univerzitě v Indianě, na takovém jazyku zapracoval a nazval ho Harlan. Nový programovací jazyk je určen k vytváření aplikací, které běží na GPU.

Programování s GPU stále vyžaduje, aby se programátor zabýval mnohými málo významnými detaily, které ho často odvádějí od jádra toho, co chce dosáhnout,“ řekl Eric Holk. Nový systém má vykonávat tuto práci za programátora a zjednodušit mu tak život.  

GPU je určen pro zpracování více vláken současně

Drtivou většinu výpočtů v počítačích realizuje centrální procesorová jednotka (CPU) ta však může provádět najednou pouze jednu sekvenci výpočtů, nazvanou vlákno (thread). Grafický procesor je určen pro zpracování více vláken současně. Úkoly jsou sice zpracovány pomaleji, ale výhodou je paralelní práce na více úlohách. Vhodný program by mohl upravit rychlost GPU na způsob superpočítačů tak, aby díky využití paralelismu byla úloha provedena dříve než při realizaci jednoho vlákna v daném čase.

Přestože dnešní vícejádrové procesory zvládají paralelismus, jsou obecně optimalizovány na jednovláknové operace, vysvětluje Holk. Je možné, že CPU a GPU se v budoucnu sloučí. No zatím programátoři na celém světě využívají sílu a flexibilitu GPU v množství aplikací – od tvorby fyzikálních modelů až po zlepšování smartphonů. Amazon dokonce nabízí zpracování pomocí GPU jako cloudovou službu.

GPU mají také mnohem vyšší propustnost paměti než CPU, takže se lépe hodí na relativně jednoduché výpočty s velkým objemem dat,“ řekl Holk.

Existují i ​​jiné programovací jazyky pro práci s GPU, např. CU-DA či OpenCL. Harlan však poskytuje programovací abstrakce, které se spojují spíše s vyššími programovacími jazyky, jako je Python či Ruby.

zdroj: wired.com