|
14 | 14 | from executorch.backends.cadence.aot.graph_builder import GraphBuilder |
15 | 15 | from executorch.backends.cadence.aot.quantizer import quantizer as quantizer_module |
16 | 16 | from executorch.backends.cadence.aot.quantizer.patterns import AddmmPattern |
17 | | - |
18 | 17 | from executorch.backends.cadence.aot.quantizer.quantizer import ( |
19 | 18 | CadenceAtenQuantizer, |
20 | 19 | CadenceDefaultQuantizer, |
21 | 20 | CadenceFusedConvReluQuantizer, |
22 | 21 | CadenceNopQuantizer, |
23 | 22 | CadenceQuantizer, |
| 23 | + CadenceRmsNormNopQuantizer, |
24 | 24 | CadenceW8A32MixedQuantizer, |
25 | 25 | CadenceWakeWordQuantizer, |
26 | 26 | CadenceWith16BitConvActivationsQuantizer, |
|
54 | 54 | CadenceFusedConvReluQuantizer, # TODO: T247438151 Add test coverage |
55 | 55 | CadenceNopQuantizer, # No-op quantizer, doesn't annotate anything |
56 | 56 | CadenceW8A32MixedQuantizer, # TODO: T247438158 Add test coverage |
| 57 | + CadenceRmsNormNopQuantizer, # No-op quantizer, doesn't annotate anything, preserves rms_norm from decomposition |
57 | 58 | CadenceWakeWordQuantizer, # TODO: T247438162 Add test coverage |
58 | 59 | CadenceWith16BitConvActivationsQuantizer, # TODO: T247438221 Add test coverage |
59 | 60 | CadenceWithLayerNormQuantizer, # TODO: T247438410 Add test coverage |
@@ -261,6 +262,14 @@ def test_nested_quantizer_ops_to_preserve(self) -> None: |
261 | 262 | ] |
262 | 263 | self.assertCountEqual(actual, expected) |
263 | 264 |
|
| 265 | + def test_rms_norm_nop_quantizer_ops_to_preserve(self) -> None: |
| 266 | + q = CadenceRmsNormNopQuantizer() |
| 267 | + actual = q.get_ops_to_preserve_from_decomposition() |
| 268 | + expected = [ |
| 269 | + torch.ops.aten.rms_norm.default, |
| 270 | + ] |
| 271 | + self.assertCountEqual(actual, expected) |
| 272 | + |
264 | 273 |
|
265 | 274 | if __name__ == "__main__": |
266 | 275 | unittest.main() |
0 commit comments