Actually, this tangent started over claims about SMT4 and SMT8 vs SMT2. We agree that 10% improvement for SMT2 is about the norm, but it's application dependent.10% is about the intended speed difference.
You just said it benchmarked about a 10% difference. That's about the correct number. We're in agreement about what the performance boost is. You just think Hyperthreading is something extra that it is not supposed to be.
I question whether making a "Xeon" or "Epyc" processor that's SMT4 will have even a marginal improvement - *unless the SMT4 CPU has more execution units*.
To oversimplify that point - imagine an SMT2 CPU with one floating-point arithmetic execution unit and one integer arithmetic unit, and an application workflow with multiple threads of mixed integer/float content.
- With SMT disabled, the CPU will round robin between threads - sometime waiting on memory, sometimes waiting on the floating-point unit, sometimes waiting on the integer unit.
- With SMT enabled, when one thread stalls on memory/floating/integer - it can run the second thread if it's not waiting on whatever the first thread has busy.
- Not even close to twice as fast, but a significant boost for little extra cost.
Adding more threads without improving the physical core won't be a big win for most workloads. I suspect that the Power9 has far more execution units than x64 processors. (That happens when cost is no object.)
And I'm arguing against the people who want SMT to be more than it is. I usually disable HT, but for some workloads I turn it on.