reklama
Aktuality  |  Články  |  Recenze
Doporučení  |  Diskuze
Grafické karty a hry  |  Procesory
Storage a RAM
Monitory  |  Ostatní
Akumulátory, EV
Robotika, AI
Průzkum vesmíru
Digimanie  |  TV Freak  |  Svět mobilně

ATi CrossFire - grafická síla dvou Radeonů

2.6.2005, Zdeněk Kabát, článek
ATi CrossFire - grafická síla dvou Radeonů
V úterý ATi představilo svou novou platformu, která dovoluje používat zároveň dvojici grafických karet Radeon X800 nebo X850 v libovolných verzích. Tato technologie s názvem CrossFire je přímou konkurencí nVidii a jejímu SLI, ale nabízí toho více - možnost kombinovat různé verze grafik, více módů renderování a také Super AA.
Nyní se již dostáváme k metodám, jak se obě grafické karty podělí o práci na výsledné scéně. Veškerá snaha směřuje k tomu, aby efektivita spolupracujících karet byla co nejvyšší, což ve většině případů spočívá v rovnoměrném rozložení práce. ATi CrossFire dokáže pracovat ve třech módech, z čehož první dva de facto odpovídají SLI, zatímco třetí je asi největší devizou nové technologie. Způsoby rozdělení scény určují ovladače bez zásahu uživatele.

AFR - Alternate Frame Rendering



První a pravděpodobně nejméně efektivní způsob, je alternate frame rendering. Tento mód je nejjednodušší na implementaci, nezatěžuje CPU a minimum práce nechává také na Compositing Enginu. AFR naprosto jednoduše přiděluje liché snímky jedné grafické kartě a sudé snímky druhé, takže jediným úkolem pro engine je jejich pravidelné střídání.



Výhodou tohoto způsobu je, že se o každý celý snímek stará jedna grafická karta a vytváří tedy jak geometrii, tak vykresluje scénu. Zatížení se tedy rovnoměrně rozděluje jak pro vertex shadery, tak pro pixel jednotky. Ovšem existují zde i nevýhody. AFR např. není možné použít, když snímek závisí na výsledku předcházejícího a dochází k transformacím nebo jiným operacím se shadery.

SFR - Scissor Mode



Další metodou, která se podobá nVidii, je SFR, nebo-li split frame rendering. Základem je rozdělení scény na dvě části, kde se o každou stará jedna grafická karta. Ovšem zde nastává jeden zásadní problém - geometrii scény nelze nijak jednoduše rozdělit mezi obě grafické karty a práce vertex shaderu se mezi karty nedistribuuje. Ovšem vykreslování pixelů a texelů lze již snadno přiřazovat oběma grafikám a práce pixel pipelines je tak rovnoměrná.



nVidia navíc řešila problém, že horní a dolní polovina obrazu se výrazně lišily detaily objektů a bylo tak třeba rozdělit práci mezi grafické karty v určitém poměru. Proto dochází k odhadu, kolik výkonu jaká část potřebuje, a podle toho se dynamicky mění hranice oblastí, které renderují jednotlivé karty v SLI. CrossFire nic podobného nedělá, aby byla ušetřena práce procesoru, ale zato obsahují profily v ovladačích Catalyst AI různé úrovně pro jednotlivé aplikace.

Catalyst A.I. je zkratka pro Artificial Intelligence. Tato softwarová technologie obsahuje předdefinované profily pro různé hry, které jsou nyní rozšířeny i pro Scissor Mode technologie CrossFire. Úrovně rozdělení jsou 50/50, 40/60 a 30/70 a když je např. ve nějaké hře v horní části téměř neustále vidět na renderování nenáročné nebe, bude horní část výrazně rozšířena a přidělena jedné grafické kartě.

SuperTiling



Posledním a pravděpodobně nejefektivnějším způsobem rozdělení obrazu je SuperTiling (tile = dlaždice). Tato metoda již byla použita u clusterů založených na desítkách čipů R300/R420 (např. zmíněná Evens & Sutherland) a jejím základem je rozdělení scény na malé dlaždice. Ty jsou pak přiřazeny jednotlivým grafickým kartám, v případě CrossFire půl na půl jako u šachovnice.



Velikost každé dlaždice je 32x32 pixelů, což znamená, že při rozlišení 1280x1024 jich bude 40x32 a každá grafická karta jich bude zpracovávat 640. Velkou výhodou tohoto systému je rovnoměrné rozdělení zatížení mezi obě grafické karty, protože lze předpokládat prakticky stejné úrovně detailů v "sudých a lichých" částech. Není tedy třeba žádného odhadu poměru zatížení a Compositing Engine jen spojí jednotlivé čtverce do sebe a pošle na výstup.

Nevýhodou by teoreticky mohla být roztroušenost dat v cache (nekoherence). Jinými slovy, když si vezmete texturu, která je uložena ve frame bufferu, tak s ní grafická karta nebude pracovat celkově, ale jen s některými částmi. Ovšem jako problém to považovat nelze, protože architektura pixel pipelines čipů R4xx je taková, že do každé quad-pipeline jsou posílána data po blocích 16x16. Dokonce to u GPU se 16 pipeline sedí tak, že čtverec 32x32 je zpracován právě v jednom cyklu.



V DirectX je SuperTiling aktivován defaultně a ATi odhaduje nárůst výkonu na +10 až +60%. Ovšem velmi obtížné je implementovat SuperTiling v aplikacích založených na OpenGL. Proto je v nich zapnut spíše Scissor Mode nebo AFR.
reklama