Radeon HD 5800 (1/2) - představení možností hardware
29.9.2009, Petr Štefek, recenze
AMD vydalo grafickou kartu Radeon HD 5870 postavenou na nové architektuře, která je prvním zástupcem hardware s podporou DirectX 11 a také velkým výkonovým skokem kupředu. Podívejme se, co vše si pod čepicí tato novinka schovává. Co nám nabídne dnes a co nás s ní čeká v budoucnu.
Kapitoly článku:
Jak už bylo řečeno v předešlé kapitole, jádro RV870 je vyráběno 40nm technologií, což umožnilo, aby samotné jádro bylo vzhledem k počtu tranzistorů (2.15 mld.) poměrně malé a můžeme ho srovnat s postarším jádrem G92 od společnosti Nvidia. V jádru si na taktu 850 MHz brouká rovnou 1600 stream procesorů, což je dvojnásobek oproti jádru RV770. Celkový teoretický výkon se pohybuje na úrovni 2.4 TFLOPS, což je téměř dva a půl krát více než GeForce GTX 285.
Výpočetní jádro (superskalarní) s 5 výpočetními jednotkami
V jádru RV870 najdeme dvojnásobný počet SIMD bloků oproti předešlému jádru RV770, což nám při vynásobení počtem superskalárních jednotek dává číslo 320. Ano, výpočetních jednotek je skutečně "pouze" 320, ale oproti čipům Nvidie jsou tyto jednotky superskalární, což znamená, že dokáží za takt zpracovat více než jednu instrukci. V případě jádra RV870 to znamená rovnou 5 instrukcí, kterými vynásobíme počet superskalárních jednotek a dostáváme se tak hojně užívanému počtu 1600 stream procesorů.
20xSIMD blok v jádru RV870
Díky tomu, že zde máme dvojnásobný počet SIMD bloků, musíme myslet rovněž na L2 cache, která měla u RV770 velikost rovných 64 kB a nyní mají všechny 4 přítomné L2 cache velikost 128 kB. Rychlost, jakou mohou tyto L2 cache komunikovat s L1 cache, je nyní zvýšena z 384 GB/s u jádra RV770 na 435 GB/s. Další cache s názvem Global Data Share je oproti minulé generaci čipů dokonce čtyřikrát větší.
V jádře nalezneme 32 renderovacích jednotek (RBE) a 80 texturovacích jednotek. Ano, nepletete se, je to rovný dvojnásobek RV770. Není to ovšem jen jednoduše zdvojnásobený počet jednotek, neboť bylo třeba modifikovat výpočetní jednotky tak, aby byly schopny splnit specifikace dané DirectX 11. Nebudeme vás nudit jednotlivými modifikacemi, které spočívají především v bitových operacích (count, insert, extract atd.), ale podíváme se na jednu, která je velmi specifickou a možná nejdůležitější funkcí, přestože není definována v žádném ze současných rozhraní DirectX nebo OpenGL.
Schéma jádra RV870
Funkce SAD v češtině znamená součet absolutních diferencí a je stěžejní například pro enkódování videa nebo další počítačové vizualizace při odhadování pohybu (ve scéně). Předešlý čip RV770 potřebuje nejméně 12 funkcí, aby došel ke stejnému výsledku. Díky tomu, že je čip schopen zvládnout tento výpočet za takt, se teoreticky rychlost enkódování více než zdvojnásobí. Fukce SAD sice není součástí žádného rozhraní (API tuto funkci nemůže zavolat) a pro nové OpenCL je to také jen možná extenze, ale díky kompilátoru AMD je možné kód provádějící tyto operace nahradit rovnou funkcí SAD a vše tak jednoduše na grafických jádrech ATI urychlit. Program si pak jednoduše v případě nutnosti SAD zavolá a během jednoho taktu je hotovo.
Další vylepšení je v oblasti SIMD (celkově 20 jednotek), kde došlo navýšení rychlosti L1 cache, která je nyní schopna s daty operovat rychlostí 1 TB/s. Její velikost zůstává oproti čipu RV770 nezměněna na velikosti 16 kB. Celkový součet všech cache v SIMD bloku ovšem narostl na 32 kB kvůli potřebě zvýšit výpočetní sílu i v jiných oblastech nežli je "počítání" grafiky.
Evolucí prošly rovněž texturovací jednotky, které nyní pracují podstatně efektivněji než v případě RV770, protože umí nejen číst komprimované AA barevné buffery, ale také již neprovádějí interpolace, které podle schématu DirectX 11 dostaly na starost Stream Procesory. Ty tyto operace mohou zpracovat podstatně rychleji než texturovací jednotky. Výsledkem všeho je tedy vyšší efektivní (ne teoretický v tabulce) fillrate (texelů) než v případě RV770. Podle AMD dokáže RV870 zpracovat až 68 miliard bilineárně filtrovaných texelů za sekundu.
Poslední věcí, o které je potřeba se zmínit, jsou renderovací jednotky, které jsou nyní přítomny v počtu 32, a to je opět dvojnásobek oproti RV770. Oproti starším renderovacím jednotkám umí tzv. "fast color clear", což umožňuje výrazně rychlejší běh těchto jednotek v určitých typech her a také se super-sampling anti-aliasingem.
Výpočetní jádro (superskalarní) s 5 výpočetními jednotkami
V jádru RV870 najdeme dvojnásobný počet SIMD bloků oproti předešlému jádru RV770, což nám při vynásobení počtem superskalárních jednotek dává číslo 320. Ano, výpočetních jednotek je skutečně "pouze" 320, ale oproti čipům Nvidie jsou tyto jednotky superskalární, což znamená, že dokáží za takt zpracovat více než jednu instrukci. V případě jádra RV870 to znamená rovnou 5 instrukcí, kterými vynásobíme počet superskalárních jednotek a dostáváme se tak hojně užívanému počtu 1600 stream procesorů.
20xSIMD blok v jádru RV870
Díky tomu, že zde máme dvojnásobný počet SIMD bloků, musíme myslet rovněž na L2 cache, která měla u RV770 velikost rovných 64 kB a nyní mají všechny 4 přítomné L2 cache velikost 128 kB. Rychlost, jakou mohou tyto L2 cache komunikovat s L1 cache, je nyní zvýšena z 384 GB/s u jádra RV770 na 435 GB/s. Další cache s názvem Global Data Share je oproti minulé generaci čipů dokonce čtyřikrát větší.
V jádře nalezneme 32 renderovacích jednotek (RBE) a 80 texturovacích jednotek. Ano, nepletete se, je to rovný dvojnásobek RV770. Není to ovšem jen jednoduše zdvojnásobený počet jednotek, neboť bylo třeba modifikovat výpočetní jednotky tak, aby byly schopny splnit specifikace dané DirectX 11. Nebudeme vás nudit jednotlivými modifikacemi, které spočívají především v bitových operacích (count, insert, extract atd.), ale podíváme se na jednu, která je velmi specifickou a možná nejdůležitější funkcí, přestože není definována v žádném ze současných rozhraní DirectX nebo OpenGL.
Schéma jádra RV870
Funkce SAD v češtině znamená součet absolutních diferencí a je stěžejní například pro enkódování videa nebo další počítačové vizualizace při odhadování pohybu (ve scéně). Předešlý čip RV770 potřebuje nejméně 12 funkcí, aby došel ke stejnému výsledku. Díky tomu, že je čip schopen zvládnout tento výpočet za takt, se teoreticky rychlost enkódování více než zdvojnásobí. Fukce SAD sice není součástí žádného rozhraní (API tuto funkci nemůže zavolat) a pro nové OpenCL je to také jen možná extenze, ale díky kompilátoru AMD je možné kód provádějící tyto operace nahradit rovnou funkcí SAD a vše tak jednoduše na grafických jádrech ATI urychlit. Program si pak jednoduše v případě nutnosti SAD zavolá a během jednoho taktu je hotovo.
Další vylepšení je v oblasti SIMD (celkově 20 jednotek), kde došlo navýšení rychlosti L1 cache, která je nyní schopna s daty operovat rychlostí 1 TB/s. Její velikost zůstává oproti čipu RV770 nezměněna na velikosti 16 kB. Celkový součet všech cache v SIMD bloku ovšem narostl na 32 kB kvůli potřebě zvýšit výpočetní sílu i v jiných oblastech nežli je "počítání" grafiky.
Evolucí prošly rovněž texturovací jednotky, které nyní pracují podstatně efektivněji než v případě RV770, protože umí nejen číst komprimované AA barevné buffery, ale také již neprovádějí interpolace, které podle schématu DirectX 11 dostaly na starost Stream Procesory. Ty tyto operace mohou zpracovat podstatně rychleji než texturovací jednotky. Výsledkem všeho je tedy vyšší efektivní (ne teoretický v tabulce) fillrate (texelů) než v případě RV770. Podle AMD dokáže RV870 zpracovat až 68 miliard bilineárně filtrovaných texelů za sekundu.
Poslední věcí, o které je potřeba se zmínit, jsou renderovací jednotky, které jsou nyní přítomny v počtu 32, a to je opět dvojnásobek oproti RV770. Oproti starším renderovacím jednotkám umí tzv. "fast color clear", což umožňuje výrazně rychlejší běh těchto jednotek v určitých typech her a také se super-sampling anti-aliasingem.