Torvalds: Ať AVX-512 zemře bolestivou smrtí. Koduri: Ale zákazníci ho milují
AVX-512 je instrukční set, který Intel představil v červenci 2013 společně s akcelerátory Xeon Phi generace Knights Landing. Nešlo o první 512bit instrukční set Intelu, ten podporovala už původní architektura Larrabee a nebyl s pozdějším AVX-512 plně kompatibilní. AVX-512 se s generací Skylake-X dostalo i do světa klasických x86 procesorů. Tato generace podporovala nový instrukční set jen v rámci serverových modelů, ale s řadou Cannon Lake (první 10nm generace, z níž byl uveden pouze 15W dvoujádrový model) se dostalo i do segmentu osobních počítačů.
AVX-512 má oproti většině známých a zavedených instrukčních sad „istá kulturná špecifika“. V první řadě se k nim řadí fakt, že při jeho využití vykazují procesory Intelu výrazně zvýšené energetické nároky a u některých dochází ke snížení taktovací frekvence - ať už na výrobcem přednastavenou nižší hodnotu, nebo jako snížení boostu v důsledku vyšších energetických nároků. Dále je potřeba zmínit, že AVX-512 není oproti SSE nebo AVX ucelený instrukční set, který buď procesor podporuje nebo ne. Existuje řada variant a jediným společným jmenovatelem je AVX-512-F. Podpora ostatních je roztříštěná a každý AVX-512-kompatibilní produkt (ať už hardwarový nebo softwarový) může podporovat jiné verze, takže AVX-512-kompatibilní software a AVX-512-kompatibilní hardware nemusí být nutně kompatibilní vzájemně. Příklady (jde o zlomek z kompletního výčtu) konkrétních instrukčních setů mohou být:
- AVX-512-CD (Knights Landing a Skylake-X)
- AVX-512-ER (Knights Landing)
- AVX-512-VL (Skylake-X a Cannon Lake)
- AVX-512-IFMA (Cannon Lake)
- AVX-512-GFNI (Ice Lake)
- AVX-512-4VNNIW (Knights Mill)
- AVX-512-VPOPCNTDQ (Knights Mill a Ice Lake)
- AVX-512-VP2INTERSECT (Tiger Lake)
V polovině července prohlásil Linus Torvalds, že jeho vyjádření může znít mrzutě nebo zaujatě, ale že AVX-512 nepovažuje za více než „power-virus“ a byl by nejlepší, pokud by s jeho podporou a marným prosazováním Intel přestal a začal se věnovat potřebnějším věcem.
„Doufám, že AVX-512 zhyne bolestivou smrtí, a že Intel začne řešit skutečné problémy místo toho aby se pokoušel vytvořit magické instrukce, a pak vytvářel benchmarky, jejichž výsledky by díky nim vypadaly dobře. Doufám, že se Intel vrátí ke kořenům: zprovozní zase vlastní výrobní procesy a zaměří se více na standardní kód, který není HPC nebo nějaký jiný nesmyslný specifický případ. […] Jde o modelový příklad něčeho, co Intel udělal špatně, z části už jen proto, že tím zvyšuje roztříštěnost trhu.“
Torvalds dále o AVX-512 referoval jako o „odpadu pro specifické případy“ o který se „mimo benchmarky nikdo nezajímá“. Kritizoval, že jeho použití připravuje uživatele o taktovací frekvence a implementace ubírá na počtu procesorových jader, protože byl daný křemík spotřebován na implementaci „nepotřebného svinstva, které zabírá prostor“.
Raja Koduri (Intel)
Šéf grafické divize Intelu, Raja Koduri, dostal prostor k reakci na Torvaldsovu kritiku, což využil slovy: „AVX-512 je skvělá technologie. Naše HPC komunita a AI komunita ho milují. Naši zákazníci z oboru datacenter ho opravdu, opravdu, opravdu milují. […] Rozumíme Linusovým obavám, chápeme, že některé problémy první generace AVX-512 měly dopad na frekvence, a tak dále, a tak dále a každou generaci vylepšujeme.“
François Piednoël (ex-Intel)
Nelze však říct, že by Torvalds byl jediný, kdo v poslední době situaci AVX-512 kritizoval. Se svojí troškou do mlýna přišel začátkem srpna i bývalý hlavní inženýr Intelu François Piednoël, který společnost opustil v roce 2017, poté, co (podle svých slov) v roce 2016 začal management Intelu vydávat rozhodnutí, která považoval za technologické nesmysly. Podle Piednoëla existoval důvod, proč vznikl Skylake (bez AVX-512) a Skylake-X (s AVX-512). Současnou implementaci AVX-512 do konzumních a obzvlášť mobilních procesorů považuje za nesmyslnou:
„Dadi (Pearlmutter) chápal, že velké vektory v konzumní elektronice, jako jsou laptopy, jsou špatné: 1) Více energie, kterou potřebují. 2) Téměř žádný software, který by to využil, vznikají velká jádra. 3) Dobré jen pro benchmarky propustnosti. Kdo tohle potřebuje v laptopu? […] AVX-512 bylo navrženo pro závod v propustnosti, který již prohrálo ve srovnání s GPU. Jsou dvě cesty, jak získat propustnost. Jedna spočívá v podpoře větších vektorů jádry, druhá ve vyšším počtu jader.“
Piednoël dále vysvětlil, že tehdejší pracovníci Intelu se z Pentia 4 poučili, že „není možné překompilovat celý svět. […] Stav existujícího softwaru je takový, že nepreferuje velké vektory. Například na Cinebench můžete vidět - a to není můj oblíbený benchmark, především na laptopech, kde nemá smysl - ale můžete na něm vidět, že AMD vyhrává bitvu o propustnost. Proto, že mají více jader a mohou si dovolit mít více jader.“
Což je poměrně zajímavé vyjádření od člověka, který za celou svoji dráhu u Intelu nepromarnil jedinou příležitost ke kritice AMD.
„Intel má štěstí, že kapacity AMD jsou omezené a z toho důvodu nemůže zabrat podíl na trhu tak rychle. Svým způsobem jsme to už zažili, když AMD měla Athlon 64 a my jsme se ho v podstatě snažili dohnat s Pentiem 4 a Conroe.“