aboutsummaryrefslogtreecommitdiff
path: root/boltzgen/kernel/generator.py
AgeCommit message (Collapse)Author
2019-11-04Extract streaming pattern into Mako definitionsAdrian Kummerlaender
This should allow for plugging in e.g. a AA pattern implementation without without touching any file but `AA.$target.mako`. OpenCL and C++ target templates now look basically the same and could potentially be merged. However this would decrease flexibility should more differences appear in the future. Maintaining separate template files is an acceptable overhead to preserve flexibility.
2019-11-02Import `sympy.ccode` inside templates instead of as argumentAdrian Kummerlaender
2019-10-31Call symbolic generator inside code templatesAdrian Kummerlaender
This paves the way for dropping in other LBM collision models. As a side benefit the default momenta calulcation is now fully inlined where possible.
2019-10-29Add support for generating custom templates in boltzgen's contextAdrian Kummerlaender
2019-10-29Rename target module to memoryAdrian Kummerlaender
2019-10-29Move further generator arguments into its constructorAdrian Kummerlaender
2019-10-29Extract cell indexing functionAdrian Kummerlaender
2019-10-28Add basic setup.pyAdrian Kummerlaender
No guarantee for correctness - I mostly fiddled this together in order to use common nixpkgs python package functions for including boltzgen in other shell environments.
2019-10-27Extract target-dependent floating point type nameAdrian Kummerlaender
2019-10-27Move layout implementations into separate folderAdrian Kummerlaender
2019-10-27Separate functions into separate template filesAdrian Kummerlaender
Selection of the desired templates is possible via a new `functions` parameter.
2019-10-26Support passing additional string arguments to the generatorAdrian Kummerlaender
2019-10-26Add geometry argumentAdrian Kummerlaender
2019-10-26Generalize floating point precision argumentAdrian Kummerlaender
2019-10-24Extract offset helper into target and layout specific classesAdrian Kummerlaender
2019-10-24Add test template for C++, enable switching between AOS and SOAAdrian Kummerlaender
2019-10-22Return error for unavailable templatesAdrian Kummerlaender
2019-10-22Add basic Generator classAdrian Kummerlaender
2019-10-21Pull in C++ template from symlbm_playground's standalone branchAdrian Kummerlaender
2019-10-21Pull in basics from symlbm_playgroundAdrian Kummerlaender
It's time to extract the generator-part of my GPU LBM playground and turn it into a nice reusable library. The goal is to produce a framework that can be used to generate collision and streaming programs from symbolic descriptions. i.e. it should be possible to select a LB model, the desired boundary conditions as well as a data structure / streaming model and use this information to automatically generate matching OpenCL / CUDA / C++ programs.