Nový y-cruncher zrychluje Zen 4 o 23-31 %, zpomaluje Nehalem o 27 %
Vznik testu y-cruncher byl motivován právě implementací algoritmu Hybrid NTT. Ten vznikl v roce 2008 jako snaha o jakousi kompromisní alternativu k algoritmům FFT (Fast Fourier Transform) a NTT (Number Theoretic Transform). Implementace byla hotová v lednu 2009 a y-cruncher se tak jevil jako ideální nástroj pro testování výkonu v algoritmu, kterému patří budoucnost. Jenže ne. Vývoj se ubíral jiným směrem, algoritmus Hybrid NTT se mimo y-cruncher téměř nerozšířil a přestože tento software zůstal oblíbeným nástrojem pro zátěžové testy i testování výkonu, stál mimo jiné na algoritmu, který nebyl v praxi téměř využíván a do jisté míry testoval typ zátěže odtržený od reality softwaru posledních 14 let.
Ve snaze vyčistit a modernizovat projekt se většina velkých multiplikačních algoritmů buď inovuje, nebo odstraňuje. Algoritmy, které jsou užitečné na moderních procesorech, jsou přepracovány a přepsány od nuly, zatímco zbytek bude z kódu zcela odstraněn. ---Alexander J. Yee |
Autor si toho byl vědom a již tři roky chtěl přistoupit k úpravě testu, ale z časových důvodů se k tomu nemohl dostat. Až nyní. Chystaná nová verze (v0.8.x) odstraňuje algoritmus Hybrid NTT a dotahuje podporu AVX-512. To má za následek jednak nemožnost srovnávat výsledky různých procesorů napříč verzemi (pokud nám tedy nejde vysloveně o srovnání výkonnostních rozdílů stejného procesoru mezi verzemi y-cruncher), jednak určité zvýšení výkonu u hardwaru podporujícího AVX-512 a na druhé straně pokles výkonu u hardwaru, kterému vznikl algoritmus Hybrid NTT na míru (tzn. starší procesory Intelu).
Procesor | Architektura | ISA | vs. v0.7.10 | |
Core i7 920 | Intel Nehalem | 2008 | x64 SSE4.1 | -27% |
Core i7 3630QM | Intel Ivy Bridge | 2012 | x64 AVX | -10% |
FX-8350 | AMD Piledriver | 2012 | x64 FMA4 | -1% |
Core i7 5960X | Intel Haswell | 2013 | x64 AVX2 | 3 - 4% |
Core i7 6820HK | Intel Skylake | 2015 | x64 AVX2 + ADX | 4 - 7% |
Ryzen 7 1800X | AMD Zen (1) | 2017 | x64 AVX2 + ADX | ~1% |
Core i9 7900X | Intel Skylake X | 2017 | x64 AVX512-DQ | 6 - 9% |
Core i9 7940X | 10 - 13% | |||
Ryzen 9 3950X | AMD Zen 2 | 2019 | x64 AVX2 + ADX | 13 - 14% |
Core i3 8121U | Intel Cannon Lake | 2018 | x64 AVX512-VBMI | 16 - 17% |
Core i7 1165G7 | Intel Tiger Lake | 2020 | 12 - 22% | |
Core i7 11800H | 23 - 27% | |||
Ryzen 9 7950X | AMD Zen 4 | 2022 | x64 AVX512-GFNI | 23 - 31% |
Důsledky jsou jasné: Zatímco Intel Nehalem a Ivy Bridge výkon ztrácejí, neboť algoritmus Hybrid NTT vznikl právě na míru Nehalemu, Piledriver od AMD, pro který optimalizováno nebylo, se změna prakticky nedotkla. Stejně tak pozdějšího Zenu (1). Úpravy se překvapivě nezanedbatelnou pozitivní měrou dotkly i Zen 2 (který AVX-512 nepodporuje) a nárůst výkonu je dokonce mírně vyšší oproti Skylake-X, který AVX-512 podporuje nativně.
Zen 4 přináší ze všech testovaných procesorů nejvyšší nárůst výkonu mezi 23-31 %, čímž překonává nárůsty Cannon Lake a Tiger Lake, novějších architektur Intelu s nativní podporou AVX-512. Pro úplnost je vhodné připomenout, že poslední dvě generace Intelu Alder Lake a Raptor Lake AVX-512 nepodporují, neboť navzdory tomu, že křemík potřebný pro podporu těchto instrukcí v procesoru je, samotná podpora je z důvodu zajištění kompatibility s malými jádry (Atomy Gracemont) Intelem vypnutá.