I recently purchased two ASRock Rack EPYC3251D4I-2T motherboards with the AMD Epyc 3251 SoC CPU. This is a 8 core/16 thread CPU. Each system boots up and runs fine, however the CPU is only showing up as a 8 core/8 thread CPU (i.e. half the amount of threads it's meant to have). I have SMT (multithreading) enabled in the BIOS and have also updated the BIOS to the latest version (1.10) and also done a CMOS reset and it still only shows up as a 8 core/8 thread CPU. I have tried a number of different Linux distros and also Windows, and they all only see 1 thread per core, instead of two. With Linux I have also passed kernel parameters to enable multithreading (smt=2) but this doesn't change anything. Below is the output from lscpu. It clearly shows only 1 thread per core however the HT flag is also present indicated the CPU supports multithreading. I have two of these motherboards and they both indicating they only have 1 thread per core. I see STH has done a review previously on the Epyc 3251 and their lscpu out clearing shows it as having two threads per core.
https://www.servethehome.com/amd-epyc-3251-benchmarks-and-review/amd-epyc-3251-lscpu-output/
Motherboard specs:
ASRock Rack > EPYC3251D4I-2T
Any ideas why I'm only seeing half the amount of cores?
My output from lscpu.
root@pve:~# lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
Address sizes: 43 bits physical, 48 bits virtual
CPU(s): 8
On-line CPU(s) list: 0-7
Thread(s) per core: 1
Core(s) per socket: 8
Socket(s): 1
NUMA node(s): 1
Vendor ID: AuthenticAMD
CPU family: 23
Model: 1
Model name: AMD EPYC 3251 8-Core Processor
Stepping: 2
CPU MHz: 3029.677
CPU max MHz: 2500.0000
CPU min MHz: 1200.0000
BogoMIPS: 4990.28
Virtualization: AMD-V
L1d cache: 32K
L1i cache: 64K
L2 cache: 512K
L3 cache: 8192K
NUMA node0 CPU(s): 0-7
Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc cpuid extd_apicid aperfmperf pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_llc mwaitx cpb hw_pstate sme ssbd sev ibpb vmmcall fsgsbase bmi1 avx2 smep bmi2 rdseed adx smap clflushopt sha_ni xsaveopt xsavec xgetbv1 xsaves clzero irperf xsaveerptr arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic v_vmsave_vmload vgif overflow_recov succor smca
https://www.servethehome.com/amd-epyc-3251-benchmarks-and-review/amd-epyc-3251-lscpu-output/
Motherboard specs:
ASRock Rack > EPYC3251D4I-2T
Any ideas why I'm only seeing half the amount of cores?
My output from lscpu.
root@pve:~# lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
Address sizes: 43 bits physical, 48 bits virtual
CPU(s): 8
On-line CPU(s) list: 0-7
Thread(s) per core: 1
Core(s) per socket: 8
Socket(s): 1
NUMA node(s): 1
Vendor ID: AuthenticAMD
CPU family: 23
Model: 1
Model name: AMD EPYC 3251 8-Core Processor
Stepping: 2
CPU MHz: 3029.677
CPU max MHz: 2500.0000
CPU min MHz: 1200.0000
BogoMIPS: 4990.28
Virtualization: AMD-V
L1d cache: 32K
L1i cache: 64K
L2 cache: 512K
L3 cache: 8192K
NUMA node0 CPU(s): 0-7
Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc cpuid extd_apicid aperfmperf pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_llc mwaitx cpb hw_pstate sme ssbd sev ibpb vmmcall fsgsbase bmi1 avx2 smep bmi2 rdseed adx smap clflushopt sha_ni xsaveopt xsavec xgetbv1 xsaves clzero irperf xsaveerptr arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic v_vmsave_vmload vgif overflow_recov succor smca