Ryzeny 7000 s architekturou Zen 4 jsou první generace procesorů AMD, která podporuje 512bitové vektorové instrukce AVX-512. Už jsme tu probírali jejich větší či menší přínosy. Jádra Zen 4 ale podporují další instrukční rozšíření, které bývalo chloubou Intelu, a teď se u něj trošku obrátily role: VNNI. Vypadá to, že v řadě programů přináší hodně radikální zlepšení výkonu a tentokrát nevadí, že zatím AMD má jen 256bitové jednotky SIMD.
O instrukcích VNNI (Vector Neural Network Instructions) jste možná dřív slyšeli pod označením DL Boost. Toto označení pod sebe zahrnovalo 512bitové instrukce VNNI, také někdy označované jako AVX512_VNNI na jedné straně, a podporu operací s čísly ve formátu BFloat16 (AVX512_BF16) na straně druhé. Druhé rozšíření měly serverové Xeony Cooper Lake, to první (VNNI) pak bylo Intelem notně inzerováno u 10nm procesorů Ice Lake a Tiger Lake (Core 10. a 11. generace pro notebooky).
Intel sliboval, že instrukce VNNI razantně navýší výkon těchto procesorů v operacích neuronových sítí, tedy v „AI“ aplikacích, pro které jsou tyto instrukce explicitně navržené. Měly by používat 16bitovou a 8bitovou přesnost (s celočíselnými hodnotami), které se hodí pro inferenci, tedy pro aplikaci už natrénované sítě. Firma tehdy získala coby partnera firmu Topaz Labs, která pomocí VNNI (skrze framework OpenVINO) zoptimalizovala své aplikace (Gigapixel AI, Denoise AI, Video Enhance AI...).
A Intel pak programy Topaz Labs ukazoval ve svých oficiálních benchmarcích, kde dávaly čtyřjádrovým mobilním procesorům vyšší výkon, než by jim normálně příslušelo. Tehdy to byla značná výhoda proti konkurenčním procesorům bez VNNI.
Dřív výhoda pro Intel, teď pro konkurenci
S příchodem Zenu 4 se ale v tomhle docela obrací karta. Paradoxně se stalo, že Intel odebral podporu instrukcí AVX512_VNNI z procesorů Alder Lake, protože používají 512bitové registry a jsou jedním ze subsetů AVX-512 (byť hodně specifickým). Jenže jádro AMD Zen 4 je zase přidalo, takže teď nastala situace, kdy je výhoda na jejich straně.
V aplikacích Topaz Labs jsme v našich recenzích skutečně pozorovali výkon, který je vysoce nad průměrem Ryzenů 7000 v ostatních programech. Ryzen 9 7900X byl o 90–126 % rychlejší než Ryzen 9 5900X, ale podobnou doslova čočku dostaly i procesory Alder Lake – proti těm je Ryzen 9 7900X v těchto testech rychlejší o 75–95 %, což jinde opravdu nebývá. A přitom ještě nejde o nejvýkonnější model, který AMD má. Uvidíme, zda bude Ryzen 9 7950X škálovat ještě výš. Nicméně už i Ryzen 5 7600X také má hodně vysoký výkon.
Benchmarky Zenu 4: AI aplikace Topaz Labs
Takto mimořádný nárůst výkonu u Zenu 4 by byl až podezřelý, ale z článku o AVX-512 si možná pamatujete, že Phoronix našel řadu testů používajících také framework OpenVINO a zřejmě instrukce VNNI, kde Zen 4 až dvojnásobného zrychlení dosáhl. Vysvětlení je tedy zřejmé: ač byla akcelerace aplikací Topaz Labs původně určená pro procesory Intel, na Ryzenech 7000 je také automaticky zapnutá.
Tip: AVX-512 na Ryzenech 7000: jak užitečné je a je implementace od AMD lepší než od Intelu?
Zeptali jsme se na to přímo v Topaz Labs coby autorů a bylo nám potvrzeno, že tyto programy opravdu na Zenech 4 podporu VNNI využívají. A tyto instrukce také přes to, že AMD AVX-512 implementovalo pomocí 256bitových jednotek, evidentně mají dost vysoký výkon, aby to stálo zato. Tato skóre tedy nejsou nějakou divnou anomálií, ale ukazují legitimní výsledek – zrychlení je tak anomální proto, že jde o specifickou akceleraci a ne obecný kód.
Podle informací od Topaz Labs by jejich aplikace měly využívat i formu VNNI, která se označuje AVX2_VNNI nebo také VNNI/256. Ta vznikla pro procesory Alder Lake. Protože u nich Intel vypnul AVX-512, musely být deaktivované také instrukce VNNI využívající stejné 512bitové registry. Malá jádra Gracemont je totiž nemají a podporují jen AVX2 (navíc asi se 128bitovými jednotkami). Kvůli užitečnosti VNNI ale Intel vyrobil zmíněnou verzi AVX2_VNNI, která pracuje s 256bitovými registry. Má však asi poloviční výkon (jenže to by měl mít i Zen 4), a také asi bude pomalejší na malých jádrech než na P-Core Golden Cove.
A jak ukazují výsledky Core i9-12900K, ten nižší výkon AVX2_VNNI proti implementaci v Zenu 4 není legrace. Původně jsme uvažovali o tom, zda třeba AI aplikace Topaz Labs neignorují instrukce AVX2_VNNI v Alder Lake, ale podle firmy jsou také použité (leda že by jejich detekce a využití bylo implementováno až v pozdější verzi, než používá naše metodika). Na druhou stranu, poměrně nízko vychází i výkon dalších procesorů Intelu, které by měly mít původní 512bitovou verzi VNNI v plné palbě (Rocket Lake, například Core i9-11900K). U těch není vidět podobný brutální nárůst výkonu proti předchůdci (Core i9-10900K).
Kdo ví, zda teď Intel nelituje, že akceleraci programů přes VNNI a OpenVINO podporoval, když nyní vidí, jak z ní – aspoň pro tuto chvíli – nejvíc profituje konkurence…
Zdroje: Topaz Labs, Intel