-
Notifications
You must be signed in to change notification settings - Fork 691
[ET-VK][Ops] dequantize_per_tensor.default test setup #11481
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Creating dequantize_per_tensor testing framework along with a reference implementation for testing Differential Revision: [D76267054](https://our.internmc.facebook.com/intern/diff/D76267054/) [ghstack-poisoned]
🔗 Helpful Links🧪 See artifacts and rendered test results at hud.pytorch.org/pr/pytorch/executorch/11481
Note: Links to docs will display an error until the docs builds have been completed. ❌ 1 Cancelled Job, 3 Unrelated FailuresAs of commit 794428e with merge base 8cfa858 ( CANCELLED JOB - The following job was cancelled. Please retry:
FLAKY - The following jobs failed but were likely due to flakiness present on trunk:
This comment was automatically generated by Dr. CI and updates every 15 minutes. |
This pull request was exported from Phabricator. Differential Revision: D76267054 |
Creating dequantize_per_tensor testing framework along with a reference implementation for testing Differential Revision: [D76267054](https://our.internmc.facebook.com/intern/diff/D76267054/) [ghstack-poisoned]
This pull request was exported from Phabricator. Differential Revision: D76267054 |
Creating dequantize_per_tensor testing framework along with a reference implementation for testing Differential Revision: [D76267054](https://our.internmc.facebook.com/intern/diff/D76267054/) [ghstack-poisoned]
This pull request was exported from Phabricator. Differential Revision: D76267054 |
ASSERT_TRUE(output_correct); | ||
} | ||
|
||
// Test cases for dequantize_per_tensor |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
also add tests for int32 and int64
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
theres no real support for int64 in the shader. right now dequantize matches the IO for quantize which include half, float and then uint8, int8, and int32 as common dtypes and to avoid generating excess variants. if int64 is a necessary variant I'll make those changes in a future diff.
there is a diff that adds double support (though really just fp32 underneath)
i will add more tests in this diff.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As @ahmtox has pointed out, to reduce binary size Vulkan kind of takes the opposite approach of the portable kernels, which means supporting the minimum dtypes necessary i.e. basically what we would expect to encounter in a "real" model.
Creating dequantize_per_tensor testing framework along with a reference implementation for testing Differential Revision: [D76267054](https://our.internmc.facebook.com/intern/diff/D76267054/) [ghstack-poisoned]
This pull request was exported from Phabricator. Differential Revision: D76267054 |
Creating dequantize_per_tensor testing framework along with a reference implementation for testing Differential Revision: [D76267054](https://our.internmc.facebook.com/intern/diff/D76267054/) [ghstack-poisoned]
This pull request was exported from Phabricator. Differential Revision: D76267054 |
Creating dequantize_per_tensor testing framework along with a reference implementation for testing Differential Revision: [D76267054](https://our.internmc.facebook.com/intern/diff/D76267054/) [ghstack-poisoned]
This pull request was exported from Phabricator. Differential Revision: D76267054 |
Creating dequantize_per_tensor testing framework along with a reference implementation for testing Differential Revision: [D76267054](https://our.internmc.facebook.com/intern/diff/D76267054/) [ghstack-poisoned]
This pull request was exported from Phabricator. Differential Revision: D76267054 |
Creating dequantize_per_tensor testing framework along with a reference implementation for testing Differential Revision: [D76267054](https://our.internmc.facebook.com/intern/diff/D76267054/) [ghstack-poisoned]
This pull request was exported from Phabricator. Differential Revision: D76267054 |
Creating dequantize_per_tensor testing framework along with a reference implementation for testing Differential Revision: [D76267054](https://our.internmc.facebook.com/intern/diff/D76267054/) [ghstack-poisoned]
This pull request was exported from Phabricator. Differential Revision: D76267054 |
Creating dequantize_per_tensor testing framework along with a reference implementation for testing Differential Revision: [D76267054](https://our.internmc.facebook.com/intern/diff/D76267054/) [ghstack-poisoned]
This pull request was exported from Phabricator. Differential Revision: D76267054 |
Creating dequantize_per_tensor testing framework along with a reference implementation for testing Differential Revision: [D76267054](https://our.internmc.facebook.com/intern/diff/D76267054/) [ghstack-poisoned]
This pull request was exported from Phabricator. Differential Revision: D76267054 |
Creating dequantize_per_tensor testing framework along with a reference implementation for testing Differential Revision: [D76267054](https://our.internmc.facebook.com/intern/diff/D76267054/) [ghstack-poisoned]
This pull request was exported from Phabricator. Differential Revision: D76267054 |
Creating dequantize_per_tensor testing framework along with a reference implementation for testing Differential Revision: [D76267054](https://our.internmc.facebook.com/intern/diff/D76267054/) [ghstack-poisoned]
This pull request was exported from Phabricator. Differential Revision: D76267054 |
dad8b5b
into
gh/ahmtox/14/base
Pull Request resolved: pytorch/executorch#11481 # Context In order to enhance my own understanding of these operators, I needed to create a reference implementation, and also build out the vulkan testing framework which creates the necessary build up when I need to call the vulkan implementations. I won't explain what the dequantize operator actually is in this diff, but will rather opt to explain the operator in a future diff where I implement the glsl shader, however, the reference implementation is heavily inspired by the cpu implementation and aims to create similar checks when using the zero points and scales and performing the dequantization with the given parameters. This diff is the per_tensor reference implementation. # Changes The main changes were the include of the reference implementation that is used for my own learning, and the necessary wrapper functions that will be called later when the vulkan implementation is successfully completed. It has everything necessary for this purpose, including calling the operator by its appropriate name as when defined in the C++ implementation header, and staging components correctly from the GPU and then the CPU which will be where the comparison is done. I have also included comprehensive failure print statements that prints the tensor size along with relevant parameters such as the zero points or scales passed in. This is for the per_tensor implementation. ghstack-source-id: 290376492 @exported-using-ghexport Differential Revision: [D76267054](https://our.internmc.facebook.com/intern/diff/D76267054/)
Stack from ghstack (oldest at bottom):
Creating dequantize_per_tensor testing framework along with a reference implementation for testing
Differential Revision: D76267054