[Embench] Warm-up phase

Avishai Tvila Avishai.Tvila at wdc.com
Sun May 2 12:37:51 CEST 2021

I'm wondering why we need the warm-up phase at all.
It seems the impact of cold caches/predictors is insignificant.
The impact of warm-up is highest when the whole data is fit in the cache, and the misses are only due to a cold cache.
Therefore, the upper bound of warm-up gain per access is ((Miss-penalty)*(static data size)/(Dynamic accesses))*(base CPI)

Warm-up has three parts:

  1.  I$ - for Embench, the code size is up to 16KB, the number of dynamic instructions depends on clock frequency, but even for 10MHz, it's bigger than 80M instructions. Even if a missed penalty is 100s cycles, the impact is about 0.
  2.  Branch Predictor - same as (1)
  3.  D$ - data size is limited to 64K, assuming cache line is 32B, warming can save 2K misses. Assuming we have ~20% memory accesses, it's 2K out of 16M; even with a missed penalty of 300 cycles, it's only 0.03 cycles per memory access.


Ofer & Avishai
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.librecores.org/pipermail/embench/attachments/20210502/66d18389/attachment.htm>

More information about the Embench mailing list