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:
- Nvidia GF100 alias Fermi - bližší informace
- GF100 – bližší pohled
- Geometrie v podání kulišácké Nvidie
- Kvalitnější obraz a rychlejší vyhlazování u GF100
- Vylepšené CSAA a nehynoucí TMAA metody FSAA
- GF100 ve světě akcelerace non-GPU výpočtů
- Závěr
Když výrobci čipů navrhují své nové ratolesti s podporou nejnovějšího API Microsoftu, tak jsou poněkud omezováni právě funkčností tohoto rozhraní. Samozřejmě čip může mít speciální jednotky, které mohou vývojáři v kódu shaderu povolat k výkonu, ale dobře si pamatujeme, jak to dopadlo s teselátorem přítomným v několika generacích ATI Radeonů (Radeon 2000/3000/4000 – není kompatibilní s DirectX 11 a není jej proto možné takto využít ani nyní), což je pochopitelné, neboť každé hrábnutí programátorů do klávesnice stojí peníze a benefity jsou v takových případech malé.
Využití jitter samplingu
Kvalita obrazu (lépe řečeno korektnost scény) je námětem mnoha učených i neučených disputací a často terčem kritiky. Málokdo ovšem ví, že vliv na výslednou kvalitu zobrazení scény nemá pouze precizní algoritmus vyhlazování nebo anizotropního filtrování, ale také další techniky, mezi než patří tzv. Jittered sampling. Nenechte se mýlit, protože se nejedná o žádnou novinku (neplést s jitterem jako takovým), ale o metodu běžně používanou pro soft shadows ze stínových map, kdy je vzat náhodný sample sousedících texelů a z něj je následně počítán jemnější přechod stínu. Problémem této metody je jako obvykle výpočetní náročnost, což značně omezuje její možné využití (proto také „pravé“ soft shadow mají neuvěřitelně velký dopad na výkon).
V DirectX 10.1 je možné tuto metodu aplikovat skrze instrukci, která „sbírá“ sousedící texely pro aplikování jittered samplingu. Do doby updatu DirectX 10 nebylo specifikováno, jak celou věc implementovat a Nvidia ji například prováděla skrz jedinou vektorovou instrukci. Složitější alternativou bylo zpracovat každý texel zvlášť, ale s tím by se naprostá většina vývojářů pod DirectX 9/10 neotravovala (potřeba dodělat zvlášť). V rámci DirectX 11 má k dispozici čip GF100 funkci Gather4 pro maximální zjednodušení a efektivitu, což se podepíše na výkonu i na dalších možnostech s daleko vyšším limitem pro práci se scénou.
Soft-shadows
Nvidia na svých technologických demech demonstruje až dvojnásobnou výkonnostní výhodu oproti předešlé generaci hardware. Gather4 ovšem není funkce speciálně určená pouze pro jittered sampling, ale může být využita v dalších metodách zpracování scény. Pro hry to ovšem povede k benefitům, jako jsou měkčí stíny a podobně, ale to jsme už slyšeli aspoň milionkrát.
Nvidia zapracovala na vylepšení svých ROP jednotek, aby zlepšila dopad vyšších levelů antialiasingu na výkon, což minulou generaci GeForce poměrně hodně trápilo a poměrově dosahovalo horších propadů výkonu než u ATI při využití 8x a vyššího levelu FSAA. Podle grafu se nám Nvidia snaží vnutit fakt, že nyní již implicitně budeme moci nechat aktivováno rovnou 8x FSAA bez nutného snížení výkonu pod hranici hratelnosti i u nejnovějších her (nevytvořených primárně pro konzole).
Tento fakt lze jedině přivítat, neboť kvalita scény závisí krom kvality textur, komplexního osvětlení, komplexních geometrických modelech primárně také na vyhlazování, které má přímo neuvěřitelný vliv (viz. například Final Fantasy série – jak by asi vypadala bez vyhlazování, byť se jedná o algoritmy, na které si současné karty ještě pár let počkají).
Využití jitter samplingu
Kvalita obrazu (lépe řečeno korektnost scény) je námětem mnoha učených i neučených disputací a často terčem kritiky. Málokdo ovšem ví, že vliv na výslednou kvalitu zobrazení scény nemá pouze precizní algoritmus vyhlazování nebo anizotropního filtrování, ale také další techniky, mezi než patří tzv. Jittered sampling. Nenechte se mýlit, protože se nejedná o žádnou novinku (neplést s jitterem jako takovým), ale o metodu běžně používanou pro soft shadows ze stínových map, kdy je vzat náhodný sample sousedících texelů a z něj je následně počítán jemnější přechod stínu. Problémem této metody je jako obvykle výpočetní náročnost, což značně omezuje její možné využití (proto také „pravé“ soft shadow mají neuvěřitelně velký dopad na výkon).
V DirectX 10.1 je možné tuto metodu aplikovat skrze instrukci, která „sbírá“ sousedící texely pro aplikování jittered samplingu. Do doby updatu DirectX 10 nebylo specifikováno, jak celou věc implementovat a Nvidia ji například prováděla skrz jedinou vektorovou instrukci. Složitější alternativou bylo zpracovat každý texel zvlášť, ale s tím by se naprostá většina vývojářů pod DirectX 9/10 neotravovala (potřeba dodělat zvlášť). V rámci DirectX 11 má k dispozici čip GF100 funkci Gather4 pro maximální zjednodušení a efektivitu, což se podepíše na výkonu i na dalších možnostech s daleko vyšším limitem pro práci se scénou.
Soft-shadows
Nvidia na svých technologických demech demonstruje až dvojnásobnou výkonnostní výhodu oproti předešlé generaci hardware. Gather4 ovšem není funkce speciálně určená pouze pro jittered sampling, ale může být využita v dalších metodách zpracování scény. Pro hry to ovšem povede k benefitům, jako jsou měkčí stíny a podobně, ale to jsme už slyšeli aspoň milionkrát.
Nvidia zapracovala na vylepšení svých ROP jednotek, aby zlepšila dopad vyšších levelů antialiasingu na výkon, což minulou generaci GeForce poměrně hodně trápilo a poměrově dosahovalo horších propadů výkonu než u ATI při využití 8x a vyššího levelu FSAA. Podle grafu se nám Nvidia snaží vnutit fakt, že nyní již implicitně budeme moci nechat aktivováno rovnou 8x FSAA bez nutného snížení výkonu pod hranici hratelnosti i u nejnovějších her (nevytvořených primárně pro konzole).
Tento fakt lze jedině přivítat, neboť kvalita scény závisí krom kvality textur, komplexního osvětlení, komplexních geometrických modelech primárně také na vyhlazování, které má přímo neuvěřitelný vliv (viz. například Final Fantasy série – jak by asi vypadala bez vyhlazování, byť se jedná o algoritmy, na které si současné karty ještě pár let počkají).