CrossFireX
CrossFireX (CFX) je marketingový názov pre Multi-GPU riešenie v piatej generácii od AMD/ATi zavedené s HD 3000 sériou. Jediná zmena voči CrossFire je podpora viacej ako dvoch grafických kariet, ktoré je možné zapojiť. Momentálne maximum sú štyri. Predstavuje konkurenta pre SLI od nVidie. Primárna výhoda CFX (SLI) spočíva v tom, že sa dá pomerne jednoducho (pre koncového zákazníka a výrobcu grafických čipov) zvýšiť výkon grafickej karty, pridaním ďalšej do tandemu. Grafické karty zapojené do CFX budú spoločne renderovať výsledný obraz. Túto možnosť sa ale väčšinou oplatí využiť len vtedy, pokiaľ vlastníte high-end grafickú kartu, ktorá nemá dostatok výkonu pre veľmi vysoké rozlíšenia, ako 1600x1200 a viac. V prípade lowend a mainstream kariet sa CFX, SLI väčšinou neoplatí, nakoľko má toto zapojenie aj nevýhody, častokrát je jedna high-end grafická karta lacnejšia a výkonnejšia. Ďalšia výhoda, na ktorú sa konkrétne pozrieme na ďalšej strane, je možnosť pretransformovať vyšší výkon v kvalitnejší anti-aliasing.
klikni pre zväčšenie
Pre CF(X) ale aj SLI musíte spĺňať najprv určité predpoklady. Musíte vlastniť základnú dosku, ktorej čipset podporuje jednu alebo druhú technológiu a má dostatok voľných PCI-Express slotov. My sme dostali na testy základnú dosku Gigabyte GA-X38-DQ6, ktorá vďaka svojmu Intel X38 čipsetu poskytuje dva PCI-Express 2.0 x16 sloty a podporuje len CF(X). SLI podporu majú zatiaľ výhradne nFore čipsety od nVidie a nepredpokladáme, že by sa to v budúcnosti zmenilo. Toto obmedzenie nemá žiaden technický dôvod. AMD/ATi a hlavne nVidia jednoducho využívajú svoje licencie, aby existoval dôvod zakúpiť základnú dosku s práve ich čipovou sústavou. (Ešte samostatná ATi predala spoločnosti Intel licenciu, aby ich základné dosky mohli podporovať CF)
Dve alebo viaceré grafické karty zapojené do takéhoto tandemu ale musia medzi sebou komunikovať, aby si vedeli vymieňať dáta. V prípade CrossFire sa to v minulosti riešilo cez dosť obtiažny dongle kábel, pre ktorý bolo nutné zakúpenie tzv. „master“ karty. Dnešné Radeon HD 3870 už takéto obmedzenia nemajú, dve zhodné HD 3870 spojíte jednoducho, „interne“, pomocou CrossFire mostíka. Ďalšie možné kombinácie grafických kariet zapojitelných do CF(X) a základných dosiek vidieť v tabuľkách:
Menej výkonné grafické karty ani nie ne nutné spojiť „interne“ pomocou CF mostíka, môžu komunikovať cez PCI-Express (2.0) sloty, v tzv. Software CrossFire režíme. Ďanou bude ~ 10% strata výkonu.
Karty v CrossFireX budú, ako som spomínal, spoločne renderovať výsledný obraz. Existuje viacero multi-GPU render techník – AFR, SFR, Super Tiling, Super AA, ktoré rozložia obraz na určité časti, aby mohla byť následne záťaž rozdelená medzi jednotlivé grafické karty. Dnes sa využíva vo väčšine prípadov, ak je to možné, Alternate Frame Rendering (AFR). Princíp renderovania spočíva v tom, že jedna grafická karta počíta vždy „párne“ frame a druhé „nepárne“ frames. Výhodou je, že sa zvýšia (podľa počtu grafických kariet) fillraty, geometrický výkon, šírka zbernice.
klikni pre celý slajd (zdroj: AMD, PDF o Catalyst 8.3)
Od teórie sa teraz vrátime k našich dvom Radeon HD 3870, ktoré sme zapojili do CrossFire. Po tom ako si Windows Vista Ultimate 32bit stiahol update a zdetekoval ich, sme mohli nainštalovať v tej dobe najnovšie Catalyst 8.3 ovládače. Nasledoval reštart a „zábava“ mohla začať. Budeme sa venovať hlavne nevýhodám a nedostatkom momentálneho CrossFire, nakoľko sú hlavné výhody – vyšší výkon a kvalitnejšie AA rozobraté na ďalších stranách.
Do Overdrive pribudol ukazovateľ vyťaženia GPU. Jednotlivé grafické karty zapojené do CF je možné pretaktovať samostatne.
Pri pohľade do ovládačov Catalyst sa nám odokryje hneď niekoľko nevýhod. Okrem kategórie „CrossFire“ v ktorej je možnosť zapnúť/vypnúť CrossFire zapojenie a dať detekovať GPU nám pribudnú už len ďalšie AA varianty v kategórii 3D, Anti-aliasing. Nič viac. Veľmi nám chýbala možnosť vytvoriť tzv. CF profil pre konkrétnu hru, kde by si mohol koncový užívateľ nadefinovať parametre, aby fungovalo CrossFire k spokojnosti a prinášalo dobrý výkonnostný nárast aj napriek tomu, že s oficiálnym ovládačom to tak nie je. Takisto chýba možnosť vytvoriť profil aj v prípade single-čip grafických kariet, kde by bolo možné nastaviť pre viaceré hry rozličné kvality obrazu – od AA, cez V-sync, AF, kvalitu filtrovania po optimalizácie. nVidia ponúka tieto možnosti v ovládačoch „GeForce“. Okrem toho existuje veľmi dobrá utilitka s názvom nHancer. Odporúčam ju užívateľom SLI a GeForce grafických kariet. Spĺňa rovnakú úlohu – tvorba profilov pre hry, SLI. Bez týchto možností je užívateľ CrossFire závislí na mesačných updatoch ovládačov Catalyst, do ktorých pridávajú tvorcovia CF profili. „Z vonku“ teda nie je možné momentálne do nich zasahovať. Toto je veľká nevýhoda CF o ktorej sa málo hovorí, píše a preto o nej koncový užívatelia len málo vedia. Aby sa mohlo stať CrossFire zapojenie naozaj konkurencie schopné, musí byť tento závažný nedostatok odstránený. Nečudujem sa preto faktu, že komunita SLI narastá rýchlejšie ako tá okolo CrossFire(X).
Kategória CrossFire s chudobnými možnosťami
S ďalším problémom všetkých multi-GPU riešení sa stretnete pri hraní hier. Napriek relatívne vysokým, teda „plynulým“ FPS, je cítiť „trhanie obrazu“. Mohli by sme teraz dlho rozpisovať čo pociťuje človek ako plynulé a čo nie. Faktom je ale, že 30 FPS (obrázkov za sekundu) sú vnímané väčšinou populácie ako plynulé. Keď si to prepočítame na čas, vyjde nám logicky, že každých 33ms (1s = 1000 ms; 1000ms/30FPS) sa zobrazí na obrazovke jeden frame. V tomto prípade sa zobrazujú jednotlivé obrázky v pravidelných intervaloch, čo vníma ľudské oko ako plynulé. Problém však nastáva s multi-GPU zapojením, ktoré nedokáže udržať zhruba harmonický priebeh medzi jednotlivými frame-ami. Dochádza k tzv. micro stutteringu, napriek „plynulým FPS“. Jednoduchý príklad na objasnenie: za prvým frame-om nasleduje po 10ms druhý. To by znamenalo 100 FPS. Tretí frame sa dostane na obrazovku ale až za 35ms, nasledovaný hneď po 10ms štvrtým. Výsledok je fatálny a jasne viditeľný. Vnímané FPS multi-GPU riešenia môžu byť v extrémnom prípade hlboko pod single GPU riešením, napriek oveľa vyšším FPS. K micro stutteringu dochádza hlavne pri nižších FPS, 30 FPS sú kritickým bodom. Lebo platí, čím sú časové rozdiely medzi jednotlivými frame-ami väčšie, tým je dôležitejšie rovnomerné rozloženie framov. Pri niektorých hrách sa tento fenomén ukazuje aj pri 40, 50 FPS. Všeobecne platné konštatovanie, pri akých FPS dochádza k micro stutteringu, teda nemožno sformulovať. Záleží to od hry a ovládača.
Dôvod tohoto fenoménu spočíva v render technike AFR, ktorú využívajú multi-GPU riešenia. nVidia aj AMD/ATi vedia o probléme, riešenie pre momentálne karty ale pravdepodobne nikdy nebude. AMD/ATi sa vyjadruje k problému nasledovne:
„Pri CrossFire môže byť frame 3 odoslaný karte A až vtedy, keď je táto hotová s framom 1. Frame 4 môže byť odoslaný karte B až vtedy, keď je táto hotová s framom 2. Zatriedenie týchto frames (teda command buffera) je aspoň v prípade Windows Vista uskutočňované kernelom. To znamená, že tento fenomén nie je možné grafickým ovládačom ovplyvniť.Pritom nezáleží na tom, či sa jedná o grafickú kartu s dvoma GPUs ako GeForce 7950GX2, 9800GX2 a Radeon HD 3870X2, alebo o CrossFire, SLI či Multichrome zapojenie ľubovoľných kariet. Dôsledok je rovnaký. S narastajúcim počtom GPUs – Quad,Tripple SLI/CF sa nežiadúci efekt len prehlbuje, nakoľko je väčšia latencia a dlhšie sa musí čakať na frames. Nasledujúci problém nemali napr. 3dfx Voodoo 5 grafické karty v roku 2000 a ani Quad „SLI“ zapojenie GPUs na Voodoo 5 6000, nakoľko využívali inú render techniku. Každé GPU počítalo striedavo určitý riadok vo finálnom obraze namiesto celých. Preto nevznikal tento problém, nerovnomerne zobrazených frames. Túto techniku žiaľ nie je možné použiť s modernými efektami.
Keď sa pozriete na jeden príklad, môžete rýchlo prísť na nápad, zdržať prijatie ďalšieho frame-u, aby sa frames rovnomerne rozdelili za čas. Toto by sa dalo pravdepodobne riešiť aj cez ovládač, tak, že by sa GPU označilo na určitý čas ako vyťažené. Problém ale je, že na začiatku jedného frame-u sa nevie, ako dlho ho bude treba renderovať. Z rovnakého dôvodu posiela kernel ďalší frame hneď, keď je predchádzajúci hotový, aby mohol byť v pravý čas vypočítavaný.
Myslíme si ale, že užívateľom CrossFire ide hlavne o vysoké FPS, kde sa efekt micro stuttering tak výrazne neprejavuje“. (Zdroj: PCGH) Len aby sa dámy a páni z AMD/ATi nemýlili ...
Medzi veľmi dobré príklady, kde sa micro stuttering výrazne prejavuje, patria Crysis, UT3, NFS: Pro Street, 3DMark06 a Vantage (New Calico). Naše tvrdenia dokazujú frametimes zaznamenané aplikáciou FRAPS. V utvorenom textovom dokumente sú zreteľné nerovnomerné rozdieli medzi jednotlivými frames. Video záznam sme žiaľ neboli schopný vyhotoviť, nakoľko nemáme k dispozícii (HD)kameru. Vizualizácia frametimes v hre UT3 pri nižších FPS, dosiahnuté 24xEDCFAA a vysokým rozlíšením vyzerá nasledovne.
veľké časové rozdiely medzi jednotlivými frame-ami spôsobujúce micro stuttering, napriek "plynulým" FPS
Vysoké FPS za každú cenu, také je zmýšľanie koncových zákazníkov a výrobcov grafických čipov. Vďaka SLI a CF ich dostanete, avšak podstatné nie je množstvo ale ich „kvalita“. 30 FPS na grafickej karte s jedným čipom sú plynulé, nakoľko je latencia 33ms. Pri CF,SLI zapojení s dvoma kartami a 30 FPS je teoretická latencia už 66,7ms. QuadSLI/CF má pri rovnakých FPS latenciu 133,3 FPS. [Na výpočet sa môže použiť vzorec (1000ms/FPS * počet GPUs)]. Teória sa ale líši od reality, nakoľko nie je rozloženie framov CF/SLI zapojenia pravidelné. Pri grafických kartách s jedným čipom je preto kvalita FPS stále najvyššia. S narastajúcim počtom jadier len klesá. Zmýšľanie ľudí sa preto musí zmeniť. Vysoké FPS nie sú všetko, lebo hra s 18 FPS môže pôsobiť naozaj plynulejším dojmom ako rovnaká hra pri 32 FPS a CrossFire systéme.
Pred porovnaním technických parametrov jednotlivých kariet je nutné si uvedomiť fakt, že pri CrossFire a iných momentálnych multi-GPU riešeniach sa nezvyšuje využiteľná kapacita VRAM. Nemožno jednoducho sčítať VRAM jednotlivých grafických kariet, lebo každá karta zapojená v CF musí mať vo svojej VRAM všetky textúry, potrebné údaje atď. Marketingové označenia ako Radeon HD 3870X2 1GB sú nepresné a zavádzajúce. Reálne má karta využiteľných len 512MiB VRAM.
amd_sk
Wild
A2C
GABO
palee
Rincewind
Pavel Čech
miseno
baqq
quicky
Laci
crux2005
Fragrance
quicky
quicky
lacikaboss
mefi
A2C
lkuzman
GABO
mefi
GABO
cpy
mefi
Gudas
r1z1ko
crux2005
GABO
mefi
srewq