Hoewel veel van AMD’s briefings voor de Ryzen 7000 desktop-serie waren gericht op gaming en andere consumentenworkloads, was een van de meest opwindende aspecten voor mij met de Ryzen 7000-serie ondersteunt AMD nu AVX-512. Maar in plaats van te kiezen voor een 512-bits FPU-gegevenspad en de mogelijkheid van verminderde klokfrequenties en energie/thermische problemen, gebruikten ze een 256-bits”dubbele pomp”-strategie. Toen ik de AMD Ryzen 9 7950X in het lab kreeg, was het verkennen van de AMD Zen 4 AVX-512-prestaties een van de gebieden waar ik het meest enthousiast over was om te evalueren. Uit de benchmarks die binnenkort worden getoond, is AMD’s eerste AVX-512-implementatie veelbelovend en ik ben des te enthousiaster om deze te vinden op AMD EPYC”Genoa”-processors.
AMD’s Zen 4-line-up inclusief de Ryzen 7000-serie desktopprocessors ondersteunen AVX-512 out-of-the-box. De AVX-512-extensies die door Zen 4 worden ondersteund, zoals bevestigd via de/proc/cpuinfo-uitvoer op de Ryzen 9 7950X, zijn onder meer: avx512f, avx512dq, avx512ifma, avx512cd, avx512bw, avx512vl, avx512_bf16, avx512vbmi, avx512vbmi, av2,x512_vb512mi, avx512_vbq512x512_vbq512 Dus ja, AVX-512 VNNI, BF16 en de andere gebruikelijke verdachten.
In ieder geval voor het AMD-moederbord dat ik gebruikte met zijn huidige pre-release BIOS, is er geen optie om AVX-512 uit te schakelen vanuit het moederbord-BIOS. Maar door de impact van AVX-512 op de Ryzen 9 7950X te willen vergelijken, was het nog steeds eenvoudig genoeg om onder Linux uit te voeren. Door de Linux-kernel op te starten met”clearcpuid=304″als kerneloptie, wordt deze gewist, zodat AVX-512-ondersteuning niet door de kernel wordt gebruikt en ook niet wordt gerapporteerd aan/proc/cpuinfo. Op hun beurt zullen alle toepassingen die/proc/cpuinfo vragen naar de aanwezigheid van AVX-512 deze niet beschikbaar vinden. Maar toepassingen die rechtstreeks in de CPU voor AVX-512 prikken, zullen deze nog steeds beschikbaar vinden. Dus om die testgevallen te dekken, heb ik eerst een aantal benchmarks gebouwd met de AVX-512-extensies ingeschakeld en daarna nog een doorstart met de benchmarks met AVX-512-ondersteuning expliciet uitgeschakeld als compilervlag.
Dus met de combinatie van clearcpuid=304 en het wijzigen van de CFLAGS/CXXFLAGS om (niet) AVX-512-ondersteuning te bieden, is het mogelijk om het verschil te zien dat AVX-512 maakt zonder enige hardware-swapping of andere wijzigingen van de AMD Ryzen 9 7950X op standaardsnelheden. Van daaruit voerde ik een breed scala aan benchmarks uit voor workloads/software die gebruik kon maken van AVX-512, terwijl ik de prestaties, de piek CPU-frequentie, het CPU-stroomverbruik gerapporteerd door RAPL, de prestaties per watt en de CPU bewaakte. kerntemperatuur gerapporteerd door de k10temp-driver.
Geen van de AVX-512-extensies wordt weergegeven op de Ryzen 9 7950X dankzij de clearcpuid-truc. Maar software die nog steeds rechtstreeks in de CPU prikt, kan AVX-512 gebruiken, dus de benchmarks voor open-source software werden ook gebouwd zonder de AVX-512-extensies.
In mijn belangrijkste AMD Ryzen 9 7900X/7950X Linux review zijn benchmarks van de CPU’s tegen de Ryzen 3000/5000-serie en Intel-concurrentie als je wilt zien wat de AVX-512 met Zen 4 in het algemeen betekent in vergelijking met eerdere generaties en de Intel-concurrentie.
Voor het Leela Chess Zero (LC0)-schaakprogramma dat gebruik maakt van neurale netwerken, leidde het AVX-512-pad op de Ryzen 9 7950X tot een snelheidswinst van 10% in vergelijking met zonder AVX-512 (waardoor alleen AVX/AVX2). Oké, een boost van 10% is mooi, maar hoe zit het met de impact op het stroomverbruik?
Er was geen significante verandering in het stroomverbruik van de CPU tijdens de uitvoering van de AVX-512. In feite waren de RAPL-gerapporteerde waarden gemiddeld 3 Watt lager dan wanneer AVX-512 niet werd gebruikt…
De CPU-piekfrequentie en CPU-temperatuur vertoonden ook geen significante verandering wanneer AVX-512-ondersteuning was gebruikt. Dat ziet er veel beter uit in vergelijking met de impact toen AVX-512 voor het eerst in première ging met Skylake-X en vaak significante downclocking tijdens AVX-512-gebruik met zware stroom-/thermische boetes.
Een van de recente opmerkelijke gebruikers van AVX-512 was het simdjson-project dat aantoont dat AVX-512 betere prestaties kan leveren voor JSON-parsing… Net als aan de Intel-kant, laat de nieuwste simdjson-release zien dat AVX-512 hier ook van voordeel kan zijn.
AVX-512-gebruik op de Ryzen 9 7950X betekende 26% betere prestaties in sommige van de JSON-parsingbenchmarks.
Al die tijd was er een vergelijkbaar stroomverbruik en temperatuur van de CPU toen AVX-512 werd gebruikt.
Tot nu toe zien de AVX-512-prestaties met de AMD Ryzen 9 7950X er redelijk goed uit, zelfs als er geen 512-bits gegevenspad wordt gebruikt.
Over een verscheidenheid aan andere workloads, AVX-512-prestaties op de AMD Ryzen 9 7950X zag er best goed uit… Maar hangt natuurlijk af van de software die AVX-512 ondersteunt en of de ondersteuning daadwerkelijk gecompileerd in de software, wat niet altijd het geval is.
Zelfs voor Intel oneAPI-software die is afgestemd op Intel’s AVX-512-implementatie, waren de AVX-512-resultaten op de Ryzen 9 7950X erg significant.
Intel’s oneDNN neurale netwerkbibliotheek vertoonde mooie prestatieverbeteringen bij gebruik van het AVX-512-codepad.
Tijdens de oneDNN-benchmark was de eerste benchmark-testcase waarin ik de uitvoering van de AVX-512 zag leiden naar een merkbaar hoger stroomverbruik… Gemiddeld ongeveer 20 Watt of een piek CPU-stroomverbruik 6 Watt hoger voor één test. In een andere oneDNN-subtest leidde de AVX-512-uitvoering tot een 10 Watt hoger stroomverbruik dan wanneer beperkt tot AVX2.
Maar zelfs met het hogere stroomverbruik tijdens de AVX-512-uitvoering met oneDNN, was de De CPU-piekfrequentie was vergelijkbaar met die wanneer beperkt tot AVX2.
Met Intel’s OSPRay Studio interactieve visualisatiesoftware zag de AVX-512-build er goed uit met merkbaar snellere weergaveprestaties dan zonder.
Met OSPRay Studio was er geen merkbaar verschil in stroomverbruik.
Enkele van de grootste AVX-512 prestatieverbeteringen voor de Ryzen 9 7950X werden gezien met de Cpuminer-opt CPU-mijnbenchmark voor verschillende algoritmen.
Verschillende AI/deep learning-workloads van MNN tot NCNN tot OpenVINO lieten allemaal goede prestaties zien van de AVX-512 op Zen 4.
Voor sommige van de OpenVINO-inferentietaken, de AVX-512 ingeschakeld CPU-stroomverbruik was ~10 Watt hoger dan wanneer AVX-512 niet werd gebruikt terwijl er geen kloksnelheid werd weergegeven impact.
Hoewel ik maar een paar dagen heb gehad om de AVX-512-prestaties met Zen 4 op de desktop te bekijken, zagen de resultaten er tot nu toe goed uit vergelijking met software die gebruik kan maken van AVX-512.
Voor een verscheidenheid aan verschillende workloads zoals JSON-parsing, CPU-mining, 3D-rendering met OSPRay Studio, AI-workloads zoals OpenVINO en verschillende andere tests, is de AVX-512 uitvoering leverde aanzienlijke versnellingen op door terug te vallen op AVX2 in plaats daarvan dankzij de tijdelijke oplossing met clearcpuid=304 en het compileren van de open-source software zonder AVX-512 extensies ingeschakeld (maar AVX/AVX2) te laten.
Hier is een blik op de CPU-piekfrequentie over de hele reeks geteste benchmarks… Geen echte verandering vergeleken met zonder AVX-512, in tegenstelling tot vroege Intel AVX-512 CPU’s die notoir terugklokten bij het uitvoeren van AVX-512-instructies.
Evenzo was het stroomverbruik van de CPU vergelijkbaar bij het draaien van de AVX-512-compatibele software. Voor bijna alle tests waren de AVX2 vs. AVX-512 resultaten bijna identiek. Een van de uitzonderingen was met de Intel oneDNN-en OpenVINO-software, waar het gebruik van AVX-512 leidde tot een toename van 10~20 Watt voor de Ryzen 9 7950X, maar de rest van de tijd leverde het bijna dezelfde resultaten op.
Tijdens deze veeleisende workloads en zelfs met de Cooler Master wordt de ML280 behoorlijk warm, tenminste zoals gerapporteerd door de Linux k10temp-driver. AMD heeft aangegeven dat het niet verrassend en”bedoeld en door het ontwerp”is om op een TJMax van 95 Celsius te draaien voor de onderdelen met een hoger aantal kernen, aangezien het een maximale veilige bedrijfstemperatuur is en effectief wordt behandeld. Het gebruik van AVX-512 had in ieder geval niet geleid tot een merkbare stijging van de CPU-temperatuur. AMD noemt typische belastingstemperaturen voor de Ryzen 7000-serie als 70 tot 90 graden Celsius.
Gemiddeld voor de geteste AVX-512-workloads leidde het gebruik van de AVX-512-instructies tot ongeveer 59% hogere prestaties vergeleken met bij het kunstmatig beperken van de Ryzen 9 7950X tot AVX2/no-AVX512.
Van deze resultaten ben ik nogal onder de indruk van de AVX-512-prestaties van de AMD Ryzen 9 7950X. Hoewel ze aanvankelijk teleurgesteld waren toen ze hoorden van hun”dubbele pomp”-aanpak in plaats van voor een 512-bits datapad te gaan, spreken deze benchmarkresultaten voor zich. Voor software die effectief gebruik kan maken van AVX-512 (en zo gecompileerd), is er een aanzienlijke prestatieverbetering om van te genieten, terwijl er geen negatieve impact is in termen van verminderde CPU-kloksnelheden/hoger stroomverbruik (waarbij oneDNN een van de enige uitzonderingen is die zo wordt gezien veel in termen van hoger stroomverbruik).
AVX-512 ziet er goed uit op de Ryzen 7000-serie en ik zal de komende weken meer benchmarks blijven draaien. Deze AVX-512-resultaten maken me des te enthousiaster voor AMD EPYC”Genua”, waar AVX-512 veel breder kan worden gebruikt onder HPC/server-workloads. Met dank aan AMD voor het leveren van de Ryzen 7000-serie beoordelingskit voor het mogelijk maken van deze Linux-benchmarking op de lanceringsdag.
Ga nu verder met het lezen van de volledige AMD Ryzen 9 7900X + 7950X Linux-recensie van vandaag voor alle CPU-benchmarks die ik heb voorbereid voor de lanceringsdag. Als je al mijn Linux-hardwaretests van de afgelopen 18+ jaar leuk vindt, overweeg dan om tijdens de herfstspecial lid te worden van Phoronix Premium.