Skip to content

lssfau/hyteg-operators

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

182 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Optimized operators for HyTeG

This repository contains optimized elementwise operators for HyTeG. The code under operators is generated using HOG. Each kernel has a platform independent and, where applicable, an AVX-vectorized version. The desired variant is configured in CMake.

All operators are described declaratively in operators-<operator-group>.toml. They are roughly split into groups for a better overview and faster integration tests.

How to generate operators

cd generate

python -m venv .venv
source .venv/bin/activate
python -m pip install -r requirements.txt

python generate.py -o ../operators ../operators-<operator-group>.toml

# To generate all operators you have to run the script repeatedly, each time with a different toml file.

Intended development workflow

Adding a new operator is as easy as adjusting one of the existing operators-<operator-group>.toml files, or adding a new one. If you want to update the generator, make the necessary changes in the generate directory. It is a good idea to test your changes locally. In your commit, do not include changes to the operators directory. After pushing your changes to the remote, our CI automatically regenerates all operators from all operators-<operator-group>.toml files present in the repository. In this process, any changes you made under operators will be lost. After the pipeline has passed, you can trigger the manual job submit-merge-request to create a new merge request including your changes and the freshly generated operators. Using the CI makes sure that the generated code is always in sync with the description of what and how to generate.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 5

Languages