> The gain in total performance that you get from running two threads per core is much higher in the Ryzen than in Intel processors because of the higher throughput of the AMD core
Another interesting aspect is that in HPC applications, where floating point performance is more demanding, only about 1 in 7 operations is actually a floating point operation. The remaining 6 operations are there to move around data, including requests to push data down the cache memory hierarchy. That's one of the reasons why the performance of AMD's Bulldozer and Piledriver lines scaled practically linearly up to the core count in spite of each floating point unit being shared between a pair of CPU cores.
Consequently, HPC research tends to be focused on strategies to minimize the amount of data being moved around, as well as minimizing cache misses, or to take advantage of technology with higher throughput, such as GPGPU. As AMD's Ryzen offer greater throughtput, performance also increases.
Some rumblings from Intel suggest they may discontinue this. Either way this is addressed
`APERF` seems to be AMD's version of `RDTSC` but that requires the code execute in Ring-0. So it sounds like Agner was building a kernel module to wrap the existing test suite.
I never thought about it being a cycle count since I usually access via a wrapper. I guess the wrappers are converting from cycles to nanoseconds.