AMD EPYC Zen3 auf Supermicroboard: All-Core Turbo & C-/P-States konfigurieren ???

Jul 19, 2021
36
7
8
24
Hallo zusammen!

Ich habe ein Supermicro H12SSL-i (https://www.supermicro.com/en/products/motherboard/H12SSL-i) und ein AMD EPYC 74F3.
Laut Spec hat der 74F3 einen Basistakt von 3.2 GHz, Single-Core Turbo von 4.00 GHz und All-Core Turbo von 3.80 GHz.
(https://www.cpu-monkey.com/de/cpu_group-amd_epyc_7003-166)

Der scaling governor steht bereits standardmäßig auf Performance und im BIOS steht auch alles auf Performance, soweit ich das beurteilen kann.
Da gibt es zwar ein paar core frequency Sachen, aber die sind mir bislang unbekannt vom Namen her.
Ich möchte den EPYC auf dem all-core Turbo laufen lassen dauerhaft, also alle Kerne auf 3.8 GHz - aktuell dümpeln die alle auf 3.2 GHz, ein bis drei Kerne mal auf 3.9 GHz.

Außerdem würde ich gerne sleep states (C-States / P-States) etc. soweit möglich abschalten, um Negativeffekte für die VMs zu unterbinden.
Allerdings finde ich im Supermicro BIOS nicht wirklich die Einstellungen dazu.

Das hat alles hauptsächlich Latenzgründe für Ceph und die VMs und um etwas mehr Rohleistung rauszuholen für die VMs, da dort u.A. recht aktive Datenbanken laufen.
Kennt sich jemand mit der Plattform aus und weiß wo man drehen kann um das zu erreichen?
 
  • Like
Reactions: f.sennj
Hi,

die C-STATES könntest du ja "spätestens" im Kernel schon weg schalten, wenn da im BIOS nichts zu finden ist.
Code:
GRUB_CMDLINE_LINUX_DEFAULT="quiet elevator=none processor.max_cstate=1 intel_idle.max_cstate=0 mitigations=off"

Dann noch tuned-adm installieren und ein low-latency oder VM-Profil setzen, die Lüfter per IPMI auf Vollgas damit die Kiste ordentlich Luft zieht und dann sollte der auch durchgehend hoch-takten....
Code:
Installieren mit:

sudo apt install tuned tuned-utils tuned-utils-systemtap

mit "tuned-adm list" können die Profile angezeigt werden.

mit "tuned-adm profile profilname" wird das aktive Power-Profil gesetzt

Dann sollte er den All-Core auch überwiegend halten. Den Rest regelt die CPU intern... wenn es "NICHTS" zu tun gibt, dann taktet der Runter... machen alle Milans.... Mit den obigen Settings hälst du ihn aber wenigstens auf Base-Clock und nicht noch weiter runter...

1641307373224.png
 
Woah, danke dir erstmal für die detaillierte Anleitung! :)
Ich probiere das gleich mal aus.

Den Base Clock hält er aktuell auch schon stabil, darunter hab ich ihn eigentlich noch nicht takten sehen.
1641310950804.png

Den Rest regelt die CPU intern... wenn es "NICHTS" zu tun gibt, dann taktet der Runter... machen alle Milans....
Hmmm. Unter nennenswerter Last steht die Kiste nicht ( < 10% ), brandneues Cluster für die nächsten Jahre... aus heutiger Sicht mehr als üppig ausgestattet, aber da kann man ja testweise synthetische Last erzeugen.
Auf jeden Fall gut zu wissen.
 
Ich habe das mal so umgesetzt auf einem Host und dort das virtual-host Profil aktiviert, scheint mir passend.
Allerdings benimmt sich die CPU gefühlt nicht anders, er hält zuverlässig den Base Clock und bei Last takten die Cores hoch.
Wenn ich mit sysbench draufhalte, takten auch wirklich alle hoch.
Aber letztendlich scheint er durch die geringe Last den Turbo zu ignorieren, wie du sagtest.
 
Ja, eine Unsäglichkeit moderner CPUs ist halt dieses permanente Bedürfnis Energie zu sparen.
Es gibt aber von AMD zumindest für die ROME-Generation ein PDF wie Bios und System zu konfigurieren sind, wenn man die Referenz-Benchmark-Werte erreichen möchte. Ich könnte mir vorstellen vergleichbares gibt es auch schon für die Milans.
HPC Tuning Guide for AMD EPYCTM Processors wobei sich das vom EPYC ROME zum EPYC MILAN vermutlich in den Settings nicht wesentlich unterscheiden wird.

Je nachdem was du später an VMs auf diese "Monster" los lässt, kann man sicher noch nachtunen.... Unsere Milans im Datacenter fackeln mit den Settings jedenfalls so ziemlich alles ab, was ich da je draufgeworfen hab. ;-)
 
Ich hab mich jetzt ein wenig durch das Tuning Guide gelesen und einen Hebel gefunden, wie es aussieht.
Unter Debian kann man das "linux-cpupower" Package installieren, damit steht der cpupower Befehl zur Verfügung.

cpupower monitor zeigte mir, dass trotz der Kernel Cmdline und dem tuned-adm Profil C1 & C2 aktiv sind und quasi alle Kerne im C2 verweilen.
Schwubs, mit folgenden Befehlen aus dem Tuning Guide C1 & C2 deaktiviert und schon takten alle Kerne hoch.

cpupower -c 0-47 idle-set -d 2 && cpupower -c 0-47 idle-set -d 1
(Dazu sei gesagt, dass das Tuning Guide lediglich die Deaktivierung von C2 empfiehlt. Die Frequenz änderte sich allerdings erst bei Deaktivierung bei beiden C-States)

cpupower monitor zeigt nun dies:
1641370803573.png

cat /proc/cpuinfo besteht aber weiterhin darauf, dass die CPU auf 3200 MHz läuft größtenteils.
Ein Blick ins IPMI zeigt einen gewissen Anstieg des Stromverbrauchs, was für einen höheren Takt sprechen könnte, da es zeitlich exakt aufgeht.

Das Lüfter Profil auf volle Möhre zu setzen war übrigens ein toller Tipp, die liefen grade mal auf 50%.
Im Datacenter stört der abhebende Jet ja ohnehin keinen, da kann man ruhig die bessere Klimatisierung mitnehmen.

cpupower frequency-info zeigt, dass keine Boost States verfügbar sind, was etwas irritiert.
1641371415115.png
Im Tuning Guide wird beschrieben, dass der performance governor in diesem Fall die max. Frequenz der Range hält (1.50 - 3.20 GHz) - was auch der Fall ist.

https://forum.proxmox.com/threads/amd-epyc-milan-wrong-cpu-frequency.90781/
Hier sagt @Dunuin dass er erst etwas im BIOS aktivieren musste.
Ich schaue da nochmal genauer rein, bewusst deaktiviert habe ich jedenfalls nichts.
Allerdings schaut das mit den C-States schon mal gelöst aus. Fortschritt!
 
Last edited:
Die Einstellungsmöglichkeiten zum Core Boost halten sich leider in Grenzen :D
1641374107091.png

In der North Bridge Configuration versteckt sich noch das cTCP Setting und der Determinism Slider.
https://www.amd.com/de/products/cpu/amd-epyc-74f3
1641374331329.png

1641374442323.png

Mal sehen ob das was gebracht hat.

Das IOMMU = Enabled Setting stammt auch von mir, allerdings schon bei der Inbetriebnahme, wegen dieses Threads: https://forum.proxmox.com/threads/amd-epyc-based-systems-rebooting.54381/ - als Vorsichtsmaßnahme. Bislang keinerlei "Überraschungen" erlebt, von daher...
 

Attachments

  • 1641374346465.png
    1641374346465.png
    111.6 KB · Views: 10
Den CPUPOWER hab ich dir auch glatt unterschlagen in meiner "quick&dirty"-Anleitung, sorry!. Aber du hast es ja selber gefunden. Sehr gut.
Ich hab das grad noch mal bei uns geprüft. Wir haben auf den MILANS immer mindestens BaseClock (3200) und viele Kerne an der Boost-Grenze.
Läuft also, auch wenn cpupower von den BOOST-States nicht wissen will.

1641381942278.png
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!