As you may know, a lot of people run Geekbench5 and Geekbench6 tests, and some people notice that the score doesn't exactly scale with the amount of cores available in the system. For example, an 8 core system with a CPU that scores 1000 GB5 points in single threaded won't exactly score 8000 points in multi-threaded. This is probably because of a number of reasons, but I suspect that it's due to hyperthreading and all-core CPU clock speeds being lower.
EPYC 7702 Testing (64 cores, 128 threads)
I have an EPYC 7702 for a short period of time, so I thought I would start with this processor in particular. Threads are basically equivalent to what most providers call vCPU cores.
I'll be testing with:
0 threads loaded (0%)
16 threads loaded (12.5%)
32 threads loaded (25%)
48 threads loaded (37.5%)
64 threads loaded (50%)
96 threads loaded (75%)
120 threads loaded
The BIOS was set to default values, and the CPU is theoretically rated for a 200W TDP. In practice, I only saw up to 185W on the CPU.
In each test, a VM will be used to run a stress test using the stress -c command to stress these amount of threads. Then, another VM with 8 threads allocated will be running a Geekbench5 tests to see the changes in results.
It's important to note that this may not be representative of real world results. The benchmarks are purely artificial, and most virtualization solutions typically schedules the VM to certain threads rather than evenly distributing it across all of the cores.
In this case, we are testing with the following configuration:
AMD EPYC 7702 (64c/128t)
GIGABYTE MZ32-AR0 REV 1.0
16 x 64GB 2400 MHz DDR4 ECC RDIMM
4 x 3.84TB NVMe SSD + 2 x 512GB NVMe SSD + 1TB NVMe SSD
40G ConnectX-3 Pro NIC
Test VM:
Host Passthrough (8 vCPU Cores)
16GB DDR4 ECC Memory
60GB NVMe SSD Storage
0 threads loaded
Idle usage is approximately 145W-180W of power on the host node.
Single Core: 1037
Multi Core: 7892
16 threads loaded
Upon loading the test VM, the server has a power usage between 290-300W.
Single Core: 1047
Multi Core: 7519
Full Test: https://browser.geekbench.com/v5/cpu/22231694
Most of the cores that were loaded by the stress test seem to be at around 3.2 GHz.
32 threads loaded
Upon loading the test VM, the server has a power usage between 290-300W.
Single Core: 938
Multi Core: 6672
Full Test: https://browser.geekbench.com/v5/cpu/22231637
Most of the cores that were loaded by the stress test seem to be at around 3.05 GHz.
48 threads loaded
Upon loading the test VM, the server has a power usage around 300-305W.
Single Core: 860
Multi Core: 5606
Full Test: https://browser.geekbench.com/v5/cpu/22231663
Most of the cores that were loaded by the stress test seem to be at around 2.71 GHz.
64 threads loaded
Upon loading the test VM, the server has a power usage around 310W.
Single Core: 550
Multi Core: 4082
Full Test: https://browser.geekbench.com/v5/cpu/22231650
Most of the cores that were loaded by the stress test seem to be at around 2.45 GHz.
96 threads loaded
Upon loading the test VM, the server has a power usage around 315-320W.
Single Core: 544
Multi Core: 4139
Full Test: https://browser.geekbench.com/v5/cpu/22231672
Most of the cores that were loaded by the stress test seem to be at around 2.43 GHz.
120 threads loaded
Upon loading the test VM, the server has a power usage around 315-320W.
Single Core: 536
Multi Core: 3639
Full Test: https://browser.geekbench.com/v5/cpu/22231683
Most of the cores that were loaded by the stress test seem to be at around 2.39 GHz.
Conclusion
As you can see from the testing above, at the half way point where 50% of the CPU is utilized, we can see a 50% reduction in the CPU single core and multi core values in the 8 core VM running GB5 tests. Despite almost 50% of the CPU being free and 64 threads (64 vCPU cores) literally sitting unutilized, we still see low results. There's a dramatic drop in clock speed to 2.45 GHz, and it seems to stay around there as more cores are loaded, which is probably the culprit behind the lower Geekbench results.