Intel Larrabee: nová éra výpočetní techniky
27.8.2008, Petr Štefek, článek
Exotické pojmenování Larrabee coby nové technologie Intelu je možná revolucí v oblasti akcelerování grafiky ve hrách a jistě je políčkem do tváře sebevědomé Nvidie s platformou CUDA. Příští rok nás může čekat jedna z nejzajímavějších epoch akcelerace grafiky.
Kapitoly článku:
V předchozích kapitolách jsme mluvili především o samotném jádru Larrabee a uspořádání vyrovnávacích pamětí L1 a L2 cache. Ani slůvko zatím nepadlo o velikosti externí paměti, která představuje u standardních řešení framebuffer. Nevíme zhola nic o tom, jak velký by měl framebuffer vlastně být. Je pravděpodobné, že akcelerátory založené na Larrabee budou disponovat i v případě high-endové konfigurace zhruba poloviční paměť oproti high-endovým řešením Nvidia a ATI. Tile-based rendering může být výrazně méně náročný na využití externího framebufferu. Otázkou zůstavá, jestli i přes skutečnost, že Intel jde svou vlastní cestou tile based rasterizeru a vlastního softwarového renderování, je možné omezit množství paměti, zvláště pokud bude Larrabee procesovat hry pod OpenGL nebo DirectX.
V Intelu se ovšem stále nemohou shodnout na tom, jestli vývojářům her a programů poskytnou jen sadu knihoven nebo celý zdroj pro vývoj tak, aby nemuseli začínat se vším tabula rasa. Druhá možnost bude pro studia značnou úsporou času pro seznámení se s možnostmi Larrabee a takovou menší kuchařkou s návodem jak na to. Přesto, že Larrabee je plně programovatelný procesor, se jedná pro mnohé o docela tvrdý oříšek a novotu, s jakou se budou muset naučit pracovat.
Kyro II v podání legendárního Herculesu
Vraťme se ale zpět k tile-based rasterizeru, který není žádnou novotou, ale vyskytoval se v profesionálních řešeních a také ve známých herních akcelerátorech Kyro (I, II a nevydaná III), který měl své mouchy, ale ve své době znamenal pro mnohé velmi pokrokové řešení, které ovšem v tehdejších hrách na trhu neprorazilo. Produkt jako takový nebyl špatný a dokázal pozlobit svým výkonem i mnohem dražší grafické karty z produkce Nvidia a ATI. Plánované Kyro III mohlo díky podpoře DirectX 8 vylepšenému jádru teoreticky překonat tehdejší high-end. Dodnes ovšem tile based rendering přežívá především v mobilních zařízeních, kde chceme zachovat co nejmenší nároky na paměť a rovněž si nemůžeme dovolit plýtvat výpočetním výkonem mobilních procesorů. Příkladem budiž různé druhy handheldů (bez čipů Nvidia – ty využívaji klasický postup renderování).
Tile-based rendering funguje na principu rozdělení scény, kterou chceme vykreslit, na dlaždice o velikosti 64x64 pixel nebo alternativně 128x128 pixel (u Kyra to bylo 32x16 bodů). Nespornou výhodou je to, že každá z těchto dlaždic se vejde do interní paměti čipu (L2 cache 256kB) a nezatěžuje komunikační kanál mezi čipem a externí pamětí (rozuměj nezatěžuje paměťovou sběrnici) a snižuje nároky na její propustnost. Poté je spočítána geometrie každého pole (vrcholy trojúhelníků) a odstraněny části scény, které nebudou viditelné (Z-culling), právě to je kouzlo celého tile-based renderingu. Pracuje se jen s daty, kterou jsou skutečně potřeba. Grafické čipy ATI nebo Nvidia pracují se všemi daty scény bez ohledu na to, jestli jsou nebo nejsou nakonec viditelné.
Když je „odhozeno“ vše nepotřebné, tak se jednotlivá pole posunují dále a jsou prováděny shaderové operace. Připomeňme si, že samotné pole je uloženo v superrychlé L2 cache a odstraňuje se tím negativní vliv pomalého externího framebufferu. Takto zpracovávané pole je rozděleno do dalších částí (celý proces řídí speciálně vytvořený thread) a poté jsou prováděny dobře známé operace jako texturování a přiřazené shaderové operace (pixel shading, alphablending, Z-test, anti-aliasing atd.). Intel nasadil tento typ renderování kvůli úsporám v oblasti velikosti paměti a také mnohem vyšší efektivitě vzhledem k možnostem samotného plně programovatelného čipu.
Na ilustračním obrázku Intelu vidíme, jak si stojí vytížení paměti a z toho plynoucí vliv na vytížení paměťové sběrnice. Jako ilustrace byly vybrány hry F.E.A.R. a Gears of War, které dobře reprezentují současné hry. Nejmarkantnější rozdíl je ve hře F.E.A.R., kde je uspořeno až 70-80% paměti. Gears of War už není tak extrémním příkladem jako předešlá hra, ale úspora v oblasti velikosti paměti a nároků na paměťovou sběrnici je stále propastná. To může být výhodou Larrabee, které bude potřebovat jednodušší paměťovou sběrnici (např. 128-256-bit) a menší množství pomalejší paměti pro dosažení stejného výkonu. Výsledná cena tedy může být díky těmto skutečnost více než zajímavá.
V Intelu se ovšem stále nemohou shodnout na tom, jestli vývojářům her a programů poskytnou jen sadu knihoven nebo celý zdroj pro vývoj tak, aby nemuseli začínat se vším tabula rasa. Druhá možnost bude pro studia značnou úsporou času pro seznámení se s možnostmi Larrabee a takovou menší kuchařkou s návodem jak na to. Přesto, že Larrabee je plně programovatelný procesor, se jedná pro mnohé o docela tvrdý oříšek a novotu, s jakou se budou muset naučit pracovat.
Kyro II v podání legendárního Herculesu
Vraťme se ale zpět k tile-based rasterizeru, který není žádnou novotou, ale vyskytoval se v profesionálních řešeních a také ve známých herních akcelerátorech Kyro (I, II a nevydaná III), který měl své mouchy, ale ve své době znamenal pro mnohé velmi pokrokové řešení, které ovšem v tehdejších hrách na trhu neprorazilo. Produkt jako takový nebyl špatný a dokázal pozlobit svým výkonem i mnohem dražší grafické karty z produkce Nvidia a ATI. Plánované Kyro III mohlo díky podpoře DirectX 8 vylepšenému jádru teoreticky překonat tehdejší high-end. Dodnes ovšem tile based rendering přežívá především v mobilních zařízeních, kde chceme zachovat co nejmenší nároky na paměť a rovněž si nemůžeme dovolit plýtvat výpočetním výkonem mobilních procesorů. Příkladem budiž různé druhy handheldů (bez čipů Nvidia – ty využívaji klasický postup renderování).
Co to je tile-based rendering?
Tile-based rendering funguje na principu rozdělení scény, kterou chceme vykreslit, na dlaždice o velikosti 64x64 pixel nebo alternativně 128x128 pixel (u Kyra to bylo 32x16 bodů). Nespornou výhodou je to, že každá z těchto dlaždic se vejde do interní paměti čipu (L2 cache 256kB) a nezatěžuje komunikační kanál mezi čipem a externí pamětí (rozuměj nezatěžuje paměťovou sběrnici) a snižuje nároky na její propustnost. Poté je spočítána geometrie každého pole (vrcholy trojúhelníků) a odstraněny části scény, které nebudou viditelné (Z-culling), právě to je kouzlo celého tile-based renderingu. Pracuje se jen s daty, kterou jsou skutečně potřeba. Grafické čipy ATI nebo Nvidia pracují se všemi daty scény bez ohledu na to, jestli jsou nebo nejsou nakonec viditelné.
Když je „odhozeno“ vše nepotřebné, tak se jednotlivá pole posunují dále a jsou prováděny shaderové operace. Připomeňme si, že samotné pole je uloženo v superrychlé L2 cache a odstraňuje se tím negativní vliv pomalého externího framebufferu. Takto zpracovávané pole je rozděleno do dalších částí (celý proces řídí speciálně vytvořený thread) a poté jsou prováděny dobře známé operace jako texturování a přiřazené shaderové operace (pixel shading, alphablending, Z-test, anti-aliasing atd.). Intel nasadil tento typ renderování kvůli úsporám v oblasti velikosti paměti a také mnohem vyšší efektivitě vzhledem k možnostem samotného plně programovatelného čipu.
Na ilustračním obrázku Intelu vidíme, jak si stojí vytížení paměti a z toho plynoucí vliv na vytížení paměťové sběrnice. Jako ilustrace byly vybrány hry F.E.A.R. a Gears of War, které dobře reprezentují současné hry. Nejmarkantnější rozdíl je ve hře F.E.A.R., kde je uspořeno až 70-80% paměti. Gears of War už není tak extrémním příkladem jako předešlá hra, ale úspora v oblasti velikosti paměti a nároků na paměťovou sběrnici je stále propastná. To může být výhodou Larrabee, které bude potřebovat jednodušší paměťovou sběrnici (např. 128-256-bit) a menší množství pomalejší paměti pro dosažení stejného výkonu. Výsledná cena tedy může být díky těmto skutečnost více než zajímavá.