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ě

Fermi (GF100): pohled na architekturu čipu

31.3.2010, Petr Štefek, technologie
Fermi (GF100): pohled na architekturu čipu
V dnešním článku, který je předvojem praktických testů, se podíváme na architekturu netrpělivě očekávaného čipu Fermi (GF100). Tento čip je s přehledem tím největším, co kdy bylo v segmentu grafických jader vyrobeno a integruje i největší množství procesorů.
Grafické jádro GF100 se vyznačuje 512 Stream Processory (Nvidia je nově nazývá CUDA cores, aby zdůraznila, že se jedná o multi-funkční akcelerátor a nikoli pouze o grafickou kartu). Ve struktuře nadřazenou jednotkou je Streaming Multiprocessor (SM), čtveřice těchto jednotek pak představuje Graphics Processing Cluster alias GPC. Čtveřice GPC zase tvoří již celistvý čip GF100. Pokud bychom počty jednotek vynásobili, pak nám logicky vyjde číslo 512. Bohužel se nám ale do finálního produktu dostalo pouze 480 aktivních jednotek, což je pravděpodobně zásluhou ještě nezvládnuté výroby tak velkého čipu. Je pravděpodobné, že se můžeme dočkat v další revizi také varianty „GTX 490“ na vyšším taktu a s plnými 512 stream procesory.


Celý čip GF100

Čip GF100 disponuje 64 TAU (Texture Adressing Unit) a rovnou 256 TFU (Texture Filtering Unit). Takovýto poměr adresovacích a filtrovacích texturovacích jednotek začne dávat smysl v momentu, kdy se uvědomíme, jaký typ filtrování dnes ve všech aplikacích využíváme (anizotropní). Samotné texturovací jednotky běží na polovině taktu jádra.

48 renderovacích jednotek přítomných v čipu GF100 není na první pohled mnoho, ale je třeba si uvědomit, že jednotky jsou podstatně vyspělejší než u předchozích grafických čipů a navíc v dnešní době nepředstavují problém ani pro FSAA (většina pokročilých adaptivních algoritmů využívá shaderů). GF100 je v mnoha ohledech odlišná od minulé architektury GT200 a pokud vezmeme v úvahu její funkčnost na úrovni herního akcelerátoru, pak je zde odklon od struktury a funkčnosti minulých čipů ještě patrnější. Nvidia chtěla vytvořit multi-funkční akcelerátor, který bude mít minimum omezení v každé oblasti, kde s jeho nasazením počítá. To velmi dobře ilustruje celková rozdrobenost čipu, kde každý malý SM má svůj rasterizační a texturovací engine, takže části čipů mohou nezávisle provádět různé operace a vše jde řídit podstatně efektivněji, než je tomu u architektury GT200. Plná programovatelnost, to je heslo Nvidie pro nový čip.


Blok SM (Streaming Multiprocesor)

V podstatě jediná jednotka s pevně danou funkčností je tzv. GigaThread Engine, což není nic jiného než plánovač úloh, které má čip vykonat. Jeho funkčnost a efektivita má stěžejní vliv na výkon celého čipu. V nové architektuře GF100 může plánovač vykonávat současně vlákna z několika paralelně běžících kernelů. V minulosti se tak běžně stávalo, že při běhu jediného kernelu nebyla karta schopna využít efektivně výkonu celého čipu a část kapacit tak zahálela. Všechny hlavní části čipu (Streaming Multiprocessor) tedy musely v rámci efektivity pracovat na stejné věci. To pro nový čip neplatí, zde je maximální možnost využít části čipu pro jiné úlohy, a to bez nutnosti zdlouhavého přepínání mezi kernely.

Nvidia si nechává volná dvířka pro další CUDA aplikace bežící zároveň. Čas nutný pro přepínaní mezi aplikacemi CUDA, PhysX atd. se zkrátil více než desetkrát, což znamená, že čip dokáže zpracovat například v rámci jednoho FPS také PhysX beze ztráty efektivity a vytížení všech jednotek. GF100 dokáže pracovat najednou až s 24 tisíci vlákny, což je asi o 6 tisíc méně, než v případě architektury GT200. V předešlé architektuře byla ovšem logika SM části poměrně úzce navázána na výpočetní část, a tak v momentě, kdy jste poslali do SFU (Special Function Unit) další vlákna, tak SM část nebyla schopna před dokončením stávajících instrukcí vykonávat nové. SFU jednotky tedy v horším případě pracovaly a zbytek SM zahálel.

GF100 tento problém obešlo dvěma speciálními řídícími jednotkami na začátku a konci každé SM sekce. Každá z těchto dvou jednotek si může vzít ke zpracování polovinu warpu (Nvidia tak nazvala celek 32 vláken, které se rovnají 1 warpu), kde těchto 16 vláken nemusí být ani ze stejného warp celku. Tak se dá velmi dobře zařídit, aby byly ve větším počtu zpracovány nezavislé operace. V současné architektuře je u každého warpu potřeba čekat, než jsou dokončeny operace v SFU. Tento fakt dělá z Fermi konečně velmi flexibilní architekturu, což podle odborníků GT200 rozhodně nebyla.
Doporučujeme náš velký přehled desktopových grafických čipů.