EnzymeAD / EnzymeAD/Enzyme

[MLIR] Min cut on a multi-result op

Open
#2,979 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
LLVM
Stars
1.7k
Forks
188
Avg merge
1d 22h
Merged PRs (30d)
26

Description

"""
This pass splits scf.if ops that produce multiple results into separate ops that each produce one result. Currently, mincut assumes that the results of region cf ops like scf.if must be cached, which produces suboptimal results for a number of GPU benchmarks. This pass makes it easier to get mincut to re-compute the results of these ops, though the longer term solution would be to get mincut to properly support partially re-computing region ops.
"""

x/ref https://github.com/EnzymeAD/Enzyme/pull/2975#issue-4953250479

cc @Pangoraw @pengmai @ftynse

Contributor guide

Open the contributing guide

Research direction

The issue names no file or test; start by reading the MLIR mincut pass and the scf.if handling described here. Validate the behavior against the GPU benchmarks that currently show suboptimal results. Done means multi-result scf.if operations are split into single-result operations so mincut can recompute results instead of assuming all are cached.

Written by the indexing model from the issue text.

Assessment

Domain
compilers
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.