Kaby Lake-G: Vega nebo Polaris? Díl II.
Tímto tématem jsme se zabývali již v listopadu ve článku: Intel Kaby Lake-G s AMD GPU vyfocen. Vega nebo Polaris? Tehdy se objevil v databázi GeekBench u záznamu z Kaby Lake-G údaj „gfx 804“ (do 8. generace spadá GCN3 a GCN4 / Polaris), z čehož někteří usuzovali, že je použití GPU z generace Polaris a nikoli Vega. Ve výše odkázaném článku bylo předloženo několik možností, proč by se údaj o osmé generaci mohl objevit i u čipu architektury Vega a tedy nereflektovat, do jaké generace čip skutečně patří.
Jádro vysvětlení spočívá v tom, že údaj „GFX“ reflektuje pouze výbavu unifikovaného jádra, nikoli dalších částí čipu (ta koresponduje s údaji u položek jako GMC, DCE, VCE a dalších). Právě na samotném unifikovaném jádře Vegy se toho oproti Polaris příliš nezměnilo. Některé změny, jako například velikosti cache, se ani ve verzi GFX neodrážejí, protože na instrukčním setu nic nemění. A jiné, které se na instrukčním setu odrážejí - například rychlá podpora FP16 - mohou být zkrátka vypnuté, protože je Intel nevyžadoval a AMD nemá důvod Intelu nechat aktivované technologie, za které nezaplatil.
Druhá podstatná věc, kterou si je předem třeba ujasnit, je význam termínů Polaris a Vega. Jak vysvětlila AMD hned v době vydání Polaris, tento termín není náhradou za označení generace GCN, která reflektuje generaci 3D jádra (a jistě tedy ani za GFX level, který reflektuje generaci či programovací model unifikovaného jádra), ale celkovou výbavu čipu včetně prvků jako jsou obrazové výstupy, video dekodér (UVD), video enkodér (VCE) a tak dále. To si ostatně můžeme připomenout výmluvným slajdem:
„GPU jsou více než jen grafické IP. Jsou souborem různých jader a jednotek: multimediálních, zobrazovacích, cache, paměťových řadičů, řízení spotřeby.“ Zatímco tedy termíny jako Vega, Polaris nebo Navi odrážejí širší spektrum klíčových aspektů, generace GCN odrážejí pouze architekturu 3D jádra a úrovně GFX verzi programovacího modelu unifikovaného jádra. Pokud by se tedy kupříkladu AMD rozhodla omezit instrukční set unifikovaného jádra o některé technologie, jejichž podporu si Intel nevyžádal a udělala by to omezením úrovně GFX na nižší příčku, pak to ještě nic nemění na tom, do jaké generace GCN spadá celé 3D jádro, natož do jaké generace patří výbava celého čipu.
Vraťme se ale ke dvěma původním a zásadním otázkám: Existuje nějaký důkaz, že grafické jádro Kaby Lake-G patří do generace Polaris? Osobně o žádném nevím, žádný nebyl dosud předložen. Existuje nějaký důkaz, že grafická jádro Kaby Lake-G patří do generace Vega? Ano, existuje několik přímých i nepřímých důkazů.
Mezi ně určitě nepatří samotný fakt, že je jádro vybaveno pamětí HBM (jak se občas uvádí). Pamětí HBM byla vybavena i starší Fiji a jak padlo v jednom rozhovoru, mohla by jím být vybavena i architektura Polaris, jen to nemělo ekonomický smysl.
První, co můžeme považovat za skutečný důkaz, je „High Bandwidth Cache Controller“ (na slajdu vlevo nahoře). Nový řadič představený s Vegou, který dokáže HBM paměť využívat jako LLC (last-level cache). Polaris nic podobného neuměla. Dále stojí za pozornost (vpravo nahoře) „Vega Pixel Engine“. Na stránkách AMD si můžeme najít konkrétní vysvětlení tohoto pojmu, konkrétně že:
Vega pixel engine employs a Draw Stream Binning Rasterizer, designed to improve performance and power efficiency. It allows for “fetch once, shade once” of pixels through the use of a smart on-chip bin cache and early culling of pixels invisible in a final scene. Vega’s pixel engine is now a client of the onboard L2 cache, enabling considerable overhead reduction for graphics workloads which perform frequent read-after-write operations. |
Draw Stream Binning Rasterizer a ROP jako klienti L2 cache jsou dvě další architektonické novinky Vegy, které Polaris a její předchůdci nepodporovali.
Zajímavou indicii nabízí i chlíveček „Radeon Multimedia Engine“, který uvádí „4K60“ a „HEVC, H264 HDR“. Protože přehrávání 4k videa při 60 FPS v HEVC v HDR (10bit hloubka) rovněž Polaris nepodporuje a objevilo se až u Vegy, mohlo by jít o další z důkazů, který se navíc netýká 3D jádra nebo řadiče, ale je z další skupiny, multimediální podpory. Způsob zápisu ve slajdu by mohl být považován za ne zcela jednoznačný, ale specifikace na stránkách Intelu v odstavci „Discrete Graphics“ hovoří zcela jasně: „H.265 (HEVC) Hardware Encode/Decode: Yes, 10-bit“
Nakonec můžeme hovořit o nepřímých důkazech, jako například proč by AMD v klíčové zakázce semi-custom divize měla operovat s Polaris, starší architekturou, která je energeticky náročnější a snižuje šanci získání zakázky. Případně jak je možné, že jádro, které je jen o pár desítek milimetrů čtverečních menší než Polaris 10 (která k běhu na ~1200 MHz vyžaduje 150 wattů) má při 1190 MHz i se čtyřmi high-endovými procesorovými jádry Kaby Lake, integrovanou grafikou Intel a HBM čipem TDP jen 100 wattů. Je pravděpodobnější, že AMD po dvou letech od vydání Polaris našla nějaký opomenutý prvek, po jehož využití klesla spotřeba architektury na polovinu? Nebo je pravděpodobnější, že je to důsledkem použití architektury Vega, která díky energeticky efektivnějšímu rasterizéru a optimalizacím pro vysoké takty zkrátka při konzervativních ~1200 MHz tolik nežere?
Shrneme-li to, můžeme říct, že GPU Kaby Lake-G nabízí nový řadič HBCC uvedený s Vegou, rasterizér DSBR uvedený s Vegou, architekturu cache uvedenou s Vegou, dekodér 10bit/HDR 4k 60FPS HEVC videa uvedený s Vegou a má energetické nároky odpovídající architektuře Vega.
Bude zajímavé sledovat - pokud se kdy nějaký důkaz na téma „Je to Polaris, ne Vega!“ objeví - jak jej jeho předkladatelé zvládnou s těmito fakty zkonfrontovat.