CPU-Z is a popular diagnostic and monitoring software designed to provide detailed information about a computer’s hardware specifications, going into great detail regarding the processor, motherboard, memory, and other essential components. In another article we saw what CPU-Z is and how it works.
The application, distributed as freeware, also consists of a tab Bench through which it is possible to carry out a benchmark CPU. This means that you can verify the performance in single thread e multi thread of the processor in use on the system, with the possibility of comparing them with those of another reference chip (tick the box Reference).
Although not as popular as Cinebench, CPU-Z appears in many reviews and even in slide shares, for example, from AMD spokespeople.
CPU-Z does not perform a complete CPU benchmark
We know well that every benchmark that is, each program that checks the performance of the processor uses specific parameters to evaluate the behavior of each individual device. For this reason i judgments of an application are often not superimposable with those issued by other programs. Indeed, when comparing different CPUs, it is possible to detect sometimes marked differences.
Because CPU-Z is not ideal for the purposes of performance evaluation of a processor? This interesting study by Chips and Cheese.
In another article we explored the meaning of CPU and described its main constituent elements as well as the essential operating principles.
The 6 reasons why the excellent CPU-Z should not be used as a benchmark
- Type of benchmark. The benchmark used by CPU-Z is based, to a large extent, on an FP32 mathematical test which focuses on the use of SSE instructions (Streaming SIMD Extensions). This type of verification does not fully test the capabilities of vector calculus SSE, mostly limited to additions, multiplications, conversions or comparisons in FP32.
- Distance from the real world. The test does not reflect ei operations workloads managed with the applications you use every day: data compression, 3D rendering, gaming and so on. As a result, the benchmark is far from one accurate representation CPU performance in real-world scenarios.
- Failure to use execution out-of-order. While modern CPUs use theexecution out-of-order To improve performance, CPU-Z testing poses different challenges than typical ones, requiring high capacities of reorder buffers and FP registers. THE reorder buffer are data structures internal to the CPU that allow incoming instructions to be reordered and managed so that they can be executed efficiently and out of sequence. THE registri FP (Floating Point) are specialized registers for performing floating-point operations.
- Cache usage. Since the benchmark relies on a relatively small data set that can be completely contained in the L1 cache of the processors tested, CPU-Z does not tax the processor cache, not reflecting typical memory management when using real applications.
- Limitations in the use of Branch Prediction. The CPU-Z benchmark contains few branch instructions (branch instruction) and those present are relatively easy to predict, not putting a strain on the ability to estimate the jump into the code.
- Front-end performance. Furthermore, with CPU-Z it is not possible to put a strain on the front-end of the CPU, i.e. the part responsible for retrieving, analyzing and preparing instructions coming from memory and cache for execution within the processor . This is a section that performs a series of essential tasks to start the process of executing instructions. Since the instruction flow used by CPU-Z is very small, the application cannot make a reliable evaluation.
Cache
As we saw in the article cited previously, the cache it is a small amount of memory built into processors to reduce the time spent communicating with the much slower RAM. The CPU-Z benchmark actually only uses the L1 cache which, although very efficient, does not allow – if used to its maximum – to stress the CPU. As a result, CPUs with better cache tend not to score higher in CPU-Z.
Jump prediction or branch prediction
The branch prediction, as we also explained in the article dedicated to side-channel attacks, is a technique used in CPUs to anticipate or predict the direction of a conditional instruction, i.e. an instruction that can involve a jump in the flow of the executing program. In computer programs, in fact, the conditional statements they are extremely common and depend on logical conditions that can branch the flow of the program based on the result of a previous evaluation: think of “if” clauses or “while” loops.
With the jump prediction, the CPU tries to predict what the result of a conditional instruction will be before it is actually executed. If the CPU can correctly predict the direction of conditional instruction flow, it can anticipate the part of the code that will be executed, significantly reducing execution time. Any incorrect predictions imply a waste of time.
The legendary chip designer Jim Keller has repeatedly underlined that some la branch prediction and the location of the data are aspects that continue to play a crucial role in the performance of modern processors. In 2011, the CPU AMD FX-8150 (Bulldozer) had to receive particularly negative reviews: yet, that CPU could boast a success rate in predicting jumps of 95%. Today the trend, in the case of Intel and AMD CPUs, is to keep as much data as possible in the cache to make it available as much as possible.