Skip to content
Snippets Groups Projects
  1. Jul 11, 2019
  2. Jul 10, 2019
    • Stephan Seitz's avatar
      Add DestructuringBindingsForFieldClass to use pystencils kernels in a more C++-ish way · 8e63c9ff
      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`
      
      ```
      8e63c9ff
  3. Jul 08, 2019
  4. Jun 27, 2019
  5. Jun 18, 2019
    • Martin Bauer's avatar
      CUDA indexing: clip to maximum cuda block size · 1754ef27
      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
      release/0.2.3
      1754ef27
  6. Jun 12, 2019
  7. May 05, 2019
  8. May 03, 2019
  9. Apr 28, 2019
  10. Apr 26, 2019
    • Martin Bauer's avatar
      Enhancement in move_constants_before loop · eec4dc4b
      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
      eec4dc4b
  11. Apr 24, 2019
    • Martin Bauer's avatar
      Improvements for GPU code generation · f504b40f
      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
      f504b40f
  12. Apr 03, 2019
  13. Apr 01, 2019
  14. Mar 28, 2019
  15. Mar 22, 2019
  16. Mar 21, 2019
    • Martin Bauer's avatar
      Separated modules into subfolders with own setup.py · 1e02cdc7
      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
      1e02cdc7