devito
devito copied to clipboard
DSL and compiler framework for automated finite-differences and stencil computation
Elastic-like cross-loop dependencies generate a redundant haloupdate. Problem in Pseudocode: ``` for time haloupd vx[t0] write to vx[t1] - read from vx[t0] haloupd vx[t1] read from vx[t1] read from vx[t0]...
Fixes issues with standalone use of `SubDimension.symbolic_min` or `SubDimension.symbolic_max` in an operator. Previously variants on ``` x = Dimension('x') ix = SubDimension.left('ix', x, 2) f = Function(name="f", dimensions=(ix,), shape=(5,), dtype=np.int32)...
As discussed in the weekly meeting 24th of Sept. https://github.com/devitocodes/devito/issues/2448
Sub expression elimination behaves strangely on subdomains if you replace a dimension with a Symbol. This code: ``` from devito import Grid, TimeFunction, Eq, solve, Operator from devito.types import Symbol...
Currently the user can pass references to GPU-resident data to a Function/TimeFunction: https://github.com/devitocodes/devito/blob/master/devito/data/allocators.py#L340 However, when one wants to interface a Devito Operator with something else like PyTorch, which has GPU-resident...
pytest is imported directly in some examples for "testing" breaking non-testing install using the examples
As per https://github.com/devitocodes/devito/pull/2446/files#r1724963736
Adds a `@_memoized_instances` decorator for caching instances returned by `__new__`. This decorator is applied to `Relation` (and indirectly, `Dependence`) for a somewhat substantial speedup in build times. Tested locally (with...
This PR implements lazy visitors in the IET layer which operate via generators instead of flattening lists of children's results at every node. Replaces `FindSymbols`, `FindNodes`, `FindWithin` and `FindApplications` with...
The `Queue` cluster visitor is confusingly named for something that performs a divide-and-conquer process; I'd propose renaming it to something but not sure what. Specifically making this issue because I'm...