tico 0.1.0.dev250609__py3-none-any.whl → 0.1.0.dev250611__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.
- tico/__init__.py +1 -1
- tico/passes/cast_aten_where_arg_type.py +65 -62
- tico/passes/cast_mixed_type_args.py +2 -5
- tico/passes/convert_conv1d_to_conv2d.py +3 -4
- tico/passes/convert_repeat_to_expand_copy.py +5 -9
- tico/passes/decompose_addmm.py +41 -48
- tico/passes/decompose_batch_norm.py +97 -99
- tico/passes/decompose_fake_quantize.py +4 -6
- tico/passes/decompose_fake_quantize_tensor_qparams.py +4 -4
- tico/passes/decompose_group_norm.py +8 -7
- tico/passes/decompose_grouped_conv2d.py +2 -3
- tico/passes/decompose_slice_scatter.py +2 -4
- tico/passes/extract_dtype_kwargs.py +2 -1
- tico/passes/fuse_leading_unsqueeze_reshape.py +107 -0
- tico/passes/fuse_redundant_reshape_to_mean.py +3 -5
- tico/passes/legalize_causal_mask_value.py +2 -7
- tico/passes/legalize_predefined_layout_operators.py +2 -3
- tico/passes/lower_pow2_to_mul.py +5 -7
- tico/passes/lower_to_resize_nearest_neighbor.py +6 -10
- tico/passes/lower_to_slice.py +3 -9
- tico/passes/merge_consecutive_cat.py +2 -4
- tico/passes/remove_nop.py +2 -3
- tico/passes/remove_redundant_assert_nodes.py +2 -1
- tico/passes/remove_redundant_expand.py +5 -9
- tico/passes/remove_redundant_permute.py +6 -5
- tico/passes/remove_redundant_reshape.py +17 -34
- tico/passes/remove_redundant_slice.py +2 -4
- tico/passes/remove_redundant_to_copy.py +2 -4
- tico/passes/segment_index_select.py +2 -4
- tico/serialize/operators/op_where.py +2 -2
- tico/utils/convert.py +2 -0
- tico/utils/utils.py +26 -0
- {tico-0.1.0.dev250609.dist-info → tico-0.1.0.dev250611.dist-info}/METADATA +1 -1
- {tico-0.1.0.dev250609.dist-info → tico-0.1.0.dev250611.dist-info}/RECORD +38 -37
- {tico-0.1.0.dev250609.dist-info → tico-0.1.0.dev250611.dist-info}/LICENSE +0 -0
- {tico-0.1.0.dev250609.dist-info → tico-0.1.0.dev250611.dist-info}/WHEEL +0 -0
- {tico-0.1.0.dev250609.dist-info → tico-0.1.0.dev250611.dist-info}/entry_points.txt +0 -0
- {tico-0.1.0.dev250609.dist-info → tico-0.1.0.dev250611.dist-info}/top_level.txt +0 -0
@@ -52,12 +52,12 @@ class WhereVisitor(NodeVisitor):
|
|
52
52
|
|
53
53
|
result_true_dtype = (
|
54
54
|
extract_torch_dtype(input)
|
55
|
-
if isinstance(input, torch.fx.
|
55
|
+
if isinstance(input, torch.fx.Node)
|
56
56
|
else input.dtype # type: ignore[union-attr]
|
57
57
|
)
|
58
58
|
result_false_dtype = (
|
59
59
|
extract_torch_dtype(other)
|
60
|
-
if isinstance(other, torch.fx.
|
60
|
+
if isinstance(other, torch.fx.Node)
|
61
61
|
else other.dtype # type: ignore[union-attr]
|
62
62
|
)
|
63
63
|
|
tico/utils/convert.py
CHANGED
@@ -51,6 +51,7 @@ from tico.passes.decompose_grouped_conv2d import DecomposeGroupedConv2d
|
|
51
51
|
from tico.passes.decompose_slice_scatter import DecomposeSliceScatter
|
52
52
|
from tico.passes.extract_dtype_kwargs import ExtractDtypeKwargsPass
|
53
53
|
from tico.passes.fill_meta_val import FillMetaVal
|
54
|
+
from tico.passes.fuse_leading_unsqueeze_reshape import FuseLeadingUnsqueezeReshape
|
54
55
|
from tico.passes.fuse_redundant_reshape_to_mean import FuseRedundantReshapeToMean
|
55
56
|
from tico.passes.legalize_causal_mask_value import LegalizeCausalMaskValue
|
56
57
|
from tico.passes.legalize_predefined_layout_operators import (
|
@@ -225,6 +226,7 @@ def convert_exported_module_to_circle(
|
|
225
226
|
LowerPow2ToMul(),
|
226
227
|
ConvertConv1dToConv2d(),
|
227
228
|
*LowerToSlicePasses(),
|
229
|
+
FuseLeadingUnsqueezeReshape(),
|
228
230
|
]
|
229
231
|
)
|
230
232
|
circle_legalize.run(exported_program)
|
tico/utils/utils.py
CHANGED
@@ -331,6 +331,7 @@ def get_quant_dtype(qmin: int, qmax: int):
|
|
331
331
|
"""
|
332
332
|
known_ranges = {
|
333
333
|
(-32768, 32767): "int16",
|
334
|
+
(-32767, 32767): "int16",
|
334
335
|
(0, 65535): "uint16",
|
335
336
|
(-128, 127): "int8",
|
336
337
|
(0, 255): "uint8",
|
@@ -378,3 +379,28 @@ def broadcastable(
|
|
378
379
|
if dim_a != 1 and dim_b != 1 and dim_a != dim_b:
|
379
380
|
return False
|
380
381
|
return True
|
382
|
+
|
383
|
+
|
384
|
+
def is_target_node(
|
385
|
+
node: torch.fx.Node, target_ops: list[torch._ops.OpOverload] | torch._ops.OpOverload
|
386
|
+
):
|
387
|
+
"""
|
388
|
+
Check whether a given node is a `call_function` node that matches one of the specified targets.
|
389
|
+
|
390
|
+
Args:
|
391
|
+
node (torch.fx.Node): The node to check.
|
392
|
+
target_ops (Iterable[Callable]): A list or set of target operations to match (e.g., ops.aten.reshape).
|
393
|
+
|
394
|
+
Returns:
|
395
|
+
bool: True if the node is a call_function, its target is in `target_ops`.
|
396
|
+
"""
|
397
|
+
if not isinstance(target_ops, list):
|
398
|
+
target_ops = [target_ops]
|
399
|
+
assert all(isinstance(t, torch._ops.OpOverload) for t in target_ops), target_ops
|
400
|
+
|
401
|
+
if node.op != "call_function":
|
402
|
+
return False
|
403
|
+
if node.target not in target_ops:
|
404
|
+
return False
|
405
|
+
|
406
|
+
return True
|
@@ -1,4 +1,4 @@
|
|
1
|
-
tico/__init__.py,sha256=
|
1
|
+
tico/__init__.py,sha256=Hdcii4nD2OeaUn6hqhQF4rmXIBkKre9mFUyuvzdYsW4,1743
|
2
2
|
tico/pt2_to_circle.py,sha256=PPmFNw20jw2Z2VyM3ln9pX__jTzBOAZiv0gT5a-p-Y8,2666
|
3
3
|
tico/config/__init__.py,sha256=xZzCXjZ84qE-CsBi-dfaL05bqpQ3stKKfTXhnrJRyVs,142
|
4
4
|
tico/config/base.py,sha256=anwOiJFkUxUi7Cef573JgQcjk6S-FSi6O_TLjYASW-g,1244
|
@@ -59,39 +59,40 @@ tico/interpreter/__init__.py,sha256=IO6FP_xYbGy0dW0HL26GXD3ouxARaxCK7bz9dn4blPQ,
|
|
59
59
|
tico/interpreter/infer.py,sha256=vJ3b69ce9HrxNT0gFwbEhHpAyvVyuiunTgAeiqn5t64,4350
|
60
60
|
tico/interpreter/interpreter.py,sha256=tGbluCbrehTCqBu8mtGDNzby_ieJ2ry8_RH_eC0CQxk,3828
|
61
61
|
tico/passes/__init__.py,sha256=IO6FP_xYbGy0dW0HL26GXD3ouxARaxCK7bz9dn4blPQ,26
|
62
|
-
tico/passes/cast_aten_where_arg_type.py,sha256=
|
63
|
-
tico/passes/cast_mixed_type_args.py,sha256=
|
62
|
+
tico/passes/cast_aten_where_arg_type.py,sha256=VDgLcsh3EpxLuGMSgEcLUZe2_iVYVyUf75XK9AQB_qM,7146
|
63
|
+
tico/passes/cast_mixed_type_args.py,sha256=khj0m2EIJoqxADUeAAVZl6_T30-hhcIkwDSDZlknblk,7479
|
64
64
|
tico/passes/const_prop_pass.py,sha256=QOeR2u3fo9ZhWXRhfAUW1dTtuWgqgoqdDJoQ516UDbQ,11532
|
65
|
-
tico/passes/convert_conv1d_to_conv2d.py,sha256=
|
65
|
+
tico/passes/convert_conv1d_to_conv2d.py,sha256=RJVLrY0_Quj90EpUzdlBCepKbqcfArQ3fdnsfYV89YA,5092
|
66
66
|
tico/passes/convert_layout_op_to_reshape.py,sha256=FJUrTbquGTJhK2ig1kBci0DjBjk6hfoajLSrQDlJD8o,2904
|
67
|
-
tico/passes/convert_repeat_to_expand_copy.py,sha256=
|
67
|
+
tico/passes/convert_repeat_to_expand_copy.py,sha256=f9Vt2OGFcvUZP0i0qxvh5LfwCpgecr8RkfIrzZMDV0M,3156
|
68
68
|
tico/passes/convert_to_relu6.py,sha256=3sfKfggvjbl9N73pLOwgUTNyoecODsy367nwoX2S-EE,6404
|
69
|
-
tico/passes/decompose_addmm.py,sha256=
|
70
|
-
tico/passes/decompose_batch_norm.py,sha256=
|
71
|
-
tico/passes/decompose_fake_quantize.py,sha256
|
72
|
-
tico/passes/decompose_fake_quantize_tensor_qparams.py,sha256=
|
73
|
-
tico/passes/decompose_group_norm.py,sha256=
|
74
|
-
tico/passes/decompose_grouped_conv2d.py,sha256=
|
75
|
-
tico/passes/decompose_slice_scatter.py,sha256=
|
76
|
-
tico/passes/extract_dtype_kwargs.py,sha256=
|
69
|
+
tico/passes/decompose_addmm.py,sha256=4gkRIjWnlP5ODuIoo4cpyJpvIv2YVfJehmTQd_8X2JE,3924
|
70
|
+
tico/passes/decompose_batch_norm.py,sha256=y1Ez7BPr5EnbIoc_E3kX_KysT_rFkQnQK1QSzoeZcgY,6691
|
71
|
+
tico/passes/decompose_fake_quantize.py,sha256=mOMZAVYDAqclDCCVkbMWWjg2iGBdxURHD7fyyTjV4IU,5316
|
72
|
+
tico/passes/decompose_fake_quantize_tensor_qparams.py,sha256=Pul2E3RJ6a6p5lpPY8ac6urINWlFaGZtxJ3sOmagylM,13962
|
73
|
+
tico/passes/decompose_group_norm.py,sha256=s3lRFqoUIBbxofacwKHY7-vop8_X1WgjqEZBnv09Tgw,9448
|
74
|
+
tico/passes/decompose_grouped_conv2d.py,sha256=hPRK9D9RDjmJ3mv0Wx17zeNW4xXT2jTQDHfOKIGgV60,8260
|
75
|
+
tico/passes/decompose_slice_scatter.py,sha256=mnfEt58PAelJdheD0cJ5C66w_3yqSngCsfM-Auy9ADU,5563
|
76
|
+
tico/passes/extract_dtype_kwargs.py,sha256=ObpsaFlrTPYQw2hJ7UsC5CocyAtBkT_bMtzkMUqAyKc,4333
|
77
77
|
tico/passes/fill_meta_val.py,sha256=Xbam6Aq90ZfWItZw1dgLIwH_q8RCiU5JodKNqkj-ink,1797
|
78
|
-
tico/passes/
|
79
|
-
tico/passes/
|
80
|
-
tico/passes/
|
81
|
-
tico/passes/
|
82
|
-
tico/passes/
|
83
|
-
tico/passes/
|
84
|
-
tico/passes/
|
78
|
+
tico/passes/fuse_leading_unsqueeze_reshape.py,sha256=zi_I0xISUooXqa29m5nefnYMCDMDEIAYTwHECwFA82o,4192
|
79
|
+
tico/passes/fuse_redundant_reshape_to_mean.py,sha256=2SEZ0TfXsmUkuqUdNtS_mQzLd49su5TsQViCLMGL4f4,3691
|
80
|
+
tico/passes/legalize_causal_mask_value.py,sha256=xKdFwwMaSFCSQpSk8xISOAqFpZ1jIhgbBIqf7KTSGuk,4017
|
81
|
+
tico/passes/legalize_predefined_layout_operators.py,sha256=4AAqYvwMvtuAQ8mdpTJI6oIgcBL_iSMzB0pmcvJ6i3Y,15887
|
82
|
+
tico/passes/lower_pow2_to_mul.py,sha256=gFuVw3xa2WwXUrxMcqH_Y4Vb8vInuUIGjrpAC7ia9ig,2342
|
83
|
+
tico/passes/lower_to_resize_nearest_neighbor.py,sha256=Cy90yIrZt58L1Hh7k4-uUfclNBBpNoJaQQwL7a5A8wo,8840
|
84
|
+
tico/passes/lower_to_slice.py,sha256=iYDE_xmiIFfURE5ZLfZICEwWRqwPWXLLL4y5Dbc0rb8,7023
|
85
|
+
tico/passes/merge_consecutive_cat.py,sha256=BYmiU170DsrHQMj7gMe7U6ZpndrX-S4OpvJweDdspec,2701
|
85
86
|
tico/passes/ops.py,sha256=XzaKC_FpsfJLpnU4JlL9X-HVarWKm8cX0iiRgx9bMOs,2909
|
86
|
-
tico/passes/remove_nop.py,sha256=
|
87
|
-
tico/passes/remove_redundant_assert_nodes.py,sha256=
|
88
|
-
tico/passes/remove_redundant_expand.py,sha256=
|
89
|
-
tico/passes/remove_redundant_permute.py,sha256=
|
90
|
-
tico/passes/remove_redundant_reshape.py,sha256=
|
91
|
-
tico/passes/remove_redundant_slice.py,sha256=
|
92
|
-
tico/passes/remove_redundant_to_copy.py,sha256=
|
87
|
+
tico/passes/remove_nop.py,sha256=Hf91p_EJAOC6DyWNthash0_UWtEcNc_M7znamQfYQ5Y,2686
|
88
|
+
tico/passes/remove_redundant_assert_nodes.py,sha256=IONd3xBy6I8tH6_Y1eN3_eCHH7WTC8soBgjXzOju9cQ,1612
|
89
|
+
tico/passes/remove_redundant_expand.py,sha256=5SIqN7eIIcqF68tlrB31n1482jSBSBOgKb1wddLX6lw,2197
|
90
|
+
tico/passes/remove_redundant_permute.py,sha256=ovrEpB9x_Pjdfq6N35cDyURjP8ZBlAqgFiitPxTvUlI,4204
|
91
|
+
tico/passes/remove_redundant_reshape.py,sha256=AfY_TpcXMdelzgE9RSPwU41SKOYofr3bvsp1q-TBnLw,16402
|
92
|
+
tico/passes/remove_redundant_slice.py,sha256=Iv7TbB39fktNb4eq0VdyZnwxL_VsKLJ90diMmaf3kZk,2087
|
93
|
+
tico/passes/remove_redundant_to_copy.py,sha256=JMDnca2f9OE58ejdMEoZ1O0l-rGAc5T91BT-dFk7FGk,3114
|
93
94
|
tico/passes/restore_linear.py,sha256=UMMHdLmRGq9bfJx_0L9lL2UQBd51PGNP0WywO8KdrDM,4066
|
94
|
-
tico/passes/segment_index_select.py,sha256=
|
95
|
+
tico/passes/segment_index_select.py,sha256=TmkuXPhagCaj6eo_odxIThCsoB-9r4Kkqzt1ATDukpQ,5075
|
95
96
|
tico/serialize/__init__.py,sha256=IO6FP_xYbGy0dW0HL26GXD3ouxARaxCK7bz9dn4blPQ,26
|
96
97
|
tico/serialize/circle_graph.py,sha256=_u0vFDhPdOhEkucmaEhqILo13NKbjyVemPYFfC5YCZg,11619
|
97
98
|
tico/serialize/circle_mapping.py,sha256=C9C3ORACQOdvBdnt5KRzlT8zao_TvzQklIxH794OhP0,5719
|
@@ -174,10 +175,10 @@ tico/serialize/operators/op_tanh.py,sha256=rs7FsbQeUQ7Ak8RoQV9ymNGXHXRObojfY_Siq
|
|
174
175
|
tico/serialize/operators/op_to_copy.py,sha256=a8T0uPMavMO_md1a-4_0dlvDHyZS_xew0qB6xjf69rI,3934
|
175
176
|
tico/serialize/operators/op_unsqueeze.py,sha256=ZHhfVXSWEiwb2VDYX5uhxbGQyzZjKT7CrbBpVGxVHBU,2310
|
176
177
|
tico/serialize/operators/op_view.py,sha256=5EMww-ve17Vm9XPuV03Tn7vJsjpU2J8U4d_FOrlm9_o,2546
|
177
|
-
tico/serialize/operators/op_where.py,sha256=
|
178
|
+
tico/serialize/operators/op_where.py,sha256=doE81GSwygrPBm3JIfN9w7kKXxeIYKxgk0eoY22QIcg,2845
|
178
179
|
tico/serialize/operators/utils.py,sha256=lXGpEJW1h8U_-gfc6EWjvvSiq3yJ9P-v1v3EMRT_pSk,2954
|
179
180
|
tico/utils/__init__.py,sha256=IO6FP_xYbGy0dW0HL26GXD3ouxARaxCK7bz9dn4blPQ,26
|
180
|
-
tico/utils/convert.py,sha256=
|
181
|
+
tico/utils/convert.py,sha256=nbpBJue9_ezb8Dj9L9dWcNeVlZd0soGJu_fvrL6-c5c,11810
|
181
182
|
tico/utils/define.py,sha256=Ypgp7YffM4pgPl4Zh6TmogSn1OxGBMRw_e09qYGflZk,1467
|
182
183
|
tico/utils/diff_graph.py,sha256=_eDGGPDPYQD4b--MXX0DLoVgSt_wLfNPt47UlolLLR4,5272
|
183
184
|
tico/utils/errors.py,sha256=f3csJjgbXG9W1aHhqEcou008Aor19W57X8oT5Hx8w1M,954
|
@@ -189,15 +190,15 @@ tico/utils/passes.py,sha256=kGmDe__5cPaO6i5EDAoXSVe6yXEoX9hAny4ROb3ZEmQ,2409
|
|
189
190
|
tico/utils/register_custom_op.py,sha256=iRQvdqlBqrJxq_pNkvJyDIJD_SYtCUl88wwbbuvSwlk,22952
|
190
191
|
tico/utils/serialize.py,sha256=AQXMBOLu-Kg2Rn-qbqsAtHndjZAZIavlKA0QFgJREHM,1420
|
191
192
|
tico/utils/trace_decorators.py,sha256=ddLIiKQfSaQrxgF1kNpwjFTQnXENzeSfcr1kuAW4jGI,3221
|
192
|
-
tico/utils/utils.py,sha256=
|
193
|
+
tico/utils/utils.py,sha256=fnbZ2RLH6-J-wqb32O4qsR1ce4BJU0wYNrk84QXa6_E,13158
|
193
194
|
tico/utils/validate_args_kwargs.py,sha256=P4aMnr9EhNCtc_AgJPpuezfQbqFfDn0lhJSWqmumLZ8,25054
|
194
195
|
tico/utils/mx/__init__.py,sha256=IO6FP_xYbGy0dW0HL26GXD3ouxARaxCK7bz9dn4blPQ,26
|
195
196
|
tico/utils/mx/elemwise_ops.py,sha256=V6glyAHsVR1joqpsgnNytatCD_ew92xNWZ19UFDoMTA,10281
|
196
197
|
tico/utils/mx/formats.py,sha256=uzNWyu-1onUlwQfX5cZ6fZSUfHMRqorper7_T1k3jfk,3404
|
197
198
|
tico/utils/mx/mx_ops.py,sha256=RcfUTYVi-wilGB2sC35OeARdwDqnixv7dG5iyZ-fQT8,8555
|
198
|
-
tico-0.1.0.
|
199
|
-
tico-0.1.0.
|
200
|
-
tico-0.1.0.
|
201
|
-
tico-0.1.0.
|
202
|
-
tico-0.1.0.
|
203
|
-
tico-0.1.0.
|
199
|
+
tico-0.1.0.dev250611.dist-info/LICENSE,sha256=kp4JLII7bzRhPb0CPD5XTDZMh22BQ7h3k3B7t8TiSbw,12644
|
200
|
+
tico-0.1.0.dev250611.dist-info/METADATA,sha256=42yMwo0GJBgXFJZf1DgkbdvPuXnrMTjuMVvUMhekukE,8633
|
201
|
+
tico-0.1.0.dev250611.dist-info/WHEEL,sha256=G16H4A3IeoQmnOrYV4ueZGKSjhipXx8zc8nu9FGlvMA,92
|
202
|
+
tico-0.1.0.dev250611.dist-info/entry_points.txt,sha256=kBKYSS_IYrSXmUYevmmepqIVPScq5vF8ulQRu3I_Zf0,59
|
203
|
+
tico-0.1.0.dev250611.dist-info/top_level.txt,sha256=oqs7UPoNSKZEwqsX8B-KAWdQwfAa7i60pbxW_Jk7P3w,5
|
204
|
+
tico-0.1.0.dev250611.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|