Architektura Fermi - NVIDIA GF100

24. 2. 2010 07:00    Rubrika: Technologie    Autor: Vojtěch Uhlíř

Marketingové oddělení firmy NVIDIA se v poslední měsících opravdu činí. To, co do dokázalo udělat s celosvětovou veřejností, kdy každá, byť sebemenší zpráva zahýbe všemi novinkovými kanály a fóry, je minimálně obdivuhodné. Pojmům NVIDIA Fermi či GF100 snad žádný počítačový fanoušek nemohl uniknout. V dnešním článku si shrneme většinu hlavních a zatím dostupných informací.

Architektura Fermi - NVIDIA GF100

Hned na počátku musíme zdůraznit, že nám NVIDIA stále dluží nějaké konkrétní údaje o taktech, jednotlivých modelech, výbavě a přesnějších informacích o kartách. Kódově označená NVIDIA Fermi, alias čipy GF100 (pozor na označení, GT200 se týká původních a dnes prodávaných karet), budou vyráběny 40nm technologií a ponese 512 stream procesorů. NVIDIA je nazývá a zdůrazňuje slovem CUDA, aby zdůraznila že půjde o opravdu programovatelné akcelerátory, nikoli běžné vykreslovací jednotky.
Do roku 2006 měla GPU oddělené pixel a vertex shadery, které byly velmi úzce specifické a víceméně nepoužitelné pro obecné výpočty. Změna přichází s jádrem NVIDIA G80 alias GeForce 8800, které přineslo unifikované výpočetní jednotky (shadery) známé právě pod pojmem CUDA (Compute Unified Device Architecture). Druhou verzí byly GPU s jádry GT200, které však z G80 přímo vycházely a byly pouze technologicky omlazené.

Opravdovým přechodem k GPGPU (General-purpose computing on graphics processing units - obecné výpočty na grafických procesorech) by měla být právě architektura NVIDIA Fermi, zahrnující všechny dosavadní poznatky a finální unifikaci grafických karet.

Samotná architektura GF100

Zmíněných 512 CUDA jader je fyzicky součet jednotlivých části celého jádra. To tvoří 4 GPC (Graphics Processing Cluster) jako čtyři nejvyšší oddíly. Každý se pak dále dělí na 4 SM (Streaming Multiprocessor) bloky, které obsahují právě 32 CUDA cores. Dohromady nám to dává zmíněných 512 jednotek. Výhoda tohoto elementárního dělení je jasná – pří výrobě nižších řad a levnějších modelů budou vypnuty určité partie či mohou být použity nedokonalá, ale stále funkční jádra. Nyní se podíváme ještě hlouběji a následně budeme rozebírat jednotlivé funkce.

Nejvyšší jednotkou je tedy jeden GPC. Ten se dále dělí na tzv. Raster Engine a zmíněné 4 SM bloky. Ty poté obsahují zejména vlastní CUDA jádra, 4 texturovací jednotky a tzv. Polymorph Engine. Teď k samotným částem. Polymorf Engine se stará o kompletní geometrizaci scény. Nahrazuje právě pevně dané pipeline, které by pro náročné a programovatelné výpočty nemohly stačit.
Polymorf Engine má pět základních funkcí tj., ertex fetch, teselace, viewport transformace, attribute setup a Stream Out. Nejdůležitější je zde právě teselace, jako největší pozlátko DirectX 11, o kterém si povíme později. O textury se starají zmíněné texturovací jednotky, kdy každá z nich dokáže zpracovat až čtyři operace nad texturou za jeden takt. Výsledek bude vrácen jako nefiltrovaný nebo jako filtrovaný. Filtrování je podporováno bilineární, trilineární a anisotropické.

GF100

Nad celou GPC jednotkou poté stojí Raster Engine. V rámci tři fází, edge setup, rasterizace a cullingu, se provedou kompletní výpočty s trojúhelníky, neviditelností a případným požadavkem na vyhlazování do výsledných pixelů. Jelikož všechny tyto operace z důvodu dělené architektury jsou prováděny naprosto nezávisle, paralelně a v závislosti na momentálních požadavcích, jediná pevně nastavená funkčnost je u tzv. GigaThread Engine. Ten komunikuje se systémem, samozřejmě přes PCI-Express a přebírá instrukce od CPU. Jelikož GigaThread Engine zastřešuje všechny 4 GPC bloky, je to právě on, kdo rozděluje úlohy jednotlivým streaming multiprocessorům a ty následně do výpočetních jednotek. Celé jádro GF100 obsahuje šest řadičů paměti o šířce 64 bitů, což nám dává 384 bitů celkové šíře paměťové sběrnice.

Geometrický realismus

Zde se dostáváme k vlastnímu grafickému zobrazování a podpoře DirectX 11. GF100 bude první jádro z tábora zelených podporující nové API rozhraní od Microsoftu - DirectX 11. Kompletně celý popis jsme vám přinesli nedávno v samostatném článku - DirectX 11- o krok blíže realitě.

My si zde připomene nejzásadnější pojmy. První je bezesporu pojem "tesselace". Jde o naprostý požadavek DirectX 11, na kartách nelze nijak obejít, aniž by byla grafická karta stále kompatibilní. AMD má ve svých kartách ATI Radeon hardwarový tesselátor již od čipu R600, bohužel však předběhl svou dobu a své uplatnění má právě až nyní. Ačkoliv Radeonům stačí a mají tesselátor přítomný pouze jeden, NVIDIA přichází s celkově odlišnou filosofií a GF100 bude mít tesselátorů rovnou 16. Jeden v každém SM bloku v rámci Polymorf Enginu.

Tesselace se stará o značné navýšení a zlepšení geometrického výkonu. Jedná se zjednodušeně o rozdělení trojúhelníku na menší trojúhelníčky nebo na modifikované polygonální sítě dle potřeby programátora. Takže je možné vytvořit reálnější model z velice jednoduchého modelu, ale s velice malým dopadem na změnu celkové velikosti dat a výkonu. Použitím tesselace tedy může herní vývojář poslat do GPU stále datově malou informaci o geometrii objektu nebo postavy a tesselátory se již postarají o pěkný a komplexní model zobrazený na monitoru. Vrcholem všeho je poté kombinace tesselace s displacement mappingem. Ten nám velmi jednoduchými metodami brutálně zvyšuje výkon ve 3D grafice. Pomocí hlavní plochy a informací o výškách jednotlivých bodů dostáváme výsledný 3D model.

Tesselace + displacement mapping
Ukázka použití tesselace + displacement mappingu

OpenCL, DirectCompute a PhysX

Jak už jsme několikrát řekli, NVIDIA Fermi je mířena spíše na GPGPU výpočty než na hry jako takové. Celé jádro GF100 je plně programovatelné a kompatibilní s všemi hlavními rozhraními v dnešní době, jako je kromě DirectX11 například OpenCL, Direct Compute, CUDA C, CUDA C++, PhysX či do budoucnosti ray-tracing. Díky znatelnému vylepšení oproti G80 či G200 došlo až 10-ti násobnému zrychlení v přepínání mezi určitou výpočetní a grafickou úlohou. V intervalu kolem 20 mikrosekund lze tak přepínat mezi různými úlohami postavených na odlišných kernelech. Pro programátory to tak znamená, že není problém vykreslovat scénu pod DirectX 11 a zároveň třeba počítat fyziku v PhysX. Ve zmíněném ray-tracingu by GF100 mělo být až 3x výkonnější než předchozí G200, stále to však není na real-time akceleraci a ještě nějakou chvíli si na to určitě počkáme.

NVIDIA Nexus

K programovatelnému stroji, jako jsou zde grafické karty na jádře GF100, je samozřejmě zapotřebí nalákat co nejvíc programátorů a co nejvíce jim přiblížit a zjednodušit jejich práci. Proto NVIDIA představila vývojové prostředí NVIDIA Nexus. Jde o nástavbu Microsoft Visual Studia, nejčastěji užívaného vývojového prostředí na Microsoft Windows platformě. Jako první vůbec je speciálně upravené pro podporu tvorby masivně paralelních aplikací psaných v jazycích jako CUDA C, OpenCL a DirectCompute. Nexus umožňuje vývojářům programovat a debuggovat zdrojový kód GPU aplikací stejně, jak to dosud dělali u běžných programů pro CPU, včetně podpory pro breakpointy, kontrolu obsahu paměti atd. Nexus navíc přidává do Visual Studia novou funkcionalitu s nástroji pro správu jednotlivých paralelních úloh, jako třeba možnost zaměřit se při debuggingu na jediný výstup z tisíců paralelně běžících či schopnost jednoduše vizualizovat výsledky počítané všemi paralelními vlákny.

NVIDIA Nexus

Samotný pojem Fermi

Jelikož se tu celý článek bavíme o architektuře Fermi, mohli bychom se na závěr podívat kde má toto slovo svůj původ. NVIDIA svůj produkt pojmenovala po jednom z největších fyziků 20. století, Enricu Fermim. Enrico Fermi (1901-1954) byl původem nadaný italský fyzik, který se již v roce 1926, tedy ve svých 25 letech, stává profesorem na univerzitě. V roce 1934 Enrico Fermi pak objevuje umělou radioaktivitu, vyvolanou bombardováním atomových jader neutrony a zároveň vypracovává experimentální metodu zpomalení těchto neutronů – za tento objev a za metodu využití pomalých neutronů k přípravě nových radioaktivních prvků pak Fermi získává v roce 1938 Nobelovu cenu za fyziku.

NVIDIA Nexus

Po převzetí ceny ve Stockholmu se však již zpátky domů nevrací, s nástupcem fašismu v Itálii emigruje do USA (manželka byla Židovka). Zde, na univerzitě v Chicagu, kde působí jako profesor od roku 1942, 2. prosince 1942 uskutečňuje první řízenou řetězovou (jadernou) reakci na světě. Jaderný reaktor byl navržen přímo jím a jeho týmem spolupracovníků. Později pracuje například v týmu na Projektu Manhattan, tj. vývoji první atomové bomby. Enrico Fermi umírá v Chicagu 28. listopadu roku 1954, navždy se však nesmazatelně zapsal do historie částicové a jaderné fyziky.

Shrnutí

Představili jsme si zcela novou architekturu grafických karet, která zcela určitě bude základem pro několik dalších generací a budoucích let. Nese se v znaku přechodu od samotného zobrazování na grafických kartách k naprosto obecným výpočtům, které doteď zastávají pouze CPU. Například vizí u firmy NVIDIA je, že spousta těchto dnešních výpočtů by se na grafické karty přenesly úplně a daly by se provádět možná i lépe a rychleji.

Bohužel, o samotných kartách na jádře GF100 stále nic nevíme. Od NVIDIE jsme slyšeli právě jen obecné informace o stavbě a funkci jader. Ačkoliv se o Fermi mluví už nekonečně dlouhou dobu, stále nevíme nic o taktech, výkonnostních variantách, spotřebě a ceně, o reálném a reprodukovatelném výkonu ani nemluvě. Fermi je rozhodně nadějná architektura a hlavně po několika letech konečně NVIDIA představila něco nového.

Je zde však otázka jestli si tentokrát na sebe NVIDIA nevzala až moc velké sousto. Konkurence totiž v desktopové oblasti svou nabídku produktů již plně zkompletovala (od nejvyšší modelů až po low-end). V oblasti mobilních zařízení jsou Radeony HD5xxx již v prvních modelech osazeny a nebude trvat dlouho, než budou notebooky s těmito kartami prodávány ve velkém.

U architektury Fermi bude ale ještě trvat hodně dlouho, než se jí dočkáme mezi notebooky - teprve v 2. čtvrtletí 2010, po několikátém odložení, se snad objeví první reálné desktopové varianty, a to ještě pouze v hi-endu. Pouze věrní příznivci NVIDIE si ještě dlouho nic nekoupí, ostatní mají vcelku jasnou volbu. Ohledně dalších a hlavně konkrétních informací nám nezbývá nic jiného než i nadále čekat.

Technologie

Diskuse