- Jul 15, 2019
-
-
Stephan Seitz authored
-
Stephan Seitz authored
-
Stephan Seitz authored
-
- Jul 11, 2019
-
-
Martin Bauer authored
-
Martin Bauer authored
- backend, target and compile are now normal members of the KernelFunction node and populated in constructor
-
- Jul 10, 2019
-
-
Stephan Seitz authored
DestructuringBindingsForFieldClass defines all field-related variables in its subordinated block. However, it leaves a TypedSymbol of type 'Field' for each field undefined. By that trick we can generate kernels that accept structs as kernelparameters. Either to include a pystencils specific Field struct of the following definition: ```cpp template<DTYPE_T, DIMENSION> struct Field { DTYPE_T* data; std::array<DTYPE_T, DIMENSION> shape; std::array<DTYPE_T, DIMENSION> stride; } or to be able to destructure user defined types like `pybind11::array`, `at::Tensor`, `tensorflow::Tensor` ```
-
- Jul 08, 2019
-
-
Stephan Seitz authored
This enables astnodes.Nodes to have a member required_global_declarations by which they can specify a global declaration required for their usage.
-
- Jun 27, 2019
-
-
Stephan Seitz authored
-
- Jun 18, 2019
-
-
Martin Bauer authored
- previous method did not work with kernels generated for walberla where block size changes are made at runtime - device query does not always work, since the compile system may have no GPU or not the same GPU -> max block size is passed as parameter and only optionally determined by a device query
-
- Jun 12, 2019
-
-
Martin Bauer authored
Block.subs method tried to be too smart: a = field[..] b = a + b was "simplified" incorrectly to b = field[...] + b
-
- May 05, 2019
-
-
Martin Bauer authored
- stencil plotting & transformation now in ps.stencil - additional documentation & notebooks
-
- May 03, 2019
-
-
Martin Bauer authored
-
- Apr 28, 2019
-
-
Martin Bauer authored
-
Martin Bauer authored
-
- Apr 26, 2019
-
-
Martin Bauer authored
When two loops have assignments to the same symbol with different rhs and both are pulled before the loops, one of them is now renamed. Previously one of them was left inside the loop. Fixes #27
-
- Apr 24, 2019
-
-
Martin Bauer authored
- turned on restrict keyword by default (makes large difference on GPUs) - smarter block indexing: changing block size depending on domain size Example: previously there where (1,1,1) blocks when requested block size was (64, 1, 1) and domain size (1, 512, 512), now the block size is changed automatically to (1, 64, 1) in this case - added __lauch_bounds__ to kernels to allow better optimizations from the CUDA compiler
-
- Apr 03, 2019
-
-
Martin Bauer authored
-
- Apr 01, 2019
-
-
Martin Bauer authored
-
- Mar 28, 2019
-
-
Martin Bauer authored
-
- Mar 22, 2019
-
-
Martin Bauer authored
-
Martin Bauer authored
-
- Mar 21, 2019
-
-
Martin Bauer authored
This restructuring allows for easier separation of modules into separate repositories later. Also, now pip install with repo url can be used. The setup.py files have also been updated to correctly reference each other. Module versions are not extracted from git state
-