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 Fermi - revoluce na poli grafických karet?

20.10.2009, Petr Štefek, článek
Nvidia Fermi - revoluce na poli grafických karet?
Nvidia nás záhy po uvedení nových Radeonů HD 5000 zahrnula prvními informacemi o chystané architektuře Fermi, která má ambice na to, aby se stala hnacím motorem pro segment herního hardware a také pro segment doposud jen oťukávaného High Performace Computingu.
Pokud se podíváme na současné grafické jádro G200, tak jde v podstatě o dvě jádra G92 a nedošlo zde k žádnému výraznějšímu posunu v designu jádra. Ale proč měnit něco, co velmi dobře funguje. AMD šlo podobnou cestou u svého nového jádra RV 870, které je také dvojnásobkem předešlého jádra RV 770. Samozřejmě v případě čipu AMD došlo k výraznějšímu posunu, protože bylo potřeba přidat podporu DirectX 11 a upravit některé další vlastnosti čipu. V podstatě se ovšem jedná o stejnou superskalární architekturu, kterou už známe u AMD několik let.

Fermi je podobný příběh, jelikož se opět jedná o skalární architekturu, která vychází z předpokladu, že jedno jádro zpracovává jednu operaci za takt. Nvidia tedy využívá většího počtu samostatných jader (Stream Procesory a nyní CUDA Cores), které jsou podle slov společnosti podstatně výhodnější pro zpracovávání jednovláknových aplikací. Architektura Nvidie tedy pokračuje v nastolené tradici, kde není potřeba za základní výpočetní jednotku uvažovat superskalární procesor s více jednotkami (čipy ATI mají procesory s 5 výpočetnímí jednotkami).



Samotná výpočetní jádra (nyní nazývána jako CUDA Cores) ovšem prošla změnami, které byly potřebné v rámci nasazení pro akceleraci běžných aplikací. Procesory jsou nyní upraveny tak, aby splňovaly standard IEEE pro aritmetiku s plovoucí desetinnou čárkou (IEEE-754 2008) a 32-bitové celočíselné operace. V minulosti musely být tyto výpočty emulovány, neboť hardware samotný podporoval pouze 24-bitové celočíselné operace.

Další podstatnou novinkou je Fused Multiply Add (větší přesnost výpočtů, neboť nedochází mezi jednotlivými operacemi k zaokrouhlování a snižuje se nutné množství přístupů od paměti). Máme zde tedy pevné standardy a nemusíme nic emulovat nebo obcházet. A to je dobrá zpráva pro vývojáře.

Další libůstkou je vyšší efektivita FP64 double-precision výpočtů, které jsou nyní na teoreticky na polovině výkonu v případě 32-bitových. Tím se nemůže pochlubit ani AMD s čipem RV 870. Pro vědeckou obec je to velmi dobrá zpráva a pro nás smrtelníky technologická zajímavost, kterou nevyužijeme.



Ptáte-li se na počet texturovacích nebo renderovacích jednotek, tak Nvidia svéřepě mlčí a mluvíme zatím jen a pouze o samotných procesorových jádrech a jejich počtu. Všechny tajnosti okolo detailů architektury a podivné ukazování nefunkčních karet s podivným designem plošného spoje a nefunkčním chlazením dávají velké místo pro spekulace.

Nvidia se nám ovšem pochlubila alespoň s tím, jak fungují cache v rámci práce s výpočetními jádry. Starší jádro G200 mělo pro každý blok stream procesorů sdílenou paměť o velikosti 16 kB, která byla spíše než cache sdílenou pamětí řízenou softwarově podle potřeby ovladačů.

Nové Fermi jde v tomto ohledu dále a každý blok má k dispozici rovnou 64 kB sdílené paměti. Ovšem aby to vše nebylo jednoduché, tak nedošlo pouze k navýšení velikosti paměti, ale lze navíc tuto kapacita rozdělit v poměru 16 kB pro L1 cache a 48 kB jako sdílenou paměť a nebo naopak 48 kB pro L1 cache a 16 kB pro sdílenou paměť.



Důvod je jednoduchý. V případě, že FERMI bude zpracovávat grafiku ve hrách, tak by bylo zbytečné mít velkou L1 cache, ale naopak v případě akcelerace klasických aplikací za pomocí GPU je L1 cache o slušné velikosti pro efektivní běh nezbytností. Celý čip FERMI obsahuje tedy logicky dle počtu SM bloků 768 kB paměti (16x64 kB). Souhrnem všeho je fakt, že FERMI provádí atomické operace (procesor může číst a zapisovat do paměti v jednom cyklu, což zabraňuje tomu, aby jiný procesor zapisoval nebo četl, než je tato operace dokončena) až 20x rychleji než starší jádro G200.

Kolik bude mít FERMI výpočetních jader? Pravděpodobně se bude jednat o 512 stream procesorů (neboli CUDA Cores). Samotné jádro bude disponovat 16 bloky, kde každý z nich bude integrovat 32 těchto relativně jednoduchých jader. Každý z těchto bloků (SM) má kromě výpočetních jader také Special Function Unit (SFU), která se stará o interpolace a transcendentní výpočty. Oproti staršímu čipu G200 bude mít FERMI v případě této jednotky rovnou 4 pipeline, což v praxi znamená až čtyřnásobný výkon jednoho bloku jednotek.
Doporučujeme náš velký přehled desktopových grafických čipů.