Finally: Overclocking EPYC Rome ES

efschu3

Member
Mar 11, 2019
52
9
8
For anyone interested, here my ugly frequency scaler. Using 32C QS EPYC, depending on your linux installation, you can modify by your own.
Code:
#!/bin/bash
MAX=3825
MIN=3000
CURR=3350
OLDCURR=3350
CNTB=0
CNTS=0
echo performance | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
function round() {
  printf "%.${2}f" "${1}"
}

#function current {
#grep MHz /proc/cpuinfo | awk '{ print $4 }'| awk ' {total = total + $1}END{print total/64}'
#}

function current {
FREQ=$(cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq)
FREQ=$(($FREQ + $(cat /sys/devices/system/cpu/cpu1/cpufreq/scaling_cur_freq)))
FREQ=$(($FREQ + $(cat /sys/devices/system/cpu/cpu2/cpufreq/scaling_cur_freq)))
FREQ=$(($FREQ + $(cat /sys/devices/system/cpu/cpu3/cpufreq/scaling_cur_freq)))
FREQ=$(($FREQ + $(cat /sys/devices/system/cpu/cpu4/cpufreq/scaling_cur_freq)))
FREQ=$(($FREQ + $(cat /sys/devices/system/cpu/cpu5/cpufreq/scaling_cur_freq)))
FREQ=$(($FREQ + $(cat /sys/devices/system/cpu/cpu6/cpufreq/scaling_cur_freq)))
FREQ=$(($FREQ + $(cat /sys/devices/system/cpu/cpu7/cpufreq/scaling_cur_freq)))
FREQ=$(($FREQ + $(cat /sys/devices/system/cpu/cpu8/cpufreq/scaling_cur_freq)))
FREQ=$(($FREQ + $(cat /sys/devices/system/cpu/cpu9/cpufreq/scaling_cur_freq)))
FREQ=$(($FREQ + $(cat /sys/devices/system/cpu/cpu10/cpufreq/scaling_cur_freq)))
FREQ=$(($FREQ + $(cat /sys/devices/system/cpu/cpu11/cpufreq/scaling_cur_freq)))
FREQ=$(($FREQ + $(cat /sys/devices/system/cpu/cpu12/cpufreq/scaling_cur_freq)))
FREQ=$(($FREQ + $(cat /sys/devices/system/cpu/cpu13/cpufreq/scaling_cur_freq)))
FREQ=$(($FREQ + $(cat /sys/devices/system/cpu/cpu14/cpufreq/scaling_cur_freq)))
FREQ=$(($FREQ + $(cat /sys/devices/system/cpu/cpu15/cpufreq/scaling_cur_freq)))
FREQ=$(($FREQ + $(cat /sys/devices/system/cpu/cpu16/cpufreq/scaling_cur_freq)))
FREQ=$(($FREQ + $(cat /sys/devices/system/cpu/cpu17/cpufreq/scaling_cur_freq)))
FREQ=$(($FREQ + $(cat /sys/devices/system/cpu/cpu18/cpufreq/scaling_cur_freq)))
FREQ=$(($FREQ + $(cat /sys/devices/system/cpu/cpu19/cpufreq/scaling_cur_freq)))
FREQ=$(($FREQ + $(cat /sys/devices/system/cpu/cpu20/cpufreq/scaling_cur_freq)))
FREQ=$(($FREQ + $(cat /sys/devices/system/cpu/cpu21/cpufreq/scaling_cur_freq)))
FREQ=$(($FREQ + $(cat /sys/devices/system/cpu/cpu22/cpufreq/scaling_cur_freq)))
FREQ=$(($FREQ + $(cat /sys/devices/system/cpu/cpu23/cpufreq/scaling_cur_freq)))
FREQ=$(($FREQ + $(cat /sys/devices/system/cpu/cpu24/cpufreq/scaling_cur_freq)))
FREQ=$(($FREQ + $(cat /sys/devices/system/cpu/cpu25/cpufreq/scaling_cur_freq)))
FREQ=$(($FREQ + $(cat /sys/devices/system/cpu/cpu26/cpufreq/scaling_cur_freq)))
FREQ=$(($FREQ + $(cat /sys/devices/system/cpu/cpu27/cpufreq/scaling_cur_freq)))
FREQ=$(($FREQ + $(cat /sys/devices/system/cpu/cpu28/cpufreq/scaling_cur_freq)))
FREQ=$(($FREQ + $(cat /sys/devices/system/cpu/cpu29/cpufreq/scaling_cur_freq)))
FREQ=$(($FREQ + $(cat /sys/devices/system/cpu/cpu30/cpufreq/scaling_cur_freq)))
FREQ=$(($FREQ + $(cat /sys/devices/system/cpu/cpu31/cpufreq/scaling_cur_freq)))
echo $FREQ | awk '{ print $1/32/1000}'
}

# bigger smaller : 1 else 0
numCompare() {
   awk -v n1="$1" -v n2="$2" 'BEGIN {printf (n1<n2?"1":"0")}'
#awk -v n1="$1" -v n2="$2" 'BEGIN {printf "%s " (n1<n2?"<":">=") " %s\n", n1, n2}'
}
#echo $(current)
#echo $(($(round $(current) 0)))
#numCompare $(($(round $(current) 0))) $1

while :
do
   if [[ $(numCompare $(($(round $(current) 0))) $(($CURR - 75)) ) -eq 0 ]]
   then
      CNTB=$(($CNTB + 1))
      CNTS=0
      if [[ $CNTB -eq 2 ]]
      then
         CURR=$(($CURR + 25))
         CNTB=0
      fi
   else
      CNTS=$(($CNTS + 1))
      CNTB=0
      if [[ $CNTS -eq 2 ]]
      then
         CURR=$(($CURR - 25))
         CNTS=0
      fi
   fi
   if [[ "$CURR" -gt "$MAX" ]]
   then
      CURR=$MAX
   fi
   if [[ "$CURR" -lt "$MIN" ]]
   then
      CURR=$MIN
   fi
   if [[ $CURR -eq $OLDCURR ]]
   then
   BLAH=BLAH
   else
      OLDCURR=$CURR
      sudo ./zenstates.py --oc-frequency $CURR > /dev/null
   fi
done
 
Last edited:

gsrcrxsi

Member
Dec 12, 2018
53
3
8
i've spent the last few hours reading various threads here, but with conversations constantly flipping between Naples/Rome, rev1/rev2 boards, etc it's leaving me a bit confused for my own case.

I have 3 systems, all running EPYC Rome CPUs (I believe retail, dont think they are OEM) and I would like to try to increase the all-core clocks if I can. My systems run linux and I cannot switch to Windows, so I cannot use the windows based tools that have been mentioned.

1. AsrockRack EPYCD8 w/BIOS 2.40 - EPYC 7402P (24c), 4x SKHynix 2Rx8 16GB DDR4-3200
--Using Supermicro SNK-P0064AP4 air cooler
--everything in BIOS set to auto for CPU/mem settings
--CPU seems to run at about 3.1GHz all core, temps ~74C

2. AsrockRack EPYCD8 w/BIOS 2.10 - EPYC 7402P (24c), 4x Micron 1Rx4 16GB DDR4-3200
--Using custom water cooled loop w/EK waterblock and 360mm radiator
--everything in BIOS set to auto for CPU/mem
--CPU stays around 3.25GHz all core, temps ~46C

3. Supermicro H11DSi-NT rev2 - 2x EPYC 7642 (48c), 8x Micron 2Rx8 16GB DDR4-3200
--Using Supermicro SNK-P0064AP4 air coolers
--everything in BIOS set to auto for CPU/mem settings
--CPU seems to run at about 2.7GHz all core, temps ~60C (CPU2) / ~65C (CPU1)

I'm not really familiar with the menu options in these EPYC boards (I come from Intel) so i really don't know what settings will affect CPU speed. can anyone explain? are there any settings I can tweak to get faster all-core clocks? I couldn't really find any TDP options but maybe I just didn't know what menu they were under in the BIOS? do they exist?

another thing I will note, is that the Asrock EPYCD8 2.40 bios seems bugged for fan control. there are no fan control options in the BIOS at all, but they are there in the 2.10 BIOS. I had to unplug my PWM pin to force the CPU fan at 100% to get the temps down. has anyone else noticed this and/or reported it to Asrock?
bermp
 

gsrcrxsi

Member
Dec 12, 2018
53
3
8
2. AsrockRack EPYCD8 w/BIOS 2.10 - EPYC 7402P (24c), 4x Micron 1Rx4 16GB DDR4-3200
--Using custom water cooled loop w/EK waterblock and 360mm radiator
--everything in BIOS set to auto for CPU/mem
--CPU stays around 3.25GHz all core, temps ~46C
well i finally found the buried settings that seem to deal with overclocking and power limits on the quoted system.

Advanced -> AMD CBS -> NBIO -> SMU Common Options (this seems like a very obscure place, coming from intel BIOSs)

I changed the cTDP to 200W
changed the Determinism to Performance
changed the Package Power Limit to 200W
changed the BoostFmaxEn to 3400

no change to clock speeds at all, and zen monitor still reports package power of only ~160W when running my applications. with clock speeds of about 3.15-3.25GHz.

is there a way to clock higher? it seems i have power and thermal headroom. I'd like to run it at at least the full boost clock 3.35GHz if possible.

is there a way to see what is my limit here?

 

mirrormax

Member
Apr 10, 2020
62
27
18
I have 3 systems, all running EPYC Rome CPUs (I believe retail, dont think they are OEM) and I would like to try to increase the all-core clocks if I can. My systems run linux and I cannot switch to Windows, so I cannot use the windows based tools that have been mentioned.
So first off, please note that this only works on CPU’s which have the “Engineering Sample” tag in their name, E.g. ZS1406E2VJUG5 (64-core), ZS1711E3VIVG5 (32-core), 2S1404E2VJUG5 (64-core), 2S1705E3VIVG5 (32-core) but also the OEM EPYCs (the ones with a normal production number with -04 at the end of the number). It will not work on normal retail EPYCs.
you are out of luck unfortunately, only the ES cpus are unlocked.
 

gsrcrxsi

Member
Dec 12, 2018
53
3
8
you are out of luck unfortunately, only the ES cpus are unlocked.
But increasing the cTDP did help.

it raised clock speeds by 100-200mhz when I changed the TDP on the 7402P to 200W (180W default) and on the 7642 to 240W (225W default)
 

gsrcrxsi

Member
Dec 12, 2018
53
3
8
But increasing the cTDP did help.

it raised clock speeds by 100-200mhz when I changed the TDP on the 7402P to 200W (180W default) and on the 7642 to 240W (225W default)
also to note, the AsrockRack EPYCD8 bios version P2.10, while it seems to support the 7402P CPU and runs just fine, none of the TDP settings work and the processor seems locked to 160W TDP. only after updating to bios version P2.40 do the TDP settings take effect. even stranger, is that the CPU compatibility list for this board lists that the 7402P requires BIOS P2.30, but that version doesn't even exist on the download page?

but as i mentioned before, the P2.40 bios is bugged and all PWM fans seem locked to 50%. in order to get good CPU temps on the air cooled system, I had to remove the 4th PWM pin from the fan connector so that it locks to 100%.

is there any way to UNDERvolt these CPUs? if i could reduce the voltage a bit, i might be able to reduce the temps and power consumption.
 

dadscorp

New Member
Oct 17, 2020
12
0
1
Malaysia
Wow... Seriously guys this is amazing. So do you think I can Install Debian and then Install KVM and run lots of VM with a Overclocked EPYC 64 Core.... Great work guys
 

bayleyw

Member
Jan 8, 2014
78
16
8
Wow... Seriously guys this is amazing. So do you think I can Install Debian and then Install KVM and run lots of VM with a Overclocked EPYC 64 Core.... Great work guys
It's not really overclocked, its closer to "normal clocked" (engineering samples ship at very low default frequencies). With half my CPU (ZS1406) turned off I can beat a 32-core EPYC and almost match a 3970X. With all 64 cores it just about matches a 7742 but has no chance of matching a 3990X. The real gem in my opinion is 100-000000053-04, it has the same silicon as the retail parts, an unlocked multiplier, a full 128 lanes of PCIe and 8 channels of RAM, and costs half as much as a 3990X.
 
  • Like
Reactions: chraac

mirrormax

Member
Apr 10, 2020
62
27
18
also you can install debian and run a bunch of vms already non overclocked, sure maybe you can run a few more after overclocking but wouldnt bet too much on it if its for a production/critical in any way.

i for the most part ended up not running overclocked because its already more than enough cpu power for me, and iam just happy with the value of these engineering cpus.

BTW are people excited about milan? seeing the improvements so far from zen3, milan is gonna be interesting, hopefully we see some engineering samples show up aswell, and hopefully @ExecutableFix can work his magic again :)
 

bayleyw

Member
Jan 8, 2014
78
16
8
Zen3 is a huge deal on desktops because single-threaded performance is paramount there, and the combination of +15% IPC and a larger core complex lets AMD take the absolute performance crown. Milan is less exciting because it won't have the crazy high turbos found on the desktop parts and still has to deal with communications between eight compute dies, so for all intents and purposes I expect it to be Rome but 15% faster.
 

vavavava

New Member
Jan 13, 2020
9
1
3
Hello, I have a dual socket x11 with 2xZS1406E2VJUG5 (with 2x64GB ddr4) and it looks like I have a problem:
Tried the overclocking software and it worked. After I used one of the presets the system started rebooting.
Now, every time I run cinebench/prime95/etc it reboots. What can I do? Is one/both of the processors failing?
 

vavavava

New Member
Jan 13, 2020
9
1
3
Luckily there was another zs cpu. So, one cpu is indeed broken (I want to test every core for stability, and if the cpu is stable on most of the cores, i can disable broken ones in linux, but I don't have spare x11 ssi to test it). I'm using thermalright silver arrow tr4 for cooling.
I think that one of the coolers is broken too (no visual difference) but the temp is different about +20 degrees. Maybe it was defected. It could be possible that this defected cooler led to cpu breakage (because broken cpu had this cooler). Now I'm trying to understand should I change my cooling solution to noctua or arctic freezer or buy another silver arrow and hope that it will work as expected. But, if there is no place for vrm cooling I think that I should consider buying another cooling solution.
 

neobenedict

New Member
Oct 2, 2020
10
1
3
What's the best value for money epyc chip money can buy right now? In terms of performance and monero hashrate I guess.
 

levelud

New Member
Oct 16, 2020
7
0
1
First thanks for the program, awesome work! But isn't there a way to do the settings the program does in the bios? I did search for them without success. I have got a 2S1705E3VIVG5 and on a KRPA-U16.
 

levelud

New Member
Oct 16, 2020
7
0
1
An EFI exe like the E5 V3 Turbo Mode would really be great, my problem is, my processor runs just at 400Mhz at boot which really is a mess... So if I could start it with Max Multicore Performance that would rock this thing.
 

bayleyw

Member
Jan 8, 2014
78
16
8
You don't actually want to start with max multicore performance, because then your single thread performance drops to something like 1GHz. My ZS1406 boots at a normal 1.4-2.2 GHz, check your system configuration.