Eine neue Reihe von Patches wurde heute veröffentlicht, um die Clusterplanung für x86-Hybrid-CPUs zu ermöglichen. Dieser letzte Versuch des Cluster-Scheduling für moderne Core-CPUs von Alder Lake und neuer bringt wiederum einige kleine Leistungsvorteile gegenüber dem aktuellen Code.

Cluster-Scheduling wurde zuvor von Intel-Ingenieuren für Linux versucht, aber es führte letztendlich zu Regressionen… Ich habe das Problem bereits 2021 mit Linux 5.16’s New Cluster Scheduling Is Causing Regression, Further Hurting Alder Lake hervorgehoben. Jetzt sollte dieses neueste x86-Cluster-Scheduling für Hybrid-CPUs jedoch in einem besseren Zustand sein.

Intel-Ingenieur Tim Chen hat die heutige Patch-Serie gepostet und dort kommentiert:

“Cluster-Scheduling-Domäne ist auf x86-Hybrid-CPUs nicht aktiviert, wie es die Logik ist Fehlender Lastausgleich zwischen einem Cluster mit SMT-CPUs in einem Kern und einem Cluster mit mehreren Atom-CPUs.

Ricardo hat kürzlich eine Patch-Reihe eingeführt, die die Lastausgleichslogik zwischen P-Kernen und E-Kernen auf x86-Hybrid-CPUs erheblich verbessert.
https://lore.kernel.org/lkml/[email protected]/T/#m16ebc8de64dbf4c54adebab701b42b47805105f4

Diese Patchserie reicht jedoch nicht aus, um die Aktivierung der Clusterplanung auf x86-Hybrid-CPUs zu ermöglichen. Diese Patchserie bietet einige zusätzliche Korrekturen, die für den Lastausgleich zwischen Clustern erforderlich sind sched-Gruppe bestehend aus SMT-CPUs mit großen Kernen und Cluster sched-Gruppe bestehend aus Atom-CPUs Mit diesen Patches, die zusätzlich zu Ricardos Patch-Reihe angewendet werden, wird die Last zwischen den P-Core-und E-Core-Clustern richtig verteilt. Leerlauf-CPUs werden in der richtigen Reihenfolge verwendet:

1) SMT-CPU auf einem Leerlauf-P-Kern,
2) Leerlauf-E-Kern,
3) unbenutzte SMT-CPU mit einem beschäftigten Geschwister.”

Mit diesen neuen Patches stellte der Intel-Ingenieur bei seinen P/E-Hybrid-CPU-Tests eine Verbesserung von bis zu einigen Prozent fest:

“Ich habe einige Single-Thread-Benchmarks in getestet Phoronix-Suite, die zuvor Regressionen gezeigt haben, als die Cluster-Planung zum ersten Mal aktiviert wurde. Das Cluster-Scheduling mit dieser Patch-Serie funktioniert genauso gut wie der Vanilla-Kernel.

Single-Threaded 6.3-rc5 mit Cluster-Verbesserung
Benchmark-Scheduling in Performance
(Run-Run-Abweichung)
——————————————————————————————-
tjbench (+/-0,08 %) (+/-0,23 %)-0,23 %
PhPbench (+/-0,31 %) (+/-0,89 %)-0,39 %
flac (+/-0,58 %) (+/-0,22 %) +0,17 %
pybench (+/-3,16 %) (+/-0,27 %) +2,55 %

Für Multithread-Benchmarks habe ich Kernel Build und Tensor Flow Lite ausprobiert. Die Clusterplanung schnitt am besten für den Fall mit 10 Threads ab, bei dem 6 Threads auf den P-Kernen, 2 Threads auf einem Atom-Cluster und 2 Threads auf dem anderen Atom-Cluster ausgeführt wurden. Während der Vanilla-Kernel 6 Threads auf den P-Kernen haben wird, 4 Threads auf einem Atom-Cluster. Die Unterschiede sind jedoch gering und fallen in Laufvariationen.

Multi-Threaded 6.3-rc5 mit Cluster-Verbesserung
Benchmark-Scheduling in Performance
(-#threads) (Run-Run-Abweichung)
——————————————————————————————-
Kbuild-8 (+/-2,90 %) (+/-1,16 %)-0,76 %
Kbuild-10 (+/-3,08 %) (+/-3,09 %) +0,64 %
Kbuild-12 (+/-3,28 %) (+/-3,55 %) +0,91 %
Tensor Lite-8 (+/-4,84 %) (+/-4,61 %)-0,23 %
Tensor Lite-10 (+/-0,87 %) (+/-1,45 %) +0,47 %
Tensor Lite-12 (+/-1,37 %) (+/-1,04 %)-0,12 %”

Es wird interessant sein zu sehen, wie sich dieser neue Cluster-Scheduling-Versuch entwickelt, obwohl er es ist zu spät, um in den v6.4-Zyklus zu sehen, also würde es jetzt nicht bis mindestens v6.5 gemainlint werden.Auf jeden Fall, da ich die Zeit habe, die neuen Patches zu testen, werde ich sie auf Alder Lake und versuchen Raptor Lake, um zu sehen, wie es sich auf die Linux-Leistung über einen größeren Bereich von Arbeitslasten auswirkt.

Siehe dieser Kernel-Mailinglisten-Thread, wenn Sie an dieser neuesten Cluster-Scheduling-Arbeit für Intel-Hybrid-CPUs interessiert sind.

Categories: IT Info