pystencils merge requestshttps://i10git.cs.fau.de/pycodegen/pystencils/-/merge_requests2020-10-30T10:47:29+01:00https://i10git.cs.fau.de/pycodegen/pystencils/-/merge_requests/181Allow **kernel_creation_args in create_boundary_kernel2020-10-30T10:47:29+01:00Stephan SeitzAllow **kernel_creation_args in create_boundary_kernelhttps://i10git.cs.fau.de/pycodegen/pystencils/-/merge_requests/180Fix Dirichlet boundary condition for scalar case2020-10-29T17:49:55+01:00Stephan SeitzFix Dirichlet boundary condition for scalar caseMarkus HolzerMarkus Holzerhttps://i10git.cs.fau.de/pycodegen/pystencils/-/merge_requests/174Extend testsuit2020-10-13T13:16:38+02:00Markus HolzerExtend testsuitThis MR extends the test cases of pystencils.
Other changes made in this MR:
1. Usage of correct backends for the codegen instead of C Backend for all
2. Deletion of unusable function.
3. Correction of CUDA and OpenCL Array handlerThis MR extends the test cases of pystencils.
Other changes made in this MR:
1. Usage of correct backends for the codegen instead of C Backend for all
2. Deletion of unusable function.
3. Correction of CUDA and OpenCL Array handlerStephan SeitzStephan Seitzhttps://i10git.cs.fau.de/pycodegen/pystencils/-/merge_requests/176Use C11CodePrinter for sympy 1.72020-10-07T16:42:49+02:00Stephan SeitzUse C11CodePrinter for sympy 1.7C++ may cause problems for CUDA/OpenCL (e.g. print `std::log`)C++ may cause problems for CUDA/OpenCL (e.g. print `std::log`)Markus HolzerMarkus Holzerhttps://i10git.cs.fau.de/pycodegen/pystencils/-/merge_requests/106WIP: Cuda autotune2020-10-07T13:04:35+02:00Stephan SeitzWIP: Cuda autotuneThis PR introduces ~~two~~ one change~~s~~:
- ~~rotate (32,1,1) depending on field strides to fastest dimension. So (1,1,32) for c-layout and (32,1,1) for fortran layout. So pystencils will be fast also for c-layout (this will always be...This PR introduces ~~two~~ one change~~s~~:
- ~~rotate (32,1,1) depending on field strides to fastest dimension. So (1,1,32) for c-layout and (32,1,1) for fortran layout. So pystencils will be fast also for c-layout (this will always be performed)~~
- auto-tune the block dimensions to whatevers is fastest for a specific kernel on localhost. On first kernel call different layouts are tried and the kernel will be called henceforth with the fastest configuration (disk_cached). This could be intersting for OpenCL where we don't know which launch config is the fastest (on OpenCL the runtime can alternatively give a hint on that).
One drawback: the test calls are only correct if input and output fields do not overlap (so no in-place kernels).https://i10git.cs.fau.de/pycodegen/pystencils/-/merge_requests/177Fix: shift_slice to accept single slices as argument, and return tuples2020-10-07T11:30:33+02:00Frederik HennigFix: shift_slice to accept single slices as argument, and return tuplesTwo fixes to `pystencils.slicing.shift_slice`:
- Previously, `shift_slice` assumed its argument `slices` to be iterable. Thus, it did not accept single slices as arguments. There are use cases, though, where it is necessary to shift a p...Two fixes to `pystencils.slicing.shift_slice`:
- Previously, `shift_slice` assumed its argument `slices` to be iterable. Thus, it did not accept single slices as arguments. There are use cases, though, where it is necessary to shift a plain `slice` object, or even `int` or `float` objects which can also be seen as slices. An additional `isinstance` check takes care of this.
- Previously, `shift_slice` returned `list`s of slices. By default, Python wraps multidimensional slices as `tuple`s. Code for manipulating multidimensional slices thus expects them to be given as tuples. Also, although it is currently possible to access numpy arrays with lists of slices instead of tuples, this action produces a deprecation warning. Thus, `shift_slice` is changed to return tuples.
An additional test case evaluating array accesses with shifted slices is also added.https://i10git.cs.fau.de/pycodegen/pystencils/-/merge_requests/169Fix: Replaced accidental `continue` by `break` in boundaries/createindexlist.py2020-10-07T10:54:06+02:00Frederik HennigFix: Replaced accidental `continue` by `break` in boundaries/createindexlist.pyThere was a `continue` instead of a `break` statement in the python code for index list creation, causing the `single_link` flag to be ignored. The test cases for this are updated in pycodegen/lbmpy!41.There was a `continue` instead of a `break` statement in the python code for index list creation, causing the `single_link` flag to be ignored. The test cases for this are updated in pycodegen/lbmpy!41.https://i10git.cs.fau.de/pycodegen/pystencils/-/merge_requests/173Update pystencils integration pipeline2020-10-05T13:29:08+02:00Markus HolzerUpdate pystencils integration pipelineSome of waLBerlas test cases have changed. This MR adaptes the changes.Some of waLBerlas test cases have changed. This MR adaptes the changes.https://i10git.cs.fau.de/pycodegen/pystencils/-/merge_requests/171count_operations: fix to not count integer expressions for addresses/constant...2020-10-05T09:52:05+02:00Dominik Ernstcount_operations: fix to not count integer expressions for addresses/constants as real operationsTries to fix the number of counter operations by count_operations. Previously, counter computations with integer constants like +1 would be counted as real, because a evalf would make it a +1.0.
Additionally address computations with po...Tries to fix the number of counter operations by count_operations. Previously, counter computations with integer constants like +1 would be counted as real, because a evalf would make it a +1.0.
Additionally address computations with pointers of real* type would be counted as real too.
Also, x^-1/2 is counted as both a square root and a division.https://i10git.cs.fau.de/pycodegen/pystencils/-/merge_requests/172Warning fixes in setup.py2020-10-03T16:26:28+02:00Markus HolzerWarning fixes in setup.pyThis MR fixes some small warnings in setup.py. Additionally, the accuracy for the timeloop test case is lowered due to its often failureThis MR fixes some small warnings in setup.py. Additionally, the accuracy for the timeloop test case is lowered due to its often failurehttps://i10git.cs.fau.de/pycodegen/pystencils/-/merge_requests/170Make work on SymPy 1.7: sympy.printing.ccode -> sympy.printing.cxx2020-09-29T12:03:30+02:00Stephan SeitzMake work on SymPy 1.7: sympy.printing.ccode -> sympy.printing.cxxThere's also sympy.printing.c but we are always compiling as C++.
sympy-master failed before this fix.There's also sympy.printing.c but we are always compiling as C++.
sympy-master failed before this fix.Markus HolzerMarkus Holzerhttps://i10git.cs.fau.de/pycodegen/pystencils/-/merge_requests/168Extend testsuite2020-08-10T14:48:46+02:00Markus HolzerExtend testsuiteExtension of test cases and minor Bug fixesExtension of test cases and minor Bug fixesJan HönigJan Hönighttps://i10git.cs.fau.de/pycodegen/pystencils/-/merge_requests/167Update conftest and readme2020-08-10T11:21:50+02:00Markus HolzerUpdate conftest and readmeDue to the update of the python environment, the conftest is updated to the new pytest version. Further, pages are hosted now on a new URL which is adapted in the readme.Due to the update of the python environment, the conftest is updated to the new pytest version. Further, pages are hosted now on a new URL which is adapted in the readme.Jan HönigJan Hönighttps://i10git.cs.fau.de/pycodegen/pystencils/-/merge_requests/165Enable osaca usage2020-07-14T19:54:52+02:00Markus HolzerEnable osaca usageThis MR updates the kerncraft interface to the new kerncraft version. Furthermore, IACA is not used as Architecture Code Analyzer anymore due to not being developed anymore. Instead, OSACA is enabled as Open-source Architecture Code Anal...This MR updates the kerncraft interface to the new kerncraft version. Furthermore, IACA is not used as Architecture Code Analyzer anymore due to not being developed anymore. Instead, OSACA is enabled as Open-source Architecture Code Analyzer.Jan HönigJan Hönighttps://i10git.cs.fau.de/pycodegen/pystencils/-/merge_requests/163Volume-of-Fluid: better tests and make it actually work2020-07-10T21:18:57+02:00Michael Kuronmkuron@icp.uni-stuttgart.deVolume-of-Fluid: better tests and make it actually workThe scheme corresponds to calculating the overlap volume of a cell shifted by the flow velocity with its neighbor cell. The new test does that explicitly, but generates convoluted expressions which should not be used directly because the...The scheme corresponds to calculating the overlap volume of a cell shifted by the flow velocity with its neighbor cell. The new test does that explicitly, but generates convoluted expressions which should not be used directly because they are so slow to evaluate. Thanks to this test, an incorrect sign in the implementation was found and fixed, as well as improper scaling of the fluxes.
@alexander.reinauer, this could be important to you because you are the only other person using volume-of-fluid advection.Markus HolzerMarkus Holzerhttps://i10git.cs.fau.de/pycodegen/pystencils/-/merge_requests/162Recursively convert dictionary in DotDict2020-07-10T16:56:17+02:00Stephan SeitzRecursively convert dictionary in DotDictEverybody love `DotDict` because we are lazy. This PR recursively converts all dict into `DotDict` not only top level.
So you can do:
my_super.nested.data.scheme = 42Everybody love `DotDict` because we are lazy. This PR recursively converts all dict into `DotDict` not only top level.
So you can do:
my_super.nested.data.scheme = 42https://i10git.cs.fau.de/pycodegen/pystencils/-/merge_requests/161No cuda required for linting pystencils2020-07-10T16:55:16+02:00Stephan SeitzNo cuda required for linting pystencilshttps://i10git.cs.fau.de/pycodegen/pystencils/-/merge_requests/164Throw an error when performing GPU operations with SerialDataHandling when py...2020-07-09T15:41:24+02:00Stephan SeitzThrow an error when performing GPU operations with SerialDataHandling when pycuda is not availableMarkus HolzerMarkus Holzerhttps://i10git.cs.fau.de/pycodegen/pystencils/-/merge_requests/160Skip 01_tutorial_getting_started if graphviz is not installed2020-07-09T15:29:03+02:00Stephan SeitzSkip 01_tutorial_getting_started if graphviz is not installedCell 19 of Tutorial 1 requires graphviz. Skip if not installed.
Alternative would be to execute this only if graphviz is installed.Cell 19 of Tutorial 1 requires graphviz. Skip if not installed.
Alternative would be to execute this only if graphviz is installed.https://i10git.cs.fau.de/pycodegen/pystencils/-/merge_requests/159Fix: Wrong fString in Cuda Backend2020-06-22T15:52:09+02:00Markus HolzerFix: Wrong fString in Cuda BackendDue to changing the string formating in pystencils, an error occurred in the CUDA backend, which is fixed by changing back to the classical string formating.
Furthermore, I added a compile instruction to `test_fast_approximation` to cat...Due to changing the string formating in pystencils, an error occurred in the CUDA backend, which is fixed by changing back to the classical string formating.
Furthermore, I added a compile instruction to `test_fast_approximation` to catch the error in the test cases, which was thrown at compile time in the `pygrandchem` module.Jan HönigJan Hönig