Poslední 0,5 GB u GeForce GTX 970 skutečně je pomalejší
27.1.2015, Jan Vítek, aktualita
Server PC Perspective se společně s firmou NVIDIA zaměřil na udávaný problém s posledním půlgigabajtem paměti karty GeForce GTX 970 a zjistil, že přístup do něj skutečně je pomalejší, a to velmi výrazně. Proč tomu ale tak je?
Závěrem tedy je, že poslední 0,5 GB z celkové kapacity 4 GB paměti GDDR5 u karty GeForce GTX 970 je pomalejší, což může v některých případech způsobit sekání obrazu her. To se však v celkových číslech sledujících průměrné FPS nemusí nijak dramaticky projevit, a proto je třeba sledovat průběh zachycený nejlépe do grafu.
Nebo se můžeme podívat na benchmark sledující propustnost paměti, kde se ukazuje, že když se blížíme k posledním 500 MB paměti, propustnost se postupně sníží z maximálních 150 GB/s na 22,35 GB/s, čili na sedminu. A proč je tomu tak?
zjednodušená architektura čipu GeForce GTX 970 (Jonah Alben, NVIDIA)
Nahoře vidíte diagram znázorňující čip karty GeForce GTX 970, která má celkem 13 SMM, každý se 128 CUDA jádry, což dává dohromady jejích 1664 CUDA jader. Šedé SM jsou deaktivované, čímž se GTX 970 liší od GTX 980, která má plný počet CUDA jader v GM204.
Pak tu máme paměťový systém čipu s Crossbar rozhraním, přičemž zde je celkem osm portů pro připojení k L2 cache a následně k paměťovým kontrolerům, přičemž u GTX 980 je to jasné, neboť využito je vše. Ovšem u GTX 970 je využito pouze sedm portů, které i tak obsluhují plný počet paměťových kontrolerů, což je logické, neboť GTX 970 má stejný objem paměti jako GTX 980. Z diagramu také vyplývá, že oproti dříve udávaným specifikacím má GTX 970 méně ROP jednotek a menší kapacitu L2 cache, konkrétně tedy 56 ROP a 1792 kB L2 cache, což ale stále stačí na daný počet 13 SMM.
diagram čipu NVIDIA GM204
V případě karty GTX 980 tak každý blok L2 a ROP jednotek přímo komunikuje s paměťovým rozhraním a příslušnou 512MB sekcí paměti GDDR5. U karty GTX 970 ale NVIDIA využila novou vlastnost architektury Maxwell, což by Kepler a předchozí generace neumožnily. Jde o to, že deaktivovala část L2 cache a ROP jednotek, jak už víme, přičemž využila jakési stínové rozhraní, s jehož pomocí poslední SMM komunikují se dvěma 512MB bloky paměti skrz jednu L2 cache. Z toho vyplývá, že poslední, sedmý paměťový port, by pak musel obsluhovat dvakrát tolik paměťových požadavků než ostatní, protože má na starost i dvojnásobek paměti. To by způsobilo, že paměťový systém by celkově zpomalil na poloviční výkon, neboť ostatní porty by se musely přizpůsobit a čekat, až poslední sedmý vykoná svůj dvojnásobný nášup práce.
NVIDIA se tedy rozhodla celkovou paměť rozdělit do dvou paměťových poolů, 3,5GB a 0,5GB, přičemž první má prioritu. Sedmý port tak dostane stejný objem paměti, díky čemuž mohou všechny pracovat stejně rychle a jsou obsluhovány v obvyklém pořadí 1-2-3-4-5-6-7-1-2-3-4-5-6-7 atd. Poslední 0,5GB zůstane tedy nevyužitý a připraven je na spíše vzácné situace, kdy karta potřebuje vzhledem k náročnosti hry i tuto poslední kapacitu, která ale stále disponuje vyšší propustností, než když systém musí sáhnout přes rozhraní PCI Express a procesor do systémové paměti RAM. Zde do toho navíc vstupuje i operační systém, který alokuje potřebnou paměť v kartě pro hry a jiné aplikace a který může značně ovlivnit celkový výkon.
Však systém také pracuje s pooly paměti a musí efektivně využít rychlou paměť na kartě a často mnohem pomalejší systémovou paměť, a dle toho mezi ně vhodně rozdělit často a méně používaná data. Architektura karty GTX 970 do toho "jen" přidala další pool, který se výkonem nachází mezi hlavní pamětí karty a systémovou RAM, i když ten musel vzniknout ukrojením 0,5 GB z hlavní paměti. Co se týče maximální datové propustnosti, ta je u GTX 970 a GTX 980 shodných 224 GB/s, což ale v případě GTX 970 platí jen v případě, že karta najednou přistupuje k oběma poolům a jde pouze o komunikaci mezi pamětí a kontrolery, kterých je i u GTX 970 plný počet.
Co tedy vyplynulo na povrch? V prvé řadě to, že NVIDIA pomlčela o chybějící L2 cache a ROP jednotkách v GTX 970, což by logicky přineslo otázky. A pak se můžeme ptát, zda by GTX 970 neměla být označena za kartu se 3,5 GB paměti. Ovšem i přes prvotní rozčarování je třeba říci, že karta své plné 4 GB opravdu má a i když je přístup k poslednímu 0,5 GB značně pomalejší, stále je to výrazně rychlejší než komunikace s RAM přes PCI Express. NVIDIA sama říká, že tato architektura pracuje tak, jak má a v reálném světě se nutnost využití posledního segmentu paměti projeví poklesem výkonu o 4 až 6 procent.
Nakonec je třeba poděkovat serveru PC Perspective za to, že společně s Jonahem Albenem z NVIDIE přišel s vysvětlením tohoto problému.
Zdroj: TZ PC Perspective
Nebo se můžeme podívat na benchmark sledující propustnost paměti, kde se ukazuje, že když se blížíme k posledním 500 MB paměti, propustnost se postupně sníží z maximálních 150 GB/s na 22,35 GB/s, čili na sedminu. A proč je tomu tak?
zjednodušená architektura čipu GeForce GTX 970 (Jonah Alben, NVIDIA)
Nahoře vidíte diagram znázorňující čip karty GeForce GTX 970, která má celkem 13 SMM, každý se 128 CUDA jádry, což dává dohromady jejích 1664 CUDA jader. Šedé SM jsou deaktivované, čímž se GTX 970 liší od GTX 980, která má plný počet CUDA jader v GM204.
Pak tu máme paměťový systém čipu s Crossbar rozhraním, přičemž zde je celkem osm portů pro připojení k L2 cache a následně k paměťovým kontrolerům, přičemž u GTX 980 je to jasné, neboť využito je vše. Ovšem u GTX 970 je využito pouze sedm portů, které i tak obsluhují plný počet paměťových kontrolerů, což je logické, neboť GTX 970 má stejný objem paměti jako GTX 980. Z diagramu také vyplývá, že oproti dříve udávaným specifikacím má GTX 970 méně ROP jednotek a menší kapacitu L2 cache, konkrétně tedy 56 ROP a 1792 kB L2 cache, což ale stále stačí na daný počet 13 SMM.
diagram čipu NVIDIA GM204
V případě karty GTX 980 tak každý blok L2 a ROP jednotek přímo komunikuje s paměťovým rozhraním a příslušnou 512MB sekcí paměti GDDR5. U karty GTX 970 ale NVIDIA využila novou vlastnost architektury Maxwell, což by Kepler a předchozí generace neumožnily. Jde o to, že deaktivovala část L2 cache a ROP jednotek, jak už víme, přičemž využila jakési stínové rozhraní, s jehož pomocí poslední SMM komunikují se dvěma 512MB bloky paměti skrz jednu L2 cache. Z toho vyplývá, že poslední, sedmý paměťový port, by pak musel obsluhovat dvakrát tolik paměťových požadavků než ostatní, protože má na starost i dvojnásobek paměti. To by způsobilo, že paměťový systém by celkově zpomalil na poloviční výkon, neboť ostatní porty by se musely přizpůsobit a čekat, až poslední sedmý vykoná svůj dvojnásobný nášup práce.
NVIDIA se tedy rozhodla celkovou paměť rozdělit do dvou paměťových poolů, 3,5GB a 0,5GB, přičemž první má prioritu. Sedmý port tak dostane stejný objem paměti, díky čemuž mohou všechny pracovat stejně rychle a jsou obsluhovány v obvyklém pořadí 1-2-3-4-5-6-7-1-2-3-4-5-6-7 atd. Poslední 0,5GB zůstane tedy nevyužitý a připraven je na spíše vzácné situace, kdy karta potřebuje vzhledem k náročnosti hry i tuto poslední kapacitu, která ale stále disponuje vyšší propustností, než když systém musí sáhnout přes rozhraní PCI Express a procesor do systémové paměti RAM. Zde do toho navíc vstupuje i operační systém, který alokuje potřebnou paměť v kartě pro hry a jiné aplikace a který může značně ovlivnit celkový výkon.
Však systém také pracuje s pooly paměti a musí efektivně využít rychlou paměť na kartě a často mnohem pomalejší systémovou paměť, a dle toho mezi ně vhodně rozdělit často a méně používaná data. Architektura karty GTX 970 do toho "jen" přidala další pool, který se výkonem nachází mezi hlavní pamětí karty a systémovou RAM, i když ten musel vzniknout ukrojením 0,5 GB z hlavní paměti. Co se týče maximální datové propustnosti, ta je u GTX 970 a GTX 980 shodných 224 GB/s, což ale v případě GTX 970 platí jen v případě, že karta najednou přistupuje k oběma poolům a jde pouze o komunikaci mezi pamětí a kontrolery, kterých je i u GTX 970 plný počet.
Co tedy vyplynulo na povrch? V prvé řadě to, že NVIDIA pomlčela o chybějící L2 cache a ROP jednotkách v GTX 970, což by logicky přineslo otázky. A pak se můžeme ptát, zda by GTX 970 neměla být označena za kartu se 3,5 GB paměti. Ovšem i přes prvotní rozčarování je třeba říci, že karta své plné 4 GB opravdu má a i když je přístup k poslednímu 0,5 GB značně pomalejší, stále je to výrazně rychlejší než komunikace s RAM přes PCI Express. NVIDIA sama říká, že tato architektura pracuje tak, jak má a v reálném světě se nutnost využití posledního segmentu paměti projeví poklesem výkonu o 4 až 6 procent.
Nakonec je třeba poděkovat serveru PC Perspective za to, že společně s Jonahem Albenem z NVIDIE přišel s vysvětlením tohoto problému.
Zdroj: TZ PC Perspective