Neuronové sítě na grafických akcelerátorech Ondřej Zicha, Jiří Formánek
Grafický procesor - GPU Stejně jako CPU, i dnešní GPU mohou vykonávat instrukce nad grafickými daty GPU je výkonnější něž klasické procesory – velká paralelizace výpočtu
Grafický procesor - GPU V GPU jsou dvě programovatelné jednotky: vertex a pixel shader Vertex shader (VS) pracuje nad vrcholy geometrie, pixel shader (PS) s pixely
GPU
Omezení shaderů Vstupních registrů pouze 16 – 4D vektorů Výstup lze zapsat do 4 textur: maximálně 16 skalárních hodnot Omezené množství globálních proměnných: VS: 256 registrů PS: 32 registrů (+ textury) Maximální délka programu: VS: 256 instrukcí PS: 96 instrukcí
Problém neuronových sítí Učení neuronových sítí znamená úpravy vah jednotlivých neuronů – tento úkol se pro GPU nehodí Vybavovací fáze je naopak na GPU snadno implementovatelná, protože se jedná o maticový součin – matice vah a vstupní vektor
Využití shaderů I. Ve VS počítáme výstupní vektor U dvouvrstvé sítě i nelinearitu první vrstvy Váhy naučené sítě jsou načteny do konstantních registrů VS jednotky Vstupní vzory načítány z vertex bufferu Výstup zapisován do jednotky PS
Využití shaderů II. V PS aplikujeme výstupní nelinearitu neuronu PS zapisuje 16 výstupních hodnot do 4 textur Data jsou pak staženy do RAM
Implementace neuronové sítě Dokázali jsme implementovat vybavovací fázi úplné dopředné sítě s jednou nebo dvěma vrstvami Samotný výpočet – vybavení – zabere zanedbatelný časový úsek Největší časová ztráta je při stahování dat z grafické karty do operační paměti - to je výrazně rychlejší na PCI-Express
Výkon naší implementace Testovací sestava: AMD Athlon XP s grafickou kartou ATI Radeon 9600XT Výsledky jsou znatelně závislé na konfiguraci systému (CPU vs. GPU) GPU může být až 10x rychlejší než CPU Zrychlení se projeví zvláště na sítích se dvěma vrstvami
Pohled do budoucna Využití shaderů verze 3.0 dnes již hodně rozšířený model odbourává omezení předchozích verzí Využití hardware instancingu vícenásobné generování stejné geometrie Daleká budoucnost a shader model 4.0 fáze učení na GPU
Děkujeme za pozornost!