Nová architektura od ATI (Radeon HD 4800) Datum: 26.11.2008 Vypracoval: Bc. Radek Stromský
Použité zkratky GDDR5 - Graphics Double Data Rate, verze 5 GPU - Graphic Processing Unit ALU - Arithmetic Logic Unit - Aritmeticko-logická jednotka TMU - Texture Mapping Unit SIMD - Single Instruction, Multiple Data GPGPU - General-Purpose computing on Graphics Processing Units FCU - Flow Control Unit FP MAD instrukce - floating-point multiply-add instruction - násobení a sčítání čísel s desetinnou čárkou ROP - Raster Operation Processor FSAA - Full-Scene Anti-Aliasing MSAA - Multi-Sample Anti-Aliasing CFAA - Custom Filter Anti-Aliasing
Úvod Na přelomu jara a léta tohoto roku společnost AMD/ATI uvedla na trh novou řadu grafických karet s čipem RV770. Grafické karty s tímto čipem jsou označovány číslováním zažitým již z předchozí generace, a to ATI Radeon HD 4800, kde první číslo reprezentuje generaci architektury, druhé označuje rodinu karet a poslední dvě čísla specifikují konkrétní model grafické karty. Zároveň s odhalením nové architektury AMD/ATI uvedla dva modely karet osazeny tímto processorem: levnější varianta ATI Radeon HD 4850 a o trochu dražší ATI Radeon HD 4870 s vysokorychlostní pamětí GDDR5. Jádro RV770 obsahuje 956 mil. tranzistorů. Pro porovnání, Nvidia GT200 obsahuje 1.4 bilionu tranzistorů. GPU od Nvidie je však vyráběno méně sofistikovaným 65nm výrobním procesem s větší složitostí a velikostí čipu. To v konečném důsledku znamená vyšší náklady na výrobu a samozřejmě vyšší cenu konečného produktu. Frekvence procesoru byla oproti předchozí generaci (RV670) snížena a to především z důvodu vyšší složitosti nového jádra. To by však neměl být problém, protože jeden z rysů nové architektury je zvýšený počet výpočetních(ALU) a texturově-mapovacích jednotek(TMU). GPU obsahuje 800 aritmetickologickych jednotek oproti předchozí verzi, která jich měla pouze 320. Počet TMU se zvýšil z 16 na 40. Dále by bylo dobré poznamenat, že Radeon HD 4800 využívá vysokorychlostních pamětí DDR5, jenž pomohou dosáhnout vysoké datové propustnosti a to bez nutnosti rozšiřování paměťové sběrnice, jak tomu bylo v předchozí generaci. Jednotky pro rastrové operace byly také vylepšeny. Jejich počet zůstává při starém (16 jednotek), ale jejich efektivita při výpočtu Z-Bufferu byla zdvojnásobena. RV770 dokáže zpracovat 64 Z-hodnot během jednoho hodinové cyklu. Předchozí RV670 zpracovala za jeden hodinový cyklus 32 Z-hodnot.
Architektura Jak můžeme vidět na obrázku č.1, systém přístupu k paměti si ponechal podobu architektury předchozí generace, avšak již se nejedná o kruhovou topologii. Každý paměťový řadič je úzce spojen(obousměrně) s řadičem následujícím, kruh však není dokončen. Rozhraní paměti je stále umístěno v blízkosti čipu a funkční jednotky, které jsou na pamětech vysoce závislé, jsou umístěny poblíž.
Obrázek č.1
Jádro obsahuje přepinač spojující jednotlivé jednotky, které nejsou citlivé na paměťovou propustnost, jako je například rozhraní PCI Express, CrossFireX, UVD2 video-procesor, zobrazovací řadiče atd. Podle ATI bylo využití paměťových systémů u předchozích Radeon HD GPU okolo 85%. Optimalizace realizované v RV770 zvyšuje efektivitu GPU téměř na 100%. To dohromady s rychlými paměťmi GDDR5 umožňuje dělat nové grafické karty bez potřeby širší paměťové směrnice či složitých desek s tištěnými spoji.
Ultra větvený plánovací procesor 3.0 Plánovač úkolů je klíčovou komponentou každého moderního GPU. Úkolem plánovače je rovnoměrně distribuovat celkové zatížení mezi dostupné prostredky GPU, tak aby se dosáhlo co nejvyššího výkonu. První plánovač úkolů se objevil v ATI RAdeon X1000 serii, kde plánovač mohl kontrolovat až 512 větví kódu s 16 pixely v každém z nich. Druhá verze plánovacího procesoru byla uvedena v Radeonu HD 2000. Ten dokázal zpracovat více kódových větví s vyšší efektivností, a to díky tomu, že minimální velikost větve byla snížila z 16 na 5 pixelů.
Obrázek č.2 Pro zatím neexistuje žádná přesná informace o změnách plánovacího procesoru u RV770, co však je zřejmé, že množství rozhodovacích a třídících řadičů byl zvýšen spolu s množstvím SIMD polí. Mimo jiné, každé SIMD pole nyní může používat data z polí jiných, které vyžadují jisté úpravy plánovacího algoritmu. Dále pak sebou nové architektura Radeon 4800 přináší řadu GPGPU optimalizací, které mohou také představovat změny v operacích plánovače.
Kdy se 160 rovná 800? Výpočetní část čipů R600 a RV670 obsahovala 64 univerzálních jednotek, z nichž každá měla pět ALU, jedno FCU a pole registrů pro všeobecné účely. Čtyři z pěti ALU byly víceméně jednoduché, schopné provest jednu FP MAD instrukci. Pátá ALU byla komplexní, schopna zpracování takových instrukcí jako jsou SIN, COS, LOG, EXP, atd. Ve skutečnosti však byla každá výkonná jednotka procesorem s pětistavovým pipeline. Teoreticky, GPU obsahuje 320 výkonných jednotek. Toto byla pravda pouze v případě, kdy všech 64 pipeline bylo zatíženo, což se převážně nestávalo. Většina operací v 3D aplikacích závisí na výsledku operací předchozích, takže je těžké držet pipeline stále zatíženou. Proto bylo potřeba provádět optimalizace specifické pro jednotlivé aplikace pomocí ovladače Catalyst. Často je však nemožné získat přístup ke kódu 3D aplikace, dříve než je oficiálně vydána. Následkem toho se architektura ATI Radeon HD často ocitávala v situacích, kdy byla z každé výkonné jednotky využita pouze jediná ALU a tím zaostávala za konkurenčním řešením G80/G92 od společnosti Nvidia. Později nejen že měla víc nezávislé výkonné jednotky, ale také pracovala ve vyšších frekvencích. Vytvořením RV770, ATI vyřešila problém potenciální neúčinnosti superskalární architektury tou nejjedodušší cestou - zvýšením počtu výkonných jednotek z 64 na 160. To znamenalo větší počet tranzistorů v jádru, avšak 55nm výrobní proces napomohl udržet velikost jádra na rozumné hranici. Samotná architektura jednotek se příliš nezměnila. Každá jednotka má stále pět ALU, jednu FCU a několik registrů.
Obrázek č.3 ATI tvrdí, že výkonné jednotky jsou nyní o 40% více efektivní, avšak brutální nárust počtu jednotek je již dostatečně velký na to, aby byl Radeon HD 4800 konkurencí dokonce i za nepříznivých podmínek. Jak bylo zmíněno výše, je zde mnoho dalších změn na úrovni topologie jádra. S částečně ponechanou kruhovou topologií, náhrada funkčních jednotek byla optimalizována. Výkonné jednotky v RV770 byly spojeny dohromady s deseti SIMD jádry (předchozí GPU mělo čtyři takové jádra) s 16 moduly (80 ALU jednotek) v každém jádru. Viz obrázek č.4.
Obrázek č.4 Každé výkonné jádro má určenou ovládací logiku, 4 TMU a L1 vyrovnávací paměť. Jádra mohou komunikovat lokálně stejně tak i globálně. Poměr výpočetních a TMU (texture-mapping units) jednotek zůstává stejný, a to 4 ku 1, což je považováno u ATI za optimální.
Texturové procesory a vyrovnávací paměti Systém texturových procesorů byl hlavní jizvou grafických karet s jádry R600 a RV670. Systém obsahoval pouhých 16 texturových procesorů seskupených do čtyřech velkých bloků. To nebylo dostatečné množství i když v moderních hrách převládaly matematicky náročné speciální efekty nad textury s vysokým rozlišením a to hlavně z důvodu multiplatformní povahy mnohých projektů. Navíc ke každé texturově-adresní jednotce náležela pouze jedna filtrovací jednotka, což snižovalo efektivitu texturových procesorů v době filtrování textur, obzvláště při anisotropním filtrování. Anisotropního filtrování je dnes široce využíváno a je velice nepravděpodobné, že by se od něj v budoucnosti upustilo. Proto se vývojáři od ATI rozhodli model RV770 obohatit o další texturové procesory.
Obrázek č.5 Texturové procesory mají od základu nový design. Každá TMU nyní obsahuje 16 FP32 texturových vzorkovačů, 4 adresní jednotky a 4 jednotky pro filtrování. Efektivita vzorkování se zdá být nízká, to je však kompenzováno dvojnásobnou propustností sběrnice mezi TMU jednotkami a vyrovnávacími paměťmi. ATI dokázala zvýšit rychlost filtrování 32-bitových textur 2,5krát a u 64-bitových textur 1,5krát.
Texturové procesory jsou stále sjednoceny do velkých modulů se čtyřmi TMU. Každý z těchto modulů obsluhuje jeden z deseti SIMD jáder. TMU jednotky byly optimalizovány tak, aby obsahovali méně tranzistorů a aby příliš nezvyšovali celkovou velikost GPU. Systém vyrovnávacích pamětí je velmi důležitou součástí systému zpracování textur a při vývoji RV770 prošel několika změnami - viz obrázek č. 6.
Obrázek č.6 Vyrovnávací paměti jsou nyní rychlejší. Rychlost načítání textur z L1 vyrovnávacích pamětí je nyní neuvěřitelných 480GBps. Paměti L1 a L2 spolu mohou komunikovat rychlostí až 384GBps. Každé SIMD jádro má přiřazenou paměť L1 pro efektivní ukládání dat. Paměti L2 jsou koordinovány s paměťovým řadičem. V RV770 existuje samostatná vyrovnávací paměť pro skladování vertexových dat. Všechny tyto vylepšení nejsou tak viditelné jako vylepšení u texturových procesorů. I přesto se tyto rysy významně podílí na celkovém výkonu Radeonu HD 4800 ve většině her. Nové GPU od ATI se jednoznačně zbavilo problémů s texturovými procesory, které u předchozích generací způsobovaly rapidní snížení výsledného výkonu. Řešení architektury GPU od ATI má hlavní plus v tom, že se snaží architekturu optimalizovat namísto pouhého zvyšování množstí prostředků.
Rastrové procesory Rastrové procesory, v ATI terminologii tzv. "Render back-ends" (RBEs), nikdy nebyly slabým místem Radeon HD architektury. I přesto byli u RV770 v této oblasti zaznamenány určité vylepšení. Množství těchto jednotek se nezměnil. Čip obsahuje 4 rastrové procesory ekvivalentní s 16 klasickymi ROP procesory.
Obrázek č.7 Cílem vývojářů bylo zvýšení výkonu při provádění antialiasingu ve full-screen modu a zvýšit efektivitu při zpracovávání Z-bufferu/stencil bufferu (šablonová paměť). Proto byl počet příslušných pod-jednotek zdvojnásoben.
Obrázek č. 8
Výsledkem modernizace bylo zdvojnásobení rychlosti tvorby scény se zapnutým FSAA jak pro 32-bitovou tak i pro 64-bitovou barevnou hloubku, kdy se počet zpracovaných Z/stencil hodnot za hodinový cyklus zvýšil z 32 na 64. To je víc než dokáže zvládnout G92 při zapnutém FSAA. Rastrové procesory u RV770 podporují režim pevného multisamplingu včetně zajímavého režimu, který kombinuje klasické MSAA s anti-aliasingem hran, tak aby se dosáhlo stejné úrovně jako při 12-24x MSAA. Tento režim byl uveden již dříve v Radeonu HD 2000. Dříve známy režim CFAA(Custom Filter Anti-Aliasing) zaměstnával filtry vzorkováním ostrosti přechodů z pixelu na pixely okolní (vyjma pixelů hran polygonů). Toto vylepšilo celkovou kvalitu obrazu, avšak obraz byl rozmazaný. Režim detekce hran u CFAA pomáhá zamezit rozostření obrazu.
Obrázek č. 9
Programovatelný vzorkovací filtr tohoto režimu je nastaven takovým způsobem jako u vzorku pod-pixelů v okolí hrany polygonu. To zlepšuje kvalitu antialiasingu, obzvláště u malých detailů jako je visící kabel, ale bez nežádoucího rozostření, typického pro méně chytrý CFAA algoritmus. Spotřeba paměti je stejná jako u obyčejnéch 4x/8x MSAA režimů. Je dobré poznamenat, že nový CFAA režim je možné používat i na starších Radeon HD kartách.
Závěr ATI RV770 se zrodila z myšlenek, které byly poprvé uvedeny v R520/R580, implementovány v R600 a RV670 a zdokonaleny téměř do ideální podoby v třetí generaci ATI procesoru podporujících DirectX 10. Je důležité pochopit, že vývoj RV770 z R600 je logický proces kombinující vyšší kapacitu a optimalizaci architektury. Tento přístup dává ATI Radeon HD 4850 mnohem větší potenciál než konkurenční NVidia GeForce 9800 GTX na stejné výkonostní úrovni, jenž má značně jednodušší a více kompaktní návrh a hlavně nízkou doporučenou cenou $199 - díky relativně malé velikosti čipu. V době kdy byla Nvidia GeForce 9800 GTX vypuštěna do oběhu, byla výrobcem doporučená cena stanovena na $349, a když cena této objemné a komplexní grafické karty dramaticky spadla dolů, Nvidia a její partneři jen s těží prosperovali na prodeji těchto modelů. Ovšem fakt, že ATI RV770 má 956 milionů tranzistorů zatím co Nvidia G92 jich má jen 754 milionů naznačuje vyšší složitost nově přicházejícího modelu. Vypadá to, že ATI vskutku přidala podporu praktického využití DirectX 10.1, hardwarový tessellator, zabudovaný zvukový ovladač a další vylepšení. Kromě důležitého herního potenciálu - jednoduchý design a nízká cena, ATI Radeon HD 4850 se může chlubit množstvím unikátních vlastností, které její hlavní konkurent opomíná. Zejména podpora DirectX 10.1, dekódování VC-1, pokročilé BD profily a plně funkční audio jádro, schopné produkovat vícekanálový HD zvuk. To dělá ATI Radeon HD 4850 ideálním řešením pro digitální media centra s pokročilými multimediálními možnostmi a výborným herním výkonem.
Reference http://www.xbitlabs.com/articles/video/display/ati-radeon-hd4850.html