Až donedávna bylo možné odhadnout, jakou kapacitou grafické paměti mohou karty disponovat podle šířky sběrnice. Mezi šířkou sběrnice a kapacitou pamětí platila přímá úměra, která se odvíjela od toho, že na každém z paměťových řadičů, které tvořily sběrnici, bylo zapojených několik stejných čipů.
Karty s „kulatou“ šířkou sběrnice 64, 128, 256 nebo 512 b tedy mívaly kulaté kapacity pamětí – v posledních letech to bylo 512, 1024 nebo 2048 MB paměti. A naopak, karty s atypickou šířkou sběrnice (nejčastěji GeForce) měly „nekulatou“ kapacitu paměti, která odpovídala rozšířené nebo zúžené sběrnici.
U výkonných GeForce 8800 GTX se 384b sběrnicí (1,5× 256b) byla standardní kapacita paměti 768 MB (1,5× 512 MB), u GeForce 8800 GTS se 320b sběrnicí jsme se dočkali 320 i 640MB modelů. Pokračovalo to u GeForce GTX 260 s ještě obskurnější 448b sběrnicí a 896 MB paměti a naposled jsme se dočkali u GeForce GTX 470, 570, 480 a 580 se 320 a 384b sběrnicí a 1280 a 1536 MB paměti.
U karet ze střední třídy to naopak bývalo nejčastěji 192b vzniklých ořezáním mainstreamové 256b sběrnice. Tak kdysi vznikla třeba GeForce 8800 GS nebo 9600 GSO a také 768MB GeForce GTX 460.
V době uvedení GeForce GTX 550 Ti stála Nvidia před těžkým rozhodnutím – vyrobit referenční model se 768 MB paměti, což už by byl na tu dobu na takovou kartu podstandard (zejména v porovnání s 1024MB Radeonem HD 5770, na který Nvidia cílila), nebo na kartu osadit rovnou 1,5 GB, které měly ve stejné době běžně až highendové modely GeForce GTX 580.
Jak víme, právě kapacita pamětí grafiky je něco, co při nákupu v hypermarketu často rozhoduje, takže uvést 768MB model bylo asi něco nemyslitelného. Nvidia tedy udělala něco, co si tehdy jen málokdo dokázal představit – na kartu se 192b sběrnicí naroubovala kulatý gigabajt paměti, čímž se vyrovnala Radeonům HD 5770. Povedlo se jí to tak, že porušila nepsané pravidlo a na jeden z řadičů osadila paměťové čipy s dvojnásobnou kapacitou.
Při celkové kapacitě čipů 1 + 1 + 1 + 1 + 2 + 2 = 8 Gb dosáhla i se 192b sběrnicí kapacity 1 GB paměti.
Podobný kousek, tentokrát s drobnou odměnou a s celkově dvojnásobnou kapacitou, si teď zopakovala i u GeForce GTX 660 Ti.
Model GeForce GTX 660 Ti je postavený na stejném grafickém jádře, které využívá i highendová GeForce GTX 680. V něm jsou čtyři 64b řadiče, které společně tvoří 256b sběrnici pro standardních 2048 MB paměti. Ve stejné sestavě jsou i u slabší GeForce GTX 670:
U nejořezanější verze jádra GK104, které se osazuje do GeForce GTX 660 Ti, už je ale jeden z řadičů deaktivovaný a GPU s pamětmi komunikuje jen přes 192b sběrnici. Za normálních okolností by to tedy znamenalo 1536 MB paměti, což by bylo méně, než 2 GB paměti, které už dnes konkurence nabízí standardně u mnohem levnějších karet střední třídy (a pouhá polovina oproti obdobně drahým Radeonům HD 7950).
Nvidia tedy srovnala krok alespoň s mainstreamovými Radeony HD 7850 a 7870 a karty vybavila 2 GB paměti. Na jeden z kanálů tentokrát nepřipojila dvojnásobně velké čipy, ale dvojnásobek čipů se stejnou kapacitou.
Na schématu výše je nevýhoda tohoto přístupu vidět lépe než u GTX 550 Ti. Zatímco se šesti čipy může karta komunikovat současně, k posledním dvěma 2Gb čipům (=512 MB), které jsou na jednom z řadičů navíc, už přistupuje jen přes jeden 64b řadič.
Chcete-li jinak, k 1536 MB paměti má karta přístup přes 192b sběrnici a ke zbývajícím 512 MB přes sběrnici o šířce 64b.
Bohužel pro nás Nvidia (záměrně) mlčí o tom, jak je řízení paměti realizované a jaký vliv na výkon toto omezení má. Nabízí se hned několik možností, jak může celé řešení s pamětí hospodařit. Jmenujme tři z možných scénářů, které se přicházejí v úvahu:
- výrobce spoléhá na to, že se plná kapacita 2048 MB ve hrách zatím téměř nevyužije, takže karta běžně pracuje jen s šesti čipy a vystačí si s rychlými 1536 MB paměti. Ke zpomalení dochází jen výjimečně, pokud některá z her náhodou kapacitu 1536 MB přesáhne.
- karta nějakým způsobem přístup k jednotlivým čipům prokládá či sdílí, takže se všechny čipy zaplňují rovnoměrně. U dvou řadičů připadá po 32b na jeden čip a na posledním řadiči jen 16b na čip, karta se tedy chová spíš jako by měla 64+64+32b sběrnici.
- ovladače rozdělují paměť nějak inteligentně, prvních šest čipů využívají pro operace, které vyžadují rychlý přístup a zbývajících 512 MB pro odkládání „nepotřebných“ dat nebo věcí, u kterých stačí i mnohem nižší propustnost (např. pro ukládání textur).
Kvůli tajnůstkářství Nvidie a asymetrickému přístupu k pamětem panují obavy, jestli nedochází k tomu, že karta po zaplnění „rychlých“ 1536 MB pamětí zpomalí (první případ), a nebo k tomu, že kvůli sdílení jednoho řadiče je reálná propustnost pamětí nižší než udávaných 192b (druhý případ).
Rozličné experimenty, které už někteří u GeForce GTX 550 Ti podnikali třeba se zátěžovými programy v CUDA, se ukázaly jako neprůkazné – předpoklad, že by výkon karet po zaplnění tří čtvrtin paměti výkon výrazně klesl, se nepotvrdil.
„Plnohodnotné“ GeForce GTX 660 Ti se 3 GB paměti
Na rozdíl od GeForce 550 Ti jsme se u GTX 660 Ti se zpožděním dočkali i nereferenčních 3GB modelů, které dostaly o čtyři paměťové čipy víc a mají paměťové řadiče obsazené rovnoměrně – na každém z kanálů je stejný počet čipů.
Karta tedy může k celé paměti přistupovat současně přes tři řadiče, takže dostaneme tentokrát už plnohodnotnou 192b sběrnici.
A této příležitosti jsem využil, abych prověřil, jestli a jak se liší výkon 2GB a 3GB modelu, pokud zvolíme ve hrách taková nastavení, která vedou k intenzivnějšímu využívání paměti.
Dvě nebo tři giga paměti, poznáme rozdíl?
Poznáme rozdíl mezi 2 a 3 GB paměti?
Většina webů, které výkon 2GB a 3GB modelů porovnávaly, prohnala karty standardní metodikou. A na standardní test nové grafické karty se můžete těšit také. Nějaké významné rozdíly ve výkonu ale nebyly znát (když, tak byly dané spíše tím, že porovnávané karty běžely na různých taktech). Chtěl jsem se tedy nejprve zaměřit na něco jiného – totiž na zjištění, zda dochází k propadům po překročení „magické“ 1,5GB hranice a vyzkoušel jsem řadu her, které používáme v metodice pro testování karet s nastavením, u kterého diagnostické utility hlásí obsazení paměti větší než 1536 MB a zároveň menší než 2048 MB, kterých lze na 2GB GeForce 660 Ti dosáhnout.
Pro porovnání jsem využil dvojici přetaktovaných modelů od Gigabyte. S levnější 2GB verzí GeForce GTX 660 Ti jste se mohli už důvěrně seznámit v nedávné recenzi.
Druhým modelem je větší a dražší model s chladičem Windforce 3X, který běží alespoň papírově na stejných taktech a je osazený 3 GB paměti.
Testovací sestava
Jako testovací platforma posloužila základní deska Gigabyte X79-UD5 s BIOSem F10. Procesor je šestijádrový Core i7-3960X s TDP 130 W, který je přetaktovaný na 4,2 GHz při 1,36 V. Asistuje mu 16GB kit operačních paměti DDR3 od Kingstonu.
- základní deska: Gigabyte X79-UD5
- procesor: Core i7-3960X (deaktivovaný HTT, C1E, EIST), 4,2 GHz na 1,36 V
- chladič CPU: Noctua NH-D14
- paměti: 4× 4 GB Kingston DDR3 KHX2133C11D3K4/16GX
- zdroj: Enermax Revolution 85 ERV920EWT-00, 920 W
- pevný disk: Intel SSD 510 (250 GB)
- skříň: Gelid DarkForce
- operační systém: Windows 7 x64
Batman: Arkham City
V Batman: Arkham City jsem měřil s vestavěným benchmarkem. První dva grafy jsou se nenáročným vyhlazováním FXAA, se kterým se karty ani zdaleka nedostaly na „kritických“ 1536 MB.
Nejprve se podívejte, jak to bylo s obsazením paměti tak, jak to zaznamenal do logu MSI Afterburner. Tečkovaná čára je hranice 1536 MB paměti, teda to, co by měla být u 2GB modelu rychlá paměť s přístupem přes 192b sběrnici. U obou grafik je obsazení paměti prakticky totožné.
A téměř shodný je i výkon, drobné odchylky bych přičítal spíš mírně odlišnému taktu u GPU boost než jiné paměti (~1201 MHz u 3GB modelu, ~1228 MHz u 2GB)
A teď co se dělo, když jsem v nastavení aktivoval vyhlazování 32×CSAA, které je na paměť náročnější.
Při testování jsem pozoroval, že když už hrozilo, že se obsazení paměti přehoupne přes 1,5 GB, obsazení paměti spadlo. Zajímavé je, že se nikdy nedostalo přes 1536 MB i přesto, že má karta 2 GB paměti.
Na výkonu to opět nebylo prakticky znát.
Battlefield 3
V Battlefieldu jsem testoval multiplayer na mapě Caspian Border. V prvním případě šlo o nastavení na maximální detaily s vypnutým vyhlazováním MSAA. Mezi kartami jsou i co do obsazení paměti drobné rozdíly, to bych ale přičítal spíše horší opakovatelnosti měření v multiplayeru v kombinaci s agresivnějším hospodařením enginu s pamětí.
Co do průběhu jsou odchylky jen mírné, opět připomínám horší opakovatelnost – mimo jiné jsem byl přihlášený na jiném serveru.
Zatímco při nastavení, které spolehlivě spadalo pod 1536 MB obsazené paměti, byly rozdíly malé, u rozlišení 1920 × 1080 bodů s vyhlazováním MSAA 4× se obsazení paměti opět pohybovalo u 3GB modelu kolem 1800 MB, zatímco u 2GB karty se jako kliště drželo někde kolem 1536-1540 MB.
Na výkonu se to ale opět prakticky neprojevilo.
Crysis 2
Testoval jsem v rozlišení 1920 × 1200 bodů, v prvním měření jsem snížil rozlišení textur (vypnul jsem hi-res balíček), ve druhém už jsem testoval na plné detaily. U obou karet to dopadlo dle očekávání, podobné obsazení paměti i výkon.
S vyšším rozlišením textur jsem u 2GB karty opět narazil. Když to už už vypadalo, že se hra postupně ukusující paměť přehoupne přes 1536 MB, paměť karty něco vymetlo a obsazení seskočilo lehce přes 1400 MB.
A výkon opět u obou karet prakticky stejný.
F1 2012
F1 2012 jsem testoval na maximálních detailech s vyhlazováním MSAA 8×. Méně náročný průběh je v rozlišení 1920 × 1080 bodů, více náročný ve 2560 × 1600 bodů (u 3GB karty se obsazení paměti pohybovalo kolem 1600 MB).
Opět začínáme s nastavením, při kterém je na obou kartách využití paměti výrazně nižší než 1536 MB.
Při vyšším rozlišení 2560 × 1600 bodů už se ale 3GB model dostává těsně přes 1600 MB, zatímco 2GB karta opět zůstává pod 1536 MB.
Závěrečné shrnutí
Byl jsem připravený na leccos – že mezi 3GB a 2GB kartou nepoznáme rozdíl, že po překročení 1536 MB hranice dojde k propadu výkonu, že bude karta se 2 GB paměti pomalejší... ale nepočítal jsem s tím, že se u 2GB karty v diagnostice přes veškerou snahu přes kritickou hranici nedostanu, i když se to u 3GB karty podařilo aspoň u čtveřice testovaných her.
A nepomohlo ani další laborování, které by mělo k většímu obsazení paměti zaručeně vést – třeba navýšení rozlišení v Crysis z 1920 × 1080 na 2560 × 1600 bodů.
Celé testování má jednu velkou nevýhodu – nevíme, nakolik se dá spoléhat, že to, co hlásí diagnostické programy o obsazení paměti grafické karty, odpovídá realitě.
Další komplikací je, že některé hry automaticky v závislosti na dostupné paměti optimalizují nastavení a zobrazované detaily. Je tedy možné, že když hra vytuší, že by mohla narazit, sama vyprázdní paměť a s návrhem karty to nemusí mít moc společného. Nezdá se mi ale pravděpodobné, že by hry uvolňovaly paměť tak, aby se 2GB karta často trefovala ve špičkách na hodnoty 1536 MB paměti a přitom se přes ně nikdy nepřehoupla. Co hůř, když jsem totéž vyzkoušel ještě na GeForce GTX 670, která má rovněž 2 GB paměti, výsledek byl podobný jako u 3GB karty.
V souvislosti s tím se podbízí se poťouchlá otázka, zdali není půl gigabajtu paměti na GeForce GTX 660 Ti jen pro parádu na krabicích, přičemž grafika hrám nedovolí v praxi využít víc než 1536 MB, ale něčemu podobnému se zdráhám uvěřit a nerad bych tímto odstartoval nějakou aféru, když i kvůli tajnůstkářství Nvidie o tom, jak se s 512 MB paměti navíc na kartě hospodaří, nemáme na takové soudy dostatek dostatek informací.
Je možné, aby si ovladače do „neviditelných“ 512 MB paměti potají samy odkládaly méně využívaná data, která v případě potřeby rychle přesunou zpátky do paměti s rychlejším 192b přístupem? Napadá vás nějaké jiné vysvětlení? Chtě nechtě tuhle otázku musím nechat otevřenou, ještě zkoušíme štěstí u Nvidie, zda nám k tomu něco nepoví.
Co se samotného rozdílu ve výkonu karet týká, naměřené výsledky rozhodně neberte tak, že je jedno, jestli pořídíte 2GB nebo 3GB model, nebo že 3GB verze nenabízí v podstatě nic navíc a není důvod ji pořizovat, protože má „stejný“ výkon jako 2GB varianta. Jak vidíte, přinejmenším některé hry do paměti umí uložit něco navíc, pokud je k dispozici. Otázka je, zda a jak se to za pochodu projevuje třeba na kvalitě obrazu. Větší paměť mimo jiné znamená třeba větší prostor na textury.
Zatím to nemusí být tak akutní, ale od uvedení Radeonů HD 7900 se 3 GB staly běžnou výbavou karet a dá se počítat s tím, že toho vývojáři začnou využívat. V budoucnu by to mohlo znamenat, že i když bude nová karta výkonem stačit, kvůli menší paměti budete hra používat textury s nižším rozlišením.
A ještě připomínám, že novému 3GB modelu přetaktované GeForce GTX 660 Ti od Gigabyte se samozřejmě budeme věnovat i v samostatné recenzi ve formátu, na jaký jste zvyklí.