The latest version of CPU-Z introduced a new version of the benchmark (2017.01), that succeeds to the previous version introduced in 2015. We've received a lot of emails concerning the new scores, and we'll try to answer to the most frequently asked questions :
Why are the scores much lower than the previous version, and can they be compared ?
At the time the first benchmark was released in 2015, only a few parts included 8 cores (like the 5960X). In the meantime, Ryzen was introduced, and therefore 6 and 8-cores processors will become more and more prevalent. As a result, more models with 10, 12 and 16 cores are soon to be released. More cores mean higher multi-threaded scores, and a lower scale makes the comparisons easier. The new benchmark uses a new algorithm, and its scores can not be compared with the previous version.
Why do the Ryzen performance decrease in comparison to the Intel processors with the new benchmark ?
When the 1st version of the benchmark was released in 2015, it was tested on all existing architectures to check the relevancy of the scores. Almsot two years later, Ryzen was introduced, and scored - core for core and clock for clock - almost 30% higher than Intel Skylake. After a deep investigation, we found out that the code of the benchmark felt into a special case on Ryzen microarchitecture because of an unexpected sequence of integer instructions. These operations added a noticeable but similar delay in all existing microarchitectures at the time the previous benchmark was developed. When Ryzen was released, we found out that their ALUs executed this unexpected sequence in a much more efficient way, leading to results that mismatch the average performance of that new architecture. We reviewed many software and synthetics benchmarks without being able to find a single case where such a performance boost occurs. We're now convinced that this special case is very unlikely to happen in real-world applications. Our new algorithm described below does not exhibit this behaviour.
What algorithm does the benchmark use, and what instruction set is used ?
The new benchmark computes a 2-dimensional noise function, that could typically be used in a game to generate a procedural map. The code is written in C++, and compiled with Visual C++ 2008. No special instruction set is used, but the x64 version uses scalar SSE/SSE2 instructions to achieve floating point operations, whereas the 32-bit version keeps using the legacy x87 instructions, resulting in almost half of the x64 performance.
When will the benchmark pages be updated with the new benchmark results ?
The new benchmark was released 10 days ago, and thousands of scores were recorded in the meantime, We're curently building a new database with these results and plan to put it online during this week.