mlir: Improve checkpoint slice size
- Dominant language
- LLVM
- Stars
- 1.7k
- Forks
- 188
- Avg merge
- 2d 4h
- Merged PRs (30d)
- 22
Description
Currently Enzyme checkpoints every loop carried values and referenced mutable reference. It could be smarter about what to save since in the reverse, we are not interested about the primal result but rather only the pushed values.
Also if a mutable memory is not written to between the primal and reverse steps and dominates primal/reverse locations, then it could be used as is, and not checkpointed.
Contributor guide
Research direction
The issue names MLIR checkpointing but no files, tests, or entry points. Start by locating the implementation that selects loop-carried values and mutable references for checkpoints; done means avoiding unnecessary primal-result checkpoints and reusing eligible unmodified mutable memory.
Written by the indexing model from the issue text.
Assessment
- Domain
- compilers
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100