Skip to content

Conversation

@terrychenism
Copy link
Contributor

@terrychenism terrychenism commented Feb 11, 2022

Stack from ghstack (oldest at bottom):

Summary:

  1. Add is_reference flag in convert function
    if is_reference = true, using the default reference module mapping

  2. add linear reference module and test case

Test Plan:
python3 test/test_quantization.py TestQuantizeEagerOps.test_conv_transpose_2d

Reviewers:

Subscribers:

Tasks:

Tags:

Differential Revision: D34188856

Summary:
Add is_refernece flag in convert function

Test Plan:
python3 test/test_quantization.py TestQuantizeEagerOps.test_conv_transpose_2d

Reviewers:

Subscribers:

Tasks:

Tags:

[ghstack-poisoned]
@pytorch-bot
Copy link

pytorch-bot bot commented Feb 11, 2022

CI Flow Status

⚛️ CI Flow

Ruleset - Version: v1
Ruleset - File: https://github.com/pytorch/pytorch/blob/385521535ee6ef08980dcaa3e636cfad829f6ccd/.github/generated-ciflow-ruleset.json
PR ciflow labels: ciflow/default
Add ciflow labels to this PR to trigger more builds:

Workflows Labels (bold enabled) Status
Triggered Workflows
linux-binary-conda ciflow/binaries, ciflow/binaries_conda, ciflow/default ✅ triggered
linux-binary-libtorch-cxx11-abi ciflow/binaries, ciflow/binaries_libtorch, ciflow/default ✅ triggered
linux-binary-libtorch-pre-cxx11 ciflow/binaries, ciflow/binaries_libtorch, ciflow/default ✅ triggered
linux-binary-manywheel ciflow/binaries, ciflow/binaries_wheel, ciflow/default ✅ triggered
linux-bionic-py3.7-clang9 ciflow/all, ciflow/cpu, ciflow/default, ciflow/linux, ciflow/noarch, ciflow/trunk, ciflow/xla ✅ triggered
linux-bionic-rocm4.5-py3.7 ciflow/all, ciflow/default, ciflow/linux, ciflow/rocm, ciflow/trunk ✅ triggered
linux-docs ciflow/all, ciflow/cpu, ciflow/default, ciflow/docs, ciflow/linux, ciflow/trunk ✅ triggered
linux-vulkan-bionic-py3.7-clang9 ciflow/all, ciflow/cpu, ciflow/default, ciflow/linux, ciflow/trunk, ciflow/vulkan ✅ triggered
linux-xenial-cuda11.3-py3.7-gcc7 ciflow/all, ciflow/cuda, ciflow/default, ciflow/linux, ciflow/trunk ✅ triggered
linux-xenial-cuda11.3-py3.7-gcc7-bazel-test ciflow/all, ciflow/bazel, ciflow/cpu, ciflow/default, ciflow/linux, ciflow/trunk ✅ triggered
linux-xenial-py3-clang5-mobile-build ciflow/all, ciflow/default, ciflow/linux, ciflow/mobile, ciflow/trunk ✅ triggered
linux-xenial-py3-clang5-mobile-custom-build-static ciflow/all, ciflow/default, ciflow/linux, ciflow/mobile, ciflow/trunk ✅ triggered
linux-xenial-py3.7-clang7-asan ciflow/all, ciflow/cpu, ciflow/default, ciflow/linux, ciflow/sanitizers, ciflow/trunk ✅ triggered
linux-xenial-py3.7-clang7-onnx ciflow/all, ciflow/cpu, ciflow/default, ciflow/linux, ciflow/onnx, ciflow/trunk ✅ triggered
linux-xenial-py3.7-gcc5.4 ciflow/all, ciflow/cpu, ciflow/default, ciflow/linux, ciflow/trunk ✅ triggered
linux-xenial-py3.7-gcc7 ciflow/all, ciflow/cpu, ciflow/default, ciflow/linux, ciflow/trunk ✅ triggered
linux-xenial-py3.7-gcc7-no-ops ciflow/all, ciflow/cpu, ciflow/default, ciflow/linux, ciflow/trunk ✅ triggered
macos-arm64-binary-conda ciflow/binaries, ciflow/binaries_conda, ciflow/default ✅ triggered
macos-arm64-binary-wheel ciflow/binaries, ciflow/binaries_wheel, ciflow/default ✅ triggered
macos-binary-conda ciflow/binaries, ciflow/binaries_conda, ciflow/default ✅ triggered
macos-binary-libtorch-cxx11-abi ciflow/binaries, ciflow/binaries_libtorch, ciflow/default ✅ triggered
macos-binary-libtorch-pre-cxx11 ciflow/binaries, ciflow/binaries_libtorch, ciflow/default ✅ triggered
macos-binary-wheel ciflow/binaries, ciflow/binaries_wheel, ciflow/default ✅ triggered
pytorch-linux-xenial-py3-clang5-android-ndk-r19c-gradle-custom-build-single ciflow/all, ciflow/android, ciflow/cpu, ciflow/default, ciflow/linux, ciflow/trunk ✅ triggered
pytorch-linux-xenial-py3-clang5-android-ndk-r19c-gradle-custom-build-single-full-jit ciflow/all, ciflow/android, ciflow/cpu, ciflow/default, ciflow/linux, ciflow/trunk ✅ triggered
win-vs2019-cpu-py3 ciflow/all, ciflow/cpu, ciflow/default, ciflow/trunk, ciflow/win ✅ triggered
win-vs2019-cuda11.3-py3 ciflow/all, ciflow/cuda, ciflow/default, ciflow/trunk, ciflow/win ✅ triggered
windows-binary-libtorch-cxx11-abi ciflow/binaries, ciflow/binaries_libtorch, ciflow/default ✅ triggered
windows-binary-libtorch-pre-cxx11 ciflow/binaries, ciflow/binaries_libtorch, ciflow/default ✅ triggered
windows-binary-wheel ciflow/binaries, ciflow/binaries_wheel, ciflow/default ✅ triggered
Skipped Workflows
caffe2-linux-xenial-py3.7-gcc5.4 ciflow/all, ciflow/cpu, ciflow/linux, ciflow/trunk 🚫 skipped
docker-builds ciflow/all, ciflow/trunk 🚫 skipped
ios-12-5-1-arm64 ciflow/all, ciflow/ios, ciflow/macos, ciflow/trunk 🚫 skipped
ios-12-5-1-arm64-coreml ciflow/all, ciflow/ios, ciflow/macos, ciflow/trunk 🚫 skipped
ios-12-5-1-arm64-custom-ops ciflow/all, ciflow/ios, ciflow/macos, ciflow/trunk 🚫 skipped
ios-12-5-1-arm64-full-jit ciflow/all, ciflow/ios, ciflow/macos, ciflow/trunk 🚫 skipped
ios-12-5-1-arm64-metal ciflow/all, ciflow/ios, ciflow/macos, ciflow/trunk 🚫 skipped
ios-12-5-1-x86-64 ciflow/all, ciflow/ios, ciflow/macos, ciflow/trunk 🚫 skipped
ios-12-5-1-x86-64-coreml ciflow/all, ciflow/ios, ciflow/macos, ciflow/trunk 🚫 skipped
ios-12-5-1-x86-64-full-jit ciflow/all, ciflow/ios, ciflow/macos, ciflow/trunk 🚫 skipped
libtorch-linux-xenial-cuda10.2-py3.7-gcc7 ciflow/all, ciflow/cuda, ciflow/libtorch, ciflow/linux, ciflow/trunk 🚫 skipped
libtorch-linux-xenial-cuda11.3-py3.7-gcc7 ciflow/all, ciflow/cuda, ciflow/libtorch, ciflow/linux, ciflow/trunk 🚫 skipped
linux-bionic-cuda10.2-py3.9-gcc7 ciflow/all, ciflow/cuda, ciflow/linux, ciflow/slow, ciflow/trunk 🚫 skipped
linux-docs-push ciflow/all, ciflow/cpu, ciflow/linux, ciflow/scheduled 🚫 skipped
linux-xenial-cuda11.3-py3.7-gcc7-no-ops ciflow/all, ciflow/cuda, ciflow/linux, ciflow/trunk 🚫 skipped
macos-10-15-py3-arm64 ciflow/all, ciflow/macos, ciflow/trunk 🚫 skipped
macos-10-15-py3-lite-interpreter-x86-64 ciflow/all, ciflow/macos, ciflow/trunk 🚫 skipped
macos-11-py3-x86-64 ciflow/all, ciflow/macos, ciflow/trunk 🚫 skipped
parallelnative-linux-xenial-py3.7-gcc5.4 ciflow/all, ciflow/cpu, ciflow/linux, ciflow/trunk 🚫 skipped
periodic-libtorch-linux-bionic-cuda11.5-py3.7-gcc7 ciflow/all, ciflow/cuda, ciflow/libtorch, ciflow/linux, ciflow/scheduled 🚫 skipped
periodic-libtorch-linux-xenial-cuda11.1-py3.7-gcc7 ciflow/all, ciflow/cuda, ciflow/libtorch, ciflow/linux, ciflow/scheduled 🚫 skipped
periodic-linux-bionic-cuda11.5-py3.7-gcc7 ciflow/all, ciflow/cuda, ciflow/linux, ciflow/scheduled 🚫 skipped
periodic-linux-xenial-cuda10.2-py3-gcc7-slow-gradcheck ciflow/all, ciflow/cuda, ciflow/linux, ciflow/scheduled, ciflow/slow, ciflow/slow-gradcheck 🚫 skipped
periodic-linux-xenial-cuda11.1-py3.7-gcc7-debug ciflow/all, ciflow/cuda, ciflow/linux, ciflow/scheduled 🚫 skipped
periodic-win-vs2019-cuda11.1-py3 ciflow/all, ciflow/cuda, ciflow/scheduled, ciflow/win 🚫 skipped
periodic-win-vs2019-cuda11.5-py3 ciflow/all, ciflow/cuda, ciflow/scheduled, ciflow/win 🚫 skipped
pytorch-linux-xenial-py3-clang5-android-ndk-r19c-build ciflow/all, ciflow/android, ciflow/cpu, ciflow/linux, ciflow/trunk 🚫 skipped

@facebook-github-bot
Copy link
Contributor

facebook-github-bot commented Feb 11, 2022

🔗 Helpful links

💊 CI failures summary and remediations

As of commit d2d938e (more details on the Dr. CI page):


💚 💚 Looks good so far! There are no failures yet. 💚 💚


This comment was automatically generated by Dr. CI (expand for details).

Please report bugs/suggestions to the (internal) Dr. CI Users group.

Click here to manually regenerate this comment.

@terrychenism terrychenism requested review from jerryzh168 and vkuzo and removed request for albanD and jbschlosser February 11, 2022 23:32
@terrychenism
Copy link
Contributor Author

@terrychenism has imported this pull request. If you are a Facebook employee, you can view this diff on Phabricator.

Summary:
Add is_refernece flag in convert function

Test Plan:
python3 test/test_quantization.py TestQuantizeEagerOps.test_conv_transpose_2d

Reviewers:

Subscribers:

Tasks:

Tags:

Differential Revision: [D34188856](https://our.internmc.facebook.com/intern/diff/D34188856)

[ghstack-poisoned]
terrychenism added a commit that referenced this pull request Feb 12, 2022
Summary:
Add is_refernece flag in convert function

Test Plan:
python3 test/test_quantization.py TestQuantizeEagerOps.test_conv_transpose_2d

Reviewers:

Subscribers:

Tasks:

Tags:

ghstack-source-id: ec4f83d
Pull Request resolved: #72755
@terrychenism
Copy link
Contributor Author

@terrychenism has imported this pull request. If you are a Facebook employee, you can view this diff on Phabricator.

Comment on lines 504 to 505
if is_reference:
mapping = get_default_static_quant_reference_module_mappings()
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we should do this in _convert, to keep everything in the same place

Summary:
Add is_refernece flag in convert function

Test Plan:
python3 test/test_quantization.py TestQuantizeEagerOps.test_conv_transpose_2d

Reviewers:

Subscribers:

Tasks:

Tags:

Differential Revision: [D34188856](https://our.internmc.facebook.com/intern/diff/D34188856)

[ghstack-poisoned]
Summary:
Add is_refernece flag in convert function

Test Plan:
python3 test/test_quantization.py TestQuantizeEagerOps.test_conv_transpose_2d

Reviewers:

Subscribers:

Tasks:

Tags:

Differential Revision: [D34188856](https://our.internmc.facebook.com/intern/diff/D34188856)

[ghstack-poisoned]
Summary:
Add is_refernece flag in convert function

Test Plan:
python3 test/test_quantization.py TestQuantizeEagerOps.test_conv_transpose_2d

Reviewers:

Subscribers:

Tasks:

Tags:

Differential Revision: [D34188856](https://our.internmc.facebook.com/intern/diff/D34188856)

[ghstack-poisoned]
terrychenism added a commit that referenced this pull request Feb 15, 2022
Summary:
Add is_refernece flag in convert function

Test Plan:
python3 test/test_quantization.py TestQuantizeEagerOps.test_conv_transpose_2d

Reviewers:

Subscribers:

Tasks:

Tags:

ghstack-source-id: daa3fab
Pull Request resolved: #72755
@terrychenism
Copy link
Contributor Author

@terrychenism has imported this pull request. If you are a Facebook employee, you can view this diff on Phabricator.

@terrychenism terrychenism changed the title [Qunat] Refactor reference module mapping [Quant] Refactor reference module mapping Feb 16, 2022
Summary:
Add is_refernece flag in convert function

Test Plan:
python3 test/test_quantization.py TestQuantizeEagerOps.test_conv_transpose_2d

Reviewers:

Subscribers:

Tasks:

Tags:

Differential Revision: [D34188856](https://our.internmc.facebook.com/intern/diff/D34188856)

[ghstack-poisoned]
terrychenism added a commit that referenced this pull request Mar 1, 2022
Summary:
Add is_refernece flag in convert function

Test Plan:
python3 test/test_quantization.py TestQuantizeEagerOps.test_conv_transpose_2d

Reviewers:

Subscribers:

Tasks:

Tags:

ghstack-source-id: 0599b4e
Pull Request resolved: #72755
@terrychenism
Copy link
Contributor Author

@terrychenism has imported this pull request. If you are a Facebook employee, you can view this diff on Phabricator.

module, mapping=None, inplace=False, remove_qconfig=True,
convert_custom_config_dict=None):
is_reference=False, convert_custom_config_dict=None):
r"""Converts submodules in input module to a different module according to `mapping`
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

maybe add some docs for is_reference flag?

Copy link
Contributor

@jerryzh168 jerryzh168 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

looks good, would be better to have a more detailed summary message as well. e.g. talk about the motivation and impact of the change and how the is_reference flag is implemented

Comment on lines 528 to 529
if is_reference:
mapping = get_default_static_quant_reference_module_mappings()
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

actually not like this, this should go within the L530 branch I think

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

user should be able to overwrite the default mapping with explicit mappings, if user do not provide any mapping, we can provide a default mapping based on is_reference flag

Copy link
Contributor

@jerryzh168 jerryzh168 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

need to change the place for is_reference check in _convert function

Summary:
Add is_refernece flag in convert function

Test Plan:
python3 test/test_quantization.py TestQuantizeEagerOps.test_conv_transpose_2d

Reviewers:

Subscribers:

Tasks:

Tags:

Differential Revision: [D34188856](https://our.internmc.facebook.com/intern/diff/D34188856)

[ghstack-poisoned]
@terrychenism
Copy link
Contributor Author

@terrychenism has imported this pull request. If you are a Facebook employee, you can view this diff on Phabricator.

"""
if mapping is None:
mapping = get_default_static_quant_module_mappings()
if is_reference:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: the following is a little bit better

if is_reference:
   ...
else:
   ...

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

or just a single line with

mapping = xxx if is_reference else yyy

Summary:
Add is_refernece flag in convert function

Test Plan:
python3 test/test_quantization.py TestQuantizeEagerOps.test_conv_transpose_2d

Reviewers:

Subscribers:

Tasks:

Tags:

Differential Revision: [D34188856](https://our.internmc.facebook.com/intern/diff/D34188856)

[ghstack-poisoned]
terrychenism added a commit that referenced this pull request Mar 4, 2022
Summary:
Add is_refernece flag in convert function

Test Plan:
python3 test/test_quantization.py TestQuantizeEagerOps.test_conv_transpose_2d

Reviewers:

Subscribers:

Tasks:

Tags:

ghstack-source-id: 34ce090
Pull Request resolved: #72755
@terrychenism
Copy link
Contributor Author

@terrychenism has imported this pull request. If you are a Facebook employee, you can view this diff on Phabricator.

Summary:
1. Add is_reference flag in convert function
if is_reference = true, using the default reference module mapping

2. add linear reference module and test case

Test Plan:
python3 test/test_quantization.py TestQuantizeEagerOps.test_conv_transpose_2d

Reviewers:

Subscribers:

Tasks:

Tags:

Differential Revision: [D34188856](https://our.internmc.facebook.com/intern/diff/D34188856)

[ghstack-poisoned]
terrychenism added a commit that referenced this pull request Mar 7, 2022
Summary:
Add is_refernece flag in convert function

Test Plan:
python3 test/test_quantization.py TestQuantizeEagerOps.test_conv_transpose_2d

Reviewers:

Subscribers:

Tasks:

Tags:

ghstack-source-id: 2cb4552
Pull Request resolved: #72755
@terrychenism
Copy link
Contributor Author

@terrychenism has imported this pull request. If you are a Facebook employee, you can view this diff on Phabricator.

Summary:
1. Add is_reference flag in convert function
if is_reference = true, using the default reference module mapping

2. add linear reference module and test case

Test Plan:
python3 test/test_quantization.py TestQuantizeEagerOps.test_conv_transpose_2d

Reviewers:

Subscribers:

Tasks:

Tags:

Differential Revision: [D34188856](https://our.internmc.facebook.com/intern/diff/D34188856)

[ghstack-poisoned]
terrychenism added a commit that referenced this pull request Mar 7, 2022
Summary:
Add is_refernece flag in convert function

Test Plan:
python3 test/test_quantization.py TestQuantizeEagerOps.test_conv_transpose_2d

Reviewers:

Subscribers:

Tasks:

Tags:

ghstack-source-id: 37383b5
Pull Request resolved: #72755
@terrychenism
Copy link
Contributor Author

@terrychenism has imported this pull request. If you are a Facebook employee, you can view this diff on Phabricator.

Summary:
1. Add is_reference flag in convert function
if is_reference = true, using the default reference module mapping

2. add linear reference module and test case

Test Plan:
python3 test/test_quantization.py TestQuantizeEagerOps.test_conv_transpose_2d

Reviewers:

Subscribers:

Tasks:

Tags:

Differential Revision: [D34188856](https://our.internmc.facebook.com/intern/diff/D34188856)

[ghstack-poisoned]
terrychenism added a commit that referenced this pull request Mar 8, 2022
Summary:
Add is_refernece flag in convert function

Test Plan:
python3 test/test_quantization.py TestQuantizeEagerOps.test_conv_transpose_2d

Reviewers:

Subscribers:

Tasks:

Tags:

ghstack-source-id: 746020d
Pull Request resolved: #72755
@terrychenism
Copy link
Contributor Author

@terrychenism has imported this pull request. If you are a Facebook employee, you can view this diff on Phabricator.

facebook-github-bot pushed a commit that referenced this pull request Mar 8, 2022
Summary:
Pull Request resolved: #72755

Add is_refernece flag in convert function

Test Plan:
python3 test/test_quantization.py TestQuantizeEagerOps.test_conv_transpose_2d

Imported from OSS

Reviewed By: mruberry

Differential Revision: D34188856

fbshipit-source-id: 291014a7b3b4d4b40ca0ca76a80711097dcc4b58
@github-actions
Copy link
Contributor

github-actions bot commented Mar 8, 2022

Hey @terrychenism.
You've committed this PR, but it does not have both a 'release notes: ...' and 'topics: ...' label. Please add one of each to the PR. The 'release notes: ...' label should represent the part of PyTorch that this PR changes (fx, autograd, distributed, etc) and the 'topics: ...' label should represent the kind of PR it is (not user facing, new feature, bug fix, perf improvement, etc). The list of valid labels can be found here for the 'release notes: ...' and here for the 'topics: ...'.
For changes that are 'topic: not user facing' there is no need for a release notes label.

cyyever pushed a commit to cyyever/pytorch_private that referenced this pull request Mar 9, 2022
Summary:
Pull Request resolved: pytorch/pytorch#72755

Add is_refernece flag in convert function

Test Plan:
python3 test/test_quantization.py TestQuantizeEagerOps.test_conv_transpose_2d

Imported from OSS

Reviewed By: mruberry

Differential Revision: D34188856

fbshipit-source-id: 291014a7b3b4d4b40ca0ca76a80711097dcc4b58
(cherry picked from commit cfba3b8dc0373708712c0d847d590f0d587df002)
cyyever pushed a commit to cyyever/pytorch_private that referenced this pull request Mar 9, 2022
Summary:
Pull Request resolved: pytorch/pytorch#72755

Add is_refernece flag in convert function

Test Plan:
python3 test/test_quantization.py TestQuantizeEagerOps.test_conv_transpose_2d

Imported from OSS

Reviewed By: mruberry

Differential Revision: D34188856

fbshipit-source-id: 291014a7b3b4d4b40ca0ca76a80711097dcc4b58
(cherry picked from commit cfba3b8dc0373708712c0d847d590f0d587df002)
@facebook-github-bot facebook-github-bot deleted the gh/terrychenism/16/head branch March 11, 2022 15:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants