Skip to content

Conversation

@b-koopman
Copy link
Contributor

@b-koopman b-koopman commented Nov 12, 2021

Stack from ghstack:

Summary:

Support QAT workflow by using torch.fx QAT API. e.g. prepare_qat_fx and convert_fx.

Test Plan:

pytest test/quantization/fx/test_quantize_fx.py -v -k "test_qat_embedding_linear"

Reviewers:
supriyar, HDCharles

Subscribers:

Tasks:

Tags:

Differential Revision: D32404517

Summary:

Support QAT workflow by using torch.fx QAT API.  e.g. `prepare_qat_fx` and `convert_fx`.

Test Plan:

`pytest test/quantization/fx/test_quantize_fx.py -v -k "test_qat_embedding_linear"`

Reviewers:
supriyar, HDCharles

Subscribers:

Tasks:

Tags:

[ghstack-poisoned]
@pytorch-probot
Copy link

pytorch-probot bot commented Nov 12, 2021

CI Flow Status

⚛️ CI Flow

Ruleset - Version: v1
Ruleset - File: https://github.com/pytorch/pytorch/blob/e1f5fa693fa3f98870476430580c80189a73c3ae/.github/generated-ciflow-ruleset.json
PR ciflow labels: ciflow/default

Workflows Labels (bold enabled) Status
Triggered Workflows
linux-bionic-cuda11.5-py3.6-gcc7 ciflow/all, ciflow/cuda, ciflow/default, ciflow/linux ✅ triggered
linux-bionic-py3.6-clang9 ciflow/all, ciflow/cpu, ciflow/default, ciflow/linux, ciflow/noarch, ciflow/xla ✅ triggered
linux-vulkan-bionic-py3.6-clang9 ciflow/all, ciflow/cpu, ciflow/default, ciflow/linux, ciflow/vulkan ✅ triggered
linux-xenial-cuda11.3-py3.6-gcc7 ciflow/all, ciflow/cuda, ciflow/default, ciflow/linux ✅ triggered
linux-xenial-py3-clang5-mobile-build ciflow/all, ciflow/default, ciflow/linux, ciflow/mobile ✅ triggered
linux-xenial-py3-clang5-mobile-custom-build-static ciflow/all, ciflow/default, ciflow/linux, ciflow/mobile ✅ triggered
linux-xenial-py3.6-clang7-asan ciflow/all, ciflow/cpu, ciflow/default, ciflow/linux, ciflow/sanitizers ✅ triggered
linux-xenial-py3.6-clang7-onnx ciflow/all, ciflow/cpu, ciflow/default, ciflow/linux, ciflow/onnx ✅ triggered
linux-xenial-py3.6-gcc5.4 ciflow/all, ciflow/cpu, ciflow/default, ciflow/linux ✅ triggered
linux-xenial-py3.6-gcc7 ciflow/all, ciflow/cpu, ciflow/default, ciflow/linux ✅ triggered
linux-xenial-py3.6-gcc7-bazel-test ciflow/all, ciflow/bazel, ciflow/cpu, ciflow/default, ciflow/linux ✅ triggered
pytorch-linux-xenial-py3-clang5-android-ndk-r19c-gradle-custom-build-single ciflow/all, ciflow/android, ciflow/cpu, ciflow/default, ciflow/linux ✅ 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 ✅ triggered
win-vs2019-cpu-py3 ciflow/all, ciflow/cpu, ciflow/default, ciflow/win ✅ triggered
win-vs2019-cuda11.3-py3 ciflow/all, ciflow/cuda, ciflow/default, ciflow/win ✅ triggered
Skipped Workflows
caffe2-linux-xenial-py3.6-gcc5.4 ciflow/all, ciflow/cpu, ciflow/linux 🚫 skipped
docker-builds ciflow/all 🚫 skipped
ios-12-5-1-arm64 ciflow/all, ciflow/ios, ciflow/macos 🚫 skipped
ios-12-5-1-arm64-coreml ciflow/all, ciflow/ios, ciflow/macos 🚫 skipped
ios-12-5-1-arm64-custom-ops ciflow/all, ciflow/ios, ciflow/macos 🚫 skipped
ios-12-5-1-arm64-full-jit ciflow/all, ciflow/ios, ciflow/macos 🚫 skipped
ios-12-5-1-arm64-metal ciflow/all, ciflow/ios, ciflow/macos 🚫 skipped
ios-12-5-1-x86-64 ciflow/all, ciflow/ios, ciflow/macos 🚫 skipped
ios-12-5-1-x86-64-coreml ciflow/all, ciflow/ios, ciflow/macos 🚫 skipped
ios-12-5-1-x86-64-full-jit ciflow/all, ciflow/ios, ciflow/macos 🚫 skipped
libtorch-linux-bionic-cuda11.5-py3.6-gcc7 ciflow/all, ciflow/cuda, ciflow/libtorch, ciflow/linux 🚫 skipped
libtorch-linux-xenial-cuda10.2-py3.6-gcc7 ciflow/all, ciflow/cuda, ciflow/libtorch, ciflow/linux 🚫 skipped
libtorch-linux-xenial-cuda11.3-py3.6-gcc7 ciflow/all, ciflow/cuda, ciflow/libtorch, ciflow/linux 🚫 skipped
linux-bionic-cuda10.2-py3.9-gcc7 ciflow/all, ciflow/cuda, ciflow/linux, ciflow/slow 🚫 skipped
macos-10-15-py3-arm64 ciflow/all, ciflow/macos 🚫 skipped
macos-10-15-py3-lite-interpreter-x86-64 ciflow/all, ciflow/macos 🚫 skipped
macos-11-py3-x86-64 ciflow/all, ciflow/macos 🚫 skipped
parallelnative-linux-xenial-py3.6-gcc5.4 ciflow/all, ciflow/cpu, ciflow/linux 🚫 skipped
periodic-libtorch-linux-xenial-cuda11.1-py3.6-gcc7 ciflow/all, ciflow/cuda, ciflow/libtorch, 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.6-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

You can add a comment to the PR and tag @pytorchbot with the following commands:
# ciflow rerun, "ciflow/default" will always be added automatically
@pytorchbot ciflow rerun

# ciflow rerun with additional labels "-l <ciflow/label_name>", which is equivalent to adding these labels manually and trigger the rerun
@pytorchbot ciflow rerun -l ciflow/scheduled -l ciflow/slow

For more information, please take a look at the CI Flow Wiki.

@facebook-github-bot
Copy link
Contributor

facebook-github-bot commented Nov 12, 2021

🔗 Helpful links

💊 CI failures summary and remediations

As of commit e1f5fa6 (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.

b-koopman added a commit that referenced this pull request Nov 12, 2021
Summary:

Support QAT workflow by using torch.fx QAT API.  e.g. `prepare_qat_fx` and `convert_fx`.

Test Plan:

`pytest test/quantization/fx/test_quantize_fx.py -v -k "test_qat_embedding_linear"`

Reviewers:
supriyar, HDCharles

Subscribers:

Tasks:

Tags:

ghstack-source-id: ebf204e
Pull Request resolved: #68296
@b-koopman
Copy link
Contributor Author

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

Summary:

Support QAT workflow by using torch.fx QAT API.  e.g. `prepare_qat_fx` and `convert_fx`.

Test Plan:

`pytest test/quantization/fx/test_quantize_fx.py -v -k "test_qat_embedding_linear"`

Reviewers:
supriyar, HDCharles

Subscribers:

Tasks:

Tags:

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

[ghstack-poisoned]
b-koopman added a commit that referenced this pull request Nov 15, 2021
Summary:

Support QAT workflow by using torch.fx QAT API.  e.g. `prepare_qat_fx` and `convert_fx`.

Test Plan:

`pytest test/quantization/fx/test_quantize_fx.py -v -k "test_qat_embedding_linear"`

Reviewers:
supriyar, HDCharles

Subscribers:

Tasks:

Tags:

ghstack-source-id: 49f0e8c
Pull Request resolved: #68296
@b-koopman
Copy link
Contributor Author

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

@b-koopman b-koopman linked an issue Nov 15, 2021 that may be closed by this pull request
@b-koopman b-koopman requested a review from jingsh November 15, 2021 22:06
Summary:

Support QAT workflow by using torch.fx QAT API.  e.g. `prepare_qat_fx` and `convert_fx`.

Test Plan:

`pytest test/quantization/fx/test_quantize_fx.py -v -k "test_qat_embedding_linear"`

Reviewers:
supriyar, HDCharles

Subscribers:

Tasks:

Tags:

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

[ghstack-poisoned]
Summary:

Support QAT workflow by using torch.fx QAT API.  e.g. `prepare_qat_fx` and `convert_fx`.

Test Plan:

`pytest test/quantization/fx/test_quantize_fx.py -v -k "test_qat_embedding_linear"`

Reviewers:
supriyar, HDCharles

Subscribers:

Tasks:

Tags:

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

[ghstack-poisoned]
b-koopman added a commit that referenced this pull request Nov 15, 2021
Summary:

Support QAT workflow by using torch.fx QAT API.  e.g. `prepare_qat_fx` and `convert_fx`.

Test Plan:

`pytest test/quantization/fx/test_quantize_fx.py -v -k "test_qat_embedding_linear"`

Reviewers:
supriyar, HDCharles

Subscribers:

Tasks:

Tags:

ghstack-source-id: 13eda3a
Pull Request resolved: #68296
@b-koopman
Copy link
Contributor Author

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

Copy link
Contributor

@supriyar supriyar left a comment

Choose a reason for hiding this comment

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

So to clarify, for Embedding QAT we don't need a custom mapping for prepare_qat_fx but we need one for convert_fx?
cc @jerryzh168

@b-koopman
Copy link
Contributor Author

So to clarify, for Embedding QAT we don't need a custom mapping for prepare_qat_fx but we need one for convert_fx? cc @jerryzh168

Correct, this is implemented where nn.Embedding -> nn.qat.Embedding is implemented via quantization_patterns for the prepare, and therefore does not need the custom mapping.
https://github.com/pytorch/pytorch/pull/68296/files#diff-5770045cde7e1d2451524b7232e5c1201e0f4624fc16e86758834d390a6074d1R1163

However for nn.qat.Embedding -> nn.quantized.Embedding, in convert_fx, this requires a custom static mapping right now, since embedding QAT is not included in the default mappings (as is also currently needed for the eager QAT case)

Summary:

Support QAT workflow by using torch.fx QAT API.  e.g. `prepare_qat_fx` and `convert_fx`.

Test Plan:

`pytest test/quantization/fx/test_quantize_fx.py -v -k "test_qat_embedding_linear"`

Reviewers:
supriyar, HDCharles

Subscribers:

Tasks:

Tags:

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

[ghstack-poisoned]
Summary:

Support QAT workflow by using torch.fx QAT API.  e.g. `prepare_qat_fx` and `convert_fx`.

Test Plan:

`pytest test/quantization/fx/test_quantize_fx.py -v -k "test_qat_embedding_linear"`

Reviewers:
supriyar, HDCharles

Subscribers:

Tasks:

Tags:

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

[ghstack-poisoned]
b-koopman added a commit that referenced this pull request Nov 18, 2021
Summary:

Support QAT workflow by using torch.fx QAT API.  e.g. `prepare_qat_fx` and `convert_fx`.

Test Plan:

`pytest test/quantization/fx/test_quantize_fx.py -v -k "test_qat_embedding_linear"`

Reviewers:
supriyar, HDCharles

Subscribers:

Tasks:

Tags:

ghstack-source-id: 84a4462
Pull Request resolved: #68296
@b-koopman
Copy link
Contributor Author

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

Summary:

Support QAT workflow by using torch.fx QAT API.  e.g. `prepare_qat_fx` and `convert_fx`.

Test Plan:

`pytest test/quantization/fx/test_quantize_fx.py -v -k "test_qat_embedding_linear"`

Reviewers:
supriyar, HDCharles

Subscribers:

Tasks:

Tags:

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

[ghstack-poisoned]
b-koopman added a commit that referenced this pull request Nov 24, 2021
Summary:

Support QAT workflow by using torch.fx QAT API.  e.g. `prepare_qat_fx` and `convert_fx`.

Test Plan:

`pytest test/quantization/fx/test_quantize_fx.py -v -k "test_qat_embedding_linear"`

Reviewers:
supriyar, HDCharles

Subscribers:

Tasks:

Tags:

ghstack-source-id: 5fba23b
Pull Request resolved: #68296
Summary:

Support QAT workflow by using torch.fx QAT API.  e.g. `prepare_qat_fx` and `convert_fx`.

Test Plan:

`pytest test/quantization/fx/test_quantize_fx.py -v -k "test_qat_embedding_linear"`

Reviewers:
supriyar, HDCharles

Subscribers:

Tasks:

Tags:

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

[ghstack-poisoned]
b-koopman added a commit that referenced this pull request Dec 1, 2021
Summary:

Support QAT workflow by using torch.fx QAT API.  e.g. `prepare_qat_fx` and `convert_fx`.

Test Plan:

`pytest test/quantization/fx/test_quantize_fx.py -v -k "test_qat_embedding_linear"`

Reviewers:
supriyar, HDCharles

Subscribers:

Tasks:

Tags:

ghstack-source-id: 5b6f6cc
Pull Request resolved: #68296
@b-koopman
Copy link
Contributor Author

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

@malfet
Copy link
Contributor

malfet commented Dec 2, 2021

This broke MacOS test sanity see https://github.com/pytorch/pytorch/runs/4398281864?check_suite_focus=true#step:8:31 , reverting

@facebook-github-bot
Copy link
Contributor

This pull request has been reverted by a0367f8. To re-land this change, follow these steps.

@suo suo mentioned this pull request Dec 3, 2021
@facebook-github-bot facebook-github-bot deleted the gh/b-koopman/17/head branch December 6, 2021 15:17
@facebook-github-bot
Copy link
Contributor

This pull request has been reverted by a0367f8. To re-land this change, follow these steps.

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.

[quant] Support QAT for Embedding/EmbeddingBag

6 participants