Benchmark CPU: il software CPU-Z non è adatto

CPU-Z è un'eccellente applicazione che permette, in pochi secondi, di estrarre informazioni attendibili sulla configurazione hardware del PC in uso. Il benchmark CPU integrato nell'applicazione non è altrettanto affidabile: ecco perché.
Benchmark CPU: il software CPU-Z non è adatto

CPU-Z è un popolare software di diagnostica e monitoraggio progettato per fornire informazioni dettagliate sulle specifiche hardware di un computer, con particolare dovizia di particolari per quanto concerne il processore, la scheda madre, la memoria e altri componenti essenziali. In un altro articolo abbiamo visto cos’è CPU-Z e come funziona.

L’applicazione, distribuita come freeware, consta anche di una scheda Bench attraverso la quale è possibile effettuare un benchmark CPU. Questo significa che è possibile verificare le prestazioni in single thread e multi thread del processore in uso sul sistema, con la possibilità di confrontarle con quelle di un altro chip di riferimento (spuntare la casella Reference).

Sebbene non sia così popolare come Cinebench, CPU-Z appare in molte recensioni ed persino nelle slide condivide, ad esempio, dai portavoce di AMD.

CPU-Z non effettua un benchmark CPU completo

Sappiamo bene che ogni benchmark ovvero ciascun programma che si occupa di verificare le prestazioni del processore, utilizza specifici parametri per valutare il comportamento di ogni singolo dispositivo. Per questo i giudizi di un’applicazione non sono spesso sovrapponibili con quelli emessi da altri programmi. Anzi, quando si confrontano CPU diverse, è possibile rilevare differenze talvolta marcate.

Perché CPU-Z non è l’ideale ai fini della valutazione delle performance di un processore? Ne dà risposta questo interessante approfondimento realizzato da Chips and Cheese.

In un altro articolo abbiamo esplorato il significato di CPU e descritto i suoi principali elementi costitutivi oltre ai principi di funzionamento imprescindibili.

I 6 motivi per cui l’ottimo CPU-Z non dovrebbe essere usato come benchmark

  • Tipologia del benchmark. Il benchmark utilizzato da CPU-Z si basa, per larga parte, su un test matematico FP32 che si concentra sull’utilizzo di istruzioni SSE (Streaming SIMD Extensions). Questo tipo di verifica non sollecita appieno le capacità di calcolo vettoriale SSE, limitandosi principalmente ad aggiunte, moltiplicazioni, conversioni o confronti in FP32.
  • Distanza dal mondo reale. Il test non riflette le operazioni e i carichi di lavoro gestiti con le applicazioni usato ogni giorno: compressione dati, rendering 3D, gaming e così via. Di conseguenza, il benchmark è lontano da una rappresentazione accurata delle prestazioni della CPU in scenari reali.
  • Mancato utilizzo dell’esecuzione out-of-order. Mentre le moderne CPU utilizzano l’esecuzione out-of-order per migliorare le prestazioni, il test di CPU-Z pone sfide diverse rispetto a quelle tipiche, richiedendo capacità elevate dei buffer di riordino e dei registri FP.  I buffer di riordino sono strutture dati interne alla CPU che consentono di riordinare e gestire le istruzioni in entrata in modo che possano essere eseguite in modo efficiente e fuori sequenza. I registri FP (Floating Point) sono registri specializzati per l’esecuzione delle operazioni in virgola mobile.
  • Utilizzo della cache. Poiché il benchmark poggia su un insieme di dati relativamente piccolo che può essere completamente contenuto nella cache L1 dei processori testati, CPU-Z non mette a dura prova la cache del processore, non riflettendo la gestione della memoria tipica durante l’utilizzo delle applicazioni reali.
  • Limiti nell’uso della Branch Prediction. Il benchmark di CPU-Z contiene poche istruzioni di salto (branch instruction) e quelle presenti sono relativamente facili da prevedere, non mettendo a dura prova la capacità di stimare i salti nel codice.
  • Prestazioni front-end. Con CPU-Z, inoltre, non è possibile mettere a dura prova il front-end della CPU ossia la parte responsabile del recupero, dell’analisi e della preparazione delle istruzioni provenienti dalla memoria e dalla cache per l’esecuzione all’interno del processore. Si tratta di una sezione che svolge una serie di compiti essenziali per avviare il processo di esecuzione delle istruzioni. Poiché il flusso di istruzioni utilizzato da CPU-Z è molto ridotto, l’applicazione non può effettuare una valutazione attendibile.

Cache

Come abbiamo visto nell’articolo citato in precedenza, la cache è una piccola quantità di memoria integrata nei processori per ridurre il tempo impiegato nella comunicazione con la RAM, molto più lenta. Il benchmark di CPU-Z utilizza di fatto solamente la cache L1 che, sebbene sia molto efficiente, non permette – se utilizzata al massimo – di stressare la CPU. Ne consegue che le CPU con una cache migliore tendono a non ottenere punteggi più elevati in CPU-Z.

Previsione del salto o branch prediction

La branch prediction, come abbiamo spiegato anche nell’articolo dedicato agli attacchi side-channel, è una tecnica utilizzata nelle CPU per anticipare o prevedere la direzione di un’istruzione condizionale, ovvero un’istruzione che può comportare un salto nel flusso del programma in esecuzione. Nei programmi informatici, infatti, le istruzioni condizionali sono estremamente comuni e dipendono da condizioni logiche che possono ramificare il flusso del programma in base al risultato di una precedente valutazione: si pensi alle clausole “if” o ai cicli “while”.

Con la previsione del salto, la CPU cerca di prevedere quale sarà il risultato di un’istruzione condizionale prima che essa sia effettivamente eseguita. Se la CPU può prevedere correttamente la direzione del flusso dell’istruzione condizionale, può anticipare la parte del codice che sarà eseguita, riducendo significativamente i tempi di esecuzione. Eventuali previsioni sbagliate implicano una perdita di tempo.

Il leggendario progettista di chip Jim Keller ha più volte sottolineato che alcuni la branch prediction e la posizione dei dati sono aspetti che continuano a giocare un ruolo cruciale sul versante delle performance dei moderni processori. Nel 2011, la CPU AMD FX-8150 (Bulldozer) dovette incassare recensioni particolarmente negative: eppure, quella CPU poteva vantare un tasso di successo nella previsioni dei salti del 95%. Oggi la tendenza, nel caso delle CPU Intel e AMD, è quella di conservare quanti più dati possibile nella cache per renderli disponibili il più possibile.

Ti consigliamo anche

Link copiato negli appunti