Add optional output to autotuned operations #73
Merged
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.
Adds an optional output type to tuner executions.
The type is defined at the type of calling
execute
and not on theTuner
itself because theTuner
is static and cannot depend on the generic types passed to the tensor operation function. This is the only way to make things likeJitTensor<R, E, 4>
work as output types.The new output type defaults to
()
, making changes to existing tuners unnecessary.Testing
All unit tests pass and existing tuners in
burn
compile fine and work exactly the same. I also tested the new output type to autotune differentconv2d
algorithms and it works as expected, with all tests passing.