2

I am using Ubuntu 18.04.3 LTS on a Supermicro Superserver. Dual AMD EPYC 7742 cpus are installed on the server. The results of a Geekbench 4 benchmark show 255 threads instead of the expected 256 threads. The results of lscpu, which are attached below, also show 255 threads. Other Geekbench 4 benchmarks that are using Ubuntu 19.04 with dual AMD EPYC 7742 cpus show 256 threads. Is there limitation with 18.04.3 that restricts the number of threads to 255?

$ lscpu
Architecture:         x86_64
CPU op-mode(s):       32-bit, 64-bit
Byte Order:           Little Endian
CPU(s):               256
On-line CPU(s) list:  0-254
Off-line CPU(s) list: 255
Thread(s) per core:   1
Core(s) per socket:   64
Socket(s):            2
NUMA node(s):         2
Vendor ID:            AuthenticAMD
CPU family:           23
Model:                49
Model name:           AMD EPYC 7742 64-Core Processor
Stepping:             0
CPU MHz:              1499.869
CPU max MHz:          2250.0000
CPU min MHz:          1500.0000
BogoMIPS:             4499.70
Virtualization:       AMD-V
L1d cache:            32K
L1i cache:            32K
L2 cache:             512K
L3 cache:             16384K
NUMA node0 CPU(s):    0-63,128-191
NUMA node1 CPU(s):    64-127,192-254
Flags:                fpu vme de pse tsc msr pae ...

2 Answers 2

1

Well, lscpu is telling you that cpu 255 is offline (inactive):

On-line CPU(s) list:  0-254
Off-line CPU(s) list: 255

You could try to bring it back online by

echo 1 > /sys/devices/system/cpu/cpu255/online

After some clarification in the comments, it's evident that to get all CPU's in the latest AMD EPYC processors to work, you need a more recent Linux kernel than the one that ships with older 18.04 LTS releases. According to this review the minimum recommended kernel is 4.18. Also make sure you have the latest firmware on your motherboard.

15
  • I tried using the echo command with no luck. I then tried to edit the file "online" directly using "sudo vi online," but I could not save it. Do you have another suggestion? Oct 22, 2019 at 3:06
  • I tried chcpu: "sudo chcpu -e 255," but the enable failed because I had an invalid argument. Oct 22, 2019 at 3:27
  • I tried using chcpu -c 255, but it is not configurable. Is this a limitation of Ubuntu 18.04? I noticed that other benchmarks on Geekbench using dual AMD EPYC 7742 cpus are using Ubuntu 19.04. Oct 22, 2019 at 17:58
  • I doubt there is a limit at the kernel level. What do you get if you run grep CONFIG_NR_CPUS /boot/config-$(uname -r)?
    – darksky
    Oct 22, 2019 at 18:27
  • 1
    Here is the reply from Supermicro: This issue is due to that your Linux kernel does not support 256 CPU cores. Make sure that your Linux kernel version is equal to or higher than 4.19x, and enable IOMMU (Input/Output Memory Management Unit) in BIOS. So, from above: you need OS kernel with 4.19 & above, then enable IOMMU in BIOS setting. It was implemented as follows: BIOS, Advanced ==> NB Configuration ==> IOMMU ==> Enabled. It worked. The Geekbench 4 score is now near the very top with other dual AMD EPYC 7742 processors. Oct 29, 2019 at 1:19
0

I've managed to get it running with X2APIC turned on on kernel 4.15.0-72-generic. I guess X2APIC support was backported there.

It wasn't necessary to fiddle with IOMMU.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .