tico 0.3.0.dev261013__tar.gz → 0.3.0.dev261014__tar.gz

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 (630) hide show
  1. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/PKG-INFO +1 -1
  2. tico-0.3.0.dev261014/tico/_version.py +1 -0
  3. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/algorithm/universal_gptq/quantizer.py +51 -19
  4. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/config/builders.py +27 -4
  5. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/config/specs.py +33 -1
  6. tico-0.3.0.dev261014/tico/quantization/evaluation/mmmu_eval_utils.py +1010 -0
  7. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/evaluation/vlm_eval_utils.py +52 -20
  8. tico-0.3.0.dev261014/tico/quantization/evaluation/vlm_generation_utils.py +163 -0
  9. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/examples/compare_side_by_side.py +4 -104
  10. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/recipes/adapters/__init__.py +78 -0
  11. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/recipes/adapters/base.py +24 -1
  12. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/recipes/adapters/gemma4.py +84 -45
  13. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/recipes/adapters/llama.py +22 -0
  14. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/recipes/adapters/qwen3_vl.py +99 -45
  15. tico-0.3.0.dev261014/tico/quantization/recipes/debug/trace.py +316 -0
  16. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/recipes/evaluation/mmmu.py +28 -2
  17. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/recipes/evaluation/vlm.py +77 -1
  18. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/recipes/override_policies.py +42 -139
  19. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/recipes/runner.py +6 -0
  20. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/recipes/stages/ptq.py +1 -0
  21. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/recipes/utils.py +41 -3
  22. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/utils/introspection.py +6 -3
  23. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/wrappers/llama/quant_attention.py +17 -4
  24. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/wrappers/qwen_vl/quant_for_conditional_generation.py +27 -0
  25. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico.egg-info/PKG-INFO +1 -1
  26. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico.egg-info/SOURCES.txt +1 -0
  27. tico-0.3.0.dev261013/tico/_version.py +0 -1
  28. tico-0.3.0.dev261013/tico/quantization/evaluation/mmmu_eval_utils.py +0 -530
  29. tico-0.3.0.dev261013/tico/quantization/recipes/debug/trace.py +0 -185
  30. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/LICENSE +0 -0
  31. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/README.md +0 -0
  32. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/pyproject.toml +0 -0
  33. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/setup.cfg +0 -0
  34. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/__init__.py +0 -0
  35. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/circle/__init__.py +0 -0
  36. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/circle/_buffer.py +0 -0
  37. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/circle/_object.py +0 -0
  38. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/circle/_schema.py +0 -0
  39. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/circle/analysis/__init__.py +0 -0
  40. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/circle/analysis/effects.py +0 -0
  41. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/circle/analysis/purity.py +0 -0
  42. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/circle/analysis/structural_hash.py +0 -0
  43. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/circle/analysis/tensor_contract.py +0 -0
  44. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/circle/builder.py +0 -0
  45. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/circle/cli/__init__.py +0 -0
  46. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/circle/cli/__main__.py +0 -0
  47. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/circle/cli/main.py +0 -0
  48. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/circle/document.py +0 -0
  49. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/circle/errors.py +0 -0
  50. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/circle/export.py +0 -0
  51. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/circle/graph.py +0 -0
  52. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/circle/inspect/__init__.py +0 -0
  53. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/circle/inspect/printer.py +0 -0
  54. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/circle/inspect/summary.py +0 -0
  55. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/circle/io.py +0 -0
  56. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/circle/mutation.py +0 -0
  57. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/circle/operations/__init__.py +0 -0
  58. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/circle/operations/extract.py +0 -0
  59. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/circle/passes/__init__.py +0 -0
  60. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/circle/passes/base.py +0 -0
  61. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/circle/passes/cleanup/__init__.py +0 -0
  62. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/circle/passes/cleanup/compact_indices.py +0 -0
  63. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/circle/passes/cleanup/dead_code_elimination.py +0 -0
  64. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/circle/passes/cleanup/graph_inputs.py +0 -0
  65. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/circle/passes/manager.py +0 -0
  66. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/circle/passes/optimization/__init__.py +0 -0
  67. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/circle/passes/optimization/_pattern_utils.py +0 -0
  68. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/circle/passes/optimization/_utils.py +0 -0
  69. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/circle/passes/optimization/canonicalize/__init__.py +0 -0
  70. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/circle/passes/optimization/canonicalize/equivalent_ops.py +0 -0
  71. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/circle/passes/optimization/compatibility/__init__.py +0 -0
  72. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/circle/passes/optimization/compatibility/custom_ops.py +0 -0
  73. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/circle/passes/optimization/compatibility/fc_gelu_fc.py +0 -0
  74. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/circle/passes/optimization/cse.py +0 -0
  75. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/circle/passes/optimization/fold/__init__.py +0 -0
  76. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/circle/passes/optimization/fold/constant_subgraph.py +0 -0
  77. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/circle/passes/optimization/fold/evaluators/__init__.py +0 -0
  78. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/circle/passes/optimization/fold/evaluators/base.py +0 -0
  79. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/circle/passes/optimization/fold/evaluators/elementwise.py +0 -0
  80. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/circle/passes/optimization/fold/evaluators/heavy.py +0 -0
  81. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/circle/passes/optimization/fold/evaluators/indexing.py +0 -0
  82. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/circle/passes/optimization/fold/evaluators/shape.py +0 -0
  83. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/circle/passes/optimization/fold/profiles.py +0 -0
  84. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/circle/passes/optimization/fuse/__init__.py +0 -0
  85. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/circle/passes/optimization/fuse/activation.py +0 -0
  86. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/circle/passes/optimization/fuse/composite.py +0 -0
  87. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/circle/passes/optimization/fuse/linear.py +0 -0
  88. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/circle/passes/optimization/fuse/requantize.py +0 -0
  89. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/circle/passes/optimization/fuse/spatial.py +0 -0
  90. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/circle/passes/optimization/legalize/__init__.py +0 -0
  91. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/circle/passes/optimization/legalize/dynamic_fully_connected.py +0 -0
  92. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/circle/passes/optimization/policy.py +0 -0
  93. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/circle/passes/optimization/simplify/__init__.py +0 -0
  94. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/circle/passes/optimization/simplify/_layout_utils.py +0 -0
  95. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/circle/passes/optimization/simplify/arithmetic.py +0 -0
  96. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/circle/passes/optimization/simplify/identity_ops.py +0 -0
  97. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/circle/passes/optimization/simplify/reductions.py +0 -0
  98. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/circle/passes/optimization/simplify/transpose_region.py +0 -0
  99. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/circle/passes/optimization/simplify/transpose_region_rules.py +0 -0
  100. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/circle/passes/optimization/simplify/views.py +0 -0
  101. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/circle/passes/presets.py +0 -0
  102. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/circle/passes/rules.py +0 -0
  103. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/circle/passes/worklist.py +0 -0
  104. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/circle/rewrite.py +0 -0
  105. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/circle/runtime/__init__.py +0 -0
  106. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/circle/runtime/errors.py +0 -0
  107. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/circle/runtime/executor.py +0 -0
  108. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/circle/runtime/kernels/__init__.py +0 -0
  109. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/circle/runtime/kernels/base.py +0 -0
  110. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/circle/runtime/kernels/elementwise.py +0 -0
  111. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/circle/runtime/kernels/nn.py +0 -0
  112. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/circle/runtime/kernels/quantize.py +0 -0
  113. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/circle/runtime/kernels/reduction.py +0 -0
  114. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/circle/runtime/kernels/shape_ops.py +0 -0
  115. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/circle/runtime/program.py +0 -0
  116. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/circle/runtime/quantization.py +0 -0
  117. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/circle/selector.py +0 -0
  118. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/circle/session.py +0 -0
  119. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/circle/value/__init__.py +0 -0
  120. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/circle/value/codec.py +0 -0
  121. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/circle/value/dtype.py +0 -0
  122. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/circle/value/tensor.py +0 -0
  123. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/circle/verify.py +0 -0
  124. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/config/__init__.py +0 -0
  125. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/config/base.py +0 -0
  126. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/config/factory.py +0 -0
  127. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/config/v1.py +0 -0
  128. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/experimental/__init__.py +0 -0
  129. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/interpreter/__init__.py +0 -0
  130. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/interpreter/backends.py +0 -0
  131. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/interpreter/infer.py +0 -0
  132. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/interpreter/interpreter.py +0 -0
  133. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/ops/__init__.py +0 -0
  134. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/ops/concat.py +0 -0
  135. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/ops/resize_bilinear.py +0 -0
  136. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/ops/same_padding_conv2d.py +0 -0
  137. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/passes/__init__.py +0 -0
  138. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/passes/cast_aten_where_arg_type.py +0 -0
  139. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/passes/cast_clamp_mixed_type_args.py +0 -0
  140. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/passes/cast_mixed_type_args.py +0 -0
  141. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/passes/const_prop_pass.py +0 -0
  142. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/passes/convert_conv1d_to_conv2d.py +0 -0
  143. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/passes/convert_conv3d_to_conv2d.py +0 -0
  144. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/passes/convert_expand_to_slice_cat.py +0 -0
  145. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/passes/convert_gather_to_gather_nd.py +0 -0
  146. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/passes/convert_layout_op_to_reshape.py +0 -0
  147. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/passes/convert_matmul_to_linear.py +0 -0
  148. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/passes/convert_repeat_to_expand_copy.py +0 -0
  149. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/passes/convert_sym_size_to_circle_shape.py +0 -0
  150. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/passes/convert_to_relu6.py +0 -0
  151. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/passes/decompose_addmm.py +0 -0
  152. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/passes/decompose_batch_norm.py +0 -0
  153. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/passes/decompose_fake_quantize.py +0 -0
  154. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/passes/decompose_fake_quantize_tensor_qparams.py +0 -0
  155. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/passes/decompose_group_norm.py +0 -0
  156. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/passes/decompose_grouped_conv2d.py +0 -0
  157. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/passes/decompose_slice_scatter.py +0 -0
  158. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/passes/eliminate_rank_round_trip_region.py +0 -0
  159. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/passes/extract_dtype_kwargs.py +0 -0
  160. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/passes/fill_meta_val.py +0 -0
  161. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/passes/fuse_leading_unsqueeze_reshape.py +0 -0
  162. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/passes/fuse_redundant_reshape_to_mean.py +0 -0
  163. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/passes/legalize_causal_mask_value.py +0 -0
  164. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/passes/legalize_predefined_layout_operators.py +0 -0
  165. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/passes/lower_copy.py +0 -0
  166. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/passes/lower_multi_index_to_gather_nd.py +0 -0
  167. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/passes/lower_pow2_to_mul.py +0 -0
  168. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/passes/lower_to_resize_nearest_neighbor.py +0 -0
  169. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/passes/lower_to_slice.py +0 -0
  170. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/passes/merge_consecutive_cat.py +0 -0
  171. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/passes/ops.py +0 -0
  172. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/passes/remove_empty_cat_inputs.py +0 -0
  173. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/passes/remove_nop.py +0 -0
  174. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/passes/remove_redundant_assert_nodes.py +0 -0
  175. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/passes/remove_redundant_expand.py +0 -0
  176. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/passes/remove_redundant_permute.py +0 -0
  177. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/passes/remove_redundant_reshape.py +0 -0
  178. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/passes/remove_redundant_slice.py +0 -0
  179. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/passes/remove_redundant_to_copy.py +0 -0
  180. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/passes/remove_unused_placeholder.py +0 -0
  181. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/passes/restore_linear.py +0 -0
  182. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/passes/segment_index_select.py +0 -0
  183. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/pt2_to_circle.py +0 -0
  184. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/__init__.py +0 -0
  185. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/algorithm/__init__.py +0 -0
  186. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/algorithm/adaround/__init__.py +0 -0
  187. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/algorithm/adaround/discrete_refinement.py +0 -0
  188. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/algorithm/adaround/global_refinement.py +0 -0
  189. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/algorithm/adaround/joint.py +0 -0
  190. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/algorithm/adaround/joint_runner.py +0 -0
  191. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/algorithm/adaround/rounding.py +0 -0
  192. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/algorithm/adaround/runner.py +0 -0
  193. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/algorithm/adaround/screened_refinement.py +0 -0
  194. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/algorithm/block_reconstruction/__init__.py +0 -0
  195. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/algorithm/block_reconstruction/cache.py +0 -0
  196. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/algorithm/block_reconstruction/multistart.py +0 -0
  197. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/algorithm/block_reconstruction/observer.py +0 -0
  198. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/algorithm/block_reconstruction/qdrop.py +0 -0
  199. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/algorithm/block_reconstruction/runner.py +0 -0
  200. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/algorithm/block_reconstruction/selection.py +0 -0
  201. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/algorithm/cle/__init__.py +0 -0
  202. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/algorithm/cle/cle.py +0 -0
  203. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/algorithm/cle/quantizer.py +0 -0
  204. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/algorithm/fpi_gptq/__init__.py +0 -0
  205. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/algorithm/fpi_gptq/fpi_gptq.py +0 -0
  206. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/algorithm/fpi_gptq/quantizer.py +0 -0
  207. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/algorithm/fpi_gptq/util.py +0 -0
  208. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/algorithm/gemma4_gptq/__init__.py +0 -0
  209. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/algorithm/gemma4_gptq/gptq.py +0 -0
  210. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/algorithm/gemma4_gptq/quantizer.py +0 -0
  211. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/algorithm/gemma4_gptq/utils.py +0 -0
  212. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/algorithm/gptq/__init__.py +0 -0
  213. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/algorithm/gptq/gptq.py +0 -0
  214. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/algorithm/gptq/quant.py +0 -0
  215. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/algorithm/gptq/quantizer.py +0 -0
  216. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/algorithm/gptq/utils.py +0 -0
  217. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/algorithm/qwen3_vl_gptq/__init__.py +0 -0
  218. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/algorithm/qwen3_vl_gptq/gptq.py +0 -0
  219. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/algorithm/qwen3_vl_gptq/quantizer.py +0 -0
  220. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/algorithm/qwen3_vl_gptq/utils.py +0 -0
  221. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/algorithm/smoothquant/__init__.py +0 -0
  222. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/algorithm/smoothquant/observer.py +0 -0
  223. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/algorithm/smoothquant/quantizer.py +0 -0
  224. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/algorithm/smoothquant/smooth_quant.py +0 -0
  225. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/algorithm/spinquant/__init__.py +0 -0
  226. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/algorithm/spinquant/fuse_norm_utils.py +0 -0
  227. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/algorithm/spinquant/hadamard_utils.py +0 -0
  228. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/algorithm/spinquant/quantizer.py +0 -0
  229. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/algorithm/spinquant/qwen3_vl_model_utils.py +0 -0
  230. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/algorithm/spinquant/qwen3_vl_quantizer.py +0 -0
  231. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/algorithm/spinquant/qwen3_vl_rotation_utils.py +0 -0
  232. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/algorithm/spinquant/rotation_utils.py +0 -0
  233. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/algorithm/spinquant/spin_llama.py +0 -0
  234. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/algorithm/spinquant/spin_qwen3_vl.py +0 -0
  235. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/analysis/__init__.py +0 -0
  236. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/analysis/ablation.py +0 -0
  237. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/analysis/clipping.py +0 -0
  238. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/analysis/inputs.py +0 -0
  239. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/analysis/metrics.py +0 -0
  240. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/analysis/output_quantization.py +0 -0
  241. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/analysis/outputs.py +0 -0
  242. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/analysis/profile.py +0 -0
  243. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/analysis/report.py +0 -0
  244. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/analysis/selector.py +0 -0
  245. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/analysis/sensitivity.py +0 -0
  246. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/config/__init__.py +0 -0
  247. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/config/base.py +0 -0
  248. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/config/cle.py +0 -0
  249. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/config/fpi_gptq.py +0 -0
  250. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/config/gemma4_assistant_builders.py +0 -0
  251. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/config/gemma4_attention.py +0 -0
  252. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/config/gemma4_builders.py +0 -0
  253. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/config/gemma4_gptq.py +0 -0
  254. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/config/gptq.py +0 -0
  255. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/config/llama_attention.py +0 -0
  256. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/config/ptq.py +0 -0
  257. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/config/qwen3_vl_attention.py +0 -0
  258. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/config/qwen3_vl_gptq.py +0 -0
  259. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/config/qwen3_vl_spinquant.py +0 -0
  260. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/config/smoothquant.py +0 -0
  261. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/config/spinquant.py +0 -0
  262. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/config/utils.py +0 -0
  263. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/evaluation/__init__.py +0 -0
  264. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/evaluation/backend.py +0 -0
  265. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/evaluation/evaluate.py +0 -0
  266. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/evaluation/executor/__init__.py +0 -0
  267. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/evaluation/executor/backend_executor.py +0 -0
  268. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/evaluation/executor/circle_executor.py +0 -0
  269. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/evaluation/executor/triv24_executor.py +0 -0
  270. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/evaluation/hellaswag_eval_utils.py +0 -0
  271. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/evaluation/llava_bench_judge_eval_utils.py +0 -0
  272. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/evaluation/lmms_eval_utils.py +0 -0
  273. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/evaluation/lmms_gemma4.py +0 -0
  274. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/evaluation/lmms_tasks/videomme_mini/utils.py +0 -0
  275. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/evaluation/metric.py +0 -0
  276. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/evaluation/mmlu_eval_utils.py +0 -0
  277. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/evaluation/optional_deps.py +0 -0
  278. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/evaluation/script/llm_tasks_eval.py +0 -0
  279. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/evaluation/script/mini_vqa_eval.py +0 -0
  280. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/evaluation/utils.py +0 -0
  281. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/examples/__init__.py +0 -0
  282. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/examples/configs/__init__.py +0 -0
  283. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/examples/evaluate.py +0 -0
  284. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/examples/export.py +0 -0
  285. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/examples/inspector.py +0 -0
  286. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/examples/quantize.py +0 -0
  287. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/passes/__init__.py +0 -0
  288. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/passes/concat_qparam.py +0 -0
  289. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/passes/fold_quant_ops.py +0 -0
  290. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/passes/insert_quantize_on_dtype_mismatch.py +0 -0
  291. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/passes/legalize_quantized_clamp.py +0 -0
  292. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/passes/propagate_qparam_backward.py +0 -0
  293. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/passes/propagate_qparam_forward.py +0 -0
  294. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/passes/qparam_safe_const_prop.py +0 -0
  295. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/passes/quantize_bias.py +0 -0
  296. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/passes/remove_weight_dequant_op.py +0 -0
  297. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/public_interface.py +0 -0
  298. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/quant_stub.py +0 -0
  299. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/quantizer.py +0 -0
  300. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/quantizer_registry.py +0 -0
  301. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/recipes/__init__.py +0 -0
  302. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/recipes/adapters/gemma4_assistant.py +0 -0
  303. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/recipes/config.py +0 -0
  304. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/recipes/context.py +0 -0
  305. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/recipes/data/__init__.py +0 -0
  306. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/recipes/data/dataset_config.py +0 -0
  307. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/recipes/data/dataset_usage.py +0 -0
  308. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/recipes/data/llm.py +0 -0
  309. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/recipes/data/vlm.py +0 -0
  310. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/recipes/debug/__init__.py +0 -0
  311. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/recipes/debug/static_gemma4_assistant_runtime.py +0 -0
  312. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/recipes/debug/static_gemma4_runtime.py +0 -0
  313. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/recipes/debug/static_llama_runtime.py +0 -0
  314. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/recipes/debug/static_qwen3_vl_runtime.py +0 -0
  315. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/recipes/debug/tied_embedding.py +0 -0
  316. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/recipes/debug/wrapper_smoke/__init__.py +0 -0
  317. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/recipes/debug/wrapper_smoke/case.py +0 -0
  318. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/recipes/debug/wrapper_smoke/cases/__init__.py +0 -0
  319. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/recipes/debug/wrapper_smoke/cases/gemma4.py +0 -0
  320. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/recipes/debug/wrapper_smoke/cases/gemma4_assistant.py +0 -0
  321. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/recipes/debug/wrapper_smoke/cases/llama.py +0 -0
  322. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/recipes/debug/wrapper_smoke/cases/nn.py +0 -0
  323. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/recipes/debug/wrapper_smoke/cases/qwen3_vl.py +0 -0
  324. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/recipes/debug/wrapper_smoke/registry.py +0 -0
  325. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/recipes/debug/wrapper_smoke/result.py +0 -0
  326. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/recipes/debug/wrapper_smoke/runner.py +0 -0
  327. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/recipes/debug/wrapper_smoke/utils.py +0 -0
  328. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/recipes/evaluation/__init__.py +0 -0
  329. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/recipes/evaluation/hellaswag.py +0 -0
  330. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/recipes/evaluation/llava_bench.py +0 -0
  331. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/recipes/evaluation/llava_bench_judge.py +0 -0
  332. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/recipes/evaluation/llm.py +0 -0
  333. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/recipes/evaluation/mmlu.py +0 -0
  334. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/recipes/evaluation/selection.py +0 -0
  335. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/recipes/evaluation/video_mme.py +0 -0
  336. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/recipes/export/__init__.py +0 -0
  337. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/recipes/export/checkpoint.py +0 -0
  338. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/recipes/export/circle.py +0 -0
  339. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/recipes/export/gemma4.py +0 -0
  340. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/recipes/export/gemma4_assistant.py +0 -0
  341. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/recipes/export/llama.py +0 -0
  342. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/recipes/export/qwen3_vl.py +0 -0
  343. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/recipes/extensions.py +0 -0
  344. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/recipes/qparams.py +0 -0
  345. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/recipes/stages/__init__.py +0 -0
  346. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/recipes/stages/base.py +0 -0
  347. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/recipes/stages/cle.py +0 -0
  348. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/recipes/stages/gptq.py +0 -0
  349. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/recipes/stages/smoothquant.py +0 -0
  350. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/recipes/stages/spinquant.py +0 -0
  351. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/__init__.py +0 -0
  352. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/control.py +0 -0
  353. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/dtypes.py +0 -0
  354. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/examples/__init__.py +0 -0
  355. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/examples/compare_ppl.py +0 -0
  356. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/examples/debug_quant_outputs.py +0 -0
  357. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/examples/evaluate_fk_llama_model.py +0 -0
  358. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/examples/gemma4/__init__.py +0 -0
  359. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/examples/gemma4/quantize_for_causal_lm.py +0 -0
  360. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/examples/gemma4/quantize_for_conditional_generation.py +0 -0
  361. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/examples/gemma4/quantize_model.py +0 -0
  362. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/examples/gemma4/quantize_multimodal_embedder.py +0 -0
  363. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/examples/gemma4/quantize_text_scaled_word_embedding.py +0 -0
  364. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/examples/gemma4/quantize_vision_model.py +0 -0
  365. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/examples/gemma4/quantize_vision_patch_embedder.py +0 -0
  366. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/examples/gemma4/quantize_vision_pooler.py +0 -0
  367. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/examples/llama/__init__.py +0 -0
  368. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/examples/llama/quantize_attention_decode.py +0 -0
  369. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/examples/llama/quantize_attention_prefill.py +0 -0
  370. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/examples/llama/quantize_decoder_layer_decode.py +0 -0
  371. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/examples/llama/quantize_decoder_layer_prefill.py +0 -0
  372. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/examples/llama/quantize_mlp.py +0 -0
  373. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/examples/nn/__init__.py +0 -0
  374. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/examples/nn/quantize_conv3d.py +0 -0
  375. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/examples/nn/quantize_conv3d_special_case.py +0 -0
  376. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/examples/nn/quantize_layernorm.py +0 -0
  377. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/examples/nn/quantize_linear.py +0 -0
  378. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/examples/nn/quantize_tied_embedding.py +0 -0
  379. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/examples/quantize_full_qmodel_with_gptq.py +0 -0
  380. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/examples/quantize_qwen3_vl_with_gptq.py +0 -0
  381. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/examples/quantize_with_gptq.py +0 -0
  382. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/examples/qwen/__init__.py +0 -0
  383. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/examples/qwen/quantize_for_conditional_generation.py +0 -0
  384. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/examples/qwen/quantize_model.py +0 -0
  385. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/examples/qwen/quantize_text_attention.py +0 -0
  386. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/examples/qwen/quantize_text_decoder_layer.py +0 -0
  387. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/examples/qwen/quantize_text_mlp.py +0 -0
  388. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/examples/qwen/quantize_text_model.py +0 -0
  389. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/examples/qwen/quantize_vision_attention.py +0 -0
  390. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/examples/qwen/quantize_vision_block.py +0 -0
  391. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/examples/qwen/quantize_vision_mlp.py +0 -0
  392. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/examples/qwen/quantize_vision_model.py +0 -0
  393. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/examples/qwen/quantize_vision_patch_embed.py +0 -0
  394. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/examples/qwen/quantize_vision_patch_merger.py +0 -0
  395. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/examples/qwen/trace_qwen.py +0 -0
  396. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/examples/static_llama_layer_runtime.py +0 -0
  397. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/mode.py +0 -0
  398. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/observers/__init__.py +0 -0
  399. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/observers/affine_base.py +0 -0
  400. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/observers/base.py +0 -0
  401. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/observers/ema.py +0 -0
  402. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/observers/identity.py +0 -0
  403. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/observers/minmax.py +0 -0
  404. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/observers/mx.py +0 -0
  405. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/observers/percentile.py +0 -0
  406. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/qscheme.py +0 -0
  407. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/quantizer.py +0 -0
  408. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/utils/__init__.py +0 -0
  409. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/utils/check_missing_qparam.py +0 -0
  410. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/utils/linear_folding.py +0 -0
  411. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/utils/metrics.py +0 -0
  412. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/utils/reduce_utils.py +0 -0
  413. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/utils/utils.py +0 -0
  414. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/utils/version.py +0 -0
  415. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/wrap_helper.py +0 -0
  416. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/wrappers/__init__.py +0 -0
  417. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/wrappers/fairseq/__init__.py +0 -0
  418. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/wrappers/fairseq/decoder_export_single_step.py +0 -0
  419. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/wrappers/fairseq/quant_decoder.py +0 -0
  420. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/wrappers/fairseq/quant_decoder_layer.py +0 -0
  421. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/wrappers/fairseq/quant_encoder.py +0 -0
  422. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/wrappers/fairseq/quant_encoder_layer.py +0 -0
  423. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/wrappers/fairseq/quant_mha.py +0 -0
  424. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/wrappers/gemma4/__init__.py +0 -0
  425. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/wrappers/gemma4/embedding_scale_fusion.py +0 -0
  426. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/wrappers/gemma4/export_adapters.py +0 -0
  427. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/wrappers/gemma4/ple_embedding_host.py +0 -0
  428. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/wrappers/gemma4/quant_clippable_linear.py +0 -0
  429. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/wrappers/gemma4/quant_for_causal_lm.py +0 -0
  430. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/wrappers/gemma4/quant_for_conditional_generation.py +0 -0
  431. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/wrappers/gemma4/quant_model.py +0 -0
  432. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/wrappers/gemma4/quant_multimodal_embedder.py +0 -0
  433. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/wrappers/gemma4/quant_rmsnorm.py +0 -0
  434. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/wrappers/gemma4/quant_text_attention.py +0 -0
  435. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/wrappers/gemma4/quant_text_decoder_layer.py +0 -0
  436. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/wrappers/gemma4/quant_text_mlp.py +0 -0
  437. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/wrappers/gemma4/quant_text_model.py +0 -0
  438. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/wrappers/gemma4/quant_text_scaled_word_embedding.py +0 -0
  439. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/wrappers/gemma4/quant_vision_attention.py +0 -0
  440. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/wrappers/gemma4/quant_vision_encoder.py +0 -0
  441. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/wrappers/gemma4/quant_vision_encoder_layer.py +0 -0
  442. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/wrappers/gemma4/quant_vision_mlp.py +0 -0
  443. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/wrappers/gemma4/quant_vision_model.py +0 -0
  444. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/wrappers/gemma4/quant_vision_patch_embedder.py +0 -0
  445. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/wrappers/gemma4/quant_vision_pooler.py +0 -0
  446. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/wrappers/gemma4/rope.py +0 -0
  447. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/wrappers/gemma4/static_vision_profile.py +0 -0
  448. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/wrappers/gemma4/utils.py +0 -0
  449. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/wrappers/gemma4/vision_split_export.py +0 -0
  450. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/wrappers/gemma4_assistant/__init__.py +0 -0
  451. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/wrappers/gemma4_assistant/export_adapters.py +0 -0
  452. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/wrappers/gemma4_assistant/quant_backbone.py +0 -0
  453. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/wrappers/gemma4_assistant/quant_for_causal_lm.py +0 -0
  454. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/wrappers/gemma4_assistant/quant_masked_embedder.py +0 -0
  455. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/wrappers/gemma4_assistant/sparse_head.py +0 -0
  456. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/wrappers/gemma4_assistant/static_inputs.py +0 -0
  457. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/wrappers/gemma4_assistant/utils.py +0 -0
  458. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/wrappers/llama/__init__.py +0 -0
  459. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/wrappers/llama/export_adapters.py +0 -0
  460. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/wrappers/llama/quant_decoder_layer.py +0 -0
  461. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/wrappers/llama/quant_mlp.py +0 -0
  462. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/wrappers/llama/quant_model.py +0 -0
  463. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/wrappers/llama/quant_model_for_causal_lm.py +0 -0
  464. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/wrappers/nn/__init__.py +0 -0
  465. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/wrappers/nn/quant_conv2d.py +0 -0
  466. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/wrappers/nn/quant_conv3d.py +0 -0
  467. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/wrappers/nn/quant_conv3d_decomposed.py +0 -0
  468. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/wrappers/nn/quant_conv_transpose2d.py +0 -0
  469. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/wrappers/nn/quant_embedding.py +0 -0
  470. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/wrappers/nn/quant_layernorm.py +0 -0
  471. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/wrappers/nn/quant_linear.py +0 -0
  472. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/wrappers/nn/quant_maxpool2d.py +0 -0
  473. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/wrappers/nn/quant_prelu.py +0 -0
  474. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/wrappers/nn/quant_silu.py +0 -0
  475. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/wrappers/ops/__init__.py +0 -0
  476. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/wrappers/ops/quant_concat.py +0 -0
  477. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/wrappers/ops/quant_resize_bilinear.py +0 -0
  478. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/wrappers/ops/quant_rmsnorm.py +0 -0
  479. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/wrappers/ops/quant_same_padding_conv2d.py +0 -0
  480. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/wrappers/ptq_wrapper.py +0 -0
  481. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/wrappers/quant_elementwise.py +0 -0
  482. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/wrappers/quant_module_base.py +0 -0
  483. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/wrappers/quant_stub.py +0 -0
  484. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/wrappers/qwen_vl/export_adapters.py +0 -0
  485. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/wrappers/qwen_vl/quant_model.py +0 -0
  486. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/wrappers/qwen_vl/quant_text_attention.py +0 -0
  487. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/wrappers/qwen_vl/quant_text_decoder_layer.py +0 -0
  488. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/wrappers/qwen_vl/quant_text_mlp.py +0 -0
  489. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/wrappers/qwen_vl/quant_text_model.py +0 -0
  490. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/wrappers/qwen_vl/quant_vision_attention.py +0 -0
  491. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/wrappers/qwen_vl/quant_vision_block.py +0 -0
  492. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/wrappers/qwen_vl/quant_vision_mlp.py +0 -0
  493. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/wrappers/qwen_vl/quant_vision_model.py +0 -0
  494. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/wrappers/qwen_vl/quant_vision_patch_embed.py +0 -0
  495. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/wrappers/qwen_vl/quant_vision_patch_merger.py +0 -0
  496. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/wrappers/qwen_vl/vision_profile.py +0 -0
  497. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/quantization/wrapq/wrappers/registry.py +0 -0
  498. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/__init__.py +0 -0
  499. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/circle_binary.py +0 -0
  500. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/circle_graph.py +0 -0
  501. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/circle_mapping.py +0 -0
  502. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/circle_serializer.py +0 -0
  503. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/operators/__init__.py +0 -0
  504. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/operators/adapters/__init__.py +0 -0
  505. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/operators/adapters/llama_rmsnorm.py +0 -0
  506. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/operators/adapters/onert/__init__.py +0 -0
  507. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/operators/adapters/onert/llama_attention.py +0 -0
  508. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/operators/hashable_opcode.py +0 -0
  509. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/operators/node_visitor.py +0 -0
  510. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/operators/op_abs.py +0 -0
  511. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/operators/op_add.py +0 -0
  512. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/operators/op_alias_copy.py +0 -0
  513. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/operators/op_any.py +0 -0
  514. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/operators/op_arange_start_step.py +0 -0
  515. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/operators/op_argmax.py +0 -0
  516. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/operators/op_attention.py +0 -0
  517. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/operators/op_avg_pool2d.py +0 -0
  518. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/operators/op_bitwise_and.py +0 -0
  519. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/operators/op_bmm.py +0 -0
  520. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/operators/op_cat.py +0 -0
  521. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/operators/op_circle_gather_nd.py +0 -0
  522. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/operators/op_circle_shape.py +0 -0
  523. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/operators/op_clamp.py +0 -0
  524. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/operators/op_clone.py +0 -0
  525. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/operators/op_constant_pad_nd.py +0 -0
  526. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/operators/op_conv2d.py +0 -0
  527. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/operators/op_cos.py +0 -0
  528. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/operators/op_cumsum.py +0 -0
  529. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/operators/op_depthwise_conv2d.py +0 -0
  530. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/operators/op_dequantize_per_channel.py +0 -0
  531. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/operators/op_dequantize_per_tensor.py +0 -0
  532. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/operators/op_div.py +0 -0
  533. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/operators/op_elu.py +0 -0
  534. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/operators/op_embedding.py +0 -0
  535. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/operators/op_eq.py +0 -0
  536. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/operators/op_exp.py +0 -0
  537. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/operators/op_expand.py +0 -0
  538. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/operators/op_full.py +0 -0
  539. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/operators/op_full_like.py +0 -0
  540. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/operators/op_ge.py +0 -0
  541. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/operators/op_gelu.py +0 -0
  542. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/operators/op_gt.py +0 -0
  543. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/operators/op_index.py +0 -0
  544. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/operators/op_index_select.py +0 -0
  545. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/operators/op_instance_norm.py +0 -0
  546. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/operators/op_le.py +0 -0
  547. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/operators/op_leaky_relu.py +0 -0
  548. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/operators/op_linear.py +0 -0
  549. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/operators/op_log.py +0 -0
  550. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/operators/op_log1p.py +0 -0
  551. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/operators/op_logical_and.py +0 -0
  552. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/operators/op_logical_not.py +0 -0
  553. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/operators/op_lt.py +0 -0
  554. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/operators/op_max_dim.py +0 -0
  555. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/operators/op_max_pool2d_with_indices.py +0 -0
  556. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/operators/op_maximum.py +0 -0
  557. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/operators/op_mean.py +0 -0
  558. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/operators/op_minimum.py +0 -0
  559. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/operators/op_mm.py +0 -0
  560. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/operators/op_mul.py +0 -0
  561. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/operators/op_ne.py +0 -0
  562. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/operators/op_neg.py +0 -0
  563. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/operators/op_permute.py +0 -0
  564. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/operators/op_pow.py +0 -0
  565. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/operators/op_prelu.py +0 -0
  566. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/operators/op_quantize_per_tensor.py +0 -0
  567. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/operators/op_reciprocal.py +0 -0
  568. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/operators/op_relu.py +0 -0
  569. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/operators/op_relu6.py +0 -0
  570. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/operators/op_repeat.py +0 -0
  571. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/operators/op_reshape.py +0 -0
  572. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/operators/op_resize_bilinear.py +0 -0
  573. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/operators/op_resize_nearest_neighbor.py +0 -0
  574. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/operators/op_rmsnorm.py +0 -0
  575. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/operators/op_round.py +0 -0
  576. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/operators/op_rsqrt.py +0 -0
  577. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/operators/op_scalar_tensor.py +0 -0
  578. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/operators/op_select_copy.py +0 -0
  579. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/operators/op_sigmoid.py +0 -0
  580. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/operators/op_sin.py +0 -0
  581. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/operators/op_slice.py +0 -0
  582. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/operators/op_softmax.py +0 -0
  583. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/operators/op_split_with_sizes.py +0 -0
  584. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/operators/op_sqrt.py +0 -0
  585. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/operators/op_squeeze.py +0 -0
  586. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/operators/op_sub.py +0 -0
  587. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/operators/op_sum.py +0 -0
  588. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/operators/op_tanh.py +0 -0
  589. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/operators/op_to_copy.py +0 -0
  590. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/operators/op_transpose_conv.py +0 -0
  591. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/operators/op_unsqueeze.py +0 -0
  592. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/operators/op_view.py +0 -0
  593. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/operators/op_where.py +0 -0
  594. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/operators/utils.py +0 -0
  595. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/pack.py +0 -0
  596. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/serialize/quant_param.py +0 -0
  597. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/utils/__init__.py +0 -0
  598. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/utils/compat/__init__.py +0 -0
  599. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/utils/compat/torch.py +0 -0
  600. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/utils/compat/torch_version_policy.py +0 -0
  601. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/utils/compat/transformers.py +0 -0
  602. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/utils/convert.py +0 -0
  603. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/utils/define.py +0 -0
  604. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/utils/diff_graph.py +0 -0
  605. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/utils/dtype.py +0 -0
  606. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/utils/errors.py +0 -0
  607. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/utils/graph.py +0 -0
  608. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/utils/installed_packages.py +0 -0
  609. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/utils/logging.py +0 -0
  610. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/utils/model.py +0 -0
  611. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/utils/mx/__init__.py +0 -0
  612. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/utils/mx/dtypes.py +0 -0
  613. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/utils/mx/elemwise_ops.py +0 -0
  614. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/utils/mx/formats.py +0 -0
  615. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/utils/mx/mx_ops.py +0 -0
  616. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/utils/padding.py +0 -0
  617. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/utils/passes.py +0 -0
  618. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/utils/pytree_utils.py +0 -0
  619. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/utils/record_input.py +0 -0
  620. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/utils/register_custom_op.py +0 -0
  621. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/utils/serialize.py +0 -0
  622. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/utils/signature.py +0 -0
  623. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/utils/trace_decorators.py +0 -0
  624. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/utils/utils.py +0 -0
  625. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/utils/validate_args_kwargs.py +0 -0
  626. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico/utils/version.py +0 -0
  627. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico.egg-info/dependency_links.txt +0 -0
  628. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico.egg-info/entry_points.txt +0 -0
  629. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico.egg-info/requires.txt +0 -0
  630. {tico-0.3.0.dev261013 → tico-0.3.0.dev261014}/tico.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: tico
3
- Version: 0.3.0.dev261013
3
+ Version: 0.3.0.dev261014
4
4
  Summary: Convert Exported Torch Module To Circle
5
5
  License: This file provides full text of licenses used in this project
6
6
 
@@ -0,0 +1 @@
1
+ __version__ = "0.3.0.dev261014"
@@ -58,7 +58,6 @@ from tico.quantization.quantizer_registry import register_quantizer
58
58
  from tico.utils.utils import move_to_device, print_gpu_memory, Stack
59
59
  from tqdm.auto import tqdm
60
60
 
61
-
62
61
  __all__ = [
63
62
  "GPTQProtocol",
64
63
  "GPTQFactory",
@@ -264,6 +263,31 @@ def infer_object_device(obj: Any) -> torch.device | None:
264
263
  return None
265
264
 
266
265
 
266
+ @dataclass(frozen=True)
267
+ class _ForwardState:
268
+ """Preserve the instance slot, not a bound copy of an inherited method."""
269
+
270
+ had_instance_forward: bool
271
+ captured_forward: Callable[..., Any]
272
+
273
+ @classmethod
274
+ def capture(cls, module: nn.Module) -> "_ForwardState":
275
+ assert module.forward is not None
276
+ return cls(
277
+ had_instance_forward="forward" in module.__dict__,
278
+ captured_forward=module.forward,
279
+ )
280
+
281
+ def restore(self, module: nn.Module) -> None:
282
+ if self.had_instance_forward:
283
+ module.forward = self.captured_forward
284
+ else:
285
+ module.__dict__.pop("forward", None)
286
+
287
+ def __call__(self, *args, **kwargs):
288
+ return self.captured_forward(*args, **kwargs)
289
+
290
+
267
291
  @register_quantizer(UniversalGPTQConfig)
268
292
  class UniversalGPTQQuantizer(BaseQuantizer):
269
293
  """
@@ -317,7 +341,7 @@ class UniversalGPTQQuantizer(BaseQuantizer):
317
341
  self._cache_kwargs: list[
318
342
  dict[str, Any]
319
343
  ] = [] # cache_kwargs[i] -> i-th batch of keyword arguments
320
- self._orig_model_forward: Optional[Callable[..., Any]] = None
344
+ self._orig_model_forward: _ForwardState | None = None
321
345
 
322
346
  @torch.no_grad()
323
347
  def prepare(
@@ -344,7 +368,10 @@ class UniversalGPTQQuantizer(BaseQuantizer):
344
368
  Raises:
345
369
  AssertionError: If prepare() is called twice without convert().
346
370
  """
347
- assert len(self._cache_args) == 0, "prepare() called twice without convert()"
371
+ assert (
372
+ self._orig_model_forward is None and len(self._cache_args) == 0
373
+ ), "prepare() called twice without convert()"
374
+
348
375
  # Substitute the model's forward method to cache model inputs
349
376
  def new_forward(model: nn.Module, *args, **kwargs) -> Any:
350
377
  """
@@ -354,7 +381,7 @@ class UniversalGPTQQuantizer(BaseQuantizer):
354
381
  self._cache_kwargs.append({k: move_to_cpu(v) for k, v in kwargs.items()})
355
382
  return None
356
383
 
357
- self._orig_model_forward = model.forward
384
+ self._orig_model_forward = _ForwardState.capture(model)
358
385
  model.forward = types.MethodType(new_forward, model)
359
386
  return model
360
387
 
@@ -379,7 +406,8 @@ class UniversalGPTQQuantizer(BaseQuantizer):
379
406
  """
380
407
  assert self._orig_model_forward is not None, "convert() called before prepare()"
381
408
  assert len(self._cache_args) > 0, "convert() called before calibration"
382
- model.forward = self._orig_model_forward
409
+ self._orig_model_forward.restore(model)
410
+ self._orig_model_forward = None
383
411
  assert type(self.config) is UniversalGPTQConfig
384
412
  gptq_quantize(
385
413
  model,
@@ -431,7 +459,7 @@ class GPTQ_Data:
431
459
  the quantization lifecycle and stores intermediate results.
432
460
 
433
461
  Attributes:
434
- old_forward: The original forward method before wrapping.
462
+ old_forward: The original callable while wrapped; cleared when unwrapped.
435
463
  gptq: GPTQ instance for Hessian accumulation (None after quantization).
436
464
  quantizer: Quantizer with computed scale/zero-point (None before quantization).
437
465
  is_cacheable: Whether the module's outputs are cached during model replay.
@@ -448,7 +476,7 @@ class GPTQ_Data:
448
476
  """
449
477
 
450
478
  full_module_name: str
451
- old_forward: Callable
479
+ old_forward: _ForwardState | None
452
480
  gptq: GPTQProtocol | None
453
481
  quantizer: Quantizer | None
454
482
  is_cacheable: bool
@@ -617,7 +645,9 @@ def wrap_model(
617
645
  args = move_to_device(args, gptq_data.weight_device)
618
646
  kwargs = move_to_device(kwargs, gptq_data.weight_device)
619
647
  assert type(kwargs) is dict
620
- return gptq_data.old_forward(*args, **kwargs)
648
+ original_forward = gptq_data.old_forward
649
+ assert original_forward is not None, "Module is not wrapped"
650
+ return original_forward(*args, **kwargs)
621
651
 
622
652
  def new_forward(module: nn.Module, *args, **kwargs) -> Any:
623
653
  gptq_data: GPTQ_Data = get_gptq_data(module)
@@ -710,7 +740,7 @@ def wrap_model(
710
740
  "gptq_data",
711
741
  GPTQ_Data(
712
742
  full_module_name=full_model_name,
713
- old_forward=model.forward,
743
+ old_forward=_ForwardState.capture(model),
714
744
  gptq=None,
715
745
  quantizer=None,
716
746
  is_cacheable=is_cacheable,
@@ -770,7 +800,9 @@ def unwrap_model(model: nn.Module, retain_gptq_data: bool = False) -> None:
770
800
  """
771
801
  for module in model.modules():
772
802
  gptq_data: GPTQ_Data = get_gptq_data(module)
773
- module.forward = gptq_data.old_forward
803
+ if gptq_data.old_forward is not None:
804
+ gptq_data.old_forward.restore(module)
805
+ gptq_data.old_forward = None
774
806
  if not retain_gptq_data:
775
807
  gptq_data.cached_output.clear()
776
808
  gptq_data.cached_native_output.clear()
@@ -1195,7 +1227,7 @@ def find_multicall_modules(
1195
1227
  assert not hasattr(m, "per_batch_invocation_count")
1196
1228
  assert not hasattr(m, "total_invocations")
1197
1229
  assert not hasattr(m, "full_module_name")
1198
- setattr(m, "old_forward", m.forward)
1230
+ setattr(m, "old_forward", _ForwardState.capture(m))
1199
1231
  setattr(m, "per_batch_invocation_count", 0)
1200
1232
  setattr(m, "total_invocations", 0)
1201
1233
  setattr(m, "full_module_name", name)
@@ -1221,12 +1253,12 @@ def find_multicall_modules(
1221
1253
  setattr(m, "per_batch_invocation_count", 0)
1222
1254
  finally:
1223
1255
  for m in model.modules():
1224
- old_forward = getattr(m, "old_forward")
1225
- assert old_forward is not None
1226
- m.forward = old_forward
1227
- delattr(m, "per_batch_invocation_count")
1256
+ old_forward: _ForwardState = getattr(m, "old_forward")
1257
+ assert isinstance(old_forward, _ForwardState)
1258
+ old_forward.restore(m)
1228
1259
  delattr(m, "old_forward")
1229
1260
  delattr(m, "full_module_name")
1261
+ delattr(m, "per_batch_invocation_count")
1230
1262
 
1231
1263
  if verbose:
1232
1264
  print(f"[MULTI-CALL MODULE] {len(multicall_modules)} multi-call modules found")
@@ -1292,7 +1324,7 @@ def find_caller_and_callee_modules(
1292
1324
  for name, m in model.named_modules():
1293
1325
  assert not hasattr(m, "old_forward")
1294
1326
  assert not hasattr(m, "full_module_name")
1295
- setattr(m, "old_forward", m.forward)
1327
+ setattr(m, "old_forward", _ForwardState.capture(m))
1296
1328
  setattr(m, "full_module_name", name)
1297
1329
  m.forward = types.MethodType(new_forward, m)
1298
1330
 
@@ -1324,9 +1356,9 @@ def find_caller_and_callee_modules(
1324
1356
  print(f"[INFO] {caller_name} CALLS {', '.join(callee_names)}")
1325
1357
  finally:
1326
1358
  for m in model.modules():
1327
- old_forward = getattr(m, "old_forward")
1328
- assert old_forward is not None
1329
- m.forward = old_forward
1359
+ old_forward: _ForwardState = getattr(m, "old_forward")
1360
+ assert isinstance(old_forward, _ForwardState)
1361
+ old_forward.restore(m)
1330
1362
  delattr(m, "old_forward")
1331
1363
  delattr(m, "full_module_name")
1332
1364
 
@@ -357,6 +357,8 @@ def _build_qwen3_vl_overrides(
357
357
  num_text_layers: int,
358
358
  num_deepstack_mergers: int,
359
359
  linear_weight: Optional[QuantSpec],
360
+ text_linear_weight: Optional[QuantSpec],
361
+ vision_linear_weight: Optional[QuantSpec],
360
362
  vision_patch_embed_weight: Optional[QuantSpec],
361
363
  embedding_weight: Optional[QuantSpec],
362
364
  lm_head_weight: Optional[QuantSpec],
@@ -369,6 +371,12 @@ def _build_qwen3_vl_overrides(
369
371
 
370
372
  vision_overrides: Dict[str, Any] = {}
371
373
 
374
+ # Vision towers fall back to the shared linear weight spec unless a
375
+ # dedicated vision spec is provided (e.g. no_quant to keep vision in FP).
376
+ eff_vision_weight = (
377
+ vision_linear_weight if vision_linear_weight is not None else linear_weight
378
+ )
379
+
372
380
  patch_embed_override = _build_weight_override(vision_patch_embed_weight)
373
381
  if patch_embed_override:
374
382
  _set_nested_override(
@@ -382,13 +390,13 @@ def _build_qwen3_vl_overrides(
382
390
  vision_overrides["blocks"][
383
391
  str(block_idx)
384
392
  ] = _build_qwen3_vl_vision_block_overrides(
385
- linear_weight=linear_weight,
393
+ linear_weight=eff_vision_weight,
386
394
  norm=norm,
387
395
  norm_weight=norm_weight,
388
396
  )
389
397
 
390
398
  merger_override = _build_qwen3_vl_vision_merger_overrides(
391
- linear_weight=linear_weight,
399
+ linear_weight=eff_vision_weight,
392
400
  norm=norm,
393
401
  norm_weight=norm_weight,
394
402
  )
@@ -398,7 +406,7 @@ def _build_qwen3_vl_overrides(
398
406
  if num_deepstack_mergers > 0:
399
407
  vision_overrides["deepstack_merger_list"] = {}
400
408
  deepstack_override = _build_qwen3_vl_vision_merger_overrides(
401
- linear_weight=linear_weight,
409
+ linear_weight=eff_vision_weight,
402
410
  norm=norm,
403
411
  norm_weight=norm_weight,
404
412
  )
@@ -424,10 +432,16 @@ def _build_qwen3_vl_overrides(
424
432
  )
425
433
  _set_nested_override(overrides, ("rotate_lm_head",), spin_rotation_override)
426
434
 
435
+ # Text tower falls back to the shared linear weight spec unless a
436
+ # dedicated text spec is provided (e.g. no_quant to keep the LM in FP).
437
+ eff_text_weight = (
438
+ text_linear_weight if text_linear_weight is not None else linear_weight
439
+ )
440
+
427
441
  text_overrides["layers"] = {}
428
442
  for layer_idx in range(num_text_layers):
429
443
  text_overrides["layers"][str(layer_idx)] = _build_qwen3_vl_text_layer_overrides(
430
- linear_weight=linear_weight,
444
+ linear_weight=eff_text_weight,
431
445
  norm=norm,
432
446
  norm_weight=norm_weight,
433
447
  )
@@ -457,6 +471,8 @@ def build_qwen3_vl_ptq_config(
457
471
  activation: Optional[QuantSpec] = None,
458
472
  weight: Optional[QuantSpec] = None,
459
473
  linear_weight: Optional[QuantSpec] = None,
474
+ text_linear_weight: Optional[QuantSpec] = None,
475
+ vision_linear_weight: Optional[QuantSpec] = None,
460
476
  vision_patch_embed_weight: Optional[QuantSpec] = None,
461
477
  embedding_weight: Optional[QuantSpec] = None,
462
478
  lm_head_weight: Optional[QuantSpec] = None,
@@ -475,6 +491,11 @@ def build_qwen3_vl_ptq_config(
475
491
  activation: Default spec for activation-like observers.
476
492
  weight: Default spec for parameter-like observers.
477
493
  linear_weight: Weight spec for linear projections.
494
+ text_linear_weight: Optional weight spec for the text decoder layers.
495
+ When None, text linears use ``linear_weight``.
496
+ vision_linear_weight: Optional weight spec for the vision tower
497
+ (blocks, merger, deepstack mergers). When None, vision linears
498
+ use ``linear_weight``.
478
499
  vision_patch_embed_weight: Weight spec for vision patch embedding.
479
500
  embedding_weight: Weight spec for token embeddings.
480
501
  lm_head_weight: Weight spec for the language modeling head.
@@ -494,6 +515,8 @@ def build_qwen3_vl_ptq_config(
494
515
  num_text_layers=num_text_layers,
495
516
  num_deepstack_mergers=num_deepstack_mergers,
496
517
  linear_weight=linear_weight,
518
+ text_linear_weight=text_linear_weight,
519
+ vision_linear_weight=vision_linear_weight,
497
520
  vision_patch_embed_weight=vision_patch_embed_weight,
498
521
  embedding_weight=embedding_weight,
499
522
  lm_head_weight=lm_head_weight,
@@ -13,16 +13,48 @@
13
13
  # limitations under the License.
14
14
 
15
15
  from dataclasses import dataclass, field
16
- from typing import Any, Mapping, Optional, Type
16
+ from typing import Any, cast, Mapping, Optional, Type
17
17
 
18
18
  from tico.quantization.config.utils import auto_qscheme_for, dtype_is_unsigned
19
19
  from tico.quantization.wrapq.dtypes import DType
20
20
  from tico.quantization.wrapq.observers.base import ObserverBase
21
+ from tico.quantization.wrapq.observers.ema import EMAObserver
21
22
  from tico.quantization.wrapq.observers.identity import IdentityObserver
22
23
  from tico.quantization.wrapq.observers.minmax import MinMaxObserver
23
24
  from tico.quantization.wrapq.observers.mx import MXObserver
25
+ from tico.quantization.wrapq.observers.percentile import PercentileObserver
24
26
  from tico.quantization.wrapq.qscheme import QScheme
25
27
 
28
+ #: String-to-class registry for affine observer selection from YAML configs.
29
+ _AFFINE_OBSERVER_REGISTRY = {
30
+ "minmax": MinMaxObserver,
31
+ "ema": EMAObserver,
32
+ "percentile": PercentileObserver,
33
+ }
34
+
35
+
36
+ def _resolve_affine_observer(name: str) -> type[ObserverBase]:
37
+ """Resolve an affine observer name to its class.
38
+
39
+ Args:
40
+ name: Observer name such as ``"minmax"``, ``"ema"``, or
41
+ ``"percentile"`` (case-insensitive).
42
+
43
+ Returns:
44
+ The observer class registered under *name*.
45
+
46
+ Raises:
47
+ ValueError: If *name* is not a registered affine observer name.
48
+ """
49
+ key = name.strip().lower()
50
+ try:
51
+ return cast(type[ObserverBase], _AFFINE_OBSERVER_REGISTRY[key])
52
+ except KeyError:
53
+ supported = ", ".join(sorted(_AFFINE_OBSERVER_REGISTRY))
54
+ raise ValueError(
55
+ f"Unknown affine observer {name!r}. " f"Supported observers: {supported}."
56
+ ) from None
57
+
26
58
 
27
59
  def _resolve_qscheme(
28
60
  *,