Proč GeForce GTX 970 využívá jen 3,5 GB paměti a proč klesá výkon po překročení?
Už před nějakým časem jsme byli v diskusi vyzváni, abychom se podívali na zvláštní chování GeForce GTX 970. Přes oficiální specifikaci, která uvádí 4 GB paměti, má karta tendenci v řadě her využívat jen 3,5 GB a krom toho vykazuje velmi zvláštní chování například v syntetických testech orientovaných na fillrate nebo paměťovou propustnost.
Řešit toto téma svým způsobem postrádalo smysl. Ne snad proto, že by nás příčiny zvláštního chování nezajímaly, ale spíš z toho důvodu, že možných hypotéz, které by mohly takové chování vysvětlit, je celá řada a neznámých bylo příliš mnoho na to, abychom se k jedné mohli byť je přiklonit. Navíc reálné dopady na výkon jsou podchycené v recenzích, takže ať už se s pamětí GeForce GTX 970 děje cokoli, nedá se říct, že by zákazník při koupi dostal jiný výkon, než jaký viděl v testech.
Přístup k posledním 512 MB paměti GeForce GTX 970 (červená část) je výrazně pomalejší
Nakonec se k tématu přecijen vracíme. Právě proto, že se o něm píše už „prakticky všude“ a řada webů vcelku neseriózně láká na „kompletní objasnění záhady“. Je sice pravda, že Nvidia podala určité vysvětlení, ale to není natolik konkrétní, aby na jeho základě bylo možné vysvětlit chování karty. Navíc s jeho závěry někteří uživatelé nesouhlasí.
Pojďme se podívat na několik hypotéz, které se důvod zvláštního chování snaží objasnit.
Hypotéza č. 1: zmenšená L2 cache
GeForce GTX 970 se od GeForce GTX 980 liší především odlišným počtem aktivních výpočetních bloků - má 13 aktivních z celkových 16. Výpočetní bloky (SM) nejsou ale tím jediným, co může být na grafických kartách deaktivováno. Za celou historii GPU výrobci čipů koncipovali své architektury tak, aby některé funkční bloky bylo možné vypnout, aniž by to mělo dopad na funkcionalitu jiných. To se dělo (a děje) hlavně pro zvýšení výtěžnosti. Pokud nějaká část grafického jádra nese výrobní defekt a je možné tuto část vypnout, znamená to, že výrobce může čip prodat (byť jako levnější), což je samozřejmě finančně výhodnější než recyklace.
Krom samotných výpočetních bloků (které u současných čipů AMD i Nvidie obsahují výpočetní a texturovací jednotky) jsme se mohli setkat např. s vypínám ROP jednotek, což u některých architektur znamená zároveň zúžení paměťové sběrnice (=deaktivace určitých kanálů řadiče). Jedna z hypotéz, která se snaží vysvětlit chování GeForce GTX 970 pracuje s teorií, že z 2MB L2 cache je aktivních jen 1,8 MB (zobrazují to některé utilitky a testovací prográmky). Tzn. že Nvidia vypnula cca 0,2MB část pro zvýšení výtěžnosti. To by mělo mít za následek zpomalení přístupu k poslední části grafické paměti, pro které tato část cache sloužila.
I když tato teorie vypadá zdánlivě smysluplně, neodráží fakt, že L2 cache je u současných architektur segmentovaná (rozdělená na menší bloky) a ty jsou navázané buďto na kanály paměťového řadiče, nebo na bloky ROP jednotek. Vypnutí takové části cache by (s ohledem na známé vlastnosti současných architektur) mělo za důsledek zneprovoznění části ROP jednotek nebo zúžení sběrnice. Jenže tomu nic nenasvědčuje, ROP jsou aktivní kompletně a sběrnice také.
Teorie částečně deaktivované L2 cache se proto jeví jako nepravděpodobná; prográmky zřejmě jen zobrazují chybný údaj (což není nic neobvyklého). Jak je patrné opět z téhož testu (spodní polovina výsledků), i L2 cache je přístupná, pouze jsou přístupy k její části v případě GTX 970 pomalejší (poslední řádky).
Hypotéza č. 2: vlastnost Maxwellu aneb k čemu byl dobrý „fabric“ Fermi
Druhá hypotéza, která se objevila, jde tak nějak ruku v ruce s vyjádřením Nvidie. Pojďme se nejdřív podívat na to:
„GeForce GTX 970 je vybavena 4 GB grafické paměti. GTX 970 má ale odlišnou konfiguraci SM bloků oproti GTX 980 a nižší počet crossbar zdrojů [příček / propojek paměťového řadiče] k paměťovému systému. Pro optimální řízení paměťových přesunů v této konfiguraci jsme rozdělili grafickou paměť na 3,5GB sekci a 0,5GB sekci. Grafické jádro má nastavenou vyšší prioritu pro využívání 3,5GB sekce. pokud hra vyžaduje méně než 3,5 GB na vykreslovací příkaz, pak využije pouze první sekci, ale aplikace třetích stran, které měří využití paměti, zobrazí pouze 3,5 GB využité paměti na GTX 970, zatímco v případě GTX 980 mohou zobrazovat vyšší hodnoty. Pokud hra vyžaduje více než 3,5 GB paměti, pak dojde k využití obou segmentů.
Chápeme, že to vyvolává otázky na téma výkonu GTX 970 při využití 0,5GB segmentu paměti. Nejlepší způsob, jak to zhodnotit, je herní výkon: Porovnat GTX 980 a GTX 970 ve hrách, které využívají méně než 3,5 GB paměti a následně v situacích, které vyžadují více.
Na GTX 980 v takové situaci dojde ke 24% poklesu výkonu, na GTX 970 k 25%, což znamená 1% rozdíl. V Battlefield 4 jde o 47% pokles na GTX 980 a 50% na GTX 970, což znamená 3% rozdíl. V CoD AW je to 41 vs. 44 %, tzn. 3 % rozdíl. Jak vidíte, mezi výkonnostními poklesy obou karet je minimální rozdíl.“
Tolik oficiální slova. Pokud skutečně Maxwell při deaktivaci některých výpočetních bloků přichází o datové cesty (a tím datovou propustnost mezi určitými částmi čipu), pak se vysvětluje, jakou výhodu měl onen komplexní systém propojení mezi jednotlivými SM bloky v rámci architektury Fermi, který Jen-Hsun Huang nazýval „fabric“ a který vinil z vysokých energetických nároků této architektury (byl realizovaný v rámci kovových vrstev čipu). Čipy z generace Fermi a Kepler s částečně deaktivovaným počtem SM bloků neměly problém se sníženou přenosovou kapacitou datových cest - velmi pravděpodobně proto, že datové přenosy nebyly nijak svázané s počtem SM bloků, protože byly realizované nezávisle na nich - přes „fabric“. To by znamenalo, že změna, která přišla s architekturou Maxwell, je sice prospěšná pro snížení energetických nároků čipu, ale snižuje flexibilitu co do konfigurace s nižším počtem aktivních SM bloků.
Vraťme se k vysvětlení Nvidie. Ačkoli zní věrohodně a dává smysl, nevysvětluje zdaleka vše. Redaktor webu Guru 3D Hilbert Hagedoorn se pokusil vyjít ze slov Nvidie a vyvodil, že k 1/8 paměti má čip určitým způsobem omezený přístup, protože nese 1/8 deaktivovaných SM bloků. Jenže i tento závěr, který se situaci snaží zjednodušit, je chybný. SM bloky architektury Maxwell obsahují 128 stream-procesorů (nikoli 192 jako u Kepleru), takže rozdíl mezi GTX 970 (1664 SP) a GTX 980 (2048 SP) nejsou dva SM bloky (1/8), ale tři (3/16).
Hledejme tedy jinde: Krom GeForce GTX 970 existuje ještě jeden produkt postavený na částečně deaktivovaném jádru GM204 s 256bit sběrnicí a plnými 64 ROP: Jde o mobilní GeForce GTX 980M, která má 12 aktivních SM bloků (GTX 970 má 13, GTX 980 všech 16). Jenže test paměti této mobilní karty (výše) nevykazuje, že by se libovolná její část chovala jakkoli anomálně - naopak od začátku do konce jsou přístupy k paměti identicky rychlé.
To může znamenat je dvě věci. Buďto je vysvětlení Nvidie (tzn. závislost datových cest na aktivních SM blocích) mimo realitu, nebo se týká jen některých specifických konfigurací čipu - například těch, kdy počet aktivních SM neodpovídá určitému celočíselnému násobku (2, 3 nebo 4) - což by právě (ne)sedělo na 13 SM bloků GTX 970. Určité pochybnosti přicházejí i od některých uživatelů, kteří po překročení 3,5GB hranice pozorují výraznější propady výkonu, než s jakými operuje Nvidia.
Hypotéza č. 3: žádný hardwarový limit neexistuje, jde o softwarové omezení
Tuto variantu bychom mohli přijmout pouze za podmínky, že odmítneme vysvětlení Nvidie. Objevují se totiž názory (a nejedno měření je i podporuje), že posledních 512 MB paměti je softwarově alokováno pro nějaký specifický účel, hra vidí (a má k dispozici) 3,5 GB paměti a pokud dojde k překročení, dojde k využití operační paměti, kam je pomalejší přístup.
Proč by k takovému zacházejí mělo dojít? Jedna z teorií předpokládá, že oněch 512 MB může být využíváno (v situacích, kdy hra vyžaduje méně než 3,5 GB paměti) k obejití nějakého jiného hardwarového limitu za účelem zvýšení výkonu. Což by mohlo znamenat, že v případě, že hra vyžaduje celé 4GB a jsou jí skutečně poskytnuty, není kompenzovaný onen limit a teprve v důsledku toho dochází k poklesu výkonu.
Situace bude patrně o něco složitější, než se jeví nebo než připouštějí některé weby, které se v rámci zaujetí čtenáře snaží o přehnané zjednodušení situace. Faktem ale zůstává, že bez ohledu na to, která z verzí má nejblíž realitě, zákazník za své peníze dostává výkon, který zná z recenzí.