Sui forum italiani ed internazionali sono sorte discussioni in cui si parla animatamente riguardo i Benchmark di AIDA64 3.00 che misurano le prestazioni della memoria cache della CPU e della memoria Ram.
In particolare ci si domanda del perché la Bandwidth della Cache (L1, L2 e L3) sia in alcuni casi decuplicata, e del perché la latenza delle memorie Ram sia peggiorata. Perché AIDA 3.00 fornisce risultati così discordanti rispetto alle versioni precedenti, 2.99 compresa?
In nostro soccorso giunge József Barna, Amministratore Delegato di Bee Online International, società che distribuisce AIDA64 in Italia, il quale con un approfondito ma conciso scritto ci mette al corrente di tutte le modifiche che il team guidato da Tamás Miklós ha dovuto approtare per sfruttare pienamente Cache e IMC dei moderni processori.
Qui di seguito un estratto:
What you and the users of xtremesystems.org noticed is not a bug but a
feature. :) So you were right when you supposed that the developers
had implemented optimizations for the new CPUs and those explain the
differences in the results. In short, all cache and memory benchmarks
had been completely rewritten, from scratch, because they were
outdated. Two major novelties are introduced in the memory benchmarks
in v3.00 (as well as the beta you referred to in your article):
multi-threaded bandwidth measurement and memory latency measurement
with “block-random” access.
A main reason for the change is that the outdated single-threaded
memory benchmarks in the previous versions of AIDA64 were simply not
capable of utilizing all the available bandwidth in CPUs. The new
benchmarks are multi-threaded, that is, they run multiple benchmark
threads in order to be able to precisely measure memory bandwidth and
latency in modern processors, which typically use dual, 3- or even
4-channel memory configurations. This explains the significantly
higher bandwidth results (and not just for AMD APUs but also for Intel
CPUs). No matter how unbelievable these results are, these values show
the real potential in today's multi-channel memory architectures. For
example, the theoretical maximum bandwidth of a four-channel DDR3-1600
configuration is 51,200 MB/s, and you can get close to that with the
new benchmarks. Another striking result: the L1 data cache in Intel's
new Haswell processors can have up to 1 TB/s (!) bandwidth.
On the other hand, block-random access means that instead using the
traditional forward-linear method (“walking along” the memory in a
sequential manner) the benchmark keeps “jumping” to random addresses
inside memory blocks. This way, memory controllers can't recognize the
benchmark access pattern and can't optimize memory prefetching, which
boosted latency results before. This is why you get somewhat worse
latency results in the new version. But again, these better represent
the real performance of the memory subsystem.
All this is discussed in more detail in a forum post by AIDA64 lead
developer Tamás Miklós here.
Appare chiaro, dunque, che sfruttare anche solo la Cache delle moderne CPU comporta un discreto lavoro di ottimizzazione e che probabilmente la maggior parte dei software commerciali non hanno subito aggiornamenti a riguardo negli ultimi anni. L'importanza dell'opera di Tamás Miklós e del suo team, quindi, non è legata solamente al mero aumento dei risultati in alcuni benchmark, per la gioia degli overclocker, ma al fatto che ha mostrato come, riscrivendo parte del codice, si possano ottenere prestazioni decisamente superiori.
Giungerà questo alle orecchie delle Software House che curano alcuni dei software commerciali più importanti oggi utilizzati? O dovremo sorbirci, ancora per svariati anni, Software scritti per CPU di 10 anni fa?