Diit.cz - Novinky a informace o hardware, software a internetu

Jak je to se zdvojnásobením FP32 jednotek u Ampere

S herními GPU architektury Ampere přinesla Nvidia zdvojnásobení výkonu v FP32 operacích. Přes představení architektury a ohlášení modelů však zůstává tajemná co do detailů…

Až do architektury Pascal (včetně) obsahovaly výpočetní bloky grafických čipů jeden typ jednotek schopných pracovat s 32bit přesností. Ty byly využívané jako pro FP(32), tak Int(32) operace. Architektury Volta a Turing přinesly změnu, když doplnily sadu samostatných Int32 jednotek. Blok SM s 64 FP32 jednotkami tak dostal ještě sadu 64 Int32 jednotek. Smysl tohoto kroku má spočívat ve faktu, že Int jednotky jsou výrazně menší a stojí tedy méně tranzistorů (méně křemíku). Poměr FP:Int 1:1 však příliš nevyhovoval potřebám her (v současnosti vyžadují zhruba 2,5:1) a Nvidia navíc hledala způsob, jak zvýšit FP32 výkon.

S generací Ampere tedy došlo ke zdvojnásobení počtu FP32 na SM. Nvidia však dosud (tedy ani při představení architektury Ampere, ani při představení GeForce RTX 3000) nezveřejnila, jak je to implementováno hardwarově. Jak vyplynulo z článků začátkem týdne, každý z autorů to pochopil trošku jinak a nedá se vlastně říct, kdo má pravdu, neboť vyjádření Nvidie byla poměrně vágní.

Na četné dotazy reagoval Tony Tamasi z Nvidie, který vysvětlil, jak je myšlenka realizována z pohledu datových cest. Turing (schéma výše) byl v každém ze čtyř oddílů SM bloku vybaven datovými cestami pro 16 FP32 a datovými cestami pro 16 Int32 (celkem tedy 64 FP32 a 64 Int32 v rámci SM). Ampere je v každém oddílu SM bloku vybaven datovými cestami pro 16 FP32 (to se nemění) a (zde došlo ke změně) datovými cestami pro 16 FP32 nebo 16 Int32. Celý SM blok tedy může provádět buďto 64 FP32 + 64 FP32 = 128 FP32 operací v cyklu nebo 64 FP32 + 64 Int32 operací v cyklu. Druhý režim je tedy totožný s Turingem. Nelze však provádět 64 FP32 + 64 FP32 + 64 Int32 zároveň. Jde vždy o kombinaci dvou, tedy FP32 + FP32 nebo FP32 + Int32.

Co Tony Tamasi neobjasnil a kolem čeho se stále točí diskuze, je konfigurace hardwaru. Tedy zda SM obsahuje fyzicky 64 FP32 jednotek + 64 FP32 jednotek + 64 Int32 jednotek, přičemž druhá a třetí skupina mají sdílené datové cesty a nemohou být proto použity paralelně, nebo zda SM obsahuje 64 FP32 jednotek + 64 jednotek schopných pracovat v režimu FP32, nebo(!) Int32.

Redakce webu Hardwareluxx ale nedlouho po Tamasiho vyjádření zveřejnila schéma SM bloku Ampere, které nakonec objasnilo i tuto otázku: Platí tedy, že každý SM blok nese fyzicky 64 FP32 jednotek + 64 FP32 jednotek + 64 Int32 jednotek, přičemž druhá a třetí skupina mají sdílené datové cesty a nemohou být proto použity paralelně.

Platí tedy, že SM architektury Ampere je schopný provádět paralelně 128 FP32 operací jen za předpokladu, že není vyžádána žádná Int32 operace. Jakmile na ni dojde, padá teoretický FP32 výkon na polovinu (pak pracuje jako Turing). V obvyklé grafické zátěži tedy není možné dvojnásobného FP32 výkonu dosáhnout (neboť jsou vyžadovány i Int32 operace); zdvojnásobení je dosaženo, pokud Int32 operace vyžadovány nejsou. Jako příklad Tamasi uvádí shadery pro denoising (odstranění šumu) při využití raytracing.

Tamasi dále zmínil změnu v pozici ROP jednotek, které již nejsou pevně vázané na paměťový řadič. Teoreticky by mohlo být možné měnit počet ROP nezávisle na šířce paměťového řadiče (jako s Navi). ROP jsou nyní umístěny v rámci GPC oddílu - každý obsahuje vlastní rasterizér a nyní i 8 ROP jednotek. Počet ROP tedy bude závislý na počtu aktivních GPC oddílu, nikoli na šířce sběrnice.

Zdroje: 

Diskuse ke článku Jak je to se zdvojnásobením FP32 jednotek u Ampere

Úterý, 8 Září 2020 - 02:18 | pg | Pán chtěl zřejmě říct "1 takt", ale...
Pondělí, 7 Září 2020 - 15:36 | Jabba | Hlavní děj je o ničem - dá se shrnout do jednoho...
Pondělí, 7 Září 2020 - 15:26 | Jabba | Chápu tvoje "dloubnutí" ;) ba i ten...
Pondělí, 7 Září 2020 - 09:57 | IT Joker | „No az FP32 operacia trva 1 Hz z tych 1.7GHz, tak...
Pondělí, 7 Září 2020 - 09:14 | Swordfish | Já to třeba hrál v roce vydání, což už je drahně...
Neděle, 6 Září 2020 - 21:04 | Antonín Lejsek | Rychlost se asi moc nezvýší, spíš efektivita....
Neděle, 6 Září 2020 - 20:32 | Pajka | já třeba ještě nehrál :)
Neděle, 6 Září 2020 - 08:17 | TyNyT | nemají to všichni už dávno dohráno? :-) Tohle byl...
Neděle, 6 Září 2020 - 08:16 | TyNyT | Přesně tak, šlo to napsat bez urážek, pak bych s...
Sobota, 5 Září 2020 - 20:31 | Pajka | proč jako?

Zobrazit diskusi