-
Notifications
You must be signed in to change notification settings - Fork 53
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
To-Do Tasks for Static Groups #1397
Comments
|
Sounds good overall! One thing I don't 100% understand: what's the motivation for getting rid of |
Oh that's just because we decided that all |
Ah, that makes sense!! Cool!!! |
We've decided to not split apart static groups since its just the inverse transform of static inline |
1 similar comment
We've decided to not split apart static groups since its just the inverse transform of static inline |
Once we're done with the Static groups milestone, we'll go over this again and create issues from all the relevant bullet points and close this tracker |
@calebmkim @paili0628 can y'all go over this and update it? |
Overall Sketch for the Dates/Goals of this Project
Compiler Tasks
static-inlining
stuff by 5/1. This will allow us to compile the "static islands" into a single static group, which can then be turned into a dynamic group using thecompile-static
pass we've already created.static-inlining
more opportunities to work. This includes: a) "group promotion": inferring the static latency of dynamic groups and turning them into static groups. b) "control promotion": turning dynamic control operators that contain static groups into static control operators. E.g.,seq { static_foo; static_bar; dyn_baz }
toseq { static seq { static_foo; static_bar }; dyn_baz }
. c) "control rearrangement" rearranging the control operators to improve the hardware (e.g., something likestatic-par-conv
ormerge-static-par
. We should think about if these will actually be helpful for the static inlining + compile static pass, though.register-unsharing
pass can be a helpful starting point.Frontend Tasks
CONCRETE TO-DOS
A tracker for the "to-do" tasks for Static Groups. Some are definitely bigger than others, and we should probably add issues as they come up. Right now, this is just a preliminary list. @paili0628 feel free to add more in case I forgot any.
Note that much of the existing code will break once we turn the assignments field of static groups from
assignments
type ->static_assignment
type, which is something we are keeping in mind.Shorter Term (to do once we get the IR fully formed)
Enables
might want to visitStatcEnables
. This is a case by case basis, but some of the passes that apply operations to groups should apply them to static groups as wellgroup2invoke
should handle static groups. But we first need to defineStaticInvoke
+ other static control in the IR.group2seq
is weird w/ static groups. How do we infer the latency of the split groups? We can leave it to infer-static-timing, but then, would that mean turning the static groups into 2 non-static groups?...Guard<StaticTiming>
into something likeStaticGuard
,Assignment<StaticTiming>
intoStaticAssignment
.Nothing
into()
. The main thing is getting pretty printing right.Longer Term (to do once we implement static groups correctly)
infer-static-timing
to change groups -> static groups, instead of adding an attributeThe text was updated successfully, but these errors were encountered: