Nvidia GF100 alias Fermi - bližší informace
21.1.2010, Petr Štefek, technologie
Dnešní článek přináší bližší informace o nové architektuře GF100 společnosti Nvidia. Nemusíte se bát, protože se nebude jednat pouze o kopírování PR informací, ale nad vším se řádně zamyslíme a vše si rozebereme.
Kapitoly článku:
Pokud se podíváme na geometrii v dnešních hrách, snadno zjistíme, že se mnoho let moc nezměnilo. Ano, modely vypadají podstatně lépe, ale to se jedná především o aplikaci technik, jako je například parallax mapping a podobně, které vytvářejí pouze dojem komplexnějšího povrchu. Vytváření poměrně jednoduchých geometrických modelů má také jeden ze svých důvodů v současném a minulém hardware. Když se podíváte na to, s jakými skoky se mění výkon shaderů grafických čipů, dostaneme se k tomu, že se jedná stovky až tisíce procent v uplynulých deseti letech. Shadery hrály prim ve všem včetně unifikovaných architektur a efektových možnostech rozhraní DirectX nebo OpenGL. Nikoho dnes nezajímá výkon geometrických jednotek, ale především se vždy jedná o výkon shaderů.
Pokud bychom se stejně podívali i na geometrickou část čipů, tak s hrůzou zjistíme, že současné čipy jsou pouze několikrát výkonnější, než tomu bylo třeba před 7 lety. GeForce GTX 285 má pouze 2-3x vyšší geometrický výkon, než měla prastará VLIW architektura NV30 alias GeForce 5800. Není snad výkon v oblasti geometrie potřeba? Samozřejmě je, ale ve světle trendu vývoje počítačové herní grafiky jsme ho tolik nepotřebovali a vše nahrazovali pseudo geometrií, která ovšem v příští generaci komplexního osvětlení scény a HD textur jen stěži postačí.
DirectX 11 podporuje a nařizuje, aby veškeré čipy kompatibilní s tímto novým rozhraním měly hardwarový teselátor, který bude komplexnější geometrii počítat. Nvidia tedy jen velmi těžko mohla nějakým způsobem obcházet, jakým způsobem se to bude dělat, aby si zachovala komptibilitu s DirectX 11. Chytře ale obešla neexistující nařízení, jak rychle to vše bude dělat. AMD má ve svých čipech k dispozici hardwarový teselátor a Nvidia má naproti tomu komplexnější Polymorph Engine. Nyní ještě dodám, že GF100 disponuje až 8x vyšším geometrickým výkonem oproti GeForce GTX 285 alias GT200. Společnost tedy učinila poměrně velký krok, musíme ale rovněž zmínit, že Radeony posledních generací měly geometrický výkon podstatně vyšší než srovnatelné generace karet GeForce.
Tesselace v podání Nvidie
GF100 může k vytvoření komplexního modelu využít spolu s teselací i displacement mapping, což vyžaduje značný výkon. Proto má čip GF100 k dispozici rovnou 16 PE (Polymorph Engine) a 4 RE (Raster Engine) ke zvládnutí tohoto úkolu. Teoretická osminásobná rychlost oproti minulé generaci karet musí dát návrhu čipu GF100 za pravdu. Je ovšem velmi pravděpodobné, že výhody vysokého geometrického výkonu se mohou projevit až za delší dobu nebo vůbec, jak bývá u podobných vylepšení zvykem (vzpomeňme na snahy Nvidie i ATI přinést technologie nad rámec DirectX nebo jejich vylepšení).
Nvidia si nemohla dovolit každý jediný PE navrhnout jako out-of-order, neboť i zde se vyskytují určitá rizika stejně, jako je tomu u procesorů. Na druhou stranu nyní může ovládat vykonávání každého z 16 PE a v případě potřeby každý z nich ovládat tak, aby nedošlo k nežádoucímu pozměňování výstupů. Ke koordinaci PE jednotek slouží zvláštní samostatný kanál, kde spolu mohou komunikovat a zdánlivě tak zůstat kompaktní, ale některé z instrukcí vykonávat odlišně. Podle slov Nvidie to byl vskutku obtížný výkon, neboť od monolitického navrhování předchozích geometrických jednotek se plynule přešlo téměř k úplnému paralelismu a větším možnostem programování samotného čipu. Velmi pravděpodobně právě komplexnost geometrického enginu GF100 měla velmi podstatný podíl na zpoždění celého čipu.
Nvidia má totiž oproti AMD a čipům ATI poněkud těžší cestu formou obřího monolitického GPU, které bude muset zvládat téměř cokoli. A zde musíme před inženýry Nvidie smeknout.
Společnost musela jít touto cestou velmi pravděpodobně z důvodů odstranění limitací na straně teselátoru, kdy by pipeline s pevnou funkčností mohla znamenat problém právě pro obrovské množství dat, které na scéně vytváří teselace. Úzké hrdlo celého procesu vytváření komplexní geometrie bylo odstraněno a navíc je rychlost zpracování geometrie závislá na celkové velikosti čipu (rozuměj počtu jednotek) a nikoli pouze fixně v závisloti na pevně dané jediné jednotce. Škálovatelnost výkonu je to, oč tu běží. A zde je Nvidia o dost dál než Radeony HD 5800 s pevně danou funkčností pipeline. Na druhou stranu lze zatím jen polemizovat o tom, jaký vliv v normálních hrách to na teselaci samotnou a vůbec kompexní geometrii bude mít.
Teselace + displacement mapping
Pokud se podíváme dále na texturovací jednotky čipu GF100, najdeme zde několik zásadních rozdílů. Prvním je to, že texturovací jednotky podporují formáty komprese textur pro DirectX 11 a tím druhým, že jsou svázány s frekvencí shader core a nikoli celého čipu tak, jako tomu bylo v minulosti u architektury GeForce 9 a níže. Vyrovnávací paměti L1 zůstaly beze změny (64 kB), ale L2 cache (768 kB) je nyní k dispozici všem výpočetním jednotkám a ne pouze texturovacím jednotkám. Pokud by se někdo radoval nad superrychlými texturovacími jednotkami pracujícími na taktu vysoko nad 1,5 GHz, tak ho zklamu, neboť zde mluvíme o taktu na úrovni jedné poloviny taktu shader core.
Poslední zastávkou na výletu po krásách architektury GF100 alias Fermi jsou ROP jednotky. Počet těchto jednotek je nyní 48 v šesti částech, kde každé z nich je k dispozici 64-bit pamětový kanál pro posíláni dat do externí paměti akcelerátoru. ROP jednotky využívají již výše zmíněnou L2 cache o velikosti 768 kB, což je opět poměrně velká změna, protože u minulých generací čipů GeForce měly tyto jednotky svou cache zvlášť. Každá z jednotek zvládne zpracovat jeden 32-bitový pixel za takt a FP16/32 v dvojnásobku až čtyřnásobku tohoto času - tedy 2/4 taktu.
Kdybychom tak věděli, jaké bude mít čip GF100 pracovní takty alespoň v rámci stovek MHz. Můžeme se jen dohadovat, ale můj osobní tip je, že Fermi se ani v high-endovém provedení nedostane nad 700 MHz pro čip. To sice vypadá jako málo, ale vzhledem ke komlexnosti čipu a tomu, že shadery a další jednotky se budou pohybovat mnohem výše (záleží na multiplikátoru), tak se o žádnou tragédii jednat nebude. Atakovat 1 GHz může maximálně AMD se svým RV870 v další revizi, kdy je už pokoření této mety u sériové karty poměrně reálné. GF100 je nicméně daleko komplexnější čip než RV870.
Pokud bychom se stejně podívali i na geometrickou část čipů, tak s hrůzou zjistíme, že současné čipy jsou pouze několikrát výkonnější, než tomu bylo třeba před 7 lety. GeForce GTX 285 má pouze 2-3x vyšší geometrický výkon, než měla prastará VLIW architektura NV30 alias GeForce 5800. Není snad výkon v oblasti geometrie potřeba? Samozřejmě je, ale ve světle trendu vývoje počítačové herní grafiky jsme ho tolik nepotřebovali a vše nahrazovali pseudo geometrií, která ovšem v příští generaci komplexního osvětlení scény a HD textur jen stěži postačí.
DirectX 11 podporuje a nařizuje, aby veškeré čipy kompatibilní s tímto novým rozhraním měly hardwarový teselátor, který bude komplexnější geometrii počítat. Nvidia tedy jen velmi těžko mohla nějakým způsobem obcházet, jakým způsobem se to bude dělat, aby si zachovala komptibilitu s DirectX 11. Chytře ale obešla neexistující nařízení, jak rychle to vše bude dělat. AMD má ve svých čipech k dispozici hardwarový teselátor a Nvidia má naproti tomu komplexnější Polymorph Engine. Nyní ještě dodám, že GF100 disponuje až 8x vyšším geometrickým výkonem oproti GeForce GTX 285 alias GT200. Společnost tedy učinila poměrně velký krok, musíme ale rovněž zmínit, že Radeony posledních generací měly geometrický výkon podstatně vyšší než srovnatelné generace karet GeForce.
Tesselace v podání Nvidie
GF100 může k vytvoření komplexního modelu využít spolu s teselací i displacement mapping, což vyžaduje značný výkon. Proto má čip GF100 k dispozici rovnou 16 PE (Polymorph Engine) a 4 RE (Raster Engine) ke zvládnutí tohoto úkolu. Teoretická osminásobná rychlost oproti minulé generaci karet musí dát návrhu čipu GF100 za pravdu. Je ovšem velmi pravděpodobné, že výhody vysokého geometrického výkonu se mohou projevit až za delší dobu nebo vůbec, jak bývá u podobných vylepšení zvykem (vzpomeňme na snahy Nvidie i ATI přinést technologie nad rámec DirectX nebo jejich vylepšení).
Nvidia si nemohla dovolit každý jediný PE navrhnout jako out-of-order, neboť i zde se vyskytují určitá rizika stejně, jako je tomu u procesorů. Na druhou stranu nyní může ovládat vykonávání každého z 16 PE a v případě potřeby každý z nich ovládat tak, aby nedošlo k nežádoucímu pozměňování výstupů. Ke koordinaci PE jednotek slouží zvláštní samostatný kanál, kde spolu mohou komunikovat a zdánlivě tak zůstat kompaktní, ale některé z instrukcí vykonávat odlišně. Podle slov Nvidie to byl vskutku obtížný výkon, neboť od monolitického navrhování předchozích geometrických jednotek se plynule přešlo téměř k úplnému paralelismu a větším možnostem programování samotného čipu. Velmi pravděpodobně právě komplexnost geometrického enginu GF100 měla velmi podstatný podíl na zpoždění celého čipu.
Nvidia má totiž oproti AMD a čipům ATI poněkud těžší cestu formou obřího monolitického GPU, které bude muset zvládat téměř cokoli. A zde musíme před inženýry Nvidie smeknout.
Společnost musela jít touto cestou velmi pravděpodobně z důvodů odstranění limitací na straně teselátoru, kdy by pipeline s pevnou funkčností mohla znamenat problém právě pro obrovské množství dat, které na scéně vytváří teselace. Úzké hrdlo celého procesu vytváření komplexní geometrie bylo odstraněno a navíc je rychlost zpracování geometrie závislá na celkové velikosti čipu (rozuměj počtu jednotek) a nikoli pouze fixně v závisloti na pevně dané jediné jednotce. Škálovatelnost výkonu je to, oč tu běží. A zde je Nvidia o dost dál než Radeony HD 5800 s pevně danou funkčností pipeline. Na druhou stranu lze zatím jen polemizovat o tom, jaký vliv v normálních hrách to na teselaci samotnou a vůbec kompexní geometrii bude mít.
Teselace + displacement mapping
Pokud se podíváme dále na texturovací jednotky čipu GF100, najdeme zde několik zásadních rozdílů. Prvním je to, že texturovací jednotky podporují formáty komprese textur pro DirectX 11 a tím druhým, že jsou svázány s frekvencí shader core a nikoli celého čipu tak, jako tomu bylo v minulosti u architektury GeForce 9 a níže. Vyrovnávací paměti L1 zůstaly beze změny (64 kB), ale L2 cache (768 kB) je nyní k dispozici všem výpočetním jednotkám a ne pouze texturovacím jednotkám. Pokud by se někdo radoval nad superrychlými texturovacími jednotkami pracujícími na taktu vysoko nad 1,5 GHz, tak ho zklamu, neboť zde mluvíme o taktu na úrovni jedné poloviny taktu shader core.
Poslední zastávkou na výletu po krásách architektury GF100 alias Fermi jsou ROP jednotky. Počet těchto jednotek je nyní 48 v šesti částech, kde každé z nich je k dispozici 64-bit pamětový kanál pro posíláni dat do externí paměti akcelerátoru. ROP jednotky využívají již výše zmíněnou L2 cache o velikosti 768 kB, což je opět poměrně velká změna, protože u minulých generací čipů GeForce měly tyto jednotky svou cache zvlášť. Každá z jednotek zvládne zpracovat jeden 32-bitový pixel za takt a FP16/32 v dvojnásobku až čtyřnásobku tohoto času - tedy 2/4 taktu.
Kdybychom tak věděli, jaké bude mít čip GF100 pracovní takty alespoň v rámci stovek MHz. Můžeme se jen dohadovat, ale můj osobní tip je, že Fermi se ani v high-endovém provedení nedostane nad 700 MHz pro čip. To sice vypadá jako málo, ale vzhledem ke komlexnosti čipu a tomu, že shadery a další jednotky se budou pohybovat mnohem výše (záleží na multiplikátoru), tak se o žádnou tragédii jednat nebude. Atakovat 1 GHz může maximálně AMD se svým RV870 v další revizi, kdy je už pokoření této mety u sériové karty poměrně reálné. GF100 je nicméně daleko komplexnější čip než RV870.