NVIDIA CUDA - využití grafické karty naplno

8. 4. 2009 07:00    Rubrika: Technologie    Autor: František Doupal

O pojmu CUDA již nějaký ten čas slýcháme zejména ve spojitosti s moderními grafickými kartami NVIDIA a jejich využitím i pro jiné účely, než jsou výpočty grafiky. O co se vlastně jedná? Na jakém principu tato funkce pracuje a co přináší běžným uživatelům notebooků?

NVIDIA CUDA - využití grafické karty naplno

Jak CUDA funguje?

Nápad využití stream procesorů grafických karet není úplnou novinkou, hovořilo se o něm a v určitých omezených případech se ho využívalo již i dříve. Ale teprve až společnost NVIDIA ho dokázala dotáhnout do podoby, která je využitelná i s běžně používanými modely grafických karet a zpřístupnila ho nejen profesionálům, ale i běžným uživatelům.

Každá grafická karta v dnešní době v závislosti na svém typu a cenové kategorii obsahuje určité množství výpočetních jednotek – stream procesorů. Nabízí se tedy otázka, proč jich nevyužít i jinak než v graficky náročných operacích nebo při hraní her. A právě o tomto NVIDIA CUDA je – o využití stream procesorů grafických karet v momentě, kdy jich není potřeba pro jejich primární určení – tedy práci s grafikou – a lze tak často výrazně urychlit činnosti, které do současné doby kompletně zpracovával procesor (CPU).

Grafické procesory samozřejmě fungují jinak než klasické procesory a ani výkonem s nimi nejsou srovnatelné. Jejich hrubý výpočetní výkon je podstatně vyšší, než u CPU notebooku (počítáno na GFLOPS jsou na tom high-endové grafické karty 50x lépe, než high-endové procesory), svých výkonů ale dosahují jiným principem – jejich síla je v množství výpočetních jednotek – u moderních karet jich může být až několik set. CUDA při výpočtech dělí složitější výpočty na jednodušší, a ty pak paralelně rozděluje mezi jednotlivé stream procesory.

Uplatnění

NVIDIA CUDA si najde své uplatnění v celé řadě činností, jejichž seznam se neustále rozšiřuje s rostoucí podporou ze strany samotných vývojářů, protože aby mohla aplikace služeb CUDA využít, musí být speciálně upravena.

Využití této technologie může být značně variabilní. Běžní uživatelé přínos CUDA nejčastěji pocítí např. při převádění videosouborů, které je až několikanásobně rychlejší (v některých případech až 18x), nebo např. při aplikaci různých grafických filtrů na přehrávané video.

Programy pro práci s videem:

  • PowerDirector7 Ultra
  • TMPGEnc 4.0 Xpress
  • Flowball
  • Badaboom Media Converter

V současné době je CUDA využívána spíše na specializovaných pracovištích. Své využití si najde zejména na vědeckých pracovištích zabývajících se nejrůznější problematikou, využívají ho nemocnice, některé univerzity, instituce ve finanční a bankovní sféře a řada dalších organizací. Samozřejmostí jsou pak profesionální grafici, kde CUDA napomůže např. při vizualizacích či zpracování náhledů a různých efektů.

V současné době existuje také několik modulů pro matematický program Matlab, některé uživatele potěší klient projektu Folding@home.

NVIDIA do prostředí CUDA také kompletně přeprogramovala počítání fyziky, o které se dříve staraly samostatné přídavné karty Ageia a kterou NVIDIA odkoupila za tímto účelem. Nutnou podmínkou využití fyziky je podpora ze strany hry. Těch by mělo být v současnosti přes 150 a další přibývají.

Kompletní přehled podporovaných aplikací a možností využití si prohlédněte na oficiálních stránkách společnosti NVIDIA.

Podporované grafické karty

Rozhraní NVIDIA CUDA není podporováno všemi kartami. První a zásadní podmínkou je vlastnit novější kartu NVIDIA, druhou pak konkrétní podporovaný model.

Seznam (v současné době podporovaných grafických karet):

  • GeForce G102M, GeForce G105M, GeForce G110M
  • GeForce GT 130M, GeForce GTS 150M, GeForce GTS 160M
  • GeForce GTX 260M, GeForce GTX 280M
  • GeForce 8400M GS, GeForce 8400M GT
  • GeForce 8600M GS, GeForce 8600M GT, GeForce 8800M GTS
  • GeForce 9100M G, GeForce 9200M GS
  • GeForce 9300M G, GeForce 9300M GS
  • GeForce 9500M G, GeForce 9500M GS
  • GeForce 9600M GS, GeForce 9660M GS
  • GeForce 9700M GT, GeForce 9700M GTS
  • GeForce 9800M GS, GeForce 9800M GTS
  • GeForce 9800M GT, GeForce 9800M GTX
  • Quadro NVS 130M, Quadro NVS 135M, Quadro NVS 140M
  • Quadro NVS 150M, Quadro NVS 160M
  • Quadro NVS 320M, Quadro NVS 360M, Quadro NVS 370M
  • Quadro FX 570M, Quadro FX 770M
  • Quadro FX 1600M, Quadro FX 1700M, Quadro FX 2700M
  • Quadro FX 3600M, Quadro FX 3700M

Softwarová podpora

Výše jsme si řekli, že abychom mohli využívat funkcí technologie CUDA, potřebujeme mít jednu z podporovaných grafických karet. To ale samo o sobě nestačí. Další nutnou podmínkou je mít nainstalované patřičné ovladače a také určitým způsobem přizpůsobenou programovou výbavu.

NVIDIA CUDA je podporována pod operačními systémy Windows XP a Vista (v 32 i 64 bitové edici), Linux i MacOS.

Uživatelé i vývojáři si mohou nejnovější softwarovou podporu stáhnout z těchto stránek výrobce.

Závěr

Přínos NVIDIA CUDA v současné době rozhodně nepocítí každý. Využití je totiž limitováno podporou jen některých grafických karet (na druhou stranu se jedná o naprostou většinu novějších typů) a zejména zatím poměrně omezenou podporou ze strany aplikací. Běžné uživatele potěší asi nejvíce akcelerace fyziky ve hrách či převodu videa. CUDA v současné době ale využijí zejména specializovaná pracoviště, kde může některé výpočty, simulace či vizualizace značně urychlit.

Zdroj: NVIDIA, Wikipedia

Technologie

Diskuse