Skip to content
Loop Kernel Analysis and Performance Modeling Toolkit
Python Assembly C
Branch: master
Clone or download
Latest commit ab55c4d Aug 8, 2019
Permalink
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 collections.abc.Sequence 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 lanscape.io configuration Oct 28, 2015
.travis.yml using more up to date gcc on travis May 28, 2019
LICENSE Initial commit Dec 15, 2014
MANIFEST.in 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
likwid-counter-packing.py Removed legacy imports and six and changed shebang python3 Dec 6, 2017
setup.cfg
setup.py Merge branch 'master' into feature/osaca Apr 18, 2019
tox.ini

README.rst

kerncraft

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/.

https://travis-ci.org/RRZE-HPC/kerncraft.svg?branch=master https://codecov.io/github/RRZE-HPC/kerncraft/coverage.svg?branch=master

Installation

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 likwid_bench_auto.py)

Usage

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

wget https://raw.githubusercontent.com/RRZE-HPC/kerncraft/master/examples/machine-files/SandyBridgeEP_E5-2680.yml

wget https://raw.githubusercontent.com/RRZE-HPC/kerncraft/master/examples/kernels/2d-5pt.c

  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.

Citations

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``

Credits

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

License

AGPLv3

You can’t perform that action at this time.