GPGPU (General-purpose computing on graphics processing units) Tedy provádění obecných výpočtů pomocí grafických čipů.
Rozdily mezi CPU a GPU
- Zásadní rozdíl je v počtu výpočetních jednotek. Dnešní CPU mají 2-8 jader. GPU jich mají stovky.
- GPU má méně vnitřní logiky. Nemá např. logiku pro obsluhu přerušení nebo ochranu paměti,protože GPU využívá více tranzistorů pro výpočet než pro řízení běhu a cache. To v praxi znamená že je méně univerzální, ale o hodně rychlejší.
Architektura CPU vs GPU
Rychlostní srovnání
- Procesor řady Intel Core i7 980 XE má 109 GFLOPS
- GPU Radeon 5700 má přes 1 TFLOPS
- Navíc GPU mají asi 10x větší paměťovou propustnost, což pomáhá při zpracování velkého objemu dat.
Na jaké úlohy je GPU vhodné?
- Vhodné resp. rychlejší aplikace budou na GPU ty které se dají paralelizovat. Tedy rozdělit na malé na sobě nezávislé problémy které se dají řešit odděleně.Ovšem nad všemi daty se musí provádět stejná operace. (pokud chceme aby byla aplikace opravdu rychlá)
- Představe si že máte pole i 100000 prvcích a chete ke každému prvku přičíst 1. Na CPU by se takový problém řešil pravděpodobně přes cyklus,který by pole zvětšoval nějakých 100000 taktů. GPU si vezme celé pole a v jednom taktu ke každému prvku přičte 1.
V čem programovat pro GPU?
- Hodně ve zkratce jsou 3 možnosti:
- DirectCompute nezáleží na HW ale běží jen pod windows
- CUDA nezávislé na OS ovšem funguje jen s GPU Nvidia
- OpenCL nezávislé jak na OS tak na GPU
Další informace o GPGPU resp. OpenCL se budou objevovat v článcích.
