I sidste uge delte jeg nogle indledende tal, hvordan overraskende nok, når deaktivering af Zen 4 CPU-sikkerhedsbegrænsninger faktisk kan *skade* Ryzen 7000-seriens CPU-ydeevne. Mens konventionel visdom og tidligere Intel/AMD-processorer giver bedre ydeevne, når de deaktiverer CPU-sikkerhedsreduktionerne, viste det sig med Ryzen 9 7950X at være dybest set det modsatte. Jeg har siden gennemført flere tests og brugt en AMD Ryzen 5 7600X for at bekræfte de tidligere resultater og grave dybere ned i dataene.
De data, der blev delt i sidste uge, viste, at for de fleste test var det faktisk hurtigere at holde AMD Ryzen 9 7950X i sin standard og sikre afdæmpede tilstand med stadig at have nogle softwarekontroller vedrørende Spectre V1/V2/V4. Det er den out-of-the-box Linux-tilstand for Ryzen 7000″Zen 4″-processorerne, hvor opstart af kernen med”mitigations=off”faktisk førte til dårligere ydeevne-det modsatte sammenlignet med, hvad vi har set ud af tidligere x86_64 processorer.
Brug af en AMD Ryzen 5 7600X sammen med noget andet let hardware/softwareforskelle og for det meste de samme benchmarks, gentog jeg testen bare for at bekræfte sidste uges konstatering. Og ja, nok, Ryzen 5 7600X klarede sig klart bedre med standardreduktionerne end i tilstanden reduktioner=slukket. Her er side-by-side på Ryzen 5 7600X med standardindstillingerne versus mitigations=off på Linux 6.0:
For langt de fleste benchmarks var det hurtigere at holde standardtilstanden end mitigations=off. Deaktivering af begrænsningerne hjalp i en lille undergruppe af tests, for det meste de forskellige syntetiske kernebenchmarks. OpenJDK Java-arbejdsbelastninger, database-arbejdsbelastninger, webbrowsertests og mange andre arbejdsbelastninger, der normalt påvirkes negativt af Spectre-reduktionerne, kørte faktisk bedre på dette Ryzen 5 7600X-system, end når de deaktiverede begrænsningerne.
Som en påmindelse, Zen 4 er ikke påvirket af de fleste af de kendte CPU-sikkerhedssårbarheder. Hvad der stadig er relevant fra et softwareperspektiv baseret på CPU MSR’erne og anvendt med Linux 6.0 er Speculative Store Bypass deaktiveret via prctl for SSBD/Spectre V4-reduktion og Spectre V1-reduktion af brugerkopi/SWAPGS-barrierer og __user pointer-sanering. Så for Spectre V2 er der Retpoliner, betingede Indirect Branch Predictor Barriers (IBPB), IBRS-firmware, Altid-on Single Threaded Indirect Branch Predictors (STIBP) og Return Stack Buffer (RSB)-fyldning.
Så til grave dybere og være nysgerrig, prøvede jeg nogle af de mere målrettede kernemuligheder for disse begrænsninger for at se, hvad der især får Zen 4 til at køre langsommere, når de er deaktiveret.
Med SSBD, der deaktiveres via prctl() , på AMD Ryzen 5 7600X kørte jeg yderligere kørsler med”spectre_v2=off”for at deaktivere Spectre V2-standardreduktionen og derefter separat”no_spectrev1″for at deaktivere Spectre V1-reduktionen…
Ganske hurtigt det blev klart, at det især var Spectre V2-reduktionen, der skader Zen 4-ydelsen, når den er deaktiveret. Deaktivering af Spectre V1-reduktion betød ikke meget for ydeevnen, men når Spectre V2 blev deaktiveret, var der pludselig mange arbejdsbelastninger, der regresserede og gav lignende ydeevne til mitigations=off.
For mange forskellige arbejdsbelastninger, deaktivering af Spectre V2-reduktion på Ryzen 7000-serien skadede nu faktisk ydeevnen i stedet for at hjælpe den…
Kodekompileringsarbejdsbelastninger blev negativt påvirket af at deaktivere Spectre V2-reduktionen end at holde sig til standardtilstanden (sikker).
For mange forskellige arbejdsbelastninger i den virkelige verden viste det sig, at det var bedst nu på Zen 4 ved at forlade standardkernetilstanden i stedet for at deaktivere begrænsningerne i forsøget på at forbedre ydeevnen.
I det mindste fra fra I denne testrunde ved vi nu, at det specifikt er Spectre V2-reduktionen, der bør stå på for Zen 4 for at undgå at skade ydeevnen, det modsatte af, hvad vi er vant til at se med tidligere processorfamilier.
Som for w Ryzen 7000-seriens ydeevne er faktisk langsommere, hvis man deaktiverer Spectre V2-reduktionerne, det er sandsynligvis noget, som kun AMD effektivt kan svare på, men det kommer formentlig ned på, at Zen 4 er bedre tunet/optimeret nu til at antage den Spectre V2-dæmpede adfærd i mikroarkitekturen. Under alle omstændigheder er dette i sidste ende gode nyheder for slutbrugere, og dem med produktionssystemer bør køre i standardtilstanden (sikker) i stedet for at prøve at køre”mitigations=off”-tilstand.
De interesserede kan se alle af mine afhjælpningstest fra AMD Ryzen 5 7600X på Linux 6.0 via denne resultatside.