AIDA 64 rozšiřuje podporu AVX-512 [+trocha historie aneb 11 let AVX-512]
AVX-512 - prehistorie
Příští týden tomu bude přesně 11 let, co jsme vás informovali, že instrukce, o kterých se v té době mluvilo jako o AVX3 se nakonec budou jmenovat AVX-512 a jejich podpora se objeví na akcelerátorech Intel Xeon Phi z generace Knights Landing.
Xeon Phi byla řada výpočetních akcelerátorů vzešlá z projektu Larrabee, což mělo být původně GPU postavené na flexibilní architektuře, téměř bez jednoúčelových (fixních) jednotek. Už po ohlášení tohoto projektu však bylo řadě subjektů jasné, že takové řešení bude neefektivní.*
Vzpomínáte, jak firma Intel předvedla loni na podzim vzorek 80jádrového procesoru s výpočetním výkonem 1 TFLOPS? Jádra tohoto procesoru byla relativně jednoduchá a tak se ani nepočítalo s tím, že uvede Intel takový procesor někdy na trh, firma se prostě potřebovala blýsknout něčím zajímavým a naznačit směr vývoje, kterým by se ráda vydala. Nyní však začal technologický šéf Intelu Justin Rattner hovořit o skutečném teraflopsovém procesoru, který by měla společnost na trh opravdu uvést. Jeho krycí jméno je „Larrabee“, což už možná znáte z některých zpráv, které hovořily o grafických čipech. --- DIIT, 2007 |
*Stačilo si vzpomenout na ATi/AMD R600 / HD 2900 XT, kde vinou bugu nefungoval stabilně finální krok MSAA / anti-aliasingu a jako náhradní řešení byl tento krok (MSAA-resolve) prováděn unifikovaným jádrem. Tato „drobnost“ stála konkurenceschopnost celou jednu generaci produktů, přitom šlo o jednu z řady funkcí hardwarových ROP. Larrabee neměla ROP jednotky vůbec a veškeré jejich funkce byly řešeny unifikovaným jádrem.
Intel nakonec herní Larrabee nepustil ani na recenze, plány s nasazením v podobě grafické karty zrušil a architekturu využil ke vzniku akcelerátorů Xeon Phi. Zmíněná generace Knights Landing pak byla prvním produktem s ohlášenou podporou AVX-512.
Porodní bolesti
Nástup AVX-512 byl však velmi pomalý a problematický. Důvodů se hned zpočátku sešlo několik:
- Nízký zájem o Xeon Phi. Řada produktů postavená na Larrabee nevynikala efektivitou ani v četných typech výpočetního nasazení a s ohledem na odklady 10nm procesu trpěla i nízkou energetickou efektivitou (14nm výroba). Nerozšířila se proto natolik, aby autoři softwaru viděli v podpoře AVX-512 smysl.
- Roztříštěná podpora. Xeony Phi a klasické Xeony podporovaly jiné kombinace instrukcí AVX-512 a ty se měnily (nejenže přibývaly, ale také mizely) mezi jednotlivými architektonickými generacemi. Pro dosažení optimálních výsledků by byla potřeba optimalizace softwaru pro každý produkt zvlášť.
- AVX-512 na Xeonech působilo velmi výrazné zvýšení energetických nároků, tedy spotřeby a odpadního tepla. Intel proto stanovil různé takty pro kód bez AVX-512 a s AVX-512. Jinými slovy, pokud se objevily AVX-512 instrukce, procesor velmi výrazně snížil takty. Pokud se tedy v kódu objevilo zcela okrajové využití AVX-512, procesor se podtaktoval a výkon spadl. Autoři softwaru zjistili, že AVX-512 má s daným hardwarem smysl jen tehdy, pokud jde o takový rozsah použití, kdy nárůst výkonu (v důsledku použití AVX-512) více než jen vykompenzuje propad taktů. V opačném případě bylo žádoucí se AVX-512 vyhnout, neboť působilo kontraproduktivně.
Intel původně předpokládal, že AVX-512 bude „selling point“ nových produktů, za který budou zákazníci ochotni připlácet, takže se v desktopu neobjevovalo, i když ho samotný hardware podle některých zdrojů fyzicky podporoval (byť ne na úrovni serverových a profesionálních produktů). Protože to nefungovalo, rozhodl se Intel, že podporu zahrne i do desktopu, aby zvětšil základnu kompatibilního hardwaru a motivoval softwarové vývojáře k využití AVX-512. První generací s oficiální podporou měl být 10nm Cannon Lake, nástupce 14nm Skylake.
Odklady 10nm (AVX-512) procesorů pro PC
Jenže s 10nm procesem to opravdu nešlo dobře. Po 14nm Skylake namísto Cannon Lake následoval přetaktovaný Kaby Lake, po něm s šesti jádry Coffee Lake, poté s osmi jádry Coffee Lake-refresh a poté Comet Lake (stále se 14nm procesem a jádry Skylake, tudíž bez AVX-512). Když se Intel rozhodl pro naportování „10nm“ architektury Ice Lake na starší 14nm proces, byl výsledkem propadák Rocket Lake, který pro rentabilitu výroby musel mezigeneračně snížit počet jader (10 → 8), přičemž spotřeba energie stoupla (snaha kompenzovat ztrátu výkonu při nižším počtu jader vyššími takty vede ke zhoršení energetické efektivity). Uživatele to samozřejmě ke koupi nemotivovalo a podpora AVX-512, která v té době byla v desktopu prakticky na nule, nebyl zrovna důvod, který by jmenované nedostatky v očích většiny zákazníků dokázal vyvážit.
Cannon Lake se nakonec dočkal jednoho dvoujádrového modelu s vypnutou grafikou (Intel)
S generací Alder Lake sice Intel dokázal energetickou efektivitu zvýšit (zvýšil počet jader, která tudíž nemusel tak ždímat), ale ono zvýšení uskutečnil doplněním malých jader (Atomů), která AVX-512 nepodporují. Modely procesorů se dvěma typy jader tak nemohly AVX-512 podporovat a u levnějších modelů, které Atomy neobsahovaly, zase nedávala podpora AVX-512 (levnější produkty by měly lepší výbavu než high-end, s čímž si ani marketing Intelu neporadil). Raději proto podporu AVX-512 vypnul na všech modelech, což zůstalo doposud.
AI a renezance AVX-512
Zatímco Intel po pracném a opožděném prosazení AVX-512 v PC změnil strategii a vyškrtnutím podpory s 12. generací vyhodil veškeré úsilí z okna, AMD s generací Zen 4 implementovala podporu AVX-512, která je dostupná na všech produktech s touto architekturou, nemá žádné nadstandardní energetické nároky a nepůsobí propady výkonu (frekvencí).
AVX-512 na Zen 4 (AMD)
Jestli to AMD s načasováním náhodou vyšlo, nebo to od počátku takto plánovala, nevíme. Faktem ale je, že s nástupem AI dostalo AVX-512 nový smysl. Zatímco pro tréning modelů nemá smysl jiné řešení než akcelerátory, pro inferenci, tedy aplikaci těchto modelů, dostačují v řadě případů i procesory a právě podpora AVX-512 je může výkonnostně nakopnout. Například v recenzích procesorů Intel Meteor Lake, které do portfolia Intelu přinesly inferenční akcelerátor (NPU) o výkonu 10 TOPS se ukázalo, že některé inferenční úlohy zvládají procesorová jádra APU Phoenix (8× Zen 4 s podporou AVX-512 na 15 wattech) rychleji než akcelerátor Intelu v Meteor Lake. Podobná je situace v serverech. Pokud systém není určen čistě či převážně pro AI a tréning, pak se z ekonomického hlediska akcelerátory nemusejí vyplácet a zůstává u procesorů.
Zen 5
Architektura Zen 5 oproti Zen 4 přináší možnost volby, zda má jádro podporovat AVX-512 v režimu „double-pumped“ nebo nově „full-speed“. Tedy zvolit, zda se ušetří tranzistory a podpora AVX-512 bude na úrovni Zen 4 (plus samozřejmě nárůst IPC) nebo bude v plném výkonu, ale bude to stát tranzistory navíc. AMD zvolila první přístup pro monolitické (převážně mobilní) procesory jako Strix Point (4× Zen 5 + 8× Zen 5c) a druhý pro čipletové (převážně desktopové a serverové procesory) jako Granite Ridge (AM5 Ryzen) a Turin (Epyc).
Epyc Turin-dense se 192 jádry Zen 5c (AMD)
V praxi to znamená, že návrh jader Zen 5 i Zen 5c existuje ve dvou variantách co do úrovně podpory AVX-512. Zároveň ale platí, že všechny produkty postavené na Zen 5(c) podporují AVX-512 a všechny ho podporují (na jádro a MHz) o vyšším výkonu než Zen 4, což je jasný signál pro softwarové vývojáře, že doplnění podpory AVX-512 do jejich produktů najde uplatnění u dvou generací procesorů AMD nehledě na segment (tedy od notebooků, přes desktop až po pracovní stanice, servery a superpočítače).
AIDA 64
Testovací a detekční software AIDA 64 přišel s předběžnou podporou AVX-512 na hardwaru AMD již v roce 2022 (AIDA64 v6.75), nyní však přichází s podstatnější změnou. Ze standardní sady testů vyřazuje zastaralý Queen benchmark a nahrazuje jej testem CheckMate. Jeho cílem je testovat predikci větvení kódu a výkonnostní penalizaci v důsledku chybné predikce. Podle autorů by měl vyššího skóre dosahovat na procesorech s kratší pipeline a nižšími penaltami při chybné predikci. Podporuje instrukce MMX, SSE2, SSSE3, AVX, AVX2 a AVX512. Oproti starému testu Queen je také lépe optimalizovaný pro vícejádrové procesory.
CheckMate (AIDA64)
Ryzen 7 7950X (16× Zen 4) dosahuje výkonu 13 546 MP/s, Core i9-13900K 6816 MP/s.
AIDA64 v7.35 dále přináší optimalizace pro AVX-512 na Ryzen AI 300 (APU Strix Point) a vylepšenou podporu procesorů Intel Panther Lake, které se chystají jako mobilní řešení na příští rok.