[Embench] Warm-up phase
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...
More information about the Embench