Skip to content

schedules: added producer and consumer fusion to descript - #127

Open
liamsemeria wants to merge 1 commit into
mainfrom
dev/tvm-refactor
Open

schedules: added producer and consumer fusion to descript#127
liamsemeria wants to merge 1 commit into
mainfrom
dev/tvm-refactor

Conversation

@liamsemeria

Copy link
Copy Markdown
Contributor

Motivation

Descript didn't have fusion yet

Description

Adds producer and consumer fusion to descript.
There are tests for both backends for producer fusion.
When MLIR consumer fusion gets merged I'll add a descript test, as of now only TVM has a consumer fusion test.

@liamsemeria
liamsemeria requested a review from guillon September 3, 2026 13:59
@liamsemeria liamsemeria added the enhancement New feature or request label Sep 3, 2026
@codecov

codecov Bot commented Sep 3, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 75.75758% with 8 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
src/xtc/schedules/parsing.py 50.00% 4 Missing and 4 partials ⚠️

📢 Thoughts on this report? Let us know!

@guillon guillon left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you also augment the descript pretty print and update the test:
tests/filecheck/schedules/test_get_descript.py ?

Comment thread tests/filecheck/schedules/test_pad_conv2d_descript_fuse_tvm.py Outdated
Comment thread tests/filecheck/schedules/test_matmul_relu_descript_fuse_tvm.py Outdated
@liamsemeria

Copy link
Copy Markdown
Contributor Author

Could you also augment the descript pretty print and update the test: tests/filecheck/schedules/test_get_descript.py ?

updated the tests for pretty print.

@liamsemeria
liamsemeria requested a review from guillon September 4, 2026 12:37
# CHECK-NEXT: conv[v_b, v_h, v_w, v_f] = conv[v_b, v_h, v_w, v_f] + pad[v_b, v_h * 2 + v_r, v_w * 2 + v_s, v_c] * _1[v_r, v_s, v_c, v_f]
# CHECK-NEXT: O = sch.get_sblock("conv")
# CHECK-NEXT: b, h, w, r, s, c, f, = sch.get_loops(O)
# CHECK-NEXT: sch.reorder(b, h, w, r, s, c, f)

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually I do not see fusion directive in the TVM schedule. And the generated TIR is not fuse.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants