tico 0.1.0.dev250803__py3-none-any.whl → 0.1.0.dev251106__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (133) hide show
  1. tico/__init__.py +1 -1
  2. tico/config/v1.py +5 -0
  3. tico/passes/cast_mixed_type_args.py +2 -0
  4. tico/passes/convert_expand_to_slice_cat.py +153 -0
  5. tico/passes/convert_matmul_to_linear.py +312 -0
  6. tico/passes/convert_to_relu6.py +1 -1
  7. tico/passes/decompose_fake_quantize_tensor_qparams.py +5 -4
  8. tico/passes/ops.py +0 -1
  9. tico/passes/remove_redundant_assert_nodes.py +3 -1
  10. tico/passes/remove_redundant_expand.py +3 -1
  11. tico/quantization/__init__.py +6 -0
  12. tico/{experimental/quantization → quantization}/algorithm/gptq/gptq.py +24 -3
  13. tico/{experimental/quantization → quantization}/algorithm/gptq/quantizer.py +30 -8
  14. tico/{experimental/quantization → quantization}/algorithm/pt2e/annotation/annotator.py +6 -8
  15. tico/{experimental/quantization → quantization}/algorithm/pt2e/annotation/op/adaptive_avg_pool2d.py +4 -6
  16. tico/{experimental/quantization → quantization}/algorithm/pt2e/annotation/op/add.py +4 -6
  17. tico/{experimental/quantization → quantization}/algorithm/pt2e/annotation/op/conv2d.py +4 -6
  18. tico/{experimental/quantization → quantization}/algorithm/pt2e/annotation/op/div.py +4 -6
  19. tico/{experimental/quantization → quantization}/algorithm/pt2e/annotation/op/linear.py +4 -6
  20. tico/{experimental/quantization → quantization}/algorithm/pt2e/annotation/op/mean.py +4 -6
  21. tico/{experimental/quantization → quantization}/algorithm/pt2e/annotation/op/mul.py +4 -6
  22. tico/{experimental/quantization → quantization}/algorithm/pt2e/annotation/op/relu6.py +4 -6
  23. tico/{experimental/quantization → quantization}/algorithm/pt2e/annotation/op/rsqrt.py +4 -6
  24. tico/{experimental/quantization → quantization}/algorithm/pt2e/annotation/op/sub.py +4 -6
  25. tico/{experimental/quantization → quantization}/algorithm/pt2e/annotation/spec.py +1 -3
  26. tico/{experimental/quantization → quantization}/algorithm/pt2e/annotation/utils.py +1 -1
  27. tico/{experimental/quantization → quantization}/algorithm/pt2e/quantizer.py +5 -2
  28. tico/{experimental/quantization → quantization}/algorithm/pt2e/utils.py +1 -3
  29. tico/{experimental/quantization → quantization}/algorithm/smoothquant/observer.py +26 -8
  30. tico/{experimental/quantization → quantization}/algorithm/smoothquant/quantizer.py +28 -9
  31. tico/quantization/algorithm/smoothquant/smooth_quant.py +327 -0
  32. tico/quantization/config/base.py +26 -0
  33. tico/quantization/config/gptq.py +29 -0
  34. tico/quantization/config/pt2e.py +25 -0
  35. tico/quantization/config/ptq.py +119 -0
  36. tico/{experimental/quantization/config.py → quantization/config/smoothquant.py} +9 -36
  37. tico/{experimental/quantization → quantization}/evaluation/evaluate.py +7 -16
  38. tico/{experimental/quantization → quantization}/evaluation/executor/circle_executor.py +3 -4
  39. tico/{experimental/quantization → quantization}/evaluation/executor/triv24_executor.py +2 -4
  40. tico/quantization/evaluation/metric.py +146 -0
  41. tico/{experimental/quantization → quantization}/evaluation/utils.py +1 -1
  42. tico/quantization/passes/__init__.py +1 -0
  43. tico/{experimental/quantization → quantization}/public_interface.py +11 -18
  44. tico/{experimental/quantization → quantization}/quantizer.py +1 -1
  45. tico/quantization/quantizer_registry.py +73 -0
  46. tico/quantization/wrapq/__init__.py +1 -0
  47. tico/quantization/wrapq/dtypes.py +70 -0
  48. tico/quantization/wrapq/examples/__init__.py +1 -0
  49. tico/quantization/wrapq/examples/compare_ppl.py +230 -0
  50. tico/quantization/wrapq/examples/debug_quant_outputs.py +224 -0
  51. tico/quantization/wrapq/examples/quantize_linear.py +107 -0
  52. tico/quantization/wrapq/examples/quantize_llama_attn.py +101 -0
  53. tico/quantization/wrapq/examples/quantize_llama_decoder_layer.py +125 -0
  54. tico/quantization/wrapq/examples/quantize_llama_mlp.py +95 -0
  55. tico/quantization/wrapq/examples/quantize_with_gptq.py +265 -0
  56. tico/quantization/wrapq/mode.py +32 -0
  57. tico/quantization/wrapq/observers/__init__.py +1 -0
  58. tico/quantization/wrapq/observers/affine_base.py +128 -0
  59. tico/quantization/wrapq/observers/base.py +98 -0
  60. tico/quantization/wrapq/observers/ema.py +62 -0
  61. tico/quantization/wrapq/observers/identity.py +74 -0
  62. tico/quantization/wrapq/observers/minmax.py +39 -0
  63. tico/quantization/wrapq/observers/mx.py +60 -0
  64. tico/quantization/wrapq/qscheme.py +40 -0
  65. tico/quantization/wrapq/quantizer.py +179 -0
  66. tico/quantization/wrapq/utils/__init__.py +1 -0
  67. tico/quantization/wrapq/utils/introspection.py +167 -0
  68. tico/quantization/wrapq/utils/metrics.py +124 -0
  69. tico/quantization/wrapq/utils/reduce_utils.py +25 -0
  70. tico/quantization/wrapq/wrappers/__init__.py +1 -0
  71. tico/quantization/wrapq/wrappers/fairseq/__init__.py +5 -0
  72. tico/quantization/wrapq/wrappers/fairseq/decoder_export_single_step.py +234 -0
  73. tico/quantization/wrapq/wrappers/fairseq/quant_decoder.py +429 -0
  74. tico/quantization/wrapq/wrappers/fairseq/quant_decoder_layer.py +492 -0
  75. tico/quantization/wrapq/wrappers/fairseq/quant_encoder.py +331 -0
  76. tico/quantization/wrapq/wrappers/fairseq/quant_encoder_layer.py +163 -0
  77. tico/quantization/wrapq/wrappers/fairseq/quant_mha.py +381 -0
  78. tico/quantization/wrapq/wrappers/llama/__init__.py +1 -0
  79. tico/quantization/wrapq/wrappers/llama/quant_attn.py +276 -0
  80. tico/quantization/wrapq/wrappers/llama/quant_decoder_layer.py +176 -0
  81. tico/quantization/wrapq/wrappers/llama/quant_mlp.py +96 -0
  82. tico/quantization/wrapq/wrappers/nn/__init__.py +1 -0
  83. tico/quantization/wrapq/wrappers/nn/quant_layernorm.py +183 -0
  84. tico/quantization/wrapq/wrappers/nn/quant_linear.py +65 -0
  85. tico/quantization/wrapq/wrappers/nn/quant_silu.py +60 -0
  86. tico/quantization/wrapq/wrappers/ptq_wrapper.py +69 -0
  87. tico/quantization/wrapq/wrappers/quant_elementwise.py +111 -0
  88. tico/quantization/wrapq/wrappers/quant_module_base.py +168 -0
  89. tico/quantization/wrapq/wrappers/registry.py +128 -0
  90. tico/serialize/circle_serializer.py +11 -4
  91. tico/serialize/operators/adapters/__init__.py +1 -0
  92. tico/serialize/operators/adapters/llama_rmsnorm.py +35 -0
  93. tico/serialize/operators/op_constant_pad_nd.py +41 -11
  94. tico/serialize/operators/op_le.py +54 -0
  95. tico/serialize/operators/op_mm.py +15 -132
  96. tico/serialize/operators/op_rmsnorm.py +65 -0
  97. tico/utils/convert.py +20 -15
  98. tico/utils/dtype.py +22 -0
  99. tico/utils/register_custom_op.py +29 -4
  100. tico/utils/signature.py +247 -0
  101. tico/utils/utils.py +50 -53
  102. tico/utils/validate_args_kwargs.py +37 -0
  103. {tico-0.1.0.dev250803.dist-info → tico-0.1.0.dev251106.dist-info}/METADATA +49 -2
  104. {tico-0.1.0.dev250803.dist-info → tico-0.1.0.dev251106.dist-info}/RECORD +130 -73
  105. tico/experimental/quantization/__init__.py +0 -6
  106. tico/experimental/quantization/algorithm/smoothquant/smooth_quant.py +0 -164
  107. tico/experimental/quantization/evaluation/metric.py +0 -109
  108. /tico/{experimental/quantization → quantization}/algorithm/__init__.py +0 -0
  109. /tico/{experimental/quantization → quantization}/algorithm/gptq/__init__.py +0 -0
  110. /tico/{experimental/quantization → quantization}/algorithm/gptq/quant.py +0 -0
  111. /tico/{experimental/quantization → quantization}/algorithm/gptq/utils.py +0 -0
  112. /tico/{experimental/quantization → quantization}/algorithm/pt2e/__init__.py +0 -0
  113. /tico/{experimental/quantization → quantization}/algorithm/pt2e/annotation/__init__.py +0 -0
  114. /tico/{experimental/quantization → quantization}/algorithm/pt2e/annotation/config.py +0 -0
  115. /tico/{experimental/quantization → quantization}/algorithm/pt2e/annotation/op/__init__.py +0 -0
  116. /tico/{experimental/quantization → quantization}/algorithm/pt2e/transformation/__init__.py +0 -0
  117. /tico/{experimental/quantization → quantization}/algorithm/pt2e/transformation/convert_scalars_to_attrs.py +0 -0
  118. /tico/{experimental/quantization → quantization}/algorithm/smoothquant/__init__.py +0 -0
  119. /tico/{experimental/quantization/evaluation → quantization/config}/__init__.py +0 -0
  120. /tico/{experimental/quantization/evaluation/executor → quantization/evaluation}/__init__.py +0 -0
  121. /tico/{experimental/quantization → quantization}/evaluation/backend.py +0 -0
  122. /tico/{experimental/quantization/passes → quantization/evaluation/executor}/__init__.py +0 -0
  123. /tico/{experimental/quantization → quantization}/evaluation/executor/backend_executor.py +0 -0
  124. /tico/{experimental/quantization → quantization}/passes/fold_quant_ops.py +0 -0
  125. /tico/{experimental/quantization → quantization}/passes/insert_quantize_on_dtype_mismatch.py +0 -0
  126. /tico/{experimental/quantization → quantization}/passes/propagate_qparam_backward.py +0 -0
  127. /tico/{experimental/quantization → quantization}/passes/propagate_qparam_forward.py +0 -0
  128. /tico/{experimental/quantization → quantization}/passes/quantize_bias.py +0 -0
  129. /tico/{experimental/quantization → quantization}/passes/remove_weight_dequant_op.py +0 -0
  130. {tico-0.1.0.dev250803.dist-info → tico-0.1.0.dev251106.dist-info}/LICENSE +0 -0
  131. {tico-0.1.0.dev250803.dist-info → tico-0.1.0.dev251106.dist-info}/WHEEL +0 -0
  132. {tico-0.1.0.dev250803.dist-info → tico-0.1.0.dev251106.dist-info}/entry_points.txt +0 -0
  133. {tico-0.1.0.dev250803.dist-info → tico-0.1.0.dev251106.dist-info}/top_level.txt +0 -0
tico/utils/utils.py CHANGED
@@ -79,73 +79,70 @@ def enforce_type(callable):
79
79
  def check_types(*args, **kwargs):
80
80
  parameters = dict(zip(spec.args, args))
81
81
  parameters.update(kwargs)
82
- for name, value in parameters.items():
83
- if name == "self":
84
- # skip 'self' in spec.args
85
- continue
86
-
87
- assert (
88
- name in spec.annotations
89
- ), f"All parameter require type hints. {name} needs a type hint"
90
-
91
- type_hint = spec.annotations[name]
92
82
 
93
- # Return tuple of flattened types.
94
- # Q) What is flatten?
95
- # A) Optional/Union is not included. Below are included.
96
- # collections: List, Set, ...
97
- # primitive types: int, str, ...
98
- def _flatten_type(type_hint) -> tuple:
99
- # `get_origin` maps Union[...] and Optional[...] varieties to Union
100
- if typing.get_origin(type_hint) == typing.Union:
101
- # ex. typing.Union[list, int] -> (list, int)
102
- # ex. typing.Optional[torch.fx.Node] -> (torch.fx.Node, NoneType)
103
- actual_type = tuple(
104
- [_flatten_type(t) for t in typing.get_args(type_hint)]
105
- )
106
- else:
107
- actual_type = (type_hint,)
108
- return actual_type
83
+ # Return tuple of flattened types.
84
+ # Q) What is flatten?
85
+ # A) Optional/Union is not included. Below are included.
86
+ # collections: List, Set, ...
87
+ # primitive types: int, str, ...
88
+ def _flatten_type(type_hint) -> tuple:
89
+ # `get_origin` maps Union[...] and Optional[...] varieties to Union
90
+ if typing.get_origin(type_hint) == typing.Union:
91
+ # ex. typing.Union[list, int] -> (list, int)
92
+ # ex. typing.Optional[torch.fx.Node] -> (torch.fx.Node, NoneType)
93
+ actual_type = tuple(
94
+ _flatten_type(t) for t in typing.get_args(type_hint)
95
+ )
96
+ else:
97
+ actual_type = (type_hint,)
98
+ return actual_type
109
99
 
110
- type_hint = _flatten_type(type_hint)
100
+ # Return true if value matches with type_hint
101
+ # Return false otherwise
102
+ def _check_type(value, type_hint):
103
+ if type_hint == typing.Any:
104
+ return True
111
105
 
112
- # Return true if value matches with type_hint
113
- # Return false otherwise
114
- def _check_type(value, type_hint):
115
- if type_hint == typing.Any:
116
- return True
106
+ if isinstance(type_hint, tuple):
107
+ return any(_check_type(value, t) for t in type_hint)
117
108
 
118
- if isinstance(type_hint, tuple):
119
- return any([_check_type(value, t) for t in type_hint])
109
+ if typing.get_origin(type_hint) in (list, set):
110
+ if not isinstance(value, typing.get_origin(type_hint)):
111
+ return False
120
112
 
121
- if typing.get_origin(type_hint) in (list, set):
122
- if not isinstance(value, typing.get_origin(type_hint)):
113
+ for v in value:
114
+ if not any(_check_type(v, t) for t in typing.get_args(type_hint)):
123
115
  return False
124
116
 
125
- for v in value:
126
- if not any(
127
- [_check_type(v, t) for t in typing.get_args(type_hint)]
128
- ):
129
- return False
117
+ return True
130
118
 
131
- return True
119
+ if typing.get_origin(type_hint) is dict:
120
+ if not isinstance(value, typing.get_origin(type_hint)):
121
+ return False
132
122
 
133
- if typing.get_origin(type_hint) is dict:
134
- if not isinstance(value, typing.get_origin(type_hint)):
123
+ for k, v in value.items():
124
+ k_type, v_type = typing.get_args(type_hint)
125
+ if not _check_type(k, k_type):
126
+ return False
127
+ if not _check_type(v, v_type):
135
128
  return False
136
129
 
137
- for k, v in value.items():
138
- k_type, v_type = typing.get_args(type_hint)
139
- if not _check_type(k, k_type):
140
- return False
141
- if not _check_type(v, v_type):
142
- return False
130
+ return True
131
+
132
+ # TODO: Support more type hints
133
+ return isinstance(value, type_hint)
143
134
 
144
- return True
135
+ for name, value in parameters.items():
136
+ if name == "self":
137
+ # skip 'self' in spec.args
138
+ continue
145
139
 
146
- # TODO: Support more type hints
147
- return isinstance(value, type_hint)
140
+ assert (
141
+ name in spec.annotations
142
+ ), f"All parameter require type hints. {name} needs a type hint"
148
143
 
144
+ type_hint = spec.annotations[name]
145
+ type_hint = _flatten_type(type_hint)
149
146
  type_check_result = _check_type(value, type_hint)
150
147
  if not type_check_result:
151
148
  raise ArgTypeError(
@@ -171,6 +171,18 @@ class CatArgs:
171
171
  dim: int = 0
172
172
 
173
173
 
174
+ @enforce_type
175
+ @dataclass
176
+ class CircleRMSNormArgs:
177
+ """
178
+ For circle.BuiltinOperator.BuiltinOperator.RMS_NORM
179
+ """
180
+
181
+ input: torch.fx.Node
182
+ weight: torch.fx.Node
183
+ eps: float
184
+
185
+
174
186
  @enforce_type
175
187
  @dataclass
176
188
  class ClampArgs:
@@ -551,6 +563,18 @@ class InstanceNormArgs:
551
563
  cudnn_enabled: bool
552
564
 
553
565
 
566
+ @enforce_type
567
+ @dataclass
568
+ class LeArgs:
569
+ """
570
+ le.Scalar(Tensor self, Scalar other) -> Tensor
571
+ le.Tensor(Tensor self, Tensor other) -> Tensor
572
+ """
573
+
574
+ input: Union[torch.fx.Node, torch.Tensor, float, int]
575
+ other: Union[torch.fx.Node, torch.Tensor, float, int]
576
+
577
+
554
578
  @enforce_type
555
579
  @dataclass
556
580
  class LeakyReluArgs:
@@ -931,6 +955,19 @@ class ResizeNearestNeighborArgs:
931
955
  size: List[int]
932
956
 
933
957
 
958
+ @enforce_type
959
+ @dataclass
960
+ class RMSNormArgs:
961
+ """
962
+ rms_norm(Tensor input, SymInt[] normalized_shape, Tensor? weight=None, float? eps=None) -> Tensor
963
+ """
964
+
965
+ input: torch.fx.Node
966
+ normalized_shape: List[int]
967
+ weight: Optional[torch.fx.Node]
968
+ eps: Optional[float]
969
+
970
+
934
971
  @enforce_type
935
972
  @dataclass
936
973
  class RoundArgs:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: tico
3
- Version: 0.1.0.dev250803
3
+ Version: 0.1.0.dev251106
4
4
  Summary: Convert exported Torch module to circle
5
5
  Home-page: UNKNOWN
6
6
  License: UNKNOWN
@@ -13,6 +13,7 @@ Requires-Dist: circle-schema
13
13
  Requires-Dist: packaging
14
14
  Requires-Dist: pyyaml
15
15
  Requires-Dist: torch
16
+ Requires-Dist: tqdm
16
17
 
17
18
  # TICO
18
19
 
@@ -29,6 +30,7 @@ designed for optimized on-device neural network inference.
29
30
  - [From torch module](#from-torch-module)
30
31
  - [From .pt2](#from-pt2)
31
32
  - [Running circle models directly in Python](#running-circle-models-directly-in-python)
33
+ - [Quantization](#quantization)
32
34
 
33
35
  ### For Developers
34
36
 
@@ -67,7 +69,7 @@ This will generate `build` and `dist` directories in the root directory.
67
69
  **Available options**
68
70
  - `--dist` To install the package from .whl (without this option, _TICO_ is installed in an editable mode)
69
71
  - `--torch_ver <torch version>` To install a specific torch version (default: 2.6).
70
- - Available <torch version>: 2.5, 2.6, 2.7, nightly
72
+ - Available <torch version>: 2.5, 2.6, 2.7, 2.8, nightly
71
73
 
72
74
  4. Now you can convert a torch module to a `.circle`.
73
75
 
@@ -187,6 +189,48 @@ circle_model(*example_inputs)
187
189
  # numpy.ndarray([2., 2., 2., 2.], dtype=float32)
188
190
  ```
189
191
 
192
+ ### Quantization
193
+
194
+ The `tico.quantization` module provides a unified and modular interface for quantizing
195
+ large language models (LLMs) and other neural networks.
196
+
197
+ It introduces a simple two-step workflow — **prepare** and **convert** — that
198
+ abstracts the details of different quantization algorithms.
199
+
200
+ #### Basic Usage
201
+
202
+ ```python
203
+ from tico.quantization import prepare, convert
204
+ from tico.quantization.config.gptq import GPTQConfig
205
+ import torch
206
+ import torch.nn as nn
207
+
208
+ class LinearModel(nn.Module):
209
+ def __init__(self):
210
+ super().__init__()
211
+ self.linear = nn.Linear(8, 8)
212
+
213
+ def forward(self, x):
214
+ return self.linear(x)
215
+
216
+ model = LinearModel().eval()
217
+
218
+ # 1. Prepare for quantization
219
+ quant_config = GPTQConfig()
220
+ prepared_model = prepare(model, quant_config)
221
+
222
+ # 2. Calibration
223
+ for d in dataset:
224
+ prepared_model(d)
225
+
226
+ # 3. Apply GPTQ
227
+ quantized_model = convert(prepared_model, quant_config)
228
+ ```
229
+
230
+ For detailed documentation, design notes, and contributing guidelines,
231
+ see [tico/quantization/README.md](./tico/quantization/README.md).
232
+
233
+
190
234
  ## For Developers
191
235
 
192
236
  ### Testing & Code Formatting
@@ -275,6 +319,9 @@ If you want to test them locally, you can do so by navigating to each model dire
275
319
  $ pip install -r test/modules/model/<model_name>/requirements.txt
276
320
  # Run test for a single model
277
321
  $ ./ccex test -m <model_name>
322
+ # Run models whose names contain "Llama" (e.g., Llama, LlamaDecoderLayer, LlamaWithGQA, etc.)
323
+ # Note that you should use quotes for the wildcard(*) pattern
324
+ $ ./ccex test -m "Llama*"
278
325
  ```
279
326
 
280
327
  For example, to run a single model
@@ -1,77 +1,28 @@
1
- tico/__init__.py,sha256=_DNRAjdsl2eiaSJ5XOyLu5N1TJ6gPWrAFduFj56SDus,1883
1
+ tico/__init__.py,sha256=zFizlBKVmXPeQuRPHlpsmWOePEoPowkPdrlRwoxPs4k,1883
2
2
  tico/pt2_to_circle.py,sha256=gu3MD4Iqc0zMZcCZ2IT8oGbyj21CTSbT3Rgd9s2B_9A,2767
3
3
  tico/config/__init__.py,sha256=xZzCXjZ84qE-CsBi-dfaL05bqpQ3stKKfTXhnrJRyVs,142
4
4
  tico/config/base.py,sha256=q5xMqGxTUZs4mFqt5c7i_y9U00fYgdMGl9nUqIVMlCo,1248
5
5
  tico/config/factory.py,sha256=il0zqB6Lm5NX2LnG-TUhmiP9vVeZ_3TucJMorVZIodY,1324
6
- tico/config/v1.py,sha256=O1jzpUBDwoWpLohEpI08pJNwVB-yz3ufPrQm2_XWq4Y,1108
6
+ tico/config/v1.py,sha256=uB5d39fkmuBACwjBVGtdWb_HGXfXsvmw6nw64xZcC-8,1342
7
7
  tico/experimental/__init__.py,sha256=IO6FP_xYbGy0dW0HL26GXD3ouxARaxCK7bz9dn4blPQ,26
8
- tico/experimental/quantization/__init__.py,sha256=IaJPZegVJp0P3luutBo907Kp5sOJensE1Mm-XBG_jBs,122
9
- tico/experimental/quantization/config.py,sha256=h01WpP8Y-dLj6yg12pMZm3PXJqUnU2sWip5jBRc5x9Q,1604
10
- tico/experimental/quantization/public_interface.py,sha256=4-v9VXsokRG2-UUYYHd_MlbHxChqdGI5iuySyYDY_Pw,4420
11
- tico/experimental/quantization/quantizer.py,sha256=_2pDtWFKDCuKfYF2bptOwIYsa0VFNFM1ZNgi8_OGvHM,2365
12
- tico/experimental/quantization/algorithm/__init__.py,sha256=IO6FP_xYbGy0dW0HL26GXD3ouxARaxCK7bz9dn4blPQ,26
13
- tico/experimental/quantization/algorithm/gptq/__init__.py,sha256=IO6FP_xYbGy0dW0HL26GXD3ouxARaxCK7bz9dn4blPQ,26
14
- tico/experimental/quantization/algorithm/gptq/gptq.py,sha256=Qn9b_2ki7B64DcVEY25NMkww3PdZ5EqYQQXfYhNDQ6I,5555
15
- tico/experimental/quantization/algorithm/gptq/quant.py,sha256=Rl4wAOCmlE0U09BtNCDbccaSNohRHCNLwFi3zCqZfNo,5127
16
- tico/experimental/quantization/algorithm/gptq/quantizer.py,sha256=KiaNcDkufbYPHdkkOGw9nAwLtk0yYwUDbyzFT3xRLOs,11066
17
- tico/experimental/quantization/algorithm/gptq/utils.py,sha256=leGKayf-xbSjVwwAGTA5RsxUKrhDiklOQdlsLifjdrs,1811
18
- tico/experimental/quantization/algorithm/pt2e/__init__.py,sha256=IO6FP_xYbGy0dW0HL26GXD3ouxARaxCK7bz9dn4blPQ,26
19
- tico/experimental/quantization/algorithm/pt2e/quantizer.py,sha256=mdTvsG87bo8fu0GaWqSM8iBCs-4f4EfUlVtk-Ko6M34,2546
20
- tico/experimental/quantization/algorithm/pt2e/utils.py,sha256=URjTGgsnDdhUC2Nr0-YJ9GWbVOKmjElfLr83Y8eCz-M,4806
21
- tico/experimental/quantization/algorithm/pt2e/annotation/__init__.py,sha256=IO6FP_xYbGy0dW0HL26GXD3ouxARaxCK7bz9dn4blPQ,26
22
- tico/experimental/quantization/algorithm/pt2e/annotation/annotator.py,sha256=lFfblxglPxcN2IcrjAVYq7GOECIAQ4rr7M4euPp3yWc,7551
23
- tico/experimental/quantization/algorithm/pt2e/annotation/config.py,sha256=8x6YvixIogXh_PwqhKNb3L6lJyBDFQ_OHotonG_hWD0,977
24
- tico/experimental/quantization/algorithm/pt2e/annotation/spec.py,sha256=6CXHmeTbl8pzpHmrj9-bqIHMhHVGqPy7sYxyt-kWkKA,1437
25
- tico/experimental/quantization/algorithm/pt2e/annotation/utils.py,sha256=oBf4vjFzVQ3jfk1N-6S7A_3woO27QIc8zD4fM8OAZss,3161
26
- tico/experimental/quantization/algorithm/pt2e/annotation/op/__init__.py,sha256=IlBNBqXeopMqHRkR-TPiuN_IkwXaSMXlSVO_9vKceB0,834
27
- tico/experimental/quantization/algorithm/pt2e/annotation/op/adaptive_avg_pool2d.py,sha256=uMpQ9294gFYmaWwKs9vzPY98C9Xx3LTTGiw1pYKljxk,2469
28
- tico/experimental/quantization/algorithm/pt2e/annotation/op/add.py,sha256=cYsuGBiEmogkx5v_LtpzDKVf_YPHukpHPEjV4D1Hvbk,2214
29
- tico/experimental/quantization/algorithm/pt2e/annotation/op/conv2d.py,sha256=jaQ72qzM82AN1JKgdYslatmQ2ZGzLwUrbyVIMC7HYwY,3692
30
- tico/experimental/quantization/algorithm/pt2e/annotation/op/div.py,sha256=uPKorN80d3yFOmIDI6fK7uQ4eyqehgkoGnyCCZ_pfsg,2196
31
- tico/experimental/quantization/algorithm/pt2e/annotation/op/linear.py,sha256=u84jvgf2i-lia3gqdmHrbqXS_hTWDxU1gio91E0JjG8,3491
32
- tico/experimental/quantization/algorithm/pt2e/annotation/op/mean.py,sha256=gXZ7LQWujO6iN5ZjsV3emBSJJCt1VuhUnlnr7rJmpbU,2020
33
- tico/experimental/quantization/algorithm/pt2e/annotation/op/mul.py,sha256=MPfk2aPBqX6W4TuOI_ZElrU_hAc-9OtClOxkXvH6tsA,2211
34
- tico/experimental/quantization/algorithm/pt2e/annotation/op/relu6.py,sha256=UDWVX7xMlIfuyHlGVAJMAxRCC2C6ldfYqRwluChhhew,2017
35
- tico/experimental/quantization/algorithm/pt2e/annotation/op/rsqrt.py,sha256=s76-A-T8WVob4e-yTG4kNXfVK1T-nZU-aAl5ggl0AMQ,2027
36
- tico/experimental/quantization/algorithm/pt2e/annotation/op/sub.py,sha256=4z8HoY-p7n64QXTsSDcpzuYmSQgRu7ztu2oBBQcRy_4,2196
37
- tico/experimental/quantization/algorithm/pt2e/transformation/__init__.py,sha256=IO6FP_xYbGy0dW0HL26GXD3ouxARaxCK7bz9dn4blPQ,26
38
- tico/experimental/quantization/algorithm/pt2e/transformation/convert_scalars_to_attrs.py,sha256=Idtoya2RcGKlgUJgC9WqNz0jH3gf6ViuPmsD9ySHbls,2253
39
- tico/experimental/quantization/algorithm/smoothquant/__init__.py,sha256=IO6FP_xYbGy0dW0HL26GXD3ouxARaxCK7bz9dn4blPQ,26
40
- tico/experimental/quantization/algorithm/smoothquant/observer.py,sha256=yi9nR_BEuxKVjgFcYPeldhXlEbE9V-0r4kRRPcI3C70,2639
41
- tico/experimental/quantization/algorithm/smoothquant/quantizer.py,sha256=rQMtnqM1dBzjhY-KJRp3TWZSW-dzXrs5N5FagXzh0IQ,2564
42
- tico/experimental/quantization/algorithm/smoothquant/smooth_quant.py,sha256=O1h7IojcsJaprFvRM9tsAuR3q7vTjKKRi88jD-nH79Y,6175
43
- tico/experimental/quantization/evaluation/__init__.py,sha256=IO6FP_xYbGy0dW0HL26GXD3ouxARaxCK7bz9dn4blPQ,26
44
- tico/experimental/quantization/evaluation/backend.py,sha256=CZL9rZOA0t8cH7PHp6u9l7dGqWNvTj9bKOvwo0PVul0,692
45
- tico/experimental/quantization/evaluation/evaluate.py,sha256=cI9_4cbJKeYMmDt_PD85MHEseHGhwYRr3RHsKdix1FI,7988
46
- tico/experimental/quantization/evaluation/metric.py,sha256=Ae-vAkA8n6T9_aGv47rkz1MLCw9ji1oDm1Rdd_MIxNQ,3744
47
- tico/experimental/quantization/evaluation/utils.py,sha256=82RG_e5LuKfWo786wEZUVwXY93nNl901n04fB7D0Z6k,5909
48
- tico/experimental/quantization/evaluation/executor/__init__.py,sha256=IO6FP_xYbGy0dW0HL26GXD3ouxARaxCK7bz9dn4blPQ,26
49
- tico/experimental/quantization/evaluation/executor/backend_executor.py,sha256=3kLu3_rcsreA_NK42yRgRgubPtZmVp7QCRvaqLNw10E,1522
50
- tico/experimental/quantization/evaluation/executor/circle_executor.py,sha256=eCCJ9wTwR0vUJ0oN7jxtQxZ9598GRw6P6KUxiuGsIIM,2685
51
- tico/experimental/quantization/evaluation/executor/triv24_executor.py,sha256=sUoXl6oOO2arAKaNjOBg7HiQja145_Jv6qgY7XtR7A8,5159
52
- tico/experimental/quantization/passes/__init__.py,sha256=IO6FP_xYbGy0dW0HL26GXD3ouxARaxCK7bz9dn4blPQ,26
53
- tico/experimental/quantization/passes/fold_quant_ops.py,sha256=bRHYSeHdSTaz3261skIkK5Aso2Lbv7ql0zFI9ICmbDY,7028
54
- tico/experimental/quantization/passes/insert_quantize_on_dtype_mismatch.py,sha256=AtfK9kDnWyIWyVlwD4a0EEx_-5rW5Hmo5DuKZ-HyXH0,15069
55
- tico/experimental/quantization/passes/propagate_qparam_backward.py,sha256=TGtyW0Z2qOTgVIasBdGRgbwH31YYd6ek7OvLTmCV614,3118
56
- tico/experimental/quantization/passes/propagate_qparam_forward.py,sha256=RhUHGCR2RpBO5KYkQ7Z8U5u7HEwDq2wdKHLKAJCi-5c,5138
57
- tico/experimental/quantization/passes/quantize_bias.py,sha256=T7YxJ70N0tSK0FF9VJZA5iP0sHdnnsX9GX4AT4JDFSk,4325
58
- tico/experimental/quantization/passes/remove_weight_dequant_op.py,sha256=gI1MtrHazWpdNfys7f1ngTTWplzluF7SA-uX0HMR5Mc,6592
59
8
  tico/interpreter/__init__.py,sha256=IO6FP_xYbGy0dW0HL26GXD3ouxARaxCK7bz9dn4blPQ,26
60
9
  tico/interpreter/infer.py,sha256=1ZFe3DVMR2mlwBosoedqoL0-CGN_01CKLgMgxuw62KA,4861
61
10
  tico/interpreter/interpreter.py,sha256=tGbluCbrehTCqBu8mtGDNzby_ieJ2ry8_RH_eC0CQxk,3828
62
11
  tico/passes/__init__.py,sha256=IO6FP_xYbGy0dW0HL26GXD3ouxARaxCK7bz9dn4blPQ,26
63
12
  tico/passes/cast_aten_where_arg_type.py,sha256=QOaet85z23ad3s9c8md5r11q9dEw4-lfJqlpM7aiBic,7228
64
13
  tico/passes/cast_clamp_mixed_type_args.py,sha256=m3_HpXLywWmWERfE5lM5PgvjBod7C4BWu_Q-TkRyO8k,5387
65
- tico/passes/cast_mixed_type_args.py,sha256=oXC0nDRnx4DJvmkzSVFVGqa4d2ICZvSarkXPgi9vTig,7621
14
+ tico/passes/cast_mixed_type_args.py,sha256=Wd3sCDKJZwdb8GiMWKljm8X5CLFRd8eCz-dmWks15Hc,7763
66
15
  tico/passes/const_prop_pass.py,sha256=hDxGgJNiRjsgOArdaoeAOcOOA-nKBvA1W1zcMZQA5yg,11531
67
16
  tico/passes/convert_conv1d_to_conv2d.py,sha256=ktS3h158y9rg1sQiW8BZZbflV_dk_UdjBPQnuiOKyzg,5303
17
+ tico/passes/convert_expand_to_slice_cat.py,sha256=Fa6b5pqiQNq-QBiEC0e3WkQYf2UEhMgzSTIt4hlzdjc,5470
68
18
  tico/passes/convert_layout_op_to_reshape.py,sha256=sCAFjkmVtiKjvDQSAgnjNBHl3_hWXJZElGDXQiTH-7s,2963
19
+ tico/passes/convert_matmul_to_linear.py,sha256=WATtsHk_GzsU0HYovc3UMyEj8ApF2qLbInAsNlQj0nE,9759
69
20
  tico/passes/convert_repeat_to_expand_copy.py,sha256=JbtFTmWyfJS2SSd_higP1IEhQeh7wHdN5dmTbbiFVCs,3237
70
- tico/passes/convert_to_relu6.py,sha256=1BJpUwUb6Zli_1y3eyJQo7dg9B1xvZ7sYjMbvEQsFJM,6442
21
+ tico/passes/convert_to_relu6.py,sha256=9B6OLyF72tMvD-ugV7aBx6l1szwERufNBUaX34pkZ4c,6445
71
22
  tico/passes/decompose_addmm.py,sha256=KjnpZjSuA0uvNmKaTN_EMwobcOi3CAB81buORzTDxro,3979
72
23
  tico/passes/decompose_batch_norm.py,sha256=06LAxhSmpTxFZJmUelwB3I_GipNWrLoM7PfM6ZkxOZY,6512
73
24
  tico/passes/decompose_fake_quantize.py,sha256=736srs8SM8K_mLR0WG10LVMMLRkYkBM9OF0k1GCkAW0,5218
74
- tico/passes/decompose_fake_quantize_tensor_qparams.py,sha256=k9MJhMVABFNF6lXgEum1fJyGpdQwVRKxWOYhkMR2M7c,13915
25
+ tico/passes/decompose_fake_quantize_tensor_qparams.py,sha256=CalubQ1OYC2l59_TNPOcAnl4VxvameYWIQcy57Z6yjI,13985
75
26
  tico/passes/decompose_group_norm.py,sha256=6BqvYtMTPzeIgp8cPA8OFMwEBvb7odcg04IUgwtp7NQ,10120
76
27
  tico/passes/decompose_grouped_conv2d.py,sha256=n2qv320akL1ju33ucZ6lU1cKEAaj0NI8YZ5CrUnkRLM,8512
77
28
  tico/passes/decompose_slice_scatter.py,sha256=xqMHKhW2595YoAeubKZ4jRhYW4TQ09EXPgLNgODqXG8,5653
@@ -85,20 +36,121 @@ tico/passes/lower_pow2_to_mul.py,sha256=nfJXa9ZTZMiLg6ownSyvkM4KF2z9tZW34Q3CCWI_
85
36
  tico/passes/lower_to_resize_nearest_neighbor.py,sha256=gbrvTmWSXDPdJ1XJtWGI5mo-uEiauXEG3ELwbKYVPLI,9013
86
37
  tico/passes/lower_to_slice.py,sha256=OzlFzK3lBYyYwC3WThsWd94Ob4JINIJF8UaLAtnumzU,7262
87
38
  tico/passes/merge_consecutive_cat.py,sha256=ayZNLDA1DFM7Fxxi2Dmk1CujkgUuaVCH1rhQgLrvvOQ,2701
88
- tico/passes/ops.py,sha256=cSj3Sk2x2cOE9b8oU5pmSa_rHr-iX2lORzu3N_UHMSQ,2967
39
+ tico/passes/ops.py,sha256=7IGRnxIJl-nLO4huVk_mgBfD4VGUNQRyeuM8K1L2u1U,2934
89
40
  tico/passes/remove_nop.py,sha256=Hf91p_EJAOC6DyWNthash0_UWtEcNc_M7znamQfYQ5Y,2686
90
- tico/passes/remove_redundant_assert_nodes.py,sha256=IONd3xBy6I8tH6_Y1eN3_eCHH7WTC8soBgjXzOju9cQ,1612
91
- tico/passes/remove_redundant_expand.py,sha256=auyqIoQT4HJhiJfuUe6BrEtUhvz221ohnIK5EuszWeg,2112
41
+ tico/passes/remove_redundant_assert_nodes.py,sha256=rYbTCyuNIXIC-2NreHKBVCuaSUkEQvB_iSRzb26P_EA,1821
42
+ tico/passes/remove_redundant_expand.py,sha256=8yhlMnbog-T9gIK6LKIU0tu0__gfhZzO36g_fJIVVP4,2162
92
43
  tico/passes/remove_redundant_permute.py,sha256=98UsaZzFZdQzEEAR1pIzRisAf6hgfXLa88aayjalt3E,4292
93
44
  tico/passes/remove_redundant_reshape.py,sha256=aeep6LDvY58GEuOrWckkEXnJa6wkkbiJ9FrimT9F3-s,16384
94
45
  tico/passes/remove_redundant_slice.py,sha256=Iv7TbB39fktNb4eq0VdyZnwxL_VsKLJ90diMmaf3kZk,2087
95
46
  tico/passes/remove_redundant_to_copy.py,sha256=tKy4XKkO2l33fMxVPQ_iFkUeFvP15kbPvzPPhT_g0c8,3292
96
47
  tico/passes/restore_linear.py,sha256=xGJdNb-1CrkOKS9BnLbcblkZc6P2vVjKIi-7lRcs7Bk,4111
97
48
  tico/passes/segment_index_select.py,sha256=VVCKNLtYRkr9n5lGnlzEuQsQ0WVxEYXGchFrDnB1C40,5189
49
+ tico/quantization/__init__.py,sha256=xYeYEQWeJ6Le7vZVxV208XtukAW68nNQqX9bbjCrBaM,109
50
+ tico/quantization/public_interface.py,sha256=YlE4re0HkkEDcq8IeXhPJUtveLIiDjAlChLvS_-254k,4153
51
+ tico/quantization/quantizer.py,sha256=FYNiqUqoH9vz1bda0I6yuKqJi2KdIfLEBd4EgeC-_t4,2357
52
+ tico/quantization/quantizer_registry.py,sha256=MxVE1_hj1p8FjdAqkLzUhdez3Cqc-V25k6XKOcTkei0,2414
53
+ tico/quantization/algorithm/__init__.py,sha256=IO6FP_xYbGy0dW0HL26GXD3ouxARaxCK7bz9dn4blPQ,26
54
+ tico/quantization/algorithm/gptq/__init__.py,sha256=IO6FP_xYbGy0dW0HL26GXD3ouxARaxCK7bz9dn4blPQ,26
55
+ tico/quantization/algorithm/gptq/gptq.py,sha256=x7wM9_OgOrcs6WmkVCDLn2bF7YuUAR_k6vLG2l593sk,6235
56
+ tico/quantization/algorithm/gptq/quant.py,sha256=Rl4wAOCmlE0U09BtNCDbccaSNohRHCNLwFi3zCqZfNo,5127
57
+ tico/quantization/algorithm/gptq/quantizer.py,sha256=OvR9sHgosGYofwYcDhye84FBl55cNY7-UlfBt9gXbDY,11734
58
+ tico/quantization/algorithm/gptq/utils.py,sha256=leGKayf-xbSjVwwAGTA5RsxUKrhDiklOQdlsLifjdrs,1811
59
+ tico/quantization/algorithm/pt2e/__init__.py,sha256=IO6FP_xYbGy0dW0HL26GXD3ouxARaxCK7bz9dn4blPQ,26
60
+ tico/quantization/algorithm/pt2e/quantizer.py,sha256=9K8SGwxi67DA8Hdwc_25ResJiSGLIMDkNyAwtQu3PGM,2673
61
+ tico/quantization/algorithm/pt2e/utils.py,sha256=U9kf3J-1IJdlmFr5EQRcgWKX7AI8Z-tt_H0edKQ0ctQ,4784
62
+ tico/quantization/algorithm/pt2e/annotation/__init__.py,sha256=IO6FP_xYbGy0dW0HL26GXD3ouxARaxCK7bz9dn4blPQ,26
63
+ tico/quantization/algorithm/pt2e/annotation/annotator.py,sha256=_elaNHBM_7IZdMlhqH_BElJpNijV6AHQU-1MeK8KQ9g,7464
64
+ tico/quantization/algorithm/pt2e/annotation/config.py,sha256=8x6YvixIogXh_PwqhKNb3L6lJyBDFQ_OHotonG_hWD0,977
65
+ tico/quantization/algorithm/pt2e/annotation/spec.py,sha256=76cEij6xFNp51ZO5DOeYbRyWonhgHJO8mi47Q43ll8s,1415
66
+ tico/quantization/algorithm/pt2e/annotation/utils.py,sha256=W6_p_EWPDKbvzfqktZfMm1NqiQeeQME5Pr6bzRPqXuo,3148
67
+ tico/quantization/algorithm/pt2e/annotation/op/__init__.py,sha256=IlBNBqXeopMqHRkR-TPiuN_IkwXaSMXlSVO_9vKceB0,834
68
+ tico/quantization/algorithm/pt2e/annotation/op/adaptive_avg_pool2d.py,sha256=ThDTMHFmGp-sFc4YMMTvNwrZtt2R7RNGaaWxVSZV-Yo,2408
69
+ tico/quantization/algorithm/pt2e/annotation/op/add.py,sha256=-glHoBh49e6RM6W1L3raVjtZ_fLhsmOuzHsoBJUFcY8,2153
70
+ tico/quantization/algorithm/pt2e/annotation/op/conv2d.py,sha256=hYE0R6ZrFwp4GABnsFac_F-gPgfG22G56S8fhSAnorM,3631
71
+ tico/quantization/algorithm/pt2e/annotation/op/div.py,sha256=KKh5C30kCpMIpLV94CE7R8yh51K0hb7t4Owa9yeZ4TU,2135
72
+ tico/quantization/algorithm/pt2e/annotation/op/linear.py,sha256=fOr8Ow0Y61xVQg4IZYSmYFG7CT28UAs1dXP0YQ1498M,3430
73
+ tico/quantization/algorithm/pt2e/annotation/op/mean.py,sha256=ZLfCh3wFftV4gBYe5FeCo0tC8JOZ-5Hde64Sw2gfU_8,1959
74
+ tico/quantization/algorithm/pt2e/annotation/op/mul.py,sha256=_R9dngri5wLsxqeLLeNYaJnTcuPQXtXBkfl23to_0Zs,2150
75
+ tico/quantization/algorithm/pt2e/annotation/op/relu6.py,sha256=1Us4pBf2BSD3ICCWZPNGiBmaiRn_vnKopV_To7bpL7A,1956
76
+ tico/quantization/algorithm/pt2e/annotation/op/rsqrt.py,sha256=Y2Z0mB-8Gk9tkvR4wNGnY0sM6q19YidZd5idbN8ZXTo,1966
77
+ tico/quantization/algorithm/pt2e/annotation/op/sub.py,sha256=u4hg47dVCOCUqJbZV0GFZ5EKDUNu7NV1TMhxUnW_1vA,2135
78
+ tico/quantization/algorithm/pt2e/transformation/__init__.py,sha256=IO6FP_xYbGy0dW0HL26GXD3ouxARaxCK7bz9dn4blPQ,26
79
+ tico/quantization/algorithm/pt2e/transformation/convert_scalars_to_attrs.py,sha256=Idtoya2RcGKlgUJgC9WqNz0jH3gf6ViuPmsD9ySHbls,2253
80
+ tico/quantization/algorithm/smoothquant/__init__.py,sha256=IO6FP_xYbGy0dW0HL26GXD3ouxARaxCK7bz9dn4blPQ,26
81
+ tico/quantization/algorithm/smoothquant/observer.py,sha256=OWBKQ3ox6PqeqgevxOjpXvb7uApoqE4YbUBelGhVSN8,3435
82
+ tico/quantization/algorithm/smoothquant/quantizer.py,sha256=pvf6HwW7VzyNFhfEDGwG-YPdPaEoGQfo4nfaeS9Qg_E,3686
83
+ tico/quantization/algorithm/smoothquant/smooth_quant.py,sha256=fxCy4m-BsSjraciSVPFlPhgsOT46RjrOgczQGb7B9TA,11561
84
+ tico/quantization/config/__init__.py,sha256=IO6FP_xYbGy0dW0HL26GXD3ouxARaxCK7bz9dn4blPQ,26
85
+ tico/quantization/config/base.py,sha256=xg_HCDSuMgYvMd6ENZe4Sm2SYJgMaCBj4cmqaz_lhAs,816
86
+ tico/quantization/config/gptq.py,sha256=O3NEPYMJdgMJQB--blw3WI8FGbK9nDlSqSo2ZHvNwb8,960
87
+ tico/quantization/config/pt2e.py,sha256=vSfULljHEnypadUyo-zjVoPSbP8Y2eDzSD_kRTcv6bk,837
88
+ tico/quantization/config/ptq.py,sha256=zbLQbuiEpO-qlDgyUYTZ3hkVxr3boq5TX0n0QTBHic4,4540
89
+ tico/quantization/config/smoothquant.py,sha256=ntrqjYf6EbO4AE2IA5zn1A_f0AQgU6UqTtVkw6IiUsw,1401
90
+ tico/quantization/evaluation/__init__.py,sha256=IO6FP_xYbGy0dW0HL26GXD3ouxARaxCK7bz9dn4blPQ,26
91
+ tico/quantization/evaluation/backend.py,sha256=CZL9rZOA0t8cH7PHp6u9l7dGqWNvTj9bKOvwo0PVul0,692
92
+ tico/quantization/evaluation/evaluate.py,sha256=_-8S50FkuwijHUPGiBDVqZbWq6cHDlngziVQ_JREZZ4,7772
93
+ tico/quantization/evaluation/metric.py,sha256=t9M058dOQ8iy_2PcrbNMAebBNJs8TU8USZw_nbi2iWI,5488
94
+ tico/quantization/evaluation/utils.py,sha256=n4Im3FiIVG3oVjB-wtIwV-0GUs24E6zS6Vc_cBnN5QQ,5912
95
+ tico/quantization/evaluation/executor/__init__.py,sha256=IO6FP_xYbGy0dW0HL26GXD3ouxARaxCK7bz9dn4blPQ,26
96
+ tico/quantization/evaluation/executor/backend_executor.py,sha256=3kLu3_rcsreA_NK42yRgRgubPtZmVp7QCRvaqLNw10E,1522
97
+ tico/quantization/evaluation/executor/circle_executor.py,sha256=bFX0uHa-6yUJ8mMk237qwLyxhxTuhkw7dBHIPgZn-ao,2723
98
+ tico/quantization/evaluation/executor/triv24_executor.py,sha256=Pfd6TpGIypx797LVz5Z3gObnw07Ht28EOd-m54bY9sI,5124
99
+ tico/quantization/passes/__init__.py,sha256=IO6FP_xYbGy0dW0HL26GXD3ouxARaxCK7bz9dn4blPQ,26
100
+ tico/quantization/passes/fold_quant_ops.py,sha256=bRHYSeHdSTaz3261skIkK5Aso2Lbv7ql0zFI9ICmbDY,7028
101
+ tico/quantization/passes/insert_quantize_on_dtype_mismatch.py,sha256=AtfK9kDnWyIWyVlwD4a0EEx_-5rW5Hmo5DuKZ-HyXH0,15069
102
+ tico/quantization/passes/propagate_qparam_backward.py,sha256=TGtyW0Z2qOTgVIasBdGRgbwH31YYd6ek7OvLTmCV614,3118
103
+ tico/quantization/passes/propagate_qparam_forward.py,sha256=RhUHGCR2RpBO5KYkQ7Z8U5u7HEwDq2wdKHLKAJCi-5c,5138
104
+ tico/quantization/passes/quantize_bias.py,sha256=T7YxJ70N0tSK0FF9VJZA5iP0sHdnnsX9GX4AT4JDFSk,4325
105
+ tico/quantization/passes/remove_weight_dequant_op.py,sha256=gI1MtrHazWpdNfys7f1ngTTWplzluF7SA-uX0HMR5Mc,6592
106
+ tico/quantization/wrapq/__init__.py,sha256=IO6FP_xYbGy0dW0HL26GXD3ouxARaxCK7bz9dn4blPQ,26
107
+ tico/quantization/wrapq/dtypes.py,sha256=xfCBtq6mQmUYRwsoFgII6gvRl1raQi0Inj9pznDuKwQ,2236
108
+ tico/quantization/wrapq/mode.py,sha256=lT-T8vIv8YWcwrjT7xXVhOw1g7aoAdh_3PWB-ptPKaI,1052
109
+ tico/quantization/wrapq/qscheme.py,sha256=uwhv7bCxOOXB3I-IKlRyr_u4eXOq48uIqGy4TLDqGxY,1301
110
+ tico/quantization/wrapq/quantizer.py,sha256=J1nH5FfJ_sKOAKmYjHAZ9zgnitPJ7fcOhO09E2CBIbw,6577
111
+ tico/quantization/wrapq/examples/__init__.py,sha256=IO6FP_xYbGy0dW0HL26GXD3ouxARaxCK7bz9dn4blPQ,26
112
+ tico/quantization/wrapq/examples/compare_ppl.py,sha256=iJJEWC7IJpfBHwX0MEiKXBTbxqLHsNQ3Bq9Hh0R57lg,7737
113
+ tico/quantization/wrapq/examples/debug_quant_outputs.py,sha256=kVp_nf9tr4wM5w18ILtYxVueY5bjYl_Mb4v0Em_M3Aw,7665
114
+ tico/quantization/wrapq/examples/quantize_linear.py,sha256=bPLvt6LmHBkGj93rzH9dBhFB7O99pIeeves6dl75BrU,4474
115
+ tico/quantization/wrapq/examples/quantize_llama_attn.py,sha256=KNi51BJx1nneEbJlGIEhfFiNxCSFLtB1IbbTmaFdc0U,4338
116
+ tico/quantization/wrapq/examples/quantize_llama_decoder_layer.py,sha256=xqDO41x5oxXZ4ZEswdJo6tezkHSpiIZgmP5DOiOLkiI,5769
117
+ tico/quantization/wrapq/examples/quantize_llama_mlp.py,sha256=uN0Qus4qofNjF_fm8sovBXteAPpObrv9xLb-a4ig-2o,4053
118
+ tico/quantization/wrapq/examples/quantize_with_gptq.py,sha256=it-GtXl6TJI7A7-dLaCsoEZCooSiQ2TuU_4IyWL9aUk,9666
119
+ tico/quantization/wrapq/observers/__init__.py,sha256=IO6FP_xYbGy0dW0HL26GXD3ouxARaxCK7bz9dn4blPQ,26
120
+ tico/quantization/wrapq/observers/affine_base.py,sha256=5lSpexRgL940QnKRuDJEn1yhVDJdx0KN0acHtGqdsNo,4605
121
+ tico/quantization/wrapq/observers/base.py,sha256=O7esmH5MXQYg457kQCcIDxOm6OROhcojZVuWipJK304,3258
122
+ tico/quantization/wrapq/observers/ema.py,sha256=CKQzqmXLa6y8h8jQK5VBDSoQgt4Wk4cH6hMBCeHlLXU,2048
123
+ tico/quantization/wrapq/observers/identity.py,sha256=so-alowR25ZI-R72_rTGtoJ_F3VSk60MRJnkA9isXZU,2580
124
+ tico/quantization/wrapq/observers/minmax.py,sha256=Z5lDb1X0eAEqhGTAw8CSl_TM2qeQ279Zwmtcr5k004Y,1477
125
+ tico/quantization/wrapq/observers/mx.py,sha256=ITFQnI3hmwm1W2LlOzc42ZmmwO6OmkBTgd-7Zula7Ho,1852
126
+ tico/quantization/wrapq/utils/__init__.py,sha256=IO6FP_xYbGy0dW0HL26GXD3ouxARaxCK7bz9dn4blPQ,26
127
+ tico/quantization/wrapq/utils/introspection.py,sha256=pt3rT1dLJXCegxatBbTnQPO6R5vX-6qfwD52i8F1c0A,5956
128
+ tico/quantization/wrapq/utils/metrics.py,sha256=ZnEQOd9fzDDxdXl32PFl3jMQv5ycz9nFTD5ZY-jAZvM,4526
129
+ tico/quantization/wrapq/utils/reduce_utils.py,sha256=3kWawLB91EcvvHlCrNqqfZF7tpgr22htBSA049mKw_4,973
130
+ tico/quantization/wrapq/wrappers/__init__.py,sha256=IO6FP_xYbGy0dW0HL26GXD3ouxARaxCK7bz9dn4blPQ,26
131
+ tico/quantization/wrapq/wrappers/ptq_wrapper.py,sha256=6zcVZ-vVhPCvFHQw6UlN7iizElrIHNkpAraeMaA0DDU,2388
132
+ tico/quantization/wrapq/wrappers/quant_elementwise.py,sha256=trchhUknmZTcoCwVA62uzBP_mWuCjjuZjF0jb7TZpfA,3550
133
+ tico/quantization/wrapq/wrappers/quant_module_base.py,sha256=SgyUlFYxDx39CAvcN2q4lsTedbEVPmetIigrllmvvD4,5915
134
+ tico/quantization/wrapq/wrappers/registry.py,sha256=QJcOD9gEGB_DJowdTTqemcRDcYxQa4tHv2CDFgZDnA0,5168
135
+ tico/quantization/wrapq/wrappers/fairseq/__init__.py,sha256=K4R7rbxHosx9LBLk2WKlL8gFuZTYTws41TW47AsSUPM,149
136
+ tico/quantization/wrapq/wrappers/fairseq/decoder_export_single_step.py,sha256=d7ZieKiSbZ2ffkaLYMg2PJl1OyAxkKjB3OHKB4poxJs,9796
137
+ tico/quantization/wrapq/wrappers/fairseq/quant_decoder.py,sha256=JTCUDNEHYU5iOcbC_2mpuhvEoZqzTNIW3gPUZE1J7FE,17810
138
+ tico/quantization/wrapq/wrappers/fairseq/quant_decoder_layer.py,sha256=PdtpzLHjGt2IyyHQBiah1tQfw-eUsGZwtpoxQMX2PcM,20340
139
+ tico/quantization/wrapq/wrappers/fairseq/quant_encoder.py,sha256=UtEnIr7u-q7_1ieh8-cA0RK69k89qaF8xq26qryYifg,13742
140
+ tico/quantization/wrapq/wrappers/fairseq/quant_encoder_layer.py,sha256=Ei3siiJDL_AJS3rXiwSJShzY8IKv9BLdenuqmyELanc,6336
141
+ tico/quantization/wrapq/wrappers/fairseq/quant_mha.py,sha256=scjlDbyVhlP6yqd9eDzIZumJHHT9dvIOAR1Lih5VuDk,15497
142
+ tico/quantization/wrapq/wrappers/llama/__init__.py,sha256=IO6FP_xYbGy0dW0HL26GXD3ouxARaxCK7bz9dn4blPQ,26
143
+ tico/quantization/wrapq/wrappers/llama/quant_attn.py,sha256=Fy_JchMjU2eFtnmT2kF-ajEeNrySLbKDZUe7RtwuHWM,10338
144
+ tico/quantization/wrapq/wrappers/llama/quant_decoder_layer.py,sha256=TY6nxUhPnvIscQgNhYIRgoG2pJUQoK_BgOx2pIbq2L0,7580
145
+ tico/quantization/wrapq/wrappers/llama/quant_mlp.py,sha256=I0EUJPnBOvaTnjT1Jk4N21xBU5FT7u0tkERKZ0orKf0,3497
146
+ tico/quantization/wrapq/wrappers/nn/__init__.py,sha256=IO6FP_xYbGy0dW0HL26GXD3ouxARaxCK7bz9dn4blPQ,26
147
+ tico/quantization/wrapq/wrappers/nn/quant_layernorm.py,sha256=UoWWQaDqBY_bAeWRRsNl19LO331KQQLpZP9ACE-HyiU,6823
148
+ tico/quantization/wrapq/wrappers/nn/quant_linear.py,sha256=y3exJX_Og8HIi0VdpvX4M9m8Voq0e0ndiX8G6DZflT8,2165
149
+ tico/quantization/wrapq/wrappers/nn/quant_silu.py,sha256=jRbM2lCFjqAqQj3Gur4eiHs1eCoNtjejMd16VBhNZt8,1901
98
150
  tico/serialize/__init__.py,sha256=IO6FP_xYbGy0dW0HL26GXD3ouxARaxCK7bz9dn4blPQ,26
99
151
  tico/serialize/circle_graph.py,sha256=qvyul_HULoz7B_6RFKQ8s9RjEvMgPq-ynMVkZe8aqE4,12034
100
152
  tico/serialize/circle_mapping.py,sha256=c__AIHPi23lPugNJFolgMAKrw8j7gEeMaUQ1LAMSFnY,8542
101
- tico/serialize/circle_serializer.py,sha256=BGK9tltKkoL1h4rcrJUgDJIGlHst7aF3cZAKJk_GPWc,10950
153
+ tico/serialize/circle_serializer.py,sha256=tw2xwm8tRjaFzZdaaS8Fa8Jfqz0r7Gn8L6D66m0QA0g,11228
102
154
  tico/serialize/pack.py,sha256=5HZ9kX3x6C6CyT_FWS6FRmvx_P7Dx21orjUNQxJ2xlo,1297
103
155
  tico/serialize/quant_param.py,sha256=6nbGKdqwMI9Cx9BLXJ9A9JU4qb770S8vTM1vCZRX3Eo,1342
104
156
  tico/serialize/operators/__init__.py,sha256=LIvXsNnN4yUCS2CGNQ5XW8p8oXDTV_WHWuOEAw1t6WY,990
@@ -115,7 +167,7 @@ tico/serialize/operators/op_bmm.py,sha256=AELjHC9ISFPIzEEl5Kr1s4GSNLZElwZmVZJWkE
115
167
  tico/serialize/operators/op_cat.py,sha256=XDYOh0XAyrM0TlxVm6Sa0OFFGrKk7aSDcGXC-hYX4gs,2204
116
168
  tico/serialize/operators/op_clamp.py,sha256=RRQVrzayDfN3PioCVJqa_yYOtcYwb5HHwkMe4E_YPmE,4408
117
169
  tico/serialize/operators/op_clone.py,sha256=vzDYJ8TS3tc2BAyd_z8nt5VqT1inpymSseMEhd9dva0,2394
118
- tico/serialize/operators/op_constant_pad_nd.py,sha256=OpP4AP-d1IFcWZolNa-o9ZxzXJQkMdG9WQ66soX3s-E,2675
170
+ tico/serialize/operators/op_constant_pad_nd.py,sha256=nGWqYWNbj2E9ChQuoHsN-d8AO7UyVexnPil7qTqWZp8,3444
119
171
  tico/serialize/operators/op_conv2d.py,sha256=1_vouWXaF51gDLYg8z5Zlup0Tecq_ggAzvguiHzFffw,6828
120
172
  tico/serialize/operators/op_copy.py,sha256=boXHfl0bcvdBVl0tpzPMA_KBonh80vVqv61N3H5-PRU,6941
121
173
  tico/serialize/operators/op_cos.py,sha256=N12bNyuTQIxRnD0eHRPdFVzRQPMy1NFM4iM8oQ4lYzw,2034
@@ -136,6 +188,7 @@ tico/serialize/operators/op_gt.py,sha256=JAVbtuAUNLYhtJycJJCEkYo9QAvmiK4lTMdw5yH
136
188
  tico/serialize/operators/op_index.py,sha256=iDW2YSeUS_kLiWEaQ_MjrYpxZAFBbm7_GU_2B4SRe6c,3033
137
189
  tico/serialize/operators/op_index_select.py,sha256=O2MXXWGnCgS8QG3DrWKdYKbl88VBVscmOuoGcgBEf_0,2522
138
190
  tico/serialize/operators/op_instance_norm.py,sha256=5QvLefa74BrAPsTNYsi4Y7IB8d1wer4gtWantKo2nlQ,2940
191
+ tico/serialize/operators/op_le.py,sha256=Ok0i973iiI_xzuTPL_0XndowcDta7VgBv-dacis9JRQ,1889
139
192
  tico/serialize/operators/op_leaky_relu.py,sha256=UJPoL7kAIp6nAjyDdda_afdOcMLHme7NE77b2y76exc,2160
140
193
  tico/serialize/operators/op_linear.py,sha256=bw_mn2CiJy8CbpPevOV0PMPh0ZMWKAybLZ9cnIKJSsk,2527
141
194
  tico/serialize/operators/op_log.py,sha256=1TKvH2lttdAHE0P84vcxmOvGBBRUs6D71Jrei7SdZHE,1827
@@ -148,7 +201,7 @@ tico/serialize/operators/op_max_pool2d_with_indices.py,sha256=i4iKZ262ytDKUt7bG9
148
201
  tico/serialize/operators/op_maximum.py,sha256=JjBr6gWEnuakLuk1_feotTHfIIm3s5YqWmqhUMpSPI0,1873
149
202
  tico/serialize/operators/op_mean.py,sha256=rVQZOxCJkHFY4kQBAS1HVK0HkcqxgkSy6zvEDLX_WYQ,2267
150
203
  tico/serialize/operators/op_minimum.py,sha256=fASjQVcTPCin02umQwFPdq2ss-Ve7S5A33J3QmmQ_wQ,1873
151
- tico/serialize/operators/op_mm.py,sha256=XcH15gjbP5aAl9rBKFQsVvN2GE4127zNH6_0v81_ExA,6855
204
+ tico/serialize/operators/op_mm.py,sha256=VJJRLLYn9zAMcR2rsb86o809edyRJ7CW31waAL0ZXeI,2244
152
205
  tico/serialize/operators/op_mul.py,sha256=si_VdYNyFbULb50SnXHOINh0dZQ2PhRB6Fzl54ZBj5Y,3049
153
206
  tico/serialize/operators/op_ne.py,sha256=xa2WJL2tYksxw7fIJic_D9ltLEseyCII8HpR32Oq8Do,1900
154
207
  tico/serialize/operators/op_neg.py,sha256=fkI3ExyD3QF-qtxBcXqQutPNDbNL8g7lZYE7CyD2wLk,2046
@@ -162,6 +215,7 @@ tico/serialize/operators/op_relu6.py,sha256=ZWqEolfAKjOdUC1ZCg0iuu4dBhkJRxVYR2tU
162
215
  tico/serialize/operators/op_repeat.py,sha256=VrRxD31pT3hRGH-5n6ia3PJBXh_u0GvIl1hZZYFrKTQ,4507
163
216
  tico/serialize/operators/op_reshape.py,sha256=6wErQpmDX9mAmfJRCTg_cg1uOdJZqHm8Nux8dNI53Vg,2559
164
217
  tico/serialize/operators/op_resize_nearest_neighbor.py,sha256=dXaAnZ5M_ko_tH-HolxNpHFXkDUQ8x45myskojP5XZE,2771
218
+ tico/serialize/operators/op_rmsnorm.py,sha256=vkJgg2YtTY9pjceTLh6gTZ-MN3EltnlEyAP5gVc5SiU,2216
165
219
  tico/serialize/operators/op_round.py,sha256=pe6w_TB4xGLu0iPv4Qo0a0fIkY9DgCgXk5127TWt8pE,1837
166
220
  tico/serialize/operators/op_rsqrt.py,sha256=yl2vd8InjhLPbE0vHIrEera6DVXlY9dLgO7yZZCH3RI,1837
167
221
  tico/serialize/operators/op_scalar_tensor.py,sha256=vDWxi4hXwyDJJhvfMR_QrBInw_No3WeU_M4gtfZqmbo,1928
@@ -182,11 +236,13 @@ tico/serialize/operators/op_unsqueeze.py,sha256=ZHhfVXSWEiwb2VDYX5uhxbGQyzZjKT7C
182
236
  tico/serialize/operators/op_view.py,sha256=xxE-GvTJ1UpcHst5KXYz3qKY-eJQvXKKrSZiA2O7E40,2593
183
237
  tico/serialize/operators/op_where.py,sha256=doE81GSwygrPBm3JIfN9w7kKXxeIYKxgk0eoY22QIcg,2845
184
238
  tico/serialize/operators/utils.py,sha256=lXGpEJW1h8U_-gfc6EWjvvSiq3yJ9P-v1v3EMRT_pSk,2954
239
+ tico/serialize/operators/adapters/__init__.py,sha256=IO6FP_xYbGy0dW0HL26GXD3ouxARaxCK7bz9dn4blPQ,26
240
+ tico/serialize/operators/adapters/llama_rmsnorm.py,sha256=6t3dhfNpR03eIjsmhymF2JKd6lCf7PvInqMf77c_BOE,1139
185
241
  tico/utils/__init__.py,sha256=IO6FP_xYbGy0dW0HL26GXD3ouxARaxCK7bz9dn4blPQ,26
186
- tico/utils/convert.py,sha256=GgZwZtiqFzTdszfUQO0vcX39lKjs97gYwZ-Tiw_4Bbo,13222
242
+ tico/utils/convert.py,sha256=wdamhQQPyiipL9vb_E_txDR9kmUyXmevYuYXcTeTAWE,13752
187
243
  tico/utils/define.py,sha256=Ypgp7YffM4pgPl4Zh6TmogSn1OxGBMRw_e09qYGflZk,1467
188
244
  tico/utils/diff_graph.py,sha256=_eDGGPDPYQD4b--MXX0DLoVgSt_wLfNPt47UlolLLR4,5272
189
- tico/utils/dtype.py,sha256=4-k1iUaHivFFXAQuDs7up6fXt5y4FqldGNokAPa3kic,603
245
+ tico/utils/dtype.py,sha256=L5Qb7qgbt0eQ5frUTvHYrRtTJb1dg4-JNEopcxCNg1U,1389
190
246
  tico/utils/errors.py,sha256=f3csJjgbXG9W1aHhqEcou008Aor19W57X8oT5Hx8w1M,954
191
247
  tico/utils/graph.py,sha256=jD6m58m5JmN9mPfaROA9CW3406iJxmnukke00AuwRqI,9131
192
248
  tico/utils/installed_packages.py,sha256=J0FTwnkCGs0MxRWoCMYAqiwH7Z0GWFDLV--x-IndSp4,1017
@@ -196,19 +252,20 @@ tico/utils/padding.py,sha256=qKke-dJeeLHiRaePjDS66txrGyiYuipLVQeqLYad8uk,3349
196
252
  tico/utils/passes.py,sha256=kGmDe__5cPaO6i5EDAoXSVe6yXEoX9hAny4ROb3ZEmQ,2409
197
253
  tico/utils/pytree_utils.py,sha256=jrk3N6X6LiUnBCX_gM1K9nywbVAJBVnszlTAgeIeDUc,5219
198
254
  tico/utils/record_input.py,sha256=QN-8D71G_WAX3QQQ5CIwbEfFJZTQ3CvL4wCMiVddua4,3894
199
- tico/utils/register_custom_op.py,sha256=3-Yl6iYmx1qQA2igNHt4hYhQhQMkdPb7gF50LIY8yvc,27350
255
+ tico/utils/register_custom_op.py,sha256=895SKZeXQzolK-mPG38cQC37Be76xUV_Ujw1k1ts9_w,28218
200
256
  tico/utils/serialize.py,sha256=mEuusEzi82WFsz3AkowgWwxSLeo50JDxyOj6yYDQhEI,1914
257
+ tico/utils/signature.py,sha256=3OOwyVJzfcGcgC0LiVmOcUIzfqSk27qoNHhkoCI7zPY,9530
201
258
  tico/utils/torch_compat.py,sha256=oc6PztVsXdHcQ3iaVR90wLLxrGaj6zFHWZ8K9rRS6q8,1795
202
259
  tico/utils/trace_decorators.py,sha256=ddLIiKQfSaQrxgF1kNpwjFTQnXENzeSfcr1kuAW4jGI,3221
203
- tico/utils/utils.py,sha256=A5p3iAAxRGDsZJh4ybp-Qo3MX3vk5RrmSY-R3rXqVeI,12976
204
- tico/utils/validate_args_kwargs.py,sha256=CRj_SXMUUn6onsl8XLAt-zPZCFxR4C0XOCoaad_ZD4I,26689
260
+ tico/utils/utils.py,sha256=aySftYnNTsqVAMcGs_3uX3-hz577a2cj4p1aVV-1XeQ,12747
261
+ tico/utils/validate_args_kwargs.py,sha256=RhBOHShi7DRHpCV_j4UcACk6wz4b1SUTWKj494_6zCQ,27439
205
262
  tico/utils/mx/__init__.py,sha256=IO6FP_xYbGy0dW0HL26GXD3ouxARaxCK7bz9dn4blPQ,26
206
263
  tico/utils/mx/elemwise_ops.py,sha256=V6glyAHsVR1joqpsgnNytatCD_ew92xNWZ19UFDoMTA,10281
207
264
  tico/utils/mx/formats.py,sha256=uzNWyu-1onUlwQfX5cZ6fZSUfHMRqorper7_T1k3jfk,3404
208
265
  tico/utils/mx/mx_ops.py,sha256=RcfUTYVi-wilGB2sC35OeARdwDqnixv7dG5iyZ-fQT8,8555
209
- tico-0.1.0.dev250803.dist-info/LICENSE,sha256=kp4JLII7bzRhPb0CPD5XTDZMh22BQ7h3k3B7t8TiSbw,12644
210
- tico-0.1.0.dev250803.dist-info/METADATA,sha256=PbC0PJGKODwG5WTHFMH4D--yJifDsRdmqewl12W2q9A,8430
211
- tico-0.1.0.dev250803.dist-info/WHEEL,sha256=G16H4A3IeoQmnOrYV4ueZGKSjhipXx8zc8nu9FGlvMA,92
212
- tico-0.1.0.dev250803.dist-info/entry_points.txt,sha256=kBKYSS_IYrSXmUYevmmepqIVPScq5vF8ulQRu3I_Zf0,59
213
- tico-0.1.0.dev250803.dist-info/top_level.txt,sha256=oqs7UPoNSKZEwqsX8B-KAWdQwfAa7i60pbxW_Jk7P3w,5
214
- tico-0.1.0.dev250803.dist-info/RECORD,,
266
+ tico-0.1.0.dev251106.dist-info/LICENSE,sha256=kp4JLII7bzRhPb0CPD5XTDZMh22BQ7h3k3B7t8TiSbw,12644
267
+ tico-0.1.0.dev251106.dist-info/METADATA,sha256=cH9ZYH9ysDRREwJcSjMV1VkLFpNjoOSxPBChSzab-A0,9730
268
+ tico-0.1.0.dev251106.dist-info/WHEEL,sha256=G16H4A3IeoQmnOrYV4ueZGKSjhipXx8zc8nu9FGlvMA,92
269
+ tico-0.1.0.dev251106.dist-info/entry_points.txt,sha256=kBKYSS_IYrSXmUYevmmepqIVPScq5vF8ulQRu3I_Zf0,59
270
+ tico-0.1.0.dev251106.dist-info/top_level.txt,sha256=oqs7UPoNSKZEwqsX8B-KAWdQwfAa7i60pbxW_Jk7P3w,5
271
+ tico-0.1.0.dev251106.dist-info/RECORD,,
@@ -1,6 +0,0 @@
1
- from tico.experimental.quantization.public_interface import convert, prepare
2
-
3
- __all__ = [
4
- "convert",
5
- "prepare",
6
- ]