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ě

Nvidia Kepler: jaké jsou geny GeForce GTX 680?

28.3.2012, Petr Štefek, technologie
Nvidia Kepler: jaké jsou geny GeForce GTX 680?
V dnešním rozboru se podíváme na to, jaká je nová architektura Nvidie pod označením Kepler a zda má ambice úplně nahradit starší Fermi, nebo zda se ubírá svým vlastním směrem. Zbrusu nové GPU GK104 najdeme na GeForce GTX 680.
Kepler je Nvidií označován jako kompletně nová GPU architektura, která nahrazuje Fermi, jež s námi bylo bez mála 2 roky. To je doba, která je obecně u výrobců GPU typická pro uvádění nových architektur. Jak už jsem naznačoval v minulé kapitole, tak Kepler je sice nová architektura, ale mnoho věcí přejímá ze staršího Fermi. Vývoj GPU architektury trvá obecně okolo 4 let, takže zatímco píši tyto řádky, v obou firmách už dávno pracují na nástupcích nově uvedených produktů a možná už i generací následujících.

Nová generace grafických karet je pro každou společnost milníkem, který sice přináší mnoho pozitivních aspektů, ale rovněž klade vysoké nároky na optimalizaci software a odlaďování celé architektury tak, aby měla dostatečný výkon ve starších aplikacích a zároveň podávala skvělé výkony v aplikacích nových. Pokud je základ dobrý, tak se celá architektura několik let zásadně nemění a dochází jen k drobným faceliftům a minoritním funkčním změnám. Třeba pro AMD byla radikální změna architektury až v případě Graphics Core Next a rodiny Radeonů HD 7000 (což je už mnoho let od uvedení původního čipu R300 v Radeonu 9700).




Schéma jádra GK104 (Kepler)


Pokud se na GK104 podíváte velmi zhruba, tak se vám bude zdát, že se díváte na o něco větší Fermi. GPU je opět organizováno tak, že jsou zde staré dobré stream procesory alias CUDA cores, SM bloky a GPC. Fermi představovalo jako architektura dva rozdílné přístupy k tvorbě GPU. High-endová GPU GF110 byla základem použitelným pro HPC, ale současně i pro akceleraci grafiky. Naopak levnější jádra byla zaměřena pouze na herní využití s velmi nízkým výkonem při FP64 výpočtech. Příkladem druhého jmenovaného GPU je například GF114 z mainstreamové GeForce GTX 560Ti. Pokud jste čekali, že GK104 jako nové high-endové grafické jádro Nvidie bude opět plnit úlohu, jako mělo GF110, tak jste na omylu, neboť s GK104 se počítá pouze do herního světa. Nvidia tedy vsadila na jednoduché řešení, které poskytne vysoký výkon při akceleraci grafiky.

První zásadní věcí, které si na schématu Kepleru všimnete, je změna designu jednotek SMX, které nahrazují původní SM (Stream Multi-Processor). Již z letmého pohledu je zřejmé, že základních jednotek v podobě stream procesorů (CUDA cores) je v této jednotce mnohonásobně více ne ž v případě Fermi GF110. Celá konfigurace odkazuje spíše na mainstreamové GPU GF114, které má poloviční počet těchto výpočetních jednotek v každém SM bloku. V případě Fermi ale Nvidia uplatňovala výhodu vyššího taktu shaderové části čipu. SMX blok disponuje v případě Kepleru 192 stream procesory. Dále zde máme dvojnásobný počet všech ostatních jednotek (warp shedulery, texturovací jednotky atd.). Logicky muselo dojít také na zvětšení kapacity register file.




SMX blok (Kepler) - 192 CUDA cores


Pokud vezme v úvahu, že jádro GK104 disponuje 1536 stream procesory (CUDA cores), tak je jednoduchou matematikou jasné, že jich (SMX) zde musí být přítomno rovných 8. I zde se nabízí paralela se starším jádrem GF114 (GeForce GTX 560Ti), kde je 8 SM bloků po 48 jednotkách, což dává dohromady 384 stream procesorů. Větší počet jednotek ale musel nutně znamenat ustoupení od zvýšené frekvence pro shadery, protože logika čipu by musela být přepracována a ve svém důsledku by čip zbytečně zvětšila (dost podstatně). Kepler tedy se svými osmi SMX běží na základní frekvenci GPU. Zachován zůstává také poměr SFU vůči stream procesorů jako u jádra GF114.




SM blok (Fermi - GF114) - 48 CUDA Cores


V rámci SMX jednotek najdeme také Polymorph Engine 2.0, který má ve své kompetenci geometrii a podle Nvidie disponuje dvojnásobným výkonem na SM blok ve srovnání se starší architekturou Fermi. Jaké budou ve specializovaných benchmarcích výkony nového Polymorph Engine 2.0, si ukážeme v samostatné recenzi. Druhou klíčovou změnou v rámci GK104 je změna poměru ROP jednotek k rasterizérům, kdy nyní je schopna zpracovat stejných 32 pixelů za takt, ale zbytek jednotek (16) neleží ladem, jak se často dělo u GF110 (48 ROPs). Vše řídí tedy snaha o maximální efektivitu a využití každého kousku křemíku. Zajímavý je také změněný poměr SM:GPC bloků na 1:2, což ovšem samo o sobě zřejmě žádnou podstatnou výhodu oproti GF114 nepřináší.





Zajímavostí je, že Nvidia v případě GK104 obětovala schopnost výpočetních bloků CUDA cores pracovat s FP64, tak jako tomu bylo u Fermi, byť u GF114 v podstatně okleštěné formě. Kepler to řeší samostatnými jednotkami (8), které jsou schopny pracovat pouze s FP64 a neumí nic jiného. Tyto jednotky ale budete v rámci diagramu hledat marně, neboť v něm nejsou naznačeny. Výsledkem celé této snahy je, aby v případě nutnosti GK104 mohla s FP64 pracovat, ale její výkon bude na úrovni 1/24 výkonu při FP32. Proto se v mnoha výpočetních benchmarcích GK104 propadá až za starší GF110, které bylo pro výpočty FP64 uzpůsobeno podstatně lépe. V podstatě to ale Nvidii dává možnost v budoucnu vytvořit čip, kde využije možnost nasadit FP64 výpočetní bloky, ale otázka je, k čemu by podobné řešení a bylo a zda by pro takto specializovaný HPC čip bylo na trhu uplatnění.

Zajímavé je, že Nvidia u takto velkého čipu vsadila opět na 32 ROPs a teoretický výkon v oblasti pixel fill-rate tak bude identický ve srovnání s GPU GF114. Paměťový řadič navazující na osm ROPs a L2 cache o kapacitě 128 kB dává dohromady pro GK104 512kB L2 cache. Limitující faktory moderního GPU ale leží někde jinde než v počtu ROPs, respektive pixel fill-rate. Řeč je samozřejmě o paměťové sběrnici, potažmo její propustnosti. V tomto ohledu se Nvidia v minulých generacích poměrně trápila, protože paměťový řadič Fermi nebyl schopen pracovat s čipy GDDR5 stabilně na vysokých frekvencích, jaké dosahovalo AMD se svými Radeony.

Tentokráte je to ovšem Nvidia, která nasadila vysoko taktované GDDR5 paměťové čipy na rovných 6 GHz, což je prozatímní rekord na poli běžných grafických karet. Nebudeme ale svědky rekordní propustnosti paměťové sběrnice, protože společnost sáhla po relativně standardní 256bitové šířce. Celková propustnost pamětí tak zůstává stejná a Kepleru tedy stačí stejných 192 GB/s jako u GF110. Jestli je nebo není tato relativně nízká propustnost pamětí limitujícím faktorem, jako je tomu u AMD, si ještě ověříme, ale zřejmě to Nvidia vyřešila jinak. Co by za to AMD v případě Tahiti nyní dalo.





Poslední věcí, které je třeba zmínit v rámci hlubšího pohledu do jádra GK104, je odlišný scheduling (plánování vykonávání instrukcí při zpracování warpu) a s ním spojená efektivita jádra. Podle všeho Nvidia vsadila na jednoduchost a efektivitu, což dokladuje návrat ke statickému jednoduchému schedulingu, protože Nvidia usoudila, že klasický hardwarový scheduling (Fermi) přináší příliš málo výhod pro herní GPU. V případě Fermi tomu bylo jinak, protože zde se počítalo s výpočetním nasazením. Pro zajímavost uvedu, že AMD se k hardwarovému schedulingu dostalo až v případě současné generace architektury GNC a Radeonů HD 7000. Jednoduše proto, že s GNC počítá v širším měřítku a ne pouze jako s herní platformou.