Skip to content
Loop Kernel Analysis and Performance Modeling Toolkit
Python Assembly C
Branch: master
Clone or download
Latest commit ab55c4d Aug 8, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
doc added logo files Jun 21, 2018
examples Fixed #125 enabling avx512 support in machine-files Jul 26, 2019
kerncraft Remove DeprecationWarning: use instead of Aug 6, 2019
tests fixed testcase to mirror new type handling Jun 27, 2019
.gitignore extended .gitignore Oct 10, 2017
.landscape.yml moved configuration Oct 28, 2015
.travis.yml using more up to date gcc on travis May 28, 2019
LICENSE Initial commit Dec 15, 2014 extended iaca_marker and added test cases in response to #71 Jan 11, 2018
README.rst Update README.rst Aug 8, 2019
codecov.yml added codecov configuration Apr 25, 2017 Removed legacy imports and six and changed shebang python3 Dec 6, 2017
setup.cfg Merge branch 'master' into feature/osaca Apr 18, 2019



Loop Kernel Analysis and Performance Modeling Toolkit

This tool allows automatic analysis of loop kernels using the Execution Cache Memory (ECM) model, the Roofline model and actual benchmarks. kerncraft provides a framework to investigate the data reuse and cache requirements by static code analysis. In combination with the Intel IACA tool kerncraft can give a good overview of both in-core and memory bottlenecks and use that data to apply performance models.

For a detailed documentation see publications in doc/.


On most systems with python pip and setuputils installed, just run:

pip install --user kerncraft

for the latest release. In order to get the Intel Achitecture Code Analyzer (IACA), required by the ECM, ECMCPU and RooflineIACA performance models, read this and run:

iaca_get --I-accept-the-Intel-What-If-Pre-Release-License-Agreement-and-please-take-my-soul

Additional requirements are:
  • likwid (used in Benchmark model and by


  1. Get an example kernel and machine file from the examples directory



  1. Have a look at the machine file and change it to match your targeted machine (above we downloaded a file for a Sandy Bridge EP machine)
  2. Run kerncraft

kerncraft -p ECM -m SandyBridgeEP_E5-2680.yml 2d-5pt.c -D N 10000 -D M 10000 add -vv for more information on the kernel and ECM model analysis.


When using Kerncraft for your work, please consider citing the following publication:

Kerncraft: A Tool for Analytic Performance Modeling of Loop Kernels (preprint)

J. Hammer, J. Eitzinger, G. Hager, and G. Wellein: Kerncraft: A Tool for Analytic Performance Modeling of Loop Kernels. In: Tools for High Performance Computing 2016, ISBN 978-3-319-56702-0, 1-22 (2017). Proceedings of IPTW 2016, the 10th International Parallel Tools Workshop, October 4-5, 2016, Stuttgart, Germany. Springer, Cham. DOI: 10.1007/978-3-319-56702-0_1, Preprint: arXiv:1702.04653``


Implementation: Julian Hammer;
ECM Model (theory): Georg Hager, Holger Stengel, Jan Treibig;
LC generalization: Julian Hammer



You can’t perform that action at this time.