Maxwell vděčí za úspěch tiled renderingu. Rasterizací se podobá PowerVR

2. 8. 2016

Sdílet

 Autor: Redakce

Když přichází na trh nějaký nový hardware, třeba procesor nebo GPU, snaží se výrobci pochlubit se zlepšeními nebo novinkami v jeho fungování, jelikož takové detaily jsou reklamou a kupující o nich chce vědět. Jenže některé technické podrobnosti si zase tvůrci hodlají nechat pro sebe v snaze být o krok napřed před konkurencí. Zdá se, že v současných GPU Nvidie byla jedna taková utajená změna nyní odhalena – a jedná se přitom o docela velkou věc.

Podle zjištění Davida Kantera z webu
Real World Technologies totiž Nvidia u architektury Maxwell
zcela změnila systém, jakým GPU grafiku rasterizuje, byť o tomto
detailu zcela mlčela. Pod „rasterizací“ je třeba rozumět krok
při vykreslování, kdy je vypočítaná trojrozměrná scéna
(s polygony, texturami) převedena do 2D podoby pro zobrazení.
Tato část grafické pipeline používá stále specializované
jednotky, na rozdíl od obecnějších ALU v shaderech –
změna jejich práce je tudíž něco týkající se přímo
hardwarového fungování čipu, nikoliv jen ovladačů.

GPU pro osobní počítače tradičně
používají tzv. „immediate mode rendering“, který pracuje
s celým snímkem. Tato metoda je ovšem náročná na paměťovou
propustnost. Mobilní architektury jako PowerVR, Adreno od Qualcommu
nebo ARM Mali proto již léta používají tzv. tile-based rendering
(či tiled rendering). Tímto způsobem probíhá rasterizace vždy
jen v malém výřezu („tile“, neboli dlaždici), například
o rozměru 32 × 32 bodů. Geometrie scény je nejprve rozdělena
mezi tyto dlaždice a jejich rasterizace je poté postupně
provedena samostatně. Důležité je, že tímto způsobem se velmi
zredukuje objem pracovních dat a ta tak mohou být při
zpracování lokálně držena přímo v bufferech čipu, bez
nutnosti přenosů z RAM, náročných na výkon a také na
energii.

Podle Davida Kantera Nvidia
u architektury Maxwell tento trik přenesla z mobilních
architektur do světa PC (ovšem nikoliv jako první, tiled rendering
kdysi fungoval u technologií PowerVR – karty Kyro – nebo u
XGI). Zdá se, že implementace dlaždicové rasterizace je jedním a
možná hodně důležitým z faktorů, které u Maxwellu
umožnily až podivuhodný nárůst efektivity ve srovnání
s předchozí architekturou Kepler, byť obě rodiny GPU
používají stejný 28nm proces. Díky tile-based renderingu zřejmě
také Maxwell funguje dobře s propustností pamětí nižší,
než mají konkurenčními Radeony.

 

Tiled rasterization v Maxwellu a Pascalu

Maxwelly a po nich
Pascaly tedy rasterizují v dlaždicích, což jim umožňuje
více využít interní buffery a cache (měly by stačit
k podržení geometrických dat, GPU dokonce zřejmě dlaždice
dynamicky zmenšuje a zvětšuje tak, aby se se data přímo na
čip vešla). Odlišnost od GPU z telefonů je ale v tom,
že není použit tiled deferred rendering, ale tiled immediate
rendering.

To, že Maxwell používá rasterizaci
po dlaždicích, není jen domněnka – demonstruje to nástroj
trianglebin, který je volně
dostupný na GitHubu
. Vykresluje na obrazovku trojúhelníky,
přičemž umožňuje omezit jejich počet, parametry vykreslování
a postupně mění jejich barvy (takže podle barvy vidíte,
kolik trojúhelníků bylo vykresleno). Nástroj v podstatě
umožňuje vidět, jak vypadá nekompletně rasterizovaný výsledek.

Projevy tiled rasterization u GeForce GTX 970 (Zdroj: Real World Tech)
Projevy tiled rasterization u GeForce GTX 970 (Zdroj: Real World Tech)

Na Radeonech (ale také Intelech) je
vidět, že vykreslení probíhá po celé obrazovce. Nekompletní
trojúhelník ukazuje, že vykreslení probíhá naráz zprava doleva
a shora dolů. U Maxwellu (na demonstračním videu je GTX
970) se však nekompletní trojúhelník rozpadá do mnoha fragmentů
tím, že vidíme mnoho nehotových trojúhelníků v jednotlivých
dlaždičkách. Změny parametrů přitom velikost dlaždiček mění –
GPU je evidentně dokáže měnit tak, aby se vešla do cache či
bufferů. Podobné je to u Pascalu, ale konkrétní chování
a velikosti jsou poněkud odlišné.

 

 

bitcoin_skoleni

Podle Kantera toto zřejmě ukazuje
trend, kdy se „velká“ GPU pro PC (a konzole) zřejmě budou
více přibližovat těm mobilním a přejmou jejich techniky
pro snížení energetické náročnosti či zmírnění požadavků
na paměťovou propustnost. Těmto problémům totiž čelí
i desktopová GPU a v poslední době výkon čipu
v podstatě přímo závisí na jeho energetické efektivitě,
jelikož růst TDP již na rozdíl od minulosti není akceptován.

Zdroj: Real
World Technologies