Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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
Add initial splitk reduce #2908
Add initial splitk reduce #2908
Changes from 51 commits
ded44c3
cc84a58
35ffc5a
cad365a
363afbe
8f007f7
aed9edb
63be4df
3f052e9
2fc9d69
b5e0eb4
6d4a878
17e9128
b907737
1026502
a45febe
369c952
ac0a922
02953fe
ce2a336
be217d2
4dbd08a
88087f2
b1cc070
d01103d
792062c
917695f
1f172c8
d9c2c9a
9a86a41
d844e99
75aecd0
3da1f32
650ac71
be097a4
79ed517
31021f3
fb1c9ba
b0220b4
188602e
cba899e
bc9827d
155f2ff
f626268
7c3069a
bc41558
f1e6ab4
9d71f9d
be1d82d
d19c734
3a9267b
7e3f587
3a216c6
4db4a59
0c51839
614830d
b934717
936d5f6
7bcb560
66e8053
File filter
Filter by extension
Conversations
Jump to
There are no files selected for viewing
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this call may not necessary. Because implicit deps would contain instructions for parent which are skipped anyways.
Any other input that are in current module are already being handled by
add_live_variables(ins->inputs())
.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not for split_reduce since the submodules dont reference the parent, but it is necessary for memory_coloring because there are submodules which will reference the parent(such as when using loop or if).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah but they are skipped inside the loop
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, its not the same thing. The implict deps do not calculate the dependencies of the parent module. It calculates the dependencies of the submodules of an instruction that reference back to the original module.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Since submodule instruction is using instruction from original/parent module,
if(not m.has_instruction(i))
this should be true always.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No, an instruction can have input that references a parent module(not in the case of split_reduce since those operators dont rely on lexical scoping, but it is the case when using other operators that do allow lexical scoping such as
if
orloop
).There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So say we have graph of modules like this:
So module B can have inputs from module A, and module C can have inputs from module A or B. When we do liveness on module B we calculate implicit_deps, which finds instructions in module B that use module C where module C reference instructions from module B.
Even so, module B can still reference instructions from module A, but we want to skip those for liveness.