google / google/heir

Analyze the needed set of rotation keys in the presence of loops and computed rotation shifts

Open
#2,662 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
MLIR
Stars
906
Forks
171
Avg merge
4d 12h
Merged PRs (30d)
32

Description

Context: to support rolled linalg kernels (#2655), we will need to introduce loops that have rotation operations that depend on SSA values computed dynamically. Currently all lower-level rotation ops have static attributes for the offset.

This will ultimately require an analysis that can determine a static set of rotation shifts used by a program, that supports the combination of loops (i.e., analyzing the iteration space of an affine/scf for loop) and computed expressions (because the shift used may be an arithmetic expression of the induction variables).

This would be easiest with affine, since `affine.apply` makes static expressions easier to write, but I believe scf.for can be supported as well with constant folding.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.