inducer / inducer/pytato

Representing functionally dependent data that comes from outside lazy eval

Open
#25 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
15
Forks
16
Avg merge
17m
Merged PRs (30d)
1

Description

When capturing (say) a DG operator in a way that allows use of the same IR against a different mesh, arrays are encountered that have a functional dependency on the mesh, but whose computation happens outside of the lazy-evaluation world. The sizes of these arrays will often also depend on the mesh. Inter-element connectivity is a good example of this. Semantically, they're somewhere in between `DataWrapper` (which bakes fixed data into the expression graph) and `Placeholder` (which leaves inputs up for replacement).

We need (ideally unobtrusive) ways to:

- communicate to the lazy-eval infrastructure that this is data that is expected to change, and how (e.g. by introducing new shape parameters that show which bits of the shape can change)
- let the infrastructure ask the user to provide the correct values for those arrays (possibly via a callback) and infer associated shape parameters
- make a way to uniquely identify these inputs so that the infrastructure can recognize their repeated introduction. Otherwise, subgraphs depending on them may look spuriously different and require repeated compilation. Forcing some sort of global naming scheme might solve this last point, but it's a bit obnoxious, and I would prefer to avoid it.

Parametric shapes are on hold until we can come up with a design that addresses these challenges.

cc @kaushikcfd

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.