Reimplement Random Number Generators
The random number generators previously implemented in pystencils.rng
shall be re-designed and integrated with the pystencils 2.0 backend.
This has three parts:
- Refactoring of the RNG front-end to integrate seamlessly with SymPy, using symbolic functions and array symbols
- Implementation of an IR representation for RNGs, parsing and type checking of front-end RNG expressions, lowering to platform-specific implementations, as well as vectorization
- Refactoring of the RNG runtime headers to improve integration with the IR
Progress
-
RNG frontend, backend, and runtime infrastructure (!474 (merged), !481 (merged)) -
Scalar Philox RNG (!474 (merged)) -
Vectorized Philox RNG -
Scalar AES-NI RNG -
Vectorized AES-NI RNG
Edited by Frederik Hennig