Skip to content

Operator fusion/matrix chain multiplication at constant (u, p, t)-slices #51

@danielwe

Description

@danielwe

Say you have C = ComposedOperator(A::MatrixOperator, B::MatrixOperator). You're passing it to an iterative solver. Depending on the shapes of A and B, precomputing the product Cfused = A.A * B.A and passing that to the solver instead could be faster in some cases. You can't define C this way from the outset because A and B depend on (u, p, t), but you can always fuse ahead of any sequence of operations that lives on a constant (u, p, t)-slice.

Opt-in functionality to support this might be useful. For more complicated structures it may try to approximate the optimal solution or it may rely on a flag on each composite node to decide whether to fuse.

We touched on this in #12 (comment).

Low prioirity.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions