RRZE-HPC / kerncraft

Loop Kernel Analysis and Performance Modeling Toolkit
GNU Affero General Public License v3.0
86 stars 24 forks source link

Problems with cache predictor persists for some cases #81

Closed christiealappatt closed 6 years ago

christiealappatt commented 6 years ago

For the following kernel at n=7*1e5 to n=13*1e5, there should be 1 evict and 1 miss corresponding to Y vector. In kerncraft this works for approx. n=7*1e5 to n=8.01e5 then the evicts drop to 0 strangely till approx n=11*1e5 then it raises slowly till it reaches 13\1e5.

Try for instance kerncraft -p ECM -m ~/Emmy.yml -D n 1000000 -D s 4 LC_ilj_2.c --cache-predictor=SIM -vvv , here evicts are 0.

LC_ilj.tar.gz

christiealappatt commented 6 years ago

The following code also has problem with cache simulator. This kernel is totally off. Actual data traffic should be 9 LOADS (misses) and 4 ST (evicts), but the simulator predicts totally lower values 4 LOADS (misses) and 1 STORE (evict) with n = 1000000.

Run : kerncraft -p ECM -m ~/Emmy.yml -D n 1000000 -D s 4 LC_jil.c --cache-predictor=SIM -vvv LC_jil.tar.gz

cod3monk commented 6 years ago

Should be fixed in f5011c52878e4ae3c9ab32b53457d551ec81c98b

TODO add unittests for this issue

christiealappatt commented 6 years ago

The second test case seems to be fixed, but the problems with first test case (LC_ilj) continues...

cod3monk commented 6 years ago

That is another issue which is related to the selection of the warmup period. In this case it is too short for the cache to be fully occupied, which means that evicts do not (yet) go to main memory.

cod3monk commented 6 years ago

Should be fixed with the latest commit