Reduce unnecessary specializations #2040
Closed
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 PR removes some unnecessary specializations.
One thing I realized is that we were compiling quite a few
copyto!
methods because of all theslab
/column
calls, which forwarded to additionalcopyto!
methods that then needed to be compiled. I don't think that this actually buys us anything.I used https://timholy.github.io/SnoopCompile.jl/dev/tutorials/pgdsgui/ to apply some de-specializations. Here's one result:
I also applied
strip_space
to the broadcasted objects in the stencil kernels, since this could reduce specializations ongetindex
of the broadcasted object.I also added a singleton type into the datalayouts, which we can use to keep our generic code while avoid overspecializing on specific datalayouts.