Fix: Correct backward convolution function call with output mask #1339
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.
Motivation and Context
This change addresses a performance issue where unnecessary gradients were being computed in the convolution_backward function. Computing gradients that are not needed can be time-consuming. By introducing a dynamic output_mask, this update ensures that only the required gradients are computed, leading to significant time savings and improved overall performance.
Description
std::array<bool, 3> output_mask
to selectively compute only the necessary gradients in the convolution_backward function.output_mask
based on the presence ofgrad_input
andgrad_weight
. If either is not needed, the corresponding gradient computation is skipped.at::native::convolution_backward
.Use cases (Optional)
BC-breaking (Optional)
Checklist
Before PR:
After PR: