handle static ints and floats #140
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.
Summary:
In order to support MV3 which has decomposed hardswish and hardsigmoid
Decomp rules for both:
Hardswish
https://www.internalfb.com/code/fbsource/[9368f8417bd843ee8c91e24ac616ed7f4b194ed8]/xplat/caffe2/torch/_decomp/decompositions.py?lines=182-185
Hardsigmoid
https://www.internalfb.com/code/fbsource/[9368f8417bd843ee8c91e24ac616ed7f4b194ed8]/xplat/caffe2/torch/_decomp/decompositions.py?lines=159-162
Fixing Zero-Dim tensors
Both of these decompositions produce zero-dim tensors in the graph ( The + 3 and the / 6). This breaks for XNNPACK because it does not have zero-dim tensors. Instead if the static data is zero dim, then we will interpret it as [1].
Fixing torch.int64 static data
In the decomposition 3 is converted via to_copy(torch.float32). However 6 remains as an int64. XNNPACK does not handle non-quantized integers, so we also cast all static data that is not quantized to float32 values.
Reviewed By: digantdesai
Differential Revision: D48667679