Skip to main content

stempel

Stencil TEMPlate Engineering Library

This tool allows automatic generation of loop kernels for several kind of stencil patterns. Stempel provides a framework to generate, perform static analysis of the code (exploiting kerncraft), generate a full C code and parallelize it via openMP and blocking.

For a detailed documentation see in docs/.

Installation

Remember to setup properly your envirnment in advance. For example, using conda Python:

conda create -n stempel python=3.4

source activate stempel

Clone this repository and run: python ./setup.py install

If you are unfamiliar with python, here is a tutorial on how to install python packages: https://packaging.python.org/installing/ . The use of virtual enviornments is usually a good choice.

Additional requirements are:

Usage

  1. Run stempel C code generator

stempel gen -D 2 -r 1 -i

or

stempel gen -D 2 -r 2 -k box -C variable -p

  1. Run stempel benchmark generator

stempel bench code.c -m machine_file.yaml -b

  1. Run a full analysis (a stencil is generated, analysed through kerncraft applying ECM/Data, Roofline and Layer Condition models; a project is set up in PROVA! and an experiment is executed. The outputs are stored to the STEMPEL workspace):

analysis -w ~/Desktop/stempelwork -p ~/PROVA ~/Desktop/provastempel -k star -m BroadwellEP_E5-2697_CoD.yml -r 2 -d 2 -e 5 -t 2 4 8 10 --method_type OpenMP-4.0-GCC-4.9.3-2.25 -C constant -c isotropic -l /apps/likwid/system/include/ /apps/likwid/system/lib/ --iaca

Credits

Implementation: Danilo Guerrera

kerncraft : Julian Hammer

ECM Model (theory): Georg Hager, Holger Stengel, Jan Treibig

License

AGPLv3

Metadata

Release files for stempel 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for stempel 0.1.0
File Size Uploaded
stempel-0.1.0.tar.gz 3.4 MB Details

Release files / stempel-0.1.0.tar.gz

Download URL stempel-0.1.0.tar.gz
Size 3.4 MB
Tags Source
SHA-256 checksum
How to use checksums
f5fe06a8a873b94c58f26a2e7fc8b6d8c6c087adf324b1fb5a1033974cea2e44
BLAKE2b-256 checksum
How to use checksums
2408ad5c103ad833042d810489412a016ff000377d798eecf38b6c6bc9dbf3bd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via Python-urllib/3.7

Release history Release notifications | RSS feed

This release

0.1.0 This release

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page