AMD s Epyc 9004 zvládla implementaci AVX-512 zvyšující výkon, ne však spotřebu
Podpoře instrukčního setu AVX-512 se AMD dlouhou dobu vyhýbala a skoro to vypadalo, že jej nechá plavat úplně. V profesionálním segmentu (míněno v nejširším pojetí) i bez této instrukční sady překonávala procesory Intelu až v násobcích výkonu a typy úloh, pro kterých Intel před lety podporu AVX-512 zavedl, se dnes z velké části pohánějí specializovanými akcelerátory, často na bázi GPU, které má nyní AMD v portfoliu rovněž.
Druhý důvod, proč (před potvrzením podpory AVX-512 na Zen 4) existovaly pochybnosti, zda AMD podporu této instrukční sady přinese, byla - dá se říci - pověst AVX-512, kterou jí Intel za posledních téměř deset let vytvořil. O AVX-512 se (zprvu neoficiálně) mluvilo zhruba od konce roku 2012. V roce 2013 došlo k odhalení v souvislosti s akcelerátory Xeon Phi Knights Landing (derivát Larrabee), ale s jejich nástupem na trh to bylo složité (pro nepamětníky: trochu připomínající nástup grafických karet Arc).
Intel Xeon Phi - Knights Landing
Většina uživatelů proto začala tyto instrukce vnímat spíše v souvislosti s architekturou Skylake. Postupně ale vyšlo najevo, že je Intel ponechá jako exkluzivní v profesionálním segmentu a to ještě za příplatek. Pouze nejdražší Xeony Platinum a Xeony Gold 61xx podporovaly AVX-512 s plným výkonem. Řady Xeon Gold 51xx, Silver a Bronze pouze s omezeným. Desktopové procesory nenabízely podporu vůbec, ač po hardwarové stránce možná byla.
Xeony Bronze a Silver podporoval AVX-512 při odlišném výkonu než Xeony Platinum.
U řady Gold podle konkrétního modelu.
To trochu přispělo ke klasické problematice: Vejce nebo slepice? Pokud totiž není široce rozšířená platforma podporující určité instrukce, většina vývojářů s jejich implementací neztrácí čas, protože se dotknout zanedbatelného minima uživatelů. Pokud na druhé straně není dostatek aplikací těžících z podpory nových instrukcí, postrádá jejich podpora na hardwaru smysl, protože to nepřináší téměř žádnou výhodu.
Cannon Lake skončil v podobě jednoho modelu mobilního dvoujádrového procesoru vyrobeného z várky vzorků s nefunkční integrovanou grafikou. K rozšíření AVX-512 proto nepřispěl.
Zlepšit se to mělo s nástupcem Skylake, architekturou Cannon Lake, kde se od Intelu očekávala podpora AVX-512 i v PC segmentu. Jenže nastaly problémy s 10nm výrobou, Cannon Lake se odkládal a na trh místo něj proudily 14nm deriváty Skylaku (samozřejmě bez AVX-512). Nakonec se Cannon Lake dostal na trh v sérii dvoujádrových vzorků, kde bylo AVX-512 skutečně na ozdobu (rozšíření do aplikací nemohlo přispět).
Xeon Knights Landing
Dalším problémem byla naprostá roztříštěnost podpory. Připomeňme si naší přehledovou tabulku z počátku roku 2015:
Skylake desktop | Skylake Xeon | Cannonlake | Knights Landing | Haswell | |
---|---|---|---|---|---|
SSE | |||||
SSE2 | |||||
SSSE3 | |||||
SSE4.1 | |||||
SSE4.2 | |||||
FMA3 | |||||
FMA4 | |||||
AVX | |||||
AVX2 | |||||
AVX512F | |||||
AVX512CDI | |||||
AVX512PFI | |||||
AVX512ERI | |||||
AVX512VLI | |||||
AVX512BW | |||||
AVX512DQ | |||||
AVX512IFMA52 | |||||
AVX512VBMI | |||||
SHA | |||||
AES |
Zatímco celé portfolio Intelu instrukce jako AVX2, SSE4 nebo FMA4 prostě buďto podporovalo nebo nepodporovalo, u AVX-512 to bylo složitější. To uměl desktopový Cannon Lake, ono zase Knights Landing, tamto třeba Skylake. Ale jen serverový, aby to nebylo jednoduché.
Jeden z Xeonů Skylake-SP vybavený rozhraním OmniPath
Podpora AVX-512 na Xeonech Skylake přitom byla sama o sobě bizarní. Krom toho, že různé modely instrukce podporovaly s různým výkonem a krom toho, že chyběla podpora některých, které uměla i PC-verze Cannon Lake, znamenalo použití AVX-512 podstatné snížení taktovacích frekvencí procesoru a podstatné zvýšení odpadního tepla. Takty Xeonů při AVX-512 klesaly zhruba na 1500 MHz pro základní takt a zhruba o 500 MHz v turbu. Pokud tedy na systému běželo více úloh a zatoulala se mezi nějaká podporující AVX-512, snížilo to výkon (takty) i všem ostatním.
V roce 2020 přišel Linus Torvalds s kritikou Intelu zaměřenou de facto na to, že namísto toho, aby tranzistory použila k navýšení počtu procesorových jader, ze kterých by profitovali všichni, dostupný budget využívá k podpoře AVX-512, jejíž přínos je pochybný. Tehdy začal šéf grafické divize Intelu Raja Koduri AVX-512 široce obhajovat (těžko říct, proč právě on), aby v zápětí vyšlo najevo, že Intel s podporou AVX-512 v desktopu v podstatě končí.
K dohnání výkonnostního deficitu totiž musel do PC procesorů zahrnout malá jádra (Atomy) a ty AVX-512 nepodporují. Intel nedokázal situaci vyřešit jinak než vypnutím instrukcí (nepodporovaných Atomy) i na velkých jádrech. Po dlouholeté marketingové masáži o důležitosti podpory AVX-512 ji tak na hardwaru (jenž jí umí) z vlastního rozhodnutí vypnul.
V podstatě všechny události, které se AVX-512 od ohlášení až do roku 2022 týkaly, vyznívaly více nebo méně negativně. Produkty, které AVX-512 podporovaly, trpěly propady výkonu, vyšší spotřebou, vyšším zahříváním a ještě byly za příplatek. V takové situaci jistě pro marketing AMD nebylo nijak snadné vyjít s vlastní implementací AVX-512 na světlo. Nakonec k ní však došlo. Nemá cenu chodit kolem horké kaše:
Redakce webu Phoronix připravila rozsáhlá devítistránkový test AVX-512 Epycu Genoa (9004 / Zen 4) a její závěry mluví samy za sebe:
Dobrou zprávou je, že ani při obrovském výkonnostním nárůstu při použití AVX-512 nebyl zaznamenán žádný významný nárůst spotřeby EPYC 9654 2P. Je zajímavé, že po zapnutí AVX-512 se v krátkých okamžicích nečinnosti mezi jednotlivými testy nebo mezi různými benchmarky byla spotřeba dokonce nižší, než když byl AVX-512 vynuceně vypnutý. V některých lehčích pracovních zátěžích vykazovalo použití AVX-512 také nižší spotřebu energie než zátěž bez AVX-512. --- Phoronix |
Pokud si projdete desítky grafů a zátěží v recenzi, zjistíte, že skutečně nedochází k významnějším nárůstům spotřeby a občasné kosmetické nárůsty jsou více než vykompenzovány ještě častějšími poklesy.
Na rozdíl od starších generací procesorů Intel s podporou AVX-512 nedocházelo u procesoru EPYC 9654 při všech těchto pracovních zátěžích s podporou AVX-512 ke zvýšeným teplotám ani ke zhoršení frekvence procesoru. --- Phoronix |
Phoronix neznamenal ani zvýšení spotřeby nebo snížení taktů, které by po zapnutí AVX-512 bylo možné pozorovat.
Stejně jako v případě dříve zveřejněných výsledků AVX-512 u procesorů Ryzen 7000 jsou výsledky AVX-512 u EPYC 4. generace "Genoa" úžasné a jsou jedním z důvodů obrovského generačního posunu oproti AMD EPYC 7003 Milan(X) a velmi dobrých výsledků proti současným procesorům Intel Xeon Scalable "Ice Lake". --- Phoronix |
V situaci, kdy všechny modely podporují AVX-512 na stejné úrovni a zapnutí instrukce neznamená ztrátu taktovacích frekvencí (tzn. výkonu u zátěže, která AVX-512 nepodporuje), nárůst spotřeby ani zvýšení teplot a její podpora na druhé straně znamená bonus v serverech, desktopu (a velmi brzy) i v noteboocích, v podstatě není důvod AVX-512 nechtít.