Technologie RV770: jak vznikl Radeon HD 4800

0

Ortonova věta a zmatený profesor

I pokročilí uživatelé se na diskusních fórech ptají, čím to je, že RV770 nese tolik výpočetních jednotek, ačkoli oproti své předchůdkyni rozměrově příliš nenabyla. Proč v některých hrách podává dvojnásobné výkony, zatímco jinde je rozdíl sotva deset či dvacet procent, nebo co přimělo ATI opustit osvědčený koncept programovatelného řadiče ring-bus. RV770 je nepochybně nejzajímavější změnou, která přišla od doby G80 a R600, takže pokud vás zajímá, co přineslo dva a půl roku vývoje od dokončení R600, čtěte dál…

RV770 pod kouřovou clonou

Ještě dřív, než přistoupím k samotným technologiím, bych rád nasypal kbelík popelu na hlavu PR oddělení ATI. Naopak pochvalu si zaslouží oddělení marketingu, které se tentokrát zablýsklo a před vydáním nových Radeonů dokázalo připravit a zrealizovat takovou kouřovou clonu z falešných specifikací, nepravdivých „leaků“ a smyšlených slajdů, že i v okamžiku, kdy již byly oficiální specifikace venku, jim stále polovina uživatelů odmítala uvěřit a raději si počkala na recenze. Není divu. Pokud garant projektu Folding@Home Dr. Vijay Pande (který má přístup k nejnovějšímu hardwaru ATI) na veřejném fóru prohlásí, že RV770 nese 480 stream procesorů a následně svůj příspěvek o tento údaj zcenzuruje, působí to věrohodně i na opravdové veterány, kteří už nějaký odhad na pravdivost či smyšlenost uniklých informací mají.

We’ve been very much keeping the new hardware in mind. Note that the high end board has 480 SP’s (960 is for the X2, which means that we could hopefully run 2 copies of FAH on that once everything gets worked out).

Dr. Vijay Pande, 5. května 2008, http://foldingforum.org/

Takových informací ale bylo mnohem víc. Takže by nikoho nenapadlo, že ATI, která v minulých letech nebyla schopna utajit prakticky nic (např. parametry R580 – Radeonu X1900 – byly venku skoro tři čtvrtě roku před vydáním), by najednou byla schopna takovéhle monstrózní akce. Od důvěryhodného zdroje vím, že technologické stránky marketingu vydání RV770 se ujal Dave Baumann, bývalý šéfredaktor serveru Beyond3D a současný technical marketing manager ATI.

Baumann mohl těžit z letitých zkušeností s chodem magazínu a fóra, a proto přesně viděl, jak vydání nových produktů hodnotí uživatelé, jakým zdrojům spíše věří a na čem zakládají své spekulace… Tudíž mohl nabourat přesně tato citlivá místa a s jednoduchou elegancí vytvořit totální chaos. Zda budete Baumannovu akci obdivovat, nebo zatracovat, ale nechám na vás.

Prvotní vize

Možná si také vzpomenete na prezentaci Davea Ortona na téma GP-GPU, ve které před vydáním R600 zmiňoval čip s 96 aritmeticko-logickými jednotkami (~480 SP). Původní domněnka byla, že se zmínka týká R600 (HD 2900), ale to bylo vyvráceno ještě před vydáním. Ve skutečnosti se měla týkat čipu R650, který se ale nikdy nedostal do výroby.

Památná věta Davida Ortona ze stream-computing semináře z konce roku 2006:
„Today it’s 48, in the future maybe it’s 96“
Orton tehdy mluvil pravdu, ale s čipem R650 vše nakonec dopadlo jinak.

Namísto toho byl vydán RV670 (HD 3800) a vývoj R650 pokračoval dál. Eric Demers, šéfinženýr vývoje R600, zpětně prohlásil, že následníkem R600 skutečně měl být čip s 96 ALU (~480 SP), kde byl důraz kladen na maximální zjednodušení návrhu při plném zachování funkčnosti, ale nakonec vše dopadlo jinak. Zeštíhlení čipu se dařilo lépe, než se původně očekávalo, takže z původních 150% R600 se stalo 200%, tedy 128 ALU (640 SP) a vývoj pokračoval. Po dalších úpravách, které souvisely i s podporou GDDR5, byl ale čip příliš malý na to, aby se na něj potřebný počet „pads“ (kontakty mezi křemíkem a balením čipu), což bylo vyřešeno zvětšením čipu o poslední dva bloky (~250 % R600).

Průběžné změny ve specifikacích produktu též jistě dělaly své – pokud se ke konkurenci nebo k novinářům nějaké informace dostaly, nemusely být už dávno pravdivé a pomohly tak informační chaos ještě znásobit.

Mezi tyto informace patřila i zmínka, že RV770 bude jen mírně vylepšenou RV670. To samozřejmě také nebyla pravda, jenže PR oddělení tohle trochu zanedbalo a nestihlo během vydání tuto informaci uvést na pravou míru. Ačkoli jsou některé změny mezi R6xx a R7xx větší, než mezi R5xx a R6xx, má vinou této laxnosti stále mnoho uživatelů nový čip v povědomí jako RV670 s vyšším množstvím výpočetních jednotek.

Mohl mít Radeon HD 4800 Intel?

RV770 ve vývoji

Pojďme to tedy probrat postupně. Dva a půl roku zpět byl ustanoven šéfinženýrem nového projektu Scott Hartog. Cílem bylo stavět na architektuře R600, ale provést vše, co by vedlo ke zvýšení efektivity, přizpůsobení aktuálním 3D aplikacím a zvýšení výkonu při minimálním nárůstu plochy čipu.

Výlet do historie

Se jménem Scott Hartog se v souvislosti s ATI možná setkáváte prvně. Ve skutečnosti ale patří k týmu už velmi dlouho. Do ATI se dostal ze společnosti Real3D s mezipřistáním u Intelu.

Pokud se vrátíme více než deset let zpět, někam do roku 95-96, všimneme si, že se společnost Intel, která s grafikou neměla ještě zcela nic společného, rozhodla tento stav změnit a nenechat nový trh s obrovským potenciálem ostatním výrobcům (tehdy převážně 3Dfx, ATI, Matrox a S3). Bez váhání odkoupila od gigantu Lockheed-Martin jeho grafickou divizi Real3D a použila jí k vytvoření od základu nového 3D jádra, které doplnil návrh 2D akcelerátoru od Chips & Technologies.

Ideou Intelu bylo vytvořit co nejjednodušší a nejefektivnější 3D akcelerátor těžící z předraženosti rychlých grafických pamětí, které z 3D grafiky vytvářely špás pro horních deset tisíc.

Podstatou celého nápadu bylo využít Intelem chystanou novou grafickou sběrnici AGP, která podporovala technologii AGP texturing. Tato technologie umožňovala grafickému čipu sahat si pro textury do systémové paměti (většina výrobců toho později využívala tak, že AGP texturing byl použit až v okamžiku, kdy kartě nestačila její vlastní paměť).

Intel měl ale jiné plány. Chtěl na grafikou kartu osadit pouze minimální množství paměti potřebné pro 2D a ukládání rozkresleného 3D obrazu (frame-buffer) a veškeré textury držet v systémové paměti. 3D pipeline nového čipu byla od základu postavena na výhradní využití AGP texturingu, byla mnohem delší, než u ostatních 3D akcelerátorů té doby, aby mohla efektivně vyhlazovat latence způsobené přenosem textur po sběrnici. Minimální množství paměti a jednoduchý design čipu měly čipu zaručit takový poměr cena/výkon, jakým by Intel bez problému převálcoval veškerou konkurenci.


Intel 740 8MB AGP od společnosti I/O Data

Pokud si tuto dobu pamatujete, asi vás napadne, že mluvím o čipu i740. A asi vás také napadne, že ten nijak úspěšný nebyl – šlo o propadák. Co se stalo? Idea byla dobrá, čip fungoval, jak se očekávalo, jenže došlo k obrovskému propadu cen rychlých pamětí a z výhody i740 se stala nevýhoda. Kdo by chtěl čip se 2 MB paměti, když se dostupným standardem stalo 4-8 MB? Pro Intel nebylo problém kapacitu paměti zvýšit, jenže to k ničemu nevedlo. Texturovací jednotka byla přímo napojena na AGP řadič, takže textury mohla tahat pouze po AGP a nikoli z lokální paměti grafické karty.

Zatímco se ostatním výrobcům přechodem na 4-8 MB zvýšil výkon, Intelu paměť navíc zvýšila pouze výrobní náklady, protože byla prakticky nevyužitelná. Z i740 se stal výprodejový produkt vhodný tak do kancelářských sestav, Intel svému čipu nevěnoval prakticky žádnou softwarovou podporu a uživatelé nový produkt pomalu ani nezaznamenali. Kvanta vyrobených kusů se dala udat jen těžko – pro drahou AGP platformu si uživatelé raději pořizovali výkonné akcelerátory a pro PCI se i740 vůbec nehodil. Čip uměl načítat textury jen po AGP sběrnici, takže PCI varianta karty musela být vybavena přídavným AGP můstkem, na který byla napojena paměť pro textury, do které byly přesouvány přes PCI řadič po PCI sběrnici. Tyto čipy zvyšovaly cenu PCI karty natolik, že se stala neprodejnou.

Intel tehdy majoritu 3D vývoje rozpustil a minimální část grafické divize ponechal pouze pro úpravu i740, která byla integrována do čipsetů pro nové základní desky pod názvem i752, kde ještě velmi dlouho žila (s různými úpravami z ní vycházely všechny následné integrované čipy Intelu včetně Intel Extreme Graphics).

Ačkoli Intel považoval i740 za neúspěch, kvůli kterému to v herním průmyslu na dlouho úplně zabalil, dostal tento malý čip Intel velmi rychle na pozici světově největšího výrobce grafických čipů, kterému v kvantitě nemohla konkurovat ani S3 a později ani ATI s Nvidií. O této budoucnosti Intel neměl ani tušení a divize vzniklá z Real3D byla rozpuštěna (trochu paradox – design i740 musel za celou svou historii vydělat nejvíce peněz ze všech grafických čipů). „Odejití“ inženýři našli přístřeší u ATI a první ucelený výsledek jejich práce pro Kanaďany znáte pod názvem Xenos.

Zpět do třetího tisíciletí

Asi už vám je jasné, že Scott Hartog byl spoluautorem návrhu Intel i740, projektu Xenos pro Xbox 360 a nyní i RV770. Hartog vyšel z čipu R600 Erica Demerse. R600 je nyní prezentován jako ukázka toho, v co může vést shoda špatných okolností v kombinaci s technologickým „přestřelením“ nad požadavky her doby, pro kterou je čip určen. Nás teď ale R600 zajímá jako čip, jehož architektura byla připravena pro snadnou adaptaci nových technologií (předvedla již RV670) a úpravu jednotlivých funkčních bloků (ATI má několik vývojových týmu, přičemž každý pracuje na jiné části čipu; jednotlivé bloky je pak možné změnit, aniž by kvůli tomu bylo potřeba přestavět celou architekturu).

2005: ATI Xenos, grafické jádro konzole Xbox 360

Hartog se rozhodl, že silné stránky a výhody R600 ponechá, ale všechny části čipu určené pro velmi specifické operace upraví tak, aby tyto operace mohly být prováděny i nadále, ale zároveň byly využity pro širší spektrum účelů.

Texturovací jednotky, stream procesory

Změny v čipu

R600 byla v začátcích vývoje koncipována jako čip, který v budoucnu neporoste „do šířky“ (nezvýší se počet quadů – tzn. bloků se čtveřicí výpočetních jednotek a příslušnými ALU), ale spíš do délky (zvyšování poměru ALU:TEX). A postupnými úpravami bude stále více optimalizován pro použití na vícečipových kartách. Konfigurace R600 tedy byla nastavena tak, aby vkládání dalších ALU nezvyšovalo komplexnost řídících obvodů a tím i rozměry čipu.

Nakonec se ale ukázalo, že nároky na aritmetiku nerostou tak rychle, a že spíš než aritmetický výkon je potřeba navyšovat výkon celkový. Hartog se rozhodl přeskupit SIMD takovým způsobem, aby odpovídaly tomu, co jsme až doposud nazývali quady. Tím bylo zaručeno, že se čip může rozšiřovat o celé výpočetní bloky s daným poměrem ALU:TEX a přitom nijak drasticky neporoste komplexnost řídící logiky.

Texturovací jednotky a restrukturalizace SIMD bloků

Narostl však počet texturovacích jednotek – což byl v podstatě cíl celého procesu, jenže texturovací jednotky R600 byly obrovské. Jak jsem zmínil, počítalo se, že jich dlouho nebude třeba více než 16, takže byly navrženy tak, aby při počtu 16 dávaly maximální možný výkon a byly maximálně využitelné. Nejvíce tranzistorů na nich zabírala podpora FP16 filtrace v jediném taktu. Formát FP16 byl nativním texturovým formátem R600, takže veškeré „obyčejné“ osmibitové textury převáděla před zpracováním do formátu FP16.

Dalším specifikem texturovacích jednotek R600 byly tzv. sampling units (samplery). Samplery měly za úkol zpracovávat všechny textury, kde není třeba filtrace – to znamená např. vertex texturing (displacement mapping – zvlnění povrchu podle výškové textury), různé alpha-textury (průhledné povrchy), post-efekty a techniky využívající renderingu do textury (generování textury o rozlišení stejném, jako má vykreslovaný obraz, která je použita pro různé post efekty).

V moderních hrách je z celého texturingu těchto operací až 25 % a cílem samplerů bylo vzít je všechny na sebe, aby jimi nebyly bržděny samotné texturovací jednotky a mohly se plně věnovat filtraci. Aby bylo zajištěno, že opravdu žádná texturovací jednotka nebude jakkoli zahálet, měly všechny ALU přístup i k texturovacím jednotkám, které k nim primárně nenáležely (texturová cache byla zřejmě sdílena přes ring-bus).

Jakkoli skvěle tento koncept vypadá, nedokázal se téměř uplatnit, protože se FP16 texturing i nefiltrované operace (vertex texturing) ve hrách rozšiřovaly mnohem pomaleji, než se očekávalo, takže z pohledu her z doby vydání R600 šlo o architekturu úžasnou pro 10 % aplikací, vhodnou pro 40 % aplikací a nevhodnou pro 50 % zbývajících.

texturovací quad-blok ATI R600

texturovací quad-blok RV770

samostatné samplery s příslušnými adresovacími jednotkami byly vypuštěny (dvě horní čtveřice na schématu R600) – z diagramu ale už není patrno, že podpora pro FP16 filtraci v jednom taktu byla vynechána taktéž

Hartog se rozhodl toto rozložení otočit, takže vypustil full-speed FP16 filtraci a důraz vrátil na Int8 filtraci (klasické osmibitové textury). FP16 filtrace je pak prováděna ve dvou taktech. Aby tím nebylo penalizováno těch 10 % her, které ji intenzivněji využívalo, je výkon kompenzován 2,5× vyšším počtem jednotek oproti R600 (např. Serious Sam 2). Ve zmíněné menšině her je texturing engine RV770 o 25 % efektivnější, než R600, zatímco ve většině her je efektivnější o 150 %. Mezi typické aplikace využívající FP16 filtraci patřil 3DMark06 – to jen na vysvětlenou, proč výkon v této aplikaci vzrostl minimálně, zatímco ve hrách jsou rozdíly zcela jinde.

Protože je texturovacích jednotek hodně, pozbyly samplery smysl a protože by konzumovaly z jádra více, než kolik výkonu by přinesly, byly prostě vypuštěny. Další změnou (a návratem blíže R5xx, či dokonce R3xx) je opětovné rozdělení obrazu na čtverce, z nichž je každý vykreslován jedním výpočetním blokem (quadem či SIMD-em, chcete-li).

To má za následek, že je mezi výpočetními jednotkami potřeba sdílet pouze texely, které leží na rozhraní těchto čtverců. Sdílení texturovacích jednotek pro všechny ALU logicky padlo – každý SIMD používá pouze ty své, čímž se návrh čipu ještě zjednodušil. Pro sdílení texelů z hraničních oblastí stačí jednoduchý crossbar řadič mezi L1 a L2 (v případě R600 bylo třeba sdílet mnohem vyšší množství texelů, což výrazněji vytěžovalo L1 cache).

5D ALU: SP i nadále v pěticích

Primární „tlustá“ SP zůstala beze změny, ale celočíselné operace nově zvládají i “hubené“ jednotky

Zatímco celkové uskupení výpočetních jednotek bylo upraveno tak, aby mohl být čip co nejefektivněji rozšířen a texturovací jednotky byly upraveny tak, aby byly výhodné pro co nejvyšší množství aplikací, zůstaly samotné aritmeticko-logické jednotky (ALU) bez výraznější změny.

ALU jsou nadále superskalární 5D jednotky – tzn. složené z pěti SP. Primární z nich i nadále umí „navíc“ speciální funkce, ale nově byly všechny vybaveny pro celočíselné operace. Jejich podporu v čipu vyžaduje specifikace DirectX 10, takže by se mohlo zdát, že dojde k nárůstu výkonu v nějakém specifickém DX10 kódu, ale ve skutečnosti jde o vylepšení podpory pro GP-GPU.

RBE, spojitost s Xenosem, anti-aliasing skoro zadarmo

Render back-ends (RBEs, ROPs)

Největší pozornost od vydání R600 upírala většina uživatelů k ROP. Není divu – ATI byla pět let leaderem v anti-aliasingu a ačkoli R600 přinesla některé zajímavé změny, nemohlo to nijak vynahradit vyšší propady výkonu způsobené změnou ve finálním zpracování dat při FSAA.

Resolve (neboli vyhodnocení dat jednotlivých vzorků na jehož základě je určena finální barvy vyhlazeného pixelu) podporovaly starší čipy jako R300 až R580 na úrovni ROPs fixně. DirectX 10 a 10.1 ale vyžadovalo korektnější metodu anti-aliasingu, která nevytváří artefakty v kombinaci s HDR; zároveň je vyžadována podpora pro programovatelný resolve filtr, takže se ATI s R600 rozhodla fixní resolve na úrovni ROPs nahradit zpracováním resolve průchodu pomocí shader core (ALU), čemuž uzpůsobila i design čipu. Tím byla tzv. „fast-path“ (~ rychlá cesta) mezi ROP a shader core.

Standardně by totiž data musela přes grafickou paměť, zatímco použití „fast-path“ znamenalo přesun dat pouze na úrovni čipu (přes ring-bus).  Bohužel, ROPs R600 byly silně poddimenzované vzhledem k použité sběrnici a tato metoda byla efektivní opět jen v určité situaci – konkrétně při FP16 renderingu, pro který byl R600 od základu postaven.

ROP (RBE) blok R600
Z/Stencil operací zvládala R600 2x více, než R580. Při FSAA se ale výkon nezlepšil. R600 zaznamenává výrazný propad při zapnutí MSAA (2x) – použití více vzorků (4x/8x) už ale další extrémní propady neznamená

Hartog se rozhodl, že zkombinuje to nejlepší z R600, přidá to nejlepší z R580 a Xenosu a výsledný koktejl ještě ozdobí několika třešinkami. ROPs R600 tedy byly doplněny o fixní resolve pro základní režimy FSAA s box filtrem (2×, 4×, 8×), podobně, jako je podporovala R580. Oproti R580 a R600 byl navíc zdvojnásoben výkon při generování MSAA vzorků (a la Xenos), což v kombinaci s rychlým resolve a vysokou datovou kompresí, kterou přinesla R600 a nově i podporou GDDR5, přineslo ty nejnižší propady výkonu při FSAA, jaké jsou dosud v PC grafice známé.

Hartog šel ale ještě dál. Podporu pro shader-based resolve vylepšil implementací nového paměťového řadiče (viz další odstavec), který oproti původnímu ring-bus konceptu snížil latence a tím i propady ve výkonu při tomto režimu. Procentuálně lze říct, že HD 4870 má s FSAA 24× takový propad výkonu, jaký měl Radeon HD 3870 s FSAA 8×.

(zde je nutné použít ovladače Catalyst Hotfix pro HD 4800 / 8.501.1 nebo novější, které umožnily využít potenciálu edge-detect režimů a zvyšují výkon za jeho použití až o 70 %)

ROP (RBE) blok RV770
Zdvojnásobený výkon v Z/Stencil operacích dostupný i pro FSAA, užší vazba na paměťovou sběrnici, hardwarový resolve pro fixní režimy a odstraněné limity v podobě poloviční efektivity ROPs při režimech 2x a 4x vynesly po dvou letech ATI zpět na pozici výkonnostního FSAA leadra

Z kvalitativní stránky se toho příliš nezměnilo – režimy 2×, 4× a 8× používají tradiční box filtr, který pro resolve využívá pouze vzorků náležících danému pixelu. Režimy s tent-filtrem i nadále využívají nejbližší vzorky ze sousedících pixelů, čímž zvyšují efekt vyhlazení, ale u her s vysoce detailními texturami může být pozorováno snížení ostrosti.

Režimy edge-detect používají pro pixely na hranách oblak vzorků z okolních pixelů, takže je maximalizován efekt vyhlazení hran, ale pro všechny ostatní pixely je použit tradiční box filtr, takže nedochází k žádné degradaci ostrosti. Edge-detect filtr byl vylepšen nejen po výkonnostní stránce (je často rychlejší, než tent-filtr), ale údajně i po stránce kvality – ve specifických případech by měl přinést lepší výsledky (stále bez vlivu na ostrost textur). Vzhledem k tomu, že jde o filtr programovatelného charakteru, bych se ale nedivil, kdyby toto vylepšení bylo záležitostí nových ovladačů a vztahovalo se tedy i na starší produkty.

Osobně doufám, že bude nyní programovatelným filtrům věnována vyšší pozornost. Tent-filtr a i edge-detect filtr jsou díky výkonnostním vylepšením RV770 široce použitelné v méně náročných a starších hrách, kde je kvalitnější anti-aliasing jedinou možností, jak dále zvyšovat kvalitu obrazu.

Xenos měl ROPs integrované v křemíkovém bloku s EDRAM pamětí. Schopností vykreslovat stejné množství pixelů s FSAA (2×/4×) i bez něj velmi připomíná možnosti nových ROPs RV770. Xenos sice nabízí dvojnásobně rychlý přístup k paměti, ale na rozdíl od PC grafických čipů nepoužívá žádné kompresní algoritmy, takže sběrnicí více plýtvá

Kombinací rychlého hardwarového box-filtru a vylepšeným programovatelný filtrům se prakticky nemůže stát, aby došlo na situaci, kdy grafická karta nebude schopna použít nejoptimálnější možný režim pro každou hru, jako tomu bylo u R600.

Zde se ještě může hodit srovnání R580, R600, RV770 a Xenosu:

  Xenos R580 R600 RV770
bandwidth ROPs/Z-buffer 256 GB/s 50 GB/s 106 GB/s 115 GB/s
Z-vzorků bez AA v taktu 32
(64 bez barvy)
16 32 64
MSAA vzorků na pixel a takt 4 2 2
(při AA 4x/8x)
4
pixelů s AA 4x v taktu 8
(full-speed)
8
(half-speed)
8
(half-speed)
16
(full-speed)

Jak je zřejmé z tabulky, nabízí RV770 (podobně jako Xenos) možnost vykreslení 4 MSAA vzorků pro každý pixel v jediném taktu, takže MSAA 4× je do jisté míry zdarma. Samozřejmě jsou ale další limitující faktory, jako například propustnost pamětí, nebo (hlavně) nároky her na další Z-operace, kterými se ROPs vytíží a nebudou moci nabídnout plný potenciál svého výkonu pro MSAA (např. hra F.E.A.R., která zkonzumuje spoustu výkonu ROPs pro generování specifických stínů).

Paměťový řadič: hub, sideport a CrossFire naděje: Radeon HD 4870 X2

Paměťový řadič: Hub

ATI od doby R200 vystřídala celkem 4 typy paměťových řadičů:

typy paměťových řadičů (shora): crossbar, hybridní, symetrický ring-bus

Crossbar – nejstarší koncept. Všechny jednotky, které mají mít přímý přístup do pamětí, jsou připojeny ke všem paměťovým kanálům. Tento typ řadiče má nízké latence a při nízkém počtu klientů, které je třeba připojit, je i poměrně jednoduchý, ale čím více klientů a čím širší sběrnice, tím rychleji roste na komplexnosti. Protož propojujeme ve stylu „každý s každým“, narůstá jeho složitost s šířkou sběrnice kvadraticky, takže není výhodný pro široké sběrnice. Tento typ řadiče využívala ATI na čipech R200 – R480. Nvidia využívá crossbar od GeForce 4 dosud.

Hybridní ring-bus – koncept, který ATI zavedla na R520. Pro načítání dat byl používán ring-bus, pro zápis byl používám crossbar. Programovatelnost řadiče umožnila řídit přenosy efektivnějším způsobema eliminovat ty neefektivní.

Symetrický ring-bus – R600. Pro zápis i čtení je používán ring-bus. Výhodou je minimální nárůst komplexnosti při širokých datových sběrnicích.

Hub – RV770. RV770 zvýšila počet SIMD, takže narostl počet klientů, které je třeba připojit ke sběrnici. Ačkoli byl ring-bus efektivní při širokých sběrnicích, narůstala by jeho velikost s počtem klientů, které by musel spojovat. Proto ATI vyvinula nové distribuované řešení, které zakládá na podobných myšlenkách, jako ring-bus (centrální řízení s programovatelností), ale které je pro konfiguraci RV770 efektivnější.

Hub, side-port a CrossFire

Zatím nepříliš diskutovanou novinkou řadiče je CrossFire side-port, který bude sloužit pro efektivnější spojení čipů na duální HD 4870 X2.

Každá grafická karta, která používá dva čipy, potřebuje, aby oba měly přístup k PCIe sběrnici. To je řešeno většinou čipem navíc – PCIe řadičem nebo switchem. Oba grafické čipy se pak o sběrnici dělí. To znamená, že v okamžiku, kdy grafická karta nahrává textury do své paměti, musí dvoučipová karta nahrát textury do paměti každého z čipů, což zabere dvojnásobnou dobu.

Tyto dvojité přesuny textur jsou důvodem, proč bývají některé propady výkonu na dvoučipové kartě výraznější, než na jednočipové. U HD 3870 X2 to bylo ještě umocněno použitím PCIe 1.x řadiče (jednočipová HD 3870 byla PCIe 2.0 kompatibilní). Jak ATI přiznala, tento řadič PCIe 1.x nebyl optimální cestou (verze s podporou PCIe 2.0 nebyla v době příprav HD 3870 X2 k dispozici) – nejen, že X2 musí textury nahrávat 2×, ale vinou řadiče je nahrávala ještě 2× pomaleji, takže celý přenos mohl teoreticky trvat až 4× déle, než na samostatné HD 3870. Toto by se na HD 4870 X2 již nemělo opakovat a takto výrazné propady výkonu by měly být minulostí.

Novinkou čipu RV770 je CrossFireX Sideport. Z fotografií wafferu je patrné, že RV770 nese sběrnici, která je layoutem velmi podobná sběrnici PCIe (jakoby nesl dvě oddělené PCIe sběrnice). Mohla by být „druhá PCIe“ a tajemný Sideport jedno a totéž?

Nový řadič bude PCIe 2.0 kompatibilní a krom něj a tradičního CrossFire rozhraní bude čipy ještě spojovat side-port, který podle současně dostupných informací umožní sdílení některých dat mezi oběma čipy. Z toho vychází, že čipy budou spojovat celkem tři různé datové cesty.

Nezbývá, než si počkat, co nového tento přístup přinese. Bohužel, mnoho lidí odsuzuje HD 4870 X2 předem, ačkoli stále nevíme, do jaké míry bude lepší oproti HD 3870 X2. Nejčastějšími argumenty proti duálnímu řešení jsou:

  • inkonzistentní nárůst výkonu
  • polovina paměti na jedno GPU = méně vhodné řešení pro vysoká rozlišení
  • výraznější propady v minimech (FPS)
  • micro-stuttering
  • input-lag

inkonzistentní nárůst výkonu – tento argument v obecné podobě považuji za přežitek, který je stejně tak chybný, jako odvozování výkonu od šířky sběrnice, kapacity paměti, nebo frekvence čipu. Nvidia s čipy G94 a G92 jasně dokázala, že rozdíl mezi jednočipovou G94 a jednočipovou G92 (která má dvojnásobek výpočetních jednotek) je nižší, než rozdíl mezi G94 a dvěma G94 v SLI. Je samozřejmě pravdou, že profily pro CrossFire či SLI jsou nejpropracovanější v souvislosti s desítkou nejrozšířenějších her, jimiž se nejvíce testuje, ale ty zároveň patří k těm nejnáročnějším, přičemž majorita her z druhé ligy až na výjimky nemívá tak vysoké požadavky na výkon.

polovina paměti – kombinací vysokých kompresních technologií, nového řadiče a specifického memory managementu se ATI podařilo dosáhnout téměř nepochopitelné efektivity ve využitelnosti 512 MB. Zajímavý test provedli na serveru PCGH, kde Radeon HD 4850 s 512 MB paměti otestovali ve hře Oblivion s Quarl’s Texture Pack (přes 1,5 GB dat jen v texturách) v kombinaci s HDR, rozlišením 1920 × 1200, FSAA 8× a AF 16×. Přesto, že jde celkem o balík dat, který cca 4× překračuje kapacitní možnosti této karty, nezaznamenali redaktoři serveru propad výkonu oproti 768MB a 1024MB kartám, přičemž minimální framerate byl dokonce lepší (detaily: PCGH.de). 2× 512 MB paměti by nemělo být nijak výraznou brzdou.

výraznější propady v minimech (FPS) – ty jsou u vícečipových karet dány nutností kopírovat textury do pamětí obou čipů (tzn. 2×). Radeon HD 3870 X2 tento nedostatek umocnil použitím PCIe 1.x můstku, takže se textury do karty jako celu nahrávaly teoreticky až 4× déle, než u obyčejné HD 3870. Propady by měly být minimálně z 50 % vyřešeny použitím PCIe 2.0 kompatibilního můstku.

micro-stuttering – není vlastností vícečipových systémů, ale jejich chybou. Vlastně jde o problém se synchronizací. Zda bude tento problém s příchodem nové X2 alespoň částečně vyřešen, stále nevíme.

Stále ale zůstává nezodpovězena zásadní otázka a to, k čemu je určen side-port. Možnosti jsou vcelku tři:

  • sdílení dat mezi čipy pro efektivnější využitelnost pamětí 
  • sdílení dat mezi čipy pro lepší škálování výkonu (vertex data? texely pro super-tiling?)
  • řešení synchronizace (micro-stuttering)

Rozdíly proti konkurenci, efektivita, závěrečné doporučení

Efektivita čipu, rozdíly oproti konkurenci

Mnoho kritiků 5D ALU ATI, tvrdí, že SP jednotky, ze kterých se tyto ALU skládají, jsou velmi neefektivní, pokud jich RV770 potřebuje 800, aby obstála proti G92, která jich nese jen 128. Tento názor ale zakládá na chybné domněnce, že se SP obou výrobců skládají ze srovnatelného množství tranzistorů. Podle posledních výpočtů ze snímků čipů totiž 1 SP ATI se všemi souvisejícími obvody vychází na 0,475 milionu tranzistoru, zatímco SP Nvidie vychází na 1,5 milionu tranzistoru. SP, které používá ATI, jsou tedy 3,15x menší a běží na 2,7× nižší frekvenci, než SP G92 (pokud porovnáváme Radeon HD 4850 – nejpomalejší kartu s čipem RV770 – oproti GeForce 9800 GTX jako nejrychlejší kartě s čipem G92).

Druhou otázkou je, jestli má smysl efektivitu jako takovou řešit. Uvažuje-li uživatel o upgradu, je pro něj prioritní zřejmě poměr cena/výkon a podporované funkce. Pokud ale hledáme důvody výkonu a rozměrů určitého grafického čipu, pak je třeba se efektivitou zaobírat. Efektivitu lze vyjadřovat nespočetným množstvím způsobů. Může to být výkon na tranzistor, výkon na plochu, výkon na frekvenci, výkon na výpočetní jednotku, výkon na watt, výkon za jednotku ceny… dále můžeme rozlišovat, zda posuzujeme výkon teoretický, nebo reálný, v jaké aplikaci, nebo nakonec i poměr výkonu reálného ku výkonu teoretickému. Samozřejmě mnohé z těchto způsobů mají nulovou informační hodnotu o jakékoli reálné kvalitě produktu, zatímco jiné (výkon za jednotku ceny, výkon na watt) mohou uživatelům hodně říct o tom, jak je pro ně daný produkt výhodný.

Poměrem cena/výkon je RV770 nepřekonatelný produkt, ale poměrem výkon/spotřeba na tom není lépe, než konkurence. Obzvlášť ve 2D očekávala většina uživatelů lepší výsledky. Podle některých zdrojů současné ovladače nezahrnují podporu pro všechny technologie úspory energie, které RV770 nově přinesla. Kdy a zda se situace změní ovšem není jasné.

Velmi zajímavé je poměr výkon na jednotku plochy, neboť z něj můžeme přibližně vyvodit, jaký ekonomický dopad bude mít na jejich výrobce a hlavně jakým způsobem se v budoucnu mohou vyvíjet ceny. Můžeme předpokládat, že současné ceny GeForce GTX 260 s čipem o 576 mm2 s vysokou pravděpodobností neklesne na úroveň ceny Radeonu HD 4870 s čipem o 260 mm2. Naopak 55nm GeForce 9800 GTX+ už se reálně může dostat na cenovou úroveň konkurenčního Radeonu HD 4850.

Zde samozřejmě mluvíme o ceně, na kterou výrobce může jít, aniž by na výrobě tratil, nikoli o cenové hladině, na kterou skutečně půjde. Nvidia v posledních letech velice neochotně snižuje ceny právě v tomto cenovém segmentu a dokud nedojde na poklesy prodejů, drží ceny nahoře (pro ilustraci např. GeForce 7900 nebo GeForce 8600).

Ačkoli by se mohlo zdát, že nové Radeony jsou výhodnější (v anketě na nejmenovaném českém a nejmenovaném zahraničním fóru vychází poměr zájemců o Radeon HD 4800 a GeForce 9 zhruba v poměru 10:1), je stále úspěšnost GeForce 9 díky zažitému úspěchu GeForce 8 velmi vysoká, takže řadoví uživatelé preferují GeForce 9 jako určitou záruku. Podobná setrvačnost panuje i v OEM distribuční síti, kde jsou smlouvy chystány často několik měsíců dopředu. Nvidia by minimálně do poloviny léta neměla být nucena upravit ceny na úroveň konkurence - zpočátku bych očekával spíše symbolické slevy.

Raději se ale vrátím ke srovnání architektur. Koncepty obou stran se velmi zásadně liší. ATI nabízí jednodušší a méně komplexní výpočetní jednotky, kterých se do čipu vejde mnoho, přičemž běží na základní frekvenci. Naproti tomu Nvidia nabízí méně výpočetních jednotek, které jsou mnohem větší a absenci kvantity dohánějí vyšší frekvencí.

převzato a upraveno: http://www.anandtech.com/

Jak je patrné ze schématu, může u RV770 v některých situacích docházet k nevytížení některých výpočetních jednotek z každé pětice. Na druhou stranu výpočetní jednotky G200 a jejích předchůdkyň nejsou čistě skalární, jak Nvidia tvrdí, ale dual-issue, což znamená, že k oné samostatné SP je „přilepena“ ještě druhá menší SP, která se využívá pro specifické účely. JV případech, kdy není těchto operací třeba, nedochází k jejímu využití. Aby to nevrhalo stín na efektivitu „skalární“ architektury, vynechává Nvidia tuto jednotku ve většině diagramů. Druhým příkladem, kdy SP Nvidie nejsou vytíženy, je použití double-precision při GP-GPU operacích. K těm je v případě RV770 využita celá pětice SP, zatímco SP G200 tuto funkci nepodporují a provádí ji samostatná jednotka (SP jsou pak zcela nevyužity).

Při hraní her nemusejí být 5D ALU ATI využity na 100 % teoretického výkonu (můžeme mluvit o 70-85 %, pokud hodnotíme čistě unifikované jádro), zatímco u Nvidie je využitelnost ve hrách vyšší (za předpokladu, že dochází k efektivnímu využití dual-issue), tak v segmentu GP-GPU jsou možnosti efektivního využití 5D ALU mnohem zajímavjěší. Zlom nastává obzvlášť při využití double-precision (tzn. FP64 oproti dosavadním FP32), kdy obě architektury přistupují k řešení situace zcela odlišně.

ATI pro 1 DP MAD potřebuje jednu 5D ALU (= pětici SP), zatímco Nvidia má ke každé streaming array (tj. osmice SP) přiřazenu jednu samostatnou DP ALU. To v praxi znamená, že výkon RV770 odpovídá 240 DP GigaFLOPs, zatímco výkon G200 odpovídá jen 78 DP GigaFLOPs. To nemusí řadového zákazníka bolet, ve hrách to nepřinese nic – pro ATI to ale znamená výhru v GP-GPU segmentu, kde je schopna s polovičním čipem nabídnout 3× vyšší výkon.

Sečteno podtrženo, krom poměru cena/výkon se většina soubojů v efektivitě odehrává spíš na marketingové úrovni. Poměr spotřeba/výkon není se současnými ovladači u HD 4800 tak skvělý, jak se ho ATI snaží prezentovat a stejně tak si i Nvidia musí značně přikrášlit realitu, aby její výpočetní jednotky působily tak efektivně, jak by si přála. Zákazníkům obou firem bych proto vzkázal, aby se nenechali manipulovat marketingem a vybírali si hardware podle svých osobních preferencí.