-
Notifications
You must be signed in to change notification settings - Fork 243
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
[FX] Dynamic Shapes Support #3225
base: develop
Are you sure you want to change the base?
Conversation
@@ -171,18 +176,29 @@ def test_model(test_case: ModelCase): | |||
) | |||
|
|||
|
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.
Looks like some test cases are duplicated: non synthetic transformer models are still being checked twice with the static shapes. Please refactor the test to prevent redundant cases, and please try to avoid pytest.skip calls as well
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.
Would you suggest I rather remove the graph tests and only retain test_dynamic_edge()
test since most of the transformer models in this test are not correctly traced with dynamic shapes
NNCFGraphEdge and NNCF algorithms expect the edge shape to be a Could you please show an example with a quantization of a dynamic model? Perhaps we can cover the case with less drastic change (using -1 as a shape dim, for example) |
I can add an exception for the case where the in_channel has a non-static . |
Changes
Modify NNCF Graph Builder for FX backend to correctly get and insert the dynamic shapes into NNCFGraph
Reason for changes
To support quantization of Torch FX models exported with dynamic shapes
Tests
test is added to
tests/torch/fx/test_models.py
in test_quantized_models(). Currently only the synthetic transformer is tested because torch.export.dynamic_shapes.Dim.DYNAMIC is not supported in pytorch but is supported in upcoming releases. https://pytorch.org/tutorials/intermediate/torch_export_tutorial.html#constraints-dynamic-shapestest_dynamic_edge()
is also added intests/torch/fx/test_models.py
to check that the tensor shape in NNCF Graph edge has values only of type int or str and not SymInt.