Nvidia Fermi - Analýza nové generace GPU
i Zdroj: PCTuning.cz
Hardware Článek Nvidia Fermi - Analýza nové generace GPU

Nvidia Fermi - Analýza nové generace GPU | Kapitola 2

Z. Obermaier

Z. Obermaier

1. 10. 2009 03:00 57

Seznam kapitol

1. Úvod, tajností už bylo dost 2. Historie GPU Computingu 3. Lehké připomenutí CUDA 4. Fermi - Nové Jádro GPU 5. Další inovace v jádru 6. Závěr - spekulace o výkonu, a uvedení

Nové Radeony už mají své uvedení za námi, na Nvidii jsme si museli chvíli počkat. Rok jsme hovořili o GT300, jež vzalo za své a místo toho se objevilo kódové označení Fermi. I když vám dnes ještě kartu fyzicky neukážeme, dozvíte se o jádru téměř vše. Prohlédneme si změny vůči architektuře G200 a zaspekulujeme o parametrech karty.

Reklama
Nvidia Fermi - Analýza nové generace GPU
i Zdroj: PCTuning.cz

Jak už jsem naznačil v úvodu, není Fermi (GF100) přímým pokračovatelem G80-G200, ani žádné architektury před nimi. Jde o zcela novou filozofii přístupu ke GPU, kdy už prioritou není masivní herní výkon ale výkon výpočetní, kterého je možné využít místo CPU (ano NVIDIA stále bojuje proti Intelu a jeho CPU). Tato změna filozofie byla zřejmá a NVIDIA ji chtěla hodně prosazovat už při uvedení G200, ovšem dodnes se to mnoho nepodařilo.

Domácímu uživateli je totiž jedno, kolik jeho karta umí počítat GFLOPS v Double precision, jeho zajímají fps ve hrách. A tentokrát tomu bude také tak ... ať chce NVIDIA nebo nechce. Na nějakém fundovaném pracovišti Stanfordské univerzity, v buňce tvůrců Folding@Home může tato architektura zaznamenat bouřlivé ovace, stejně jako majitelů GPU výpočetních farem. U běžného hráče spíše nikoliv ... vše ukáže až čas, osobně jsem ale v tomto směru skeptik.

Pokud jste ale zákazník karet Tesla, můžete být skutečně novou generací nadšeni. Téměř všechny nevýhody stávající architektury, jako byl malý výkon v Double precision, žádná cache, nemožnost programovat paměť a hlavně "nízká" propustnost pamětí byla odstraněna právě u Fermi (GF100). Nahlédněme tedy nejprve zběžně do historie, jak se vyvíjel GPU Computing (Výpočty pomocí GPU) do dnešních dní ..

Zlom přišel s DirectX

Grafický čip pod zkratkou GPU uvedla na trh v roce 1999 právě NVIDIA. Už tenkrát se jednalo o procesor schopný vykonávat několik operací naráz - byl paralelní. Tehdejší hry vyžadovaly pro "jakousi" realistickou grafiku vysoký výpočetní výkon čipu, a tak se z čistě grafického GPU stával pomalu a jistě univerzální výpočetní stroj s vysokým výkonem v operacích s plovoucí desetinou čárkou. Dnešní GPU dalece v některých výpočetních operacích překonají běžná CPU, mnohdy i stonásobně. Čímž se stávají ideálním nástrojem pro paralelní výpočty.

Výraznější snaha využít výkon GPU i k jiným činnostem než hraní her, byla zaznamenána v roce 2003 s příchodem DirectX 9. V té době se pomalu opouštěl model renderování obrazu pevně danou pipeline a byly první náznaky programovatelných Pixel a Vertex Shaderů u grafických karet. Pro připomenutí té doby, trhu výkonem vládly ATi Radeony s jádrem R300 (Radeon 9500, 9700). Právě tehdy vzniklo GPGPU, využití výpočetní síly GPU k jiným operacím než grafickým.

Problém byl ovšem v použitelnosti, kdy vývojáři aplikací museli detailně znát architekturu GPU a napsat software přímo konkrétnímu čipu "na tělo". Ve vývoji a masivnímu vzniku GPGPU aplikací bránilo i mnoho technických omezení tehdejších GPU, a tak bylo nutné najít schůdnější cestu.

Nvidia Fermi - Analýza nové generace GPU
i Zdroj: PCTuning.cz

Prvním významným krokem bylo jádro G80 s unifikovanými Shadery, takže odpadla nutnost odlišného programování Vertex a Pixel Shaderů. Ani tady by nebylo napsat aplikaci zpočátku jednoduché, až do standardizace CUDA, jež byla uvedena v druhé polovině roku 2006 - v čase uvedení jádra G80. Už tehdy NVIDIA spustila na svém webu stránku pro vývojáře CUDA, tedy jde o dnes již tři roky starou záležitost, která potvrzuje zájem NVIDIA o toto odvětví opravdu už od uvedení G80.

Jádro G80

První grafické karty s jádrem G80 se objevily pod názvem GeForce 8800 v listopadu roku 2006. Tyto hlavní přednosti jádro G80 mělo:

  • G80 bylo první GPU podporující k programování jazyk C (rozšíření CUDA), programátor se nepotřeboval učit nový speciální jazyk
  • G80 byl první unifikovaný čip, kdy Vertex a Pixel shadery byly nahrazeny univerzální výpočetní jednotkou schopnou zastat jakoukoliv funkci předchozích shaderů
  • G80 jako první nesl skalární thread procesor, programátor nepotřeboval ručně rozdělovat úlohy registrům
  • G80 umožnila jako první vykonat jednu instrukci ve více threadech čímž se její vykonání urychlilo (SIMT)
  • G80 přinesla sdílenou paměť a lepší synchronizaci mezi vláknové komunikace

Jádro G200

Druhou, vylepšenou inkarnací G80 bylo v červnu 2008 uvedené jádro GT200. Jak jistě všichni vědí, jde o druhou generaci (CUDA 2 a Tesla 2) architektury určené k výpočtům. Hlavními změnami bylo navýšení SP procesorů, dvojnásobná šířka registrů umožňující vykonání více instrukcí zároveň, zlepšena byla propustnost a efektivita paměťového subsystému a mnoho dalšího. Jádro se konečně dočkalo i Double precision, ovšem výkon nebyl nijak vysoký (+/- 78 GFLOPS). Na skutečné využití v HPC to stále nestačilo.

I když se jednalo u GT200 o viditelný pokrok, jehož plody dokonce využijí i běžní zákazníci (CUDA aplikace, enkódování videa, PhysX), jistá hardwarová omezení bránila skutečnému průniku do výpočetních superpočítačů, které mají vyšší nároky na svou výpočetní sílu. S GT200 byla NVIDIA napůl cesty, mezi herní grafikou a GPU výpočetním strojem, a právě tento kompromis dělal z GT200 spíše volbu do herního PC než do sálů superpočítačů. To se právě změnilo ...

Jádro Fermi

Nvidia Fermi - Analýza nové generace GPU
i Zdroj: PCTuning.cz

Už několikrát jsem řekl, a opět zopakuji, Fermi není pokračovatelem G80-G200, ale zcela nová architektura vyvíjena souběžně. Výrobce se z chyb a dobrých vlastností G80 a G200 poučil, a ze svých poznatků navrhl zcela unikátní a nový model. Podle nepotvrzených zvěstí, měla být G300 opravdu jen vylepšenou G80/G200. V pokročilé fázi vývoje byl ale prý celý návrh shrnut ze stolu a inženýři začali znova "na čistém stole" s Fermi. Proto je zde možná ono zdržení, a AMD má své levnější DX11 herní jádro na trhu dříve. Tyto nedostatky architektury G200 musely být v nové generaci vylepšeny:

  • Single precision výkon byl vysoký, v Double precision byl výkon slabý a nedostatečný pro vědecké účely
  • Pro náročné využití je nutné implementovat ECC paměti, což předešlá generace G200 neumožňovala
  • Sdílená paměť pro některé operace nevyhovovala, a byla zapotřebí vlastní větší cache, kterou G200 neumožňovala přiřadit, tento problém byl velkou brzdou rozšíření a dokonce jej komentoval i Intel, jako hlavní brzdu rozšíření dnešních NVIDIA GPU do superpočítačů
  • Programátoři vyžadovali více než 16KB cache pro běh svých programů
  • Uživatelé požadovali větší výkon v operacích, kdy se zároveň počítá i zobrazuje obraz, čehož nejlepší příklad je PhysX. Karta renderuje scénu i počítá efekty, což je mnohdy na úkor fps.
  • Uživatelé požadovali vyšší výkon základních paměťových operací

Všechny tyto požadavky se výrobce pokusil splnit a Fermi, jež přináší tato základní vylepšení:

  • 32 CUDA procesorů (dříve Stream procesory) v jednom SM bloku - čtyřikrát víc než u G200
  • 8x vyšší Double precision špičkový výkon proti G200 (+/- 750 GFLOPS)
  • Dva Warp Shedulery v SM bloku jež umožní zpracovat 2x 32 threadů za takt, G200 umí jen polovinu
  • Každý SM blok má k dispozici vlastních 64KB paměti + možnost přidělit ještě část s L1 cache a sdílené paměti
  • Podpora rozšířené instrukční sady PTX 2 - Paralel Thread Execution ISA.
  • Navrženo pro OpenCL a DirectCompute standardy, plná podpora IEEE 754-2008 v 32-bit i 64-bit precision
  • Vylepšený paměťový systém. Programovatelná L1 cache. První GPU s podporou ECC pamětí. Razantně navýšena propustnost a rychlost paměťových operací.
  • Nový GigaThread engine, je pokračovatelem první verze v G80. Stejnou logiku najdeme i u konkurenčních Radeonů, jednoduše řečeno tato část GPU rozděluje úkol jednotlivým částem a stará se o maximální vytížení celého jádra. Nová verze umí úkoly rozdělit 10x rychleji, umí pracovat i v Out Of Order režimu. Každou z vyjmenovaných novinek si prohlédneme na obrázku a vysvětlíme dále v článku.
Předchozí
Další
Reklama
Reklama

Komentáře naleznete na konci poslední kapitoly.

Reklama
Reklama