It would seem you're right. I tested it without SMT enabled and IPC maxed at 3.19 on a single core.
That got me to thinking, though, of finding a benchmark which could do better. GeekBench 3 actually manages it. Without SMT, it hits a per-thread IPC of 4.05 (average of the peak IPC seen across all threads). With SMT, it only manages 3.1.
I measured IPC with
StatusCore.
This actually makes a LOT of sense given the SMT scaling.
4.05 IPC * 8 Cores = 32.4 IPC (MT)
3.1 IPC * 16 Cores = 49.6 IPC (SMT)
SMT peak instruction throughput improvement: 53%
I will need to hunt for something that can really push more IPC... any ideas?