AMD Graphics Core Next: revoluce po 10 letech
13.1.2012, Petr Štefek, technologie
AMD velmi překvapivě vydalo zbrusu novou architekturu GPU o více než rok dříve, než byl původní plán. Graphics Core Next, jak se novinka jmenuje, je revolucí, která mění GPU z dílen AMD po 10 letech od nástupu Radeonu 9700. Doplněno o 4 nové kapitoly.
Kapitoly článku:
- AMD Graphics Core Next: revoluce po 10 letech
- VLIW4 odchází do propadliště dějin?
- Graphics Core Next – vektorově-skalární architektura
- Rasterizační jednotky vs. paměťová propustnost
- Partially Resident Textures, anizotropní filtrování
- Geometrický engine, DirectX 11.1 a PCI Express 3.0
- Akcelerace a komprese videa + Eyefinity 2.0
- PowerTune a ZeroCore Power
Než si představíme, jak funguje architektura Graphics Core Next (GNC), zopakujeme si základy o současných architekturách VLIW5, respektive VLIW4, kterou najdete u současných grafických akcelerátorů AMD Radeon HD 6800 (VLIW5) a níže, respektive AMD Radeon HD 6900 (VLIW4). V této kapitole si popíšeme fundamentální rozdíly mezi architekturami VLIW4/5 a samozřejmě je konfrontujeme s novou architekturou, s kterou AMD nejspíše spojí budoucnost Radeonů na několik let dopředu.
Počátky architektury můžeme vysledovat zpět až ke zrodu Radeonu 9700, který byl první kartou s podporou API DirectX 9, přes nedoceněný Radeon HD 2900XT pro DirectX 10 a jeho unifikovanou architekturu (podobné fiasko si už AMD nemůže dovolit). V průběhu času došlo ke znatelnému poklesu efektivity u architektury VLIW5 a AMD na to muselo samozřejmě nějak reagovat, neboť konkurence byla velmi silná. Odpovědí pro několik následujících let měla být architektura VLIW4, nebo se tak alespoň zdálo ještě před zhruba půl rokem.
Blokové schéma GPU Cayman XT - Radeon HD 6970
Architektura VLIW5 pro maximální vytíženost potřebuje, aby v každém SPU bylo v každém taktu vykonáno 5 instrukcí současně. Průměrné využití v reálných aplikacích je ovšem podstatné nižší. Podle AMD VLIW5 dosahuje v průměru vytížení okolo 3.4 jednotek, což ve výsledku znamená efektivitu práce 5D procesoru pouze okolo 70 %. VLIW5 je tedy pro AMD nevýhodná (zabírá mnoho tranzistorů a SFU je skoro nevyužívaná), a proto se začalo ubírat cestou ILP (Instruction Level Parallelism) architektury VLIW4 GPU Cayman Pro/XT v Radeonech HD 6900.
AMD sázelo na to, že v každém vláknu lze najít instrukce, které na sobě přímo nezávisí a mohou být tak vykonány paralelně. ILP je poměrně složitý proces a dosáhnout efektivity ve zpracování instrukcí je podstatně náročnější než v případě Thread Level Parallelism (TLP). Jde v podstatě o hlubší rozklíčování prováděného kódu. Hlubší rozklíčování má ovšem samozřejmě zásadní vliv na jednotky, které jednotlivé instrukce výpočetním jednotkám přiřazují.
Nvidia se u své současné architektury Fermi vydala cestou TLP (Thread Level Parallelism), což není nic jiného než princip, kdy jsou vlákna zpracovávána paralelně ve stejném čase. Fermi je skalární architektura, která pro svou efektivitu využívá principu TLP. AMD sázelo na kartu, kdy její GPU jako taková budou efektivnější pro GPGPU aplikace, ale jak se v průběhu času ukázalo, VLIW4 je slepá větev, kterou nemá smysl dále prodlužovat. VLIW4 sice není pouze osekaná architektura VLIW5, jak by se mnozí mohli domnívat a bylo by to logické, ale jde také o velký evoluční skok.
Zdroj: Anandtech.com - 4D super skalární procesor VLIW4
Průměrná vytíženost u architektury VLIW5 byla 3.4 jednotky. VLIW4 má 4D jednotky, jelikož zde došlo k odstranění speciální T-unit (SFU). Předešlá architektura byla schopna vykonávat celočíselné a desetinné operace a navíc také transcendentální matematické operace. T-operace nejsou v reálných shaderech častým jevem a v případě VLIW4 je možné, aby kterékoli 3 ze 4 jednotek dokázaly vykonat jednu transcendentální operaci za takt a zbylá jednotka je stále použitelná pro 32bitovou operaci. Obecně jsou schopny všechny 4 jednotky vykonávat 32bitové operace, což je v praxi výhodnější. Výkonnost při FP64 operacích double precision přesnosti výpočtů (především profesionální a vědecké aplikace) je rovna jedné polovině výkonu při FP32.
Absence samostatné T-unit a celkové snížení počtu jednotek se postaralo o úsporu plochy jádra a potenciálního místa pro vytvoření více výpočetní bloků. Pokud bychom se podívali na starší čipy Cypress (Radeon HD 5800), uvidíme nejen architekturu VLIW5, ale také „pouze“ 20 SIMD. Novější Cayman jich při architektuře VLIW4 má rovnou 24 a plocha čipu je plus mínus stejná. Kromě jiného je také podstatně snadnější plánování scheduleru, neboť VLIW4 má méně stream procesorů a kromě jiného scheduler už nemusí rozlišovat mezi w/x/y/z jednotkami a t-unit (transcendentální operace). V praxi byl v testech výkonový náskok architektury VLIW4 velmi patrný a Cayman neměl problém konkurovat konkurenčním produktům založeným na architektuře Fermi.
Architektura VLIW4 čipu Cayman tedy na první pohled skýtá samé výhody, ale má samozřejmě i své nevýhody. Grafické enginy, které využívají DirectX 9 vertex shader, nebudou z nové architektury nijak zásadně profitovat. Ale rychlost v DirectX 9 hrách je to poslední, co by mělo AMD trápit, protože výkon je více než dostatečný. Architektura VLIW5 je tedy pro starší hry vhodnější, ale GPU se dívají převážně dopředu a nikoli dozadu. V praxi jsme ale třeba viděli Crysis 2 pod DirectX 9, kdy nové Radeony byly výrazně rychlejší.
Druhou nevýhodou je fakt, že nyní jsou transcendentální operace svázány s vektorovými operacemi (jinými slovy zatěžují 3 ze 4 jednotek schopných vektorových operací). AMD věřilo, že T operace jsou natolik ojedinělé, že případná ztráta výkonu při jejich vykonávání stojí za tento menší ústupek. Praxe předpokladům AMD dala poměrně za pravdu a nikde jsme v průběhu minulého roku neviděli v praxi zásadní výkonnostní problémy Radeonů HD 6900. Často lze naopak srovnat výkony Radeonu HD 6970 s dražší GeForce GTX 580, která si výkonnostní trůn jednočipových karet ale uhájila a korunu jí sebral až Radeon HD 7970.
VLIW4 měla být pro společnost AMD budoucnost minimálně na 2 roky, protože jen těžko by zbrusu novou architekturu poslalo do důchodu po jediné a navíc poměrně úspěšné generaci GPU. Nestalo se tak a všechny předpoklady byly liché. Máme zde ani ne rok po uvedení VLIW4 zcela průlomovou architekturu Graphics Core Next a vůbec první 28nm GPU. VLIW4 bude zřejmě přežívat dále u levnějších karet, kde nebudou takové nároky na jejich univerzální vlastnosti. Z low-endu by tak mohla pomalu ale jistě vytlačit třeba architekturu VLIW5.
Menší ohlédnutí za minulými architekturami nebylo v tomto článku samoúčelným zabíráním prostoru, ale jakýmsi prequelem k další kapitole, která snad bude díky tomuto ohlédnutí srozumitelnější a pochopitelnější.
Počátky architektury můžeme vysledovat zpět až ke zrodu Radeonu 9700, který byl první kartou s podporou API DirectX 9, přes nedoceněný Radeon HD 2900XT pro DirectX 10 a jeho unifikovanou architekturu (podobné fiasko si už AMD nemůže dovolit). V průběhu času došlo ke znatelnému poklesu efektivity u architektury VLIW5 a AMD na to muselo samozřejmě nějak reagovat, neboť konkurence byla velmi silná. Odpovědí pro několik následujících let měla být architektura VLIW4, nebo se tak alespoň zdálo ještě před zhruba půl rokem.
Blokové schéma GPU Cayman XT - Radeon HD 6970
Architektura VLIW5 pro maximální vytíženost potřebuje, aby v každém SPU bylo v každém taktu vykonáno 5 instrukcí současně. Průměrné využití v reálných aplikacích je ovšem podstatné nižší. Podle AMD VLIW5 dosahuje v průměru vytížení okolo 3.4 jednotek, což ve výsledku znamená efektivitu práce 5D procesoru pouze okolo 70 %. VLIW5 je tedy pro AMD nevýhodná (zabírá mnoho tranzistorů a SFU je skoro nevyužívaná), a proto se začalo ubírat cestou ILP (Instruction Level Parallelism) architektury VLIW4 GPU Cayman Pro/XT v Radeonech HD 6900.
AMD sázelo na to, že v každém vláknu lze najít instrukce, které na sobě přímo nezávisí a mohou být tak vykonány paralelně. ILP je poměrně složitý proces a dosáhnout efektivity ve zpracování instrukcí je podstatně náročnější než v případě Thread Level Parallelism (TLP). Jde v podstatě o hlubší rozklíčování prováděného kódu. Hlubší rozklíčování má ovšem samozřejmě zásadní vliv na jednotky, které jednotlivé instrukce výpočetním jednotkám přiřazují.
Nvidia se u své současné architektury Fermi vydala cestou TLP (Thread Level Parallelism), což není nic jiného než princip, kdy jsou vlákna zpracovávána paralelně ve stejném čase. Fermi je skalární architektura, která pro svou efektivitu využívá principu TLP. AMD sázelo na kartu, kdy její GPU jako taková budou efektivnější pro GPGPU aplikace, ale jak se v průběhu času ukázalo, VLIW4 je slepá větev, kterou nemá smysl dále prodlužovat. VLIW4 sice není pouze osekaná architektura VLIW5, jak by se mnozí mohli domnívat a bylo by to logické, ale jde také o velký evoluční skok.
Zdroj: Anandtech.com - 4D super skalární procesor VLIW4
Průměrná vytíženost u architektury VLIW5 byla 3.4 jednotky. VLIW4 má 4D jednotky, jelikož zde došlo k odstranění speciální T-unit (SFU). Předešlá architektura byla schopna vykonávat celočíselné a desetinné operace a navíc také transcendentální matematické operace. T-operace nejsou v reálných shaderech častým jevem a v případě VLIW4 je možné, aby kterékoli 3 ze 4 jednotek dokázaly vykonat jednu transcendentální operaci za takt a zbylá jednotka je stále použitelná pro 32bitovou operaci. Obecně jsou schopny všechny 4 jednotky vykonávat 32bitové operace, což je v praxi výhodnější. Výkonnost při FP64 operacích double precision přesnosti výpočtů (především profesionální a vědecké aplikace) je rovna jedné polovině výkonu při FP32.
Absence samostatné T-unit a celkové snížení počtu jednotek se postaralo o úsporu plochy jádra a potenciálního místa pro vytvoření více výpočetní bloků. Pokud bychom se podívali na starší čipy Cypress (Radeon HD 5800), uvidíme nejen architekturu VLIW5, ale také „pouze“ 20 SIMD. Novější Cayman jich při architektuře VLIW4 má rovnou 24 a plocha čipu je plus mínus stejná. Kromě jiného je také podstatně snadnější plánování scheduleru, neboť VLIW4 má méně stream procesorů a kromě jiného scheduler už nemusí rozlišovat mezi w/x/y/z jednotkami a t-unit (transcendentální operace). V praxi byl v testech výkonový náskok architektury VLIW4 velmi patrný a Cayman neměl problém konkurovat konkurenčním produktům založeným na architektuře Fermi.
Architektura VLIW4 čipu Cayman tedy na první pohled skýtá samé výhody, ale má samozřejmě i své nevýhody. Grafické enginy, které využívají DirectX 9 vertex shader, nebudou z nové architektury nijak zásadně profitovat. Ale rychlost v DirectX 9 hrách je to poslední, co by mělo AMD trápit, protože výkon je více než dostatečný. Architektura VLIW5 je tedy pro starší hry vhodnější, ale GPU se dívají převážně dopředu a nikoli dozadu. V praxi jsme ale třeba viděli Crysis 2 pod DirectX 9, kdy nové Radeony byly výrazně rychlejší.
Druhou nevýhodou je fakt, že nyní jsou transcendentální operace svázány s vektorovými operacemi (jinými slovy zatěžují 3 ze 4 jednotek schopných vektorových operací). AMD věřilo, že T operace jsou natolik ojedinělé, že případná ztráta výkonu při jejich vykonávání stojí za tento menší ústupek. Praxe předpokladům AMD dala poměrně za pravdu a nikde jsme v průběhu minulého roku neviděli v praxi zásadní výkonnostní problémy Radeonů HD 6900. Často lze naopak srovnat výkony Radeonu HD 6970 s dražší GeForce GTX 580, která si výkonnostní trůn jednočipových karet ale uhájila a korunu jí sebral až Radeon HD 7970.
VLIW4 měla být pro společnost AMD budoucnost minimálně na 2 roky, protože jen těžko by zbrusu novou architekturu poslalo do důchodu po jediné a navíc poměrně úspěšné generaci GPU. Nestalo se tak a všechny předpoklady byly liché. Máme zde ani ne rok po uvedení VLIW4 zcela průlomovou architekturu Graphics Core Next a vůbec první 28nm GPU. VLIW4 bude zřejmě přežívat dále u levnějších karet, kde nebudou takové nároky na jejich univerzální vlastnosti. Z low-endu by tak mohla pomalu ale jistě vytlačit třeba architekturu VLIW5.
Menší ohlédnutí za minulými architekturami nebylo v tomto článku samoúčelným zabíráním prostoru, ale jakýmsi prequelem k další kapitole, která snad bude díky tomuto ohlédnutí srozumitelnější a pochopitelnější.