[SYSTEMDS-3334] Code-gen rewrite ROWMAXS_VECTMULT#1566
Closed
corepointer wants to merge 1 commit into
Closed
Conversation
This patch adds a rewrite to avoid vector intermediates in the generated row template of connected components by doing the elementwise multiplication, row_maxs and max in one pass.
Contributor
Author
|
The rewrite was tuned down from max(rowMaxs(vec_mult())) to only rowMaxs(vect_mult()). This way the rewrite would apply more easily. The subsequent max() was fused anyway. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
This patch adds a rewrite to avoid vector intermediates in the generated row template of connected components by doing the elementwise multiplication, row_maxs and max in one pass.
Works only for a certain small input size. Then other rewrites seem to get to modify the DAG before this pattern can be tested. E.g., tested with 1000 nodes -> works, tested with 100000 nodes -> pattern not applied because DAG is already different.
This is for java codegen only. The CUDA version works analogously and will be pushed with other pending CUDA codegen changes (and after the input size issue is fixed)