-
Notifications
You must be signed in to change notification settings - Fork 152
[QuantizationModifier] refactor base - move deprecated code to legacy file, add object routing for yaml load #1059
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
Merged
bfineran
merged 2 commits into
quantization-refactor/main
from
quantization-refactor/base
Nov 28, 2022
Merged
[QuantizationModifier] refactor base - move deprecated code to legacy file, add object routing for yaml load #1059
bfineran
merged 2 commits into
quantization-refactor/main
from
quantization-refactor/base
Nov 28, 2022
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@anmarques @rahul-tuli assigned for review |
corey-nm
approved these changes
Sep 30, 2022
rahul-tuli
approved these changes
Oct 13, 2022
… file, add object routing for yaml load
c33bb2a
to
7ec69fa
Compare
18 tasks
bfineran
added a commit
that referenced
this pull request
Dec 16, 2022
… file, add object routing for yaml load (#1059) * move existing ModifierQuantization and tests to legacy file * [QuantizationModifier] refactor base - move deprecated code to legacy file, add object routing for yaml load
bfineran
added a commit
that referenced
this pull request
Dec 19, 2022
* [QuantizationModifier] refactor base - move deprecated code to legacy file, add object routing for yaml load (#1059) * move existing ModifierQuantization and tests to legacy file * [QuantizationModifier] refactor base - move deprecated code to legacy file, add object routing for yaml load * [QuantizationModifier] pydantic classes for defining quantization schemes to generate QConfigs (#1061) * [QuantizationModifier] pydantic classes for defining quantization schemes to generate QConfigs * review response * [WIP][QuantizationModifier] base refactor flow - quantize entire module from QuantizationScheme (#1185) * [QuantizationModifier] base refactor flow - quantize entire module from QuantizationScheme * review response * testing - lifecycle + QAT application * activate qat tests * [QuantizationModifier] improved quantization flow - control of propagation with schemes and stronger testing (#1198) * [QuantizationModifier] exclude_module_types list modifier param to disable module types from quantization (#1199) * [QuantizationModifier] submodule_schemes property impl - target specific submodules by scheme (#1201) * [QuantizationModifier] submodule_schemes property impl - target specific submodules by scheme * generalize helper fn name + quality * [QuantizationModifier] module_type_schemes - override quantization scheme by layer type (#1202) * [QuantizationModifier] module_type_schemes - override quantization scheme by layer type * yaml pydoc example * [QuantizationModifier] target hardware support (#1203) * [QuantizationModifier] freeze bn stats and disable observers for QAT finetuning support (#1206) * [QuantizationModifier] num_calibration_steps support (PTQ) (#1208) * [QuantizationModifier] override params for model fuse step (#1209) * [QuantizationModifier] refactor QuantizationScheme to its own file (#1223) * [QuantizationModifier] QATWrapper support (#1226) * [QuantizationModifier] logging support (#1231) * [QuantizationModifier] logging support * fake quantize bits logging * [QuantizationModifier] potentially re-load quantization schemes on qconfig load (#1236) * [QuantizationModifier] UX refactor - submodule_overrides and ignore (#1239) * rename modifier default_scheme -> scheme * refactor set_quantization_schemes (tests passing with existing UX) * exclude_module_types -> ignore ; adds submodule exclusion * refactor submodule and module type schemes into unified submodule_overrides * [QuantizationModifier] strict mode - raise if unmatched submodules or types (#1241) * [QuantizationModifier] take ownership of add_observers_, unit test fixes (#1261) * [QuantizationModifier] take ownership of add_observers_, unit test fixes * suggestion from review - with quality override * review - suggested comment * fixes for FloatFunctional support (resnet50 broke) * [rebase] merge in changes to legacy modifier quantization
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
first PR for QuantizationModifier refactor. moves the existing modifier and tests into a "legacy" file. Creates a template object for the new modifier. To maintain backwards compatibility, we add support for detecting which object should be loaded for a yaml
QuantizationModifier
at load time by adding an extra pass to the constructor. For now this is done by detecting thesubmodules
field in the legacy modifier which is included in all deployed recipes.test_plan
unit test included for yaml dispatch. legacy quantization modifier tests updated and pass