tico 0.3.0.dev260930__tar.gz → 0.3.0.dev261001__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 (624) hide show
  1. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/PKG-INFO +1 -1
  2. tico-0.3.0.dev261001/tico/_version.py +1 -0
  3. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/debug/static_gemma4_runtime.py +2 -5
  4. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/debug/wrapper_smoke/cases/gemma4.py +4 -0
  5. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/debug/wrapper_smoke/cases/gemma4_assistant.py +10 -4
  6. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/export/gemma4_assistant.py +3 -3
  7. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/examples/gemma4/quantize_for_causal_lm.py +1 -0
  8. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/examples/gemma4/quantize_for_conditional_generation.py +2 -0
  9. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/examples/gemma4/quantize_model.py +2 -0
  10. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/examples/gemma4/quantize_multimodal_embedder.py +2 -0
  11. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/examples/gemma4/quantize_vision_model.py +1 -0
  12. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/examples/gemma4/quantize_vision_patch_embedder.py +1 -0
  13. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/examples/gemma4/quantize_vision_pooler.py +1 -0
  14. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/gemma4/utils.py +20 -0
  15. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/gemma4_assistant/utils.py +8 -7
  16. tico-0.3.0.dev261001/tico/serialize/operators/op_bitwise_and.py +82 -0
  17. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/utils/pytree_utils.py +57 -0
  18. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/utils/utils.py +9 -2
  19. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/utils/validate_args_kwargs.py +13 -0
  20. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico.egg-info/PKG-INFO +1 -1
  21. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico.egg-info/SOURCES.txt +1 -0
  22. tico-0.3.0.dev260930/tico/_version.py +0 -1
  23. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/LICENSE +0 -0
  24. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/README.md +0 -0
  25. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/pyproject.toml +0 -0
  26. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/setup.cfg +0 -0
  27. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/__init__.py +0 -0
  28. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/__init__.py +0 -0
  29. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/_buffer.py +0 -0
  30. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/_object.py +0 -0
  31. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/_schema.py +0 -0
  32. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/analysis/__init__.py +0 -0
  33. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/analysis/effects.py +0 -0
  34. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/analysis/purity.py +0 -0
  35. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/analysis/structural_hash.py +0 -0
  36. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/analysis/tensor_contract.py +0 -0
  37. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/builder.py +0 -0
  38. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/cli/__init__.py +0 -0
  39. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/cli/__main__.py +0 -0
  40. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/cli/main.py +0 -0
  41. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/document.py +0 -0
  42. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/errors.py +0 -0
  43. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/export.py +0 -0
  44. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/graph.py +0 -0
  45. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/inspect/__init__.py +0 -0
  46. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/inspect/printer.py +0 -0
  47. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/inspect/summary.py +0 -0
  48. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/io.py +0 -0
  49. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/mutation.py +0 -0
  50. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/operations/__init__.py +0 -0
  51. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/operations/extract.py +0 -0
  52. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/passes/__init__.py +0 -0
  53. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/passes/base.py +0 -0
  54. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/passes/cleanup/__init__.py +0 -0
  55. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/passes/cleanup/compact_indices.py +0 -0
  56. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/passes/cleanup/dead_code_elimination.py +0 -0
  57. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/passes/cleanup/graph_inputs.py +0 -0
  58. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/passes/manager.py +0 -0
  59. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/passes/optimization/__init__.py +0 -0
  60. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/passes/optimization/_pattern_utils.py +0 -0
  61. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/passes/optimization/_utils.py +0 -0
  62. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/passes/optimization/canonicalize/__init__.py +0 -0
  63. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/passes/optimization/canonicalize/equivalent_ops.py +0 -0
  64. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/passes/optimization/compatibility/__init__.py +0 -0
  65. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/passes/optimization/compatibility/custom_ops.py +0 -0
  66. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/passes/optimization/compatibility/fc_gelu_fc.py +0 -0
  67. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/passes/optimization/cse.py +0 -0
  68. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/passes/optimization/fold/__init__.py +0 -0
  69. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/passes/optimization/fold/constant_subgraph.py +0 -0
  70. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/passes/optimization/fold/evaluators/__init__.py +0 -0
  71. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/passes/optimization/fold/evaluators/base.py +0 -0
  72. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/passes/optimization/fold/evaluators/elementwise.py +0 -0
  73. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/passes/optimization/fold/evaluators/heavy.py +0 -0
  74. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/passes/optimization/fold/evaluators/indexing.py +0 -0
  75. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/passes/optimization/fold/evaluators/shape.py +0 -0
  76. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/passes/optimization/fold/profiles.py +0 -0
  77. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/passes/optimization/fuse/__init__.py +0 -0
  78. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/passes/optimization/fuse/activation.py +0 -0
  79. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/passes/optimization/fuse/composite.py +0 -0
  80. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/passes/optimization/fuse/linear.py +0 -0
  81. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/passes/optimization/fuse/requantize.py +0 -0
  82. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/passes/optimization/fuse/spatial.py +0 -0
  83. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/passes/optimization/legalize/__init__.py +0 -0
  84. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/passes/optimization/legalize/dynamic_fully_connected.py +0 -0
  85. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/passes/optimization/policy.py +0 -0
  86. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/passes/optimization/simplify/__init__.py +0 -0
  87. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/passes/optimization/simplify/_layout_utils.py +0 -0
  88. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/passes/optimization/simplify/arithmetic.py +0 -0
  89. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/passes/optimization/simplify/identity_ops.py +0 -0
  90. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/passes/optimization/simplify/reductions.py +0 -0
  91. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/passes/optimization/simplify/transpose_region.py +0 -0
  92. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/passes/optimization/simplify/transpose_region_rules.py +0 -0
  93. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/passes/optimization/simplify/views.py +0 -0
  94. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/passes/presets.py +0 -0
  95. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/passes/rules.py +0 -0
  96. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/passes/worklist.py +0 -0
  97. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/rewrite.py +0 -0
  98. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/runtime/__init__.py +0 -0
  99. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/runtime/errors.py +0 -0
  100. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/runtime/executor.py +0 -0
  101. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/runtime/kernels/__init__.py +0 -0
  102. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/runtime/kernels/base.py +0 -0
  103. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/runtime/kernels/elementwise.py +0 -0
  104. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/runtime/kernels/nn.py +0 -0
  105. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/runtime/kernels/quantize.py +0 -0
  106. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/runtime/kernels/reduction.py +0 -0
  107. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/runtime/kernels/shape_ops.py +0 -0
  108. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/runtime/program.py +0 -0
  109. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/runtime/quantization.py +0 -0
  110. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/selector.py +0 -0
  111. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/session.py +0 -0
  112. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/value/__init__.py +0 -0
  113. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/value/codec.py +0 -0
  114. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/value/dtype.py +0 -0
  115. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/value/tensor.py +0 -0
  116. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/verify.py +0 -0
  117. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/config/__init__.py +0 -0
  118. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/config/base.py +0 -0
  119. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/config/factory.py +0 -0
  120. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/config/v1.py +0 -0
  121. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/experimental/__init__.py +0 -0
  122. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/interpreter/__init__.py +0 -0
  123. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/interpreter/backends.py +0 -0
  124. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/interpreter/infer.py +0 -0
  125. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/interpreter/interpreter.py +0 -0
  126. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/ops/__init__.py +0 -0
  127. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/ops/concat.py +0 -0
  128. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/ops/resize_bilinear.py +0 -0
  129. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/ops/same_padding_conv2d.py +0 -0
  130. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/passes/__init__.py +0 -0
  131. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/passes/cast_aten_where_arg_type.py +0 -0
  132. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/passes/cast_clamp_mixed_type_args.py +0 -0
  133. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/passes/cast_mixed_type_args.py +0 -0
  134. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/passes/const_prop_pass.py +0 -0
  135. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/passes/convert_conv1d_to_conv2d.py +0 -0
  136. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/passes/convert_conv3d_to_conv2d.py +0 -0
  137. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/passes/convert_expand_to_slice_cat.py +0 -0
  138. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/passes/convert_gather_to_gather_nd.py +0 -0
  139. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/passes/convert_layout_op_to_reshape.py +0 -0
  140. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/passes/convert_matmul_to_linear.py +0 -0
  141. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/passes/convert_repeat_to_expand_copy.py +0 -0
  142. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/passes/convert_sym_size_to_circle_shape.py +0 -0
  143. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/passes/convert_to_relu6.py +0 -0
  144. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/passes/decompose_addmm.py +0 -0
  145. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/passes/decompose_batch_norm.py +0 -0
  146. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/passes/decompose_fake_quantize.py +0 -0
  147. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/passes/decompose_fake_quantize_tensor_qparams.py +0 -0
  148. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/passes/decompose_group_norm.py +0 -0
  149. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/passes/decompose_grouped_conv2d.py +0 -0
  150. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/passes/decompose_slice_scatter.py +0 -0
  151. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/passes/eliminate_rank_round_trip_region.py +0 -0
  152. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/passes/extract_dtype_kwargs.py +0 -0
  153. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/passes/fill_meta_val.py +0 -0
  154. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/passes/fuse_leading_unsqueeze_reshape.py +0 -0
  155. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/passes/fuse_redundant_reshape_to_mean.py +0 -0
  156. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/passes/legalize_causal_mask_value.py +0 -0
  157. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/passes/legalize_predefined_layout_operators.py +0 -0
  158. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/passes/lower_copy.py +0 -0
  159. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/passes/lower_pow2_to_mul.py +0 -0
  160. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/passes/lower_to_resize_nearest_neighbor.py +0 -0
  161. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/passes/lower_to_slice.py +0 -0
  162. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/passes/merge_consecutive_cat.py +0 -0
  163. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/passes/ops.py +0 -0
  164. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/passes/remove_nop.py +0 -0
  165. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/passes/remove_redundant_assert_nodes.py +0 -0
  166. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/passes/remove_redundant_expand.py +0 -0
  167. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/passes/remove_redundant_permute.py +0 -0
  168. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/passes/remove_redundant_reshape.py +0 -0
  169. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/passes/remove_redundant_slice.py +0 -0
  170. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/passes/remove_redundant_to_copy.py +0 -0
  171. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/passes/remove_unused_placeholder.py +0 -0
  172. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/passes/restore_linear.py +0 -0
  173. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/passes/segment_index_select.py +0 -0
  174. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/pt2_to_circle.py +0 -0
  175. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/__init__.py +0 -0
  176. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/__init__.py +0 -0
  177. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/adaround/__init__.py +0 -0
  178. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/adaround/discrete_refinement.py +0 -0
  179. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/adaround/global_refinement.py +0 -0
  180. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/adaround/joint.py +0 -0
  181. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/adaround/joint_runner.py +0 -0
  182. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/adaround/rounding.py +0 -0
  183. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/adaround/runner.py +0 -0
  184. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/adaround/screened_refinement.py +0 -0
  185. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/block_reconstruction/__init__.py +0 -0
  186. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/block_reconstruction/cache.py +0 -0
  187. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/block_reconstruction/multistart.py +0 -0
  188. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/block_reconstruction/observer.py +0 -0
  189. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/block_reconstruction/qdrop.py +0 -0
  190. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/block_reconstruction/runner.py +0 -0
  191. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/block_reconstruction/selection.py +0 -0
  192. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/cle/__init__.py +0 -0
  193. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/cle/cle.py +0 -0
  194. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/cle/quantizer.py +0 -0
  195. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/fpi_gptq/__init__.py +0 -0
  196. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/fpi_gptq/fpi_gptq.py +0 -0
  197. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/fpi_gptq/quantizer.py +0 -0
  198. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/fpi_gptq/util.py +0 -0
  199. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/gemma4_gptq/__init__.py +0 -0
  200. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/gemma4_gptq/gptq.py +0 -0
  201. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/gemma4_gptq/quantizer.py +0 -0
  202. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/gemma4_gptq/utils.py +0 -0
  203. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/gptq/__init__.py +0 -0
  204. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/gptq/gptq.py +0 -0
  205. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/gptq/quant.py +0 -0
  206. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/gptq/quantizer.py +0 -0
  207. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/gptq/utils.py +0 -0
  208. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/qwen3_vl_gptq/__init__.py +0 -0
  209. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/qwen3_vl_gptq/gptq.py +0 -0
  210. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/qwen3_vl_gptq/quantizer.py +0 -0
  211. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/qwen3_vl_gptq/utils.py +0 -0
  212. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/smoothquant/__init__.py +0 -0
  213. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/smoothquant/observer.py +0 -0
  214. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/smoothquant/quantizer.py +0 -0
  215. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/smoothquant/smooth_quant.py +0 -0
  216. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/spinquant/__init__.py +0 -0
  217. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/spinquant/fuse_norm_utils.py +0 -0
  218. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/spinquant/hadamard_utils.py +0 -0
  219. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/spinquant/quantizer.py +0 -0
  220. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/spinquant/qwen3_vl_model_utils.py +0 -0
  221. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/spinquant/qwen3_vl_quantizer.py +0 -0
  222. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/spinquant/qwen3_vl_rotation_utils.py +0 -0
  223. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/spinquant/rotation_utils.py +0 -0
  224. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/spinquant/spin_llama.py +0 -0
  225. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/spinquant/spin_qwen3_vl.py +0 -0
  226. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/universal_gptq/quantizer.py +0 -0
  227. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/analysis/__init__.py +0 -0
  228. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/analysis/ablation.py +0 -0
  229. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/analysis/clipping.py +0 -0
  230. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/analysis/inputs.py +0 -0
  231. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/analysis/metrics.py +0 -0
  232. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/analysis/output_quantization.py +0 -0
  233. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/analysis/outputs.py +0 -0
  234. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/analysis/profile.py +0 -0
  235. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/analysis/report.py +0 -0
  236. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/analysis/selector.py +0 -0
  237. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/analysis/sensitivity.py +0 -0
  238. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/config/__init__.py +0 -0
  239. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/config/base.py +0 -0
  240. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/config/builders.py +0 -0
  241. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/config/cle.py +0 -0
  242. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/config/fpi_gptq.py +0 -0
  243. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/config/gemma4_assistant_builders.py +0 -0
  244. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/config/gemma4_attention.py +0 -0
  245. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/config/gemma4_builders.py +0 -0
  246. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/config/gemma4_gptq.py +0 -0
  247. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/config/gptq.py +0 -0
  248. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/config/llama_attention.py +0 -0
  249. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/config/ptq.py +0 -0
  250. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/config/qwen3_vl_attention.py +0 -0
  251. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/config/qwen3_vl_gptq.py +0 -0
  252. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/config/qwen3_vl_spinquant.py +0 -0
  253. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/config/smoothquant.py +0 -0
  254. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/config/specs.py +0 -0
  255. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/config/spinquant.py +0 -0
  256. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/config/utils.py +0 -0
  257. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/evaluation/__init__.py +0 -0
  258. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/evaluation/backend.py +0 -0
  259. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/evaluation/evaluate.py +0 -0
  260. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/evaluation/executor/__init__.py +0 -0
  261. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/evaluation/executor/backend_executor.py +0 -0
  262. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/evaluation/executor/circle_executor.py +0 -0
  263. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/evaluation/executor/triv24_executor.py +0 -0
  264. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/evaluation/hellaswag_eval_utils.py +0 -0
  265. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/evaluation/llava_bench_judge_eval_utils.py +0 -0
  266. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/evaluation/lmms_eval_utils.py +0 -0
  267. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/evaluation/lmms_gemma4.py +0 -0
  268. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/evaluation/lmms_tasks/videomme_mini/utils.py +0 -0
  269. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/evaluation/metric.py +0 -0
  270. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/evaluation/mmlu_eval_utils.py +0 -0
  271. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/evaluation/mmmu_eval_utils.py +0 -0
  272. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/evaluation/optional_deps.py +0 -0
  273. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/evaluation/script/llm_tasks_eval.py +0 -0
  274. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/evaluation/script/mini_vqa_eval.py +0 -0
  275. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/evaluation/utils.py +0 -0
  276. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/evaluation/vlm_eval_utils.py +0 -0
  277. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/examples/__init__.py +0 -0
  278. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/examples/compare_side_by_side.py +0 -0
  279. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/examples/configs/__init__.py +0 -0
  280. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/examples/evaluate.py +0 -0
  281. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/examples/export.py +0 -0
  282. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/examples/inspector.py +0 -0
  283. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/examples/quantize.py +0 -0
  284. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/passes/__init__.py +0 -0
  285. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/passes/concat_qparam.py +0 -0
  286. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/passes/fold_quant_ops.py +0 -0
  287. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/passes/insert_quantize_on_dtype_mismatch.py +0 -0
  288. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/passes/legalize_quantized_clamp.py +0 -0
  289. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/passes/propagate_qparam_backward.py +0 -0
  290. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/passes/propagate_qparam_forward.py +0 -0
  291. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/passes/qparam_safe_const_prop.py +0 -0
  292. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/passes/quantize_bias.py +0 -0
  293. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/passes/remove_weight_dequant_op.py +0 -0
  294. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/public_interface.py +0 -0
  295. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/quant_stub.py +0 -0
  296. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/quantizer.py +0 -0
  297. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/quantizer_registry.py +0 -0
  298. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/__init__.py +0 -0
  299. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/adapters/__init__.py +0 -0
  300. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/adapters/base.py +0 -0
  301. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/adapters/gemma4.py +0 -0
  302. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/adapters/gemma4_assistant.py +0 -0
  303. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/adapters/llama.py +0 -0
  304. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/adapters/qwen3_vl.py +0 -0
  305. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/config.py +0 -0
  306. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/context.py +0 -0
  307. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/data/__init__.py +0 -0
  308. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/data/dataset_config.py +0 -0
  309. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/data/dataset_usage.py +0 -0
  310. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/data/llm.py +0 -0
  311. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/data/vlm.py +0 -0
  312. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/debug/__init__.py +0 -0
  313. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/debug/static_gemma4_assistant_runtime.py +0 -0
  314. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/debug/static_llama_runtime.py +0 -0
  315. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/debug/static_qwen3_vl_runtime.py +0 -0
  316. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/debug/tied_embedding.py +0 -0
  317. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/debug/trace.py +0 -0
  318. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/debug/wrapper_smoke/__init__.py +0 -0
  319. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/debug/wrapper_smoke/case.py +0 -0
  320. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/debug/wrapper_smoke/cases/__init__.py +0 -0
  321. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/debug/wrapper_smoke/cases/llama.py +0 -0
  322. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/debug/wrapper_smoke/cases/nn.py +0 -0
  323. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/debug/wrapper_smoke/cases/qwen3_vl.py +0 -0
  324. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/debug/wrapper_smoke/registry.py +0 -0
  325. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/debug/wrapper_smoke/result.py +0 -0
  326. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/debug/wrapper_smoke/runner.py +0 -0
  327. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/debug/wrapper_smoke/utils.py +0 -0
  328. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/evaluation/__init__.py +0 -0
  329. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/evaluation/hellaswag.py +0 -0
  330. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/evaluation/llava_bench_judge.py +0 -0
  331. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/evaluation/llm.py +0 -0
  332. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/evaluation/mmlu.py +0 -0
  333. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/evaluation/mmmu.py +0 -0
  334. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/evaluation/selection.py +0 -0
  335. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/evaluation/video_mme.py +0 -0
  336. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/evaluation/vlm.py +0 -0
  337. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/export/__init__.py +0 -0
  338. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/export/checkpoint.py +0 -0
  339. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/export/circle.py +0 -0
  340. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/export/gemma4.py +0 -0
  341. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/export/llama.py +0 -0
  342. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/export/qwen3_vl.py +0 -0
  343. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/extensions.py +0 -0
  344. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/override_policies.py +0 -0
  345. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/qparams.py +0 -0
  346. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/runner.py +0 -0
  347. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/stages/__init__.py +0 -0
  348. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/stages/base.py +0 -0
  349. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/stages/cle.py +0 -0
  350. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/stages/gptq.py +0 -0
  351. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/stages/ptq.py +0 -0
  352. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/stages/smoothquant.py +0 -0
  353. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/stages/spinquant.py +0 -0
  354. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/utils.py +0 -0
  355. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/__init__.py +0 -0
  356. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/control.py +0 -0
  357. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/dtypes.py +0 -0
  358. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/examples/__init__.py +0 -0
  359. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/examples/compare_ppl.py +0 -0
  360. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/examples/debug_quant_outputs.py +0 -0
  361. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/examples/evaluate_fk_llama_model.py +0 -0
  362. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/examples/gemma4/__init__.py +0 -0
  363. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/examples/gemma4/quantize_text_scaled_word_embedding.py +0 -0
  364. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/examples/llama/__init__.py +0 -0
  365. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/examples/llama/quantize_attention_decode.py +0 -0
  366. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/examples/llama/quantize_attention_prefill.py +0 -0
  367. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/examples/llama/quantize_decoder_layer_decode.py +0 -0
  368. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/examples/llama/quantize_decoder_layer_prefill.py +0 -0
  369. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/examples/llama/quantize_mlp.py +0 -0
  370. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/examples/nn/__init__.py +0 -0
  371. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/examples/nn/quantize_conv3d.py +0 -0
  372. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/examples/nn/quantize_conv3d_special_case.py +0 -0
  373. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/examples/nn/quantize_layernorm.py +0 -0
  374. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/examples/nn/quantize_linear.py +0 -0
  375. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/examples/nn/quantize_tied_embedding.py +0 -0
  376. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/examples/quantize_full_qmodel_with_gptq.py +0 -0
  377. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/examples/quantize_qwen3_vl_with_gptq.py +0 -0
  378. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/examples/quantize_with_gptq.py +0 -0
  379. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/examples/qwen/__init__.py +0 -0
  380. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/examples/qwen/quantize_for_conditional_generation.py +0 -0
  381. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/examples/qwen/quantize_model.py +0 -0
  382. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/examples/qwen/quantize_text_attention.py +0 -0
  383. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/examples/qwen/quantize_text_decoder_layer.py +0 -0
  384. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/examples/qwen/quantize_text_mlp.py +0 -0
  385. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/examples/qwen/quantize_text_model.py +0 -0
  386. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/examples/qwen/quantize_vision_attention.py +0 -0
  387. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/examples/qwen/quantize_vision_block.py +0 -0
  388. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/examples/qwen/quantize_vision_mlp.py +0 -0
  389. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/examples/qwen/quantize_vision_model.py +0 -0
  390. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/examples/qwen/quantize_vision_patch_embed.py +0 -0
  391. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/examples/qwen/quantize_vision_patch_merger.py +0 -0
  392. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/examples/qwen/trace_qwen.py +0 -0
  393. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/examples/static_llama_layer_runtime.py +0 -0
  394. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/mode.py +0 -0
  395. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/observers/__init__.py +0 -0
  396. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/observers/affine_base.py +0 -0
  397. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/observers/base.py +0 -0
  398. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/observers/ema.py +0 -0
  399. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/observers/identity.py +0 -0
  400. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/observers/minmax.py +0 -0
  401. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/observers/mx.py +0 -0
  402. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/observers/percentile.py +0 -0
  403. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/qscheme.py +0 -0
  404. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/quantizer.py +0 -0
  405. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/utils/__init__.py +0 -0
  406. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/utils/check_missing_qparam.py +0 -0
  407. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/utils/introspection.py +0 -0
  408. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/utils/linear_folding.py +0 -0
  409. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/utils/metrics.py +0 -0
  410. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/utils/reduce_utils.py +0 -0
  411. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/utils/utils.py +0 -0
  412. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/utils/version.py +0 -0
  413. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrap_helper.py +0 -0
  414. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/__init__.py +0 -0
  415. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/fairseq/__init__.py +0 -0
  416. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/fairseq/decoder_export_single_step.py +0 -0
  417. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/fairseq/quant_decoder.py +0 -0
  418. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/fairseq/quant_decoder_layer.py +0 -0
  419. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/fairseq/quant_encoder.py +0 -0
  420. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/fairseq/quant_encoder_layer.py +0 -0
  421. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/fairseq/quant_mha.py +0 -0
  422. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/gemma4/__init__.py +0 -0
  423. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/gemma4/embedding_scale_fusion.py +0 -0
  424. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/gemma4/export_adapters.py +0 -0
  425. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/gemma4/ple_embedding_host.py +0 -0
  426. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/gemma4/quant_clippable_linear.py +0 -0
  427. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/gemma4/quant_for_causal_lm.py +0 -0
  428. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/gemma4/quant_for_conditional_generation.py +0 -0
  429. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/gemma4/quant_model.py +0 -0
  430. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/gemma4/quant_multimodal_embedder.py +0 -0
  431. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/gemma4/quant_rmsnorm.py +0 -0
  432. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/gemma4/quant_text_attention.py +0 -0
  433. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/gemma4/quant_text_decoder_layer.py +0 -0
  434. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/gemma4/quant_text_mlp.py +0 -0
  435. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/gemma4/quant_text_model.py +0 -0
  436. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/gemma4/quant_text_scaled_word_embedding.py +0 -0
  437. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/gemma4/quant_vision_attention.py +0 -0
  438. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/gemma4/quant_vision_encoder.py +0 -0
  439. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/gemma4/quant_vision_encoder_layer.py +0 -0
  440. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/gemma4/quant_vision_mlp.py +0 -0
  441. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/gemma4/quant_vision_model.py +0 -0
  442. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/gemma4/quant_vision_patch_embedder.py +0 -0
  443. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/gemma4/quant_vision_pooler.py +0 -0
  444. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/gemma4/rope.py +0 -0
  445. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/gemma4/static_vision_profile.py +0 -0
  446. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/gemma4/vision_split_export.py +0 -0
  447. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/gemma4_assistant/__init__.py +0 -0
  448. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/gemma4_assistant/export_adapters.py +0 -0
  449. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/gemma4_assistant/quant_backbone.py +0 -0
  450. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/gemma4_assistant/quant_for_causal_lm.py +0 -0
  451. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/gemma4_assistant/quant_masked_embedder.py +0 -0
  452. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/gemma4_assistant/sparse_head.py +0 -0
  453. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/gemma4_assistant/static_inputs.py +0 -0
  454. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/llama/__init__.py +0 -0
  455. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/llama/export_adapters.py +0 -0
  456. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/llama/quant_attention.py +0 -0
  457. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/llama/quant_decoder_layer.py +0 -0
  458. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/llama/quant_mlp.py +0 -0
  459. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/llama/quant_model.py +0 -0
  460. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/llama/quant_model_for_causal_lm.py +0 -0
  461. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/nn/__init__.py +0 -0
  462. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/nn/quant_conv2d.py +0 -0
  463. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/nn/quant_conv3d.py +0 -0
  464. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/nn/quant_conv3d_decomposed.py +0 -0
  465. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/nn/quant_conv_transpose2d.py +0 -0
  466. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/nn/quant_embedding.py +0 -0
  467. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/nn/quant_layernorm.py +0 -0
  468. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/nn/quant_linear.py +0 -0
  469. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/nn/quant_maxpool2d.py +0 -0
  470. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/nn/quant_prelu.py +0 -0
  471. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/nn/quant_silu.py +0 -0
  472. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/ops/__init__.py +0 -0
  473. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/ops/quant_concat.py +0 -0
  474. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/ops/quant_resize_bilinear.py +0 -0
  475. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/ops/quant_rmsnorm.py +0 -0
  476. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/ops/quant_same_padding_conv2d.py +0 -0
  477. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/ptq_wrapper.py +0 -0
  478. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/quant_elementwise.py +0 -0
  479. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/quant_module_base.py +0 -0
  480. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/quant_stub.py +0 -0
  481. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/qwen_vl/export_adapters.py +0 -0
  482. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/qwen_vl/quant_for_conditional_generation.py +0 -0
  483. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/qwen_vl/quant_model.py +0 -0
  484. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/qwen_vl/quant_text_attention.py +0 -0
  485. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/qwen_vl/quant_text_decoder_layer.py +0 -0
  486. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/qwen_vl/quant_text_mlp.py +0 -0
  487. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/qwen_vl/quant_text_model.py +0 -0
  488. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/qwen_vl/quant_vision_attention.py +0 -0
  489. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/qwen_vl/quant_vision_block.py +0 -0
  490. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/qwen_vl/quant_vision_mlp.py +0 -0
  491. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/qwen_vl/quant_vision_model.py +0 -0
  492. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/qwen_vl/quant_vision_patch_embed.py +0 -0
  493. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/qwen_vl/quant_vision_patch_merger.py +0 -0
  494. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/qwen_vl/vision_profile.py +0 -0
  495. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/registry.py +0 -0
  496. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/__init__.py +0 -0
  497. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/circle_binary.py +0 -0
  498. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/circle_graph.py +0 -0
  499. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/circle_mapping.py +0 -0
  500. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/circle_serializer.py +0 -0
  501. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/__init__.py +0 -0
  502. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/adapters/__init__.py +0 -0
  503. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/adapters/llama_rmsnorm.py +0 -0
  504. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/adapters/onert/__init__.py +0 -0
  505. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/adapters/onert/llama_attention.py +0 -0
  506. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/hashable_opcode.py +0 -0
  507. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/node_visitor.py +0 -0
  508. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_abs.py +0 -0
  509. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_add.py +0 -0
  510. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_alias_copy.py +0 -0
  511. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_any.py +0 -0
  512. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_arange_start_step.py +0 -0
  513. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_argmax.py +0 -0
  514. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_attention.py +0 -0
  515. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_avg_pool2d.py +0 -0
  516. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_bmm.py +0 -0
  517. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_cat.py +0 -0
  518. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_circle_gather_nd.py +0 -0
  519. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_circle_shape.py +0 -0
  520. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_clamp.py +0 -0
  521. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_clone.py +0 -0
  522. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_constant_pad_nd.py +0 -0
  523. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_conv2d.py +0 -0
  524. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_cos.py +0 -0
  525. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_cumsum.py +0 -0
  526. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_depthwise_conv2d.py +0 -0
  527. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_dequantize_per_channel.py +0 -0
  528. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_dequantize_per_tensor.py +0 -0
  529. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_div.py +0 -0
  530. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_elu.py +0 -0
  531. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_embedding.py +0 -0
  532. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_eq.py +0 -0
  533. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_exp.py +0 -0
  534. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_expand.py +0 -0
  535. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_full.py +0 -0
  536. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_full_like.py +0 -0
  537. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_ge.py +0 -0
  538. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_gelu.py +0 -0
  539. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_gt.py +0 -0
  540. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_index.py +0 -0
  541. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_index_select.py +0 -0
  542. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_instance_norm.py +0 -0
  543. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_le.py +0 -0
  544. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_leaky_relu.py +0 -0
  545. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_linear.py +0 -0
  546. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_log.py +0 -0
  547. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_log1p.py +0 -0
  548. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_logical_and.py +0 -0
  549. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_logical_not.py +0 -0
  550. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_lt.py +0 -0
  551. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_max_dim.py +0 -0
  552. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_max_pool2d_with_indices.py +0 -0
  553. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_maximum.py +0 -0
  554. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_mean.py +0 -0
  555. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_minimum.py +0 -0
  556. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_mm.py +0 -0
  557. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_mul.py +0 -0
  558. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_ne.py +0 -0
  559. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_neg.py +0 -0
  560. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_permute.py +0 -0
  561. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_pow.py +0 -0
  562. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_prelu.py +0 -0
  563. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_quantize_per_tensor.py +0 -0
  564. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_reciprocal.py +0 -0
  565. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_relu.py +0 -0
  566. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_relu6.py +0 -0
  567. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_repeat.py +0 -0
  568. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_reshape.py +0 -0
  569. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_resize_bilinear.py +0 -0
  570. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_resize_nearest_neighbor.py +0 -0
  571. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_rmsnorm.py +0 -0
  572. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_round.py +0 -0
  573. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_rsqrt.py +0 -0
  574. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_scalar_tensor.py +0 -0
  575. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_select_copy.py +0 -0
  576. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_sigmoid.py +0 -0
  577. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_sin.py +0 -0
  578. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_slice.py +0 -0
  579. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_softmax.py +0 -0
  580. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_split_with_sizes.py +0 -0
  581. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_sqrt.py +0 -0
  582. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_squeeze.py +0 -0
  583. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_sub.py +0 -0
  584. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_sum.py +0 -0
  585. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_tanh.py +0 -0
  586. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_to_copy.py +0 -0
  587. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_transpose_conv.py +0 -0
  588. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_unsqueeze.py +0 -0
  589. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_view.py +0 -0
  590. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_where.py +0 -0
  591. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/utils.py +0 -0
  592. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/pack.py +0 -0
  593. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/quant_param.py +0 -0
  594. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/utils/__init__.py +0 -0
  595. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/utils/compat/__init__.py +0 -0
  596. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/utils/compat/torch.py +0 -0
  597. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/utils/compat/torch_version_policy.py +0 -0
  598. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/utils/compat/transformers.py +0 -0
  599. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/utils/convert.py +0 -0
  600. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/utils/define.py +0 -0
  601. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/utils/diff_graph.py +0 -0
  602. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/utils/dtype.py +0 -0
  603. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/utils/errors.py +0 -0
  604. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/utils/graph.py +0 -0
  605. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/utils/installed_packages.py +0 -0
  606. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/utils/logging.py +0 -0
  607. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/utils/model.py +0 -0
  608. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/utils/mx/__init__.py +0 -0
  609. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/utils/mx/dtypes.py +0 -0
  610. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/utils/mx/elemwise_ops.py +0 -0
  611. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/utils/mx/formats.py +0 -0
  612. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/utils/mx/mx_ops.py +0 -0
  613. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/utils/padding.py +0 -0
  614. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/utils/passes.py +0 -0
  615. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/utils/record_input.py +0 -0
  616. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/utils/register_custom_op.py +0 -0
  617. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/utils/serialize.py +0 -0
  618. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/utils/signature.py +0 -0
  619. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/utils/trace_decorators.py +0 -0
  620. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/utils/version.py +0 -0
  621. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico.egg-info/dependency_links.txt +0 -0
  622. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico.egg-info/entry_points.txt +0 -0
  623. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico.egg-info/requires.txt +0 -0
  624. {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/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.dev260930
3
+ Version: 0.3.0.dev261001
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.dev261001"
@@ -52,6 +52,7 @@ from tico.quantization.wrapq.wrappers.gemma4.static_vision_profile import (
52
52
  from tico.quantization.wrapq.wrappers.gemma4.utils import (
53
53
  assert_gemma4_e2b_no_moe,
54
54
  build_decode_attention_mask,
55
+ gemma4_layer_type_head_dim,
55
56
  StaticGemma4Layout,
56
57
  )
57
58
 
@@ -413,11 +414,7 @@ class StaticGemma4Runtime:
413
414
  is_sliding = layer_type == "sliding_attention"
414
415
 
415
416
  # Per-layer-type head_dim (HF Gemma4TextAttention.__init__)
416
- global_head_dim = getattr(self.text_config, "global_head_dim", None)
417
- if not is_sliding and global_head_dim:
418
- head_dim = int(global_head_dim)
419
- else:
420
- head_dim = int(self.text_config.head_dim)
417
+ head_dim = gemma4_layer_type_head_dim(self.text_config, layer_type)
421
418
 
422
419
  # Per-layer-type num_kv_heads
423
420
  # use_alternative_attention = attention_k_eq_v and not is_sliding
@@ -346,6 +346,7 @@ def _build_text_config(
346
346
  attention_k_eq_v=attention_k_eq_v,
347
347
  num_kv_shared_layers=num_kv_shared_layers,
348
348
  hidden_size_per_layer_input=hidden_size_per_layer_input,
349
+ allow_global_per_layer_attribute_access=True,
349
350
  )
350
351
  return _set_eager_attention(text_cfg)
351
352
 
@@ -373,6 +374,7 @@ def _build_vision_config(*, size_profile: str) -> Any:
373
374
  use_clipped_linears=False,
374
375
  rope_parameters={"rope_type": "default", "rope_theta": 100.0},
375
376
  standardize=True,
377
+ allow_global_per_layer_attribute_access=True,
376
378
  )
377
379
  elif size_profile in _GEMMA4_E2B_WIDTH_PROFILES:
378
380
  vision_cfg = Gemma4VisionConfig(
@@ -393,6 +395,7 @@ def _build_vision_config(*, size_profile: str) -> Any:
393
395
  use_clipped_linears=True,
394
396
  rope_parameters={"rope_type": "default", "rope_theta": 100.0},
395
397
  standardize=False,
398
+ allow_global_per_layer_attribute_access=True,
396
399
  )
397
400
  else:
398
401
  raise AssertionError(f"Unhandled Gemma4 size profile: {size_profile}")
@@ -409,6 +412,7 @@ def _build_vision_patch_embedder_config(*, size_profile: str) -> Any:
409
412
  hidden_size=32,
410
413
  patch_size=4,
411
414
  position_embedding_size=8,
415
+ allow_global_per_layer_attribute_access=True,
412
416
  )
413
417
  return _build_vision_config(size_profile=size_profile)
414
418
 
@@ -24,6 +24,9 @@ from tico.quantization.recipes.debug.wrapper_smoke.case import (
24
24
  ForwardInput,
25
25
  WrapperSmokeCase,
26
26
  )
27
+ from tico.quantization.wrapq.wrappers.gemma4_assistant.utils import (
28
+ assistant_layer_type_head_dim,
29
+ )
27
30
 
28
31
 
29
32
  def _has_gemma4_assistant() -> CaseAvailability:
@@ -73,6 +76,7 @@ def make_tiny_gemma4_assistant_config() -> Any:
73
76
  num_kv_shared_layers=2,
74
77
  hidden_size_per_layer_input=0,
75
78
  vocab_size_per_layer_input=0,
79
+ allow_global_per_layer_attribute_access=True,
76
80
  )
77
81
  config = Gemma4AssistantConfig(
78
82
  text_config=text_cfg,
@@ -105,14 +109,16 @@ def _make_assistant_sample(model: torch.nn.Module, kv_len: int) -> ForwardInput:
105
109
  """Create one synthetic draft-one assistant sample."""
106
110
  text_cfg = model.config.get_text_config()
107
111
  kv_heads = int(text_cfg.num_key_value_heads)
112
+ full_head_dim = assistant_layer_type_head_dim(text_cfg, "full_attention")
113
+ sliding_head_dim = assistant_layer_type_head_dim(text_cfg, "sliding_attention")
108
114
  shared_kv_states = {
109
115
  "full_attention": (
110
- torch.randn(1, kv_heads, kv_len, int(text_cfg.global_head_dim)),
111
- torch.randn(1, kv_heads, kv_len, int(text_cfg.global_head_dim)),
116
+ torch.randn(1, kv_heads, kv_len, full_head_dim),
117
+ torch.randn(1, kv_heads, kv_len, full_head_dim),
112
118
  ),
113
119
  "sliding_attention": (
114
- torch.randn(1, kv_heads, kv_len, int(text_cfg.head_dim)),
115
- torch.randn(1, kv_heads, kv_len, int(text_cfg.head_dim)),
120
+ torch.randn(1, kv_heads, kv_len, sliding_head_dim),
121
+ torch.randn(1, kv_heads, kv_len, sliding_head_dim),
116
122
  ),
117
123
  }
118
124
  return ForwardInput(
@@ -300,9 +300,9 @@ def write_gemma4_assistant_manifest(
300
300
  "num_hidden_layers": int(text_config.num_hidden_layers),
301
301
  "num_attention_heads": int(text_config.num_attention_heads),
302
302
  "num_key_value_heads": kv_heads,
303
- "head_dim": int(text_config.head_dim),
304
- "global_head_dim": int(
305
- getattr(text_config, "global_head_dim", 0) or text_config.head_dim
303
+ "head_dim": assistant_layer_type_head_dim(text_config, "sliding_attention"),
304
+ "global_head_dim": assistant_layer_type_head_dim(
305
+ text_config, "full_attention"
306
306
  ),
307
307
  "layer_types": list(text_config.layer_types),
308
308
  "sliding_window": int(getattr(text_config, "sliding_window", 0) or 0),
@@ -81,6 +81,7 @@ def _make_text_config() -> Gemma4TextConfig:
81
81
  enable_moe_block=False,
82
82
  # Enable logit softcapping to exercise that code path.
83
83
  final_logit_softcapping=30.0,
84
+ allow_global_per_layer_attribute_access=True,
84
85
  )
85
86
  if not hasattr(cfg, "_attn_implementation"):
86
87
  setattr(cfg, "_attn_implementation", "eager")
@@ -79,6 +79,7 @@ def _make_vision_config() -> Gemma4VisionConfig:
79
79
  use_clipped_linears=False,
80
80
  rope_parameters={"rope_type": "default", "rope_theta": 100.0},
81
81
  standardize=True,
82
+ allow_global_per_layer_attribute_access=True,
82
83
  )
83
84
  if not hasattr(cfg, "_attn_implementation"):
84
85
  setattr(cfg, "_attn_implementation", "eager")
@@ -110,6 +111,7 @@ def _make_text_config() -> Gemma4TextConfig:
110
111
  enable_moe_block=False,
111
112
  # Enable logit softcapping to exercise that code path.
112
113
  final_logit_softcapping=30.0,
114
+ allow_global_per_layer_attribute_access=True,
113
115
  )
114
116
  if not hasattr(cfg, "_attn_implementation"):
115
117
  setattr(cfg, "_attn_implementation", "eager")
@@ -88,6 +88,7 @@ def _make_vision_config() -> Gemma4VisionConfig:
88
88
  use_clipped_linears=False,
89
89
  rope_parameters={"rope_type": "default", "rope_theta": 100.0},
90
90
  standardize=True,
91
+ allow_global_per_layer_attribute_access=True,
91
92
  )
92
93
  if not hasattr(cfg, "_attn_implementation"):
93
94
  setattr(cfg, "_attn_implementation", "eager")
@@ -117,6 +118,7 @@ def _make_text_config() -> Gemma4TextConfig:
117
118
  attention_dropout=0.0,
118
119
  use_cache=False,
119
120
  enable_moe_block=False,
121
+ allow_global_per_layer_attribute_access=True,
120
122
  )
121
123
  if not hasattr(cfg, "_attn_implementation"):
122
124
  setattr(cfg, "_attn_implementation", "eager")
@@ -105,6 +105,7 @@ def main():
105
105
  rms_norm_eps=1e-6,
106
106
  use_clipped_linears=False,
107
107
  rope_parameters={"rope_type": "default", "rope_theta": 100.0},
108
+ allow_global_per_layer_attribute_access=True,
108
109
  )
109
110
  if not hasattr(vision_cfg, "_attn_implementation"):
110
111
  setattr(vision_cfg, "_attn_implementation", "eager")
@@ -130,6 +131,7 @@ def main():
130
131
  attention_dropout=0.0,
131
132
  use_cache=False,
132
133
  enable_moe_block=False,
134
+ allow_global_per_layer_attribute_access=True,
133
135
  )
134
136
  if not hasattr(text_cfg, "_attn_implementation"):
135
137
  setattr(text_cfg, "_attn_implementation", "eager")
@@ -116,6 +116,7 @@ def main():
116
116
  use_clipped_linears=False,
117
117
  rope_parameters={"rope_type": "default", "rope_theta": 100.0},
118
118
  standardize=True,
119
+ allow_global_per_layer_attribute_access=True,
119
120
  )
120
121
  if not hasattr(cfg, "_attn_implementation"):
121
122
  setattr(cfg, "_attn_implementation", "eager")
@@ -125,6 +125,7 @@ def main():
125
125
  rms_norm_eps=1e-6,
126
126
  use_clipped_linears=False,
127
127
  rope_parameters={"rope_type": "default", "rope_theta": 100.0},
128
+ allow_global_per_layer_attribute_access=True,
128
129
  )
129
130
  if not hasattr(cfg, "_attn_implementation"):
130
131
  setattr(cfg, "_attn_implementation", "eager")
@@ -117,6 +117,7 @@ def main():
117
117
  rms_norm_eps=1e-6,
118
118
  use_clipped_linears=False,
119
119
  rope_parameters={"rope_type": "default", "rope_theta": 100.0},
120
+ allow_global_per_layer_attribute_access=True,
120
121
  )
121
122
  if not hasattr(cfg, "_attn_implementation"):
122
123
  setattr(cfg, "_attn_implementation", "eager")
@@ -443,6 +443,26 @@ def extract_text_config(config: Any) -> Any:
443
443
  return getattr(config, "text_config", config)
444
444
 
445
445
 
446
+ def gemma4_layer_type_head_dim(text_config: Any, layer_type: str) -> int:
447
+ """Return the attention head dim used by one Gemma4 text layer type.
448
+
449
+ Mirrors ``Gemma4TextAttention.__init__``. transformers 5.15+ consumes the
450
+ ``global_head_dim`` constructor argument into a full-attention override in
451
+ ``per_layer_config`` and no longer exposes it as a plain attribute, so the
452
+ per-layer view is authoritative whenever the config owns a layer of the
453
+ requested type. Older configs expose ``global_head_dim`` directly; sliding
454
+ layers always use ``head_dim``.
455
+ """
456
+ per_layer_config = getattr(text_config, "per_layer_config", None)
457
+ layer_types = tuple(getattr(text_config, "layer_types", ()) or ())
458
+ if per_layer_config is not None and layer_type in layer_types:
459
+ return int(per_layer_config[layer_type].head_dim)
460
+ global_head_dim = getattr(text_config, "global_head_dim", None)
461
+ if layer_type == "full_attention" and global_head_dim:
462
+ return int(global_head_dim)
463
+ return int(text_config.head_dim)
464
+
465
+
446
466
  def ensure_static_shape(
447
467
  name: str, tensor: torch.Tensor, expected: Iterable[int]
448
468
  ) -> None:
@@ -19,7 +19,10 @@ from typing import Any, Mapping
19
19
  import torch
20
20
  import torch.nn as nn
21
21
 
22
- from tico.quantization.wrapq.wrappers.gemma4.utils import assert_gemma4_e2b_no_moe
22
+ from tico.quantization.wrapq.wrappers.gemma4.utils import (
23
+ assert_gemma4_e2b_no_moe,
24
+ gemma4_layer_type_head_dim,
25
+ )
23
26
 
24
27
 
25
28
  HF_GEMMA4_ASSISTANT_CLASS_PATH = (
@@ -45,15 +48,13 @@ def extract_assistant_text_config(model_or_config: Any) -> Any:
45
48
  def assistant_layer_type_head_dim(text_config: Any, layer_type: str) -> int:
46
49
  """Return the attention head dim used by one assistant layer type.
47
50
 
48
- Mirrors ``Gemma4TextAttention.__init__``: full-attention layers use
49
- ``global_head_dim`` when it is set, sliding layers always use ``head_dim``.
51
+ Rejects layer types outside the supported assistant contract and then
52
+ delegates to :func:`gemma4_layer_type_head_dim`, which resolves the
53
+ per-layer ``head_dim`` across transformers versions.
50
54
  """
51
55
  if layer_type not in SUPPORTED_ASSISTANT_LAYER_TYPES:
52
56
  raise ValueError(f"Unsupported Gemma4 assistant layer type: {layer_type!r}.")
53
- global_head_dim = getattr(text_config, "global_head_dim", None)
54
- if layer_type == "full_attention" and global_head_dim:
55
- return int(global_head_dim)
56
- return int(text_config.head_dim)
57
+ return gemma4_layer_type_head_dim(text_config, layer_type)
57
58
 
58
59
 
59
60
  def assistant_shared_kv_num_heads(text_config: Any) -> int:
@@ -0,0 +1,82 @@
1
+ # Copyright (c) 2025 Samsung Electronics Co., Ltd. All Rights Reserved
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ from typing import Dict, List, TYPE_CHECKING
16
+
17
+ if TYPE_CHECKING:
18
+ import torch._ops
19
+ import torch.fx
20
+ import torch
21
+ from circle_schema import circle
22
+
23
+ from tico.serialize.circle_graph import CircleSubgraph
24
+ from tico.serialize.circle_mapping import extract_torch_dtype
25
+ from tico.serialize.operators.hashable_opcode import OpCode
26
+ from tico.serialize.operators.node_visitor import NodeVisitor, register_node_visitor
27
+ from tico.serialize.operators.utils import create_builtin_operator, get_op_index
28
+ from tico.utils.errors import NotYetSupportedError
29
+ from tico.utils.validate_args_kwargs import BitwiseAndArgs
30
+
31
+
32
+ @register_node_visitor
33
+ class BitwiseAndVisitor(NodeVisitor):
34
+ """
35
+ Lower `aten.bitwise_and.Tensor` on boolean tensors to Circle LOGICAL_AND.
36
+
37
+ For boolean operands `bitwise_and` is identical to `logical_and`, which is
38
+ what `tensor_a & tensor_b` produces (e.g. the attention-mask construction in
39
+ recent `transformers` releases). Integer bitwise AND has no Circle operator
40
+ and is rejected.
41
+ """
42
+
43
+ target: List[torch._ops.OpOverload] = [torch.ops.aten.bitwise_and.Tensor]
44
+
45
+ def __init__(self, op_codes: Dict[OpCode, int], graph: CircleSubgraph):
46
+ super().__init__(op_codes, graph)
47
+
48
+ def define_node(
49
+ self,
50
+ node: torch.fx.Node,
51
+ ) -> circle.Operator.OperatorT:
52
+ args = BitwiseAndArgs(*node.args, **node.kwargs) # type: ignore[arg-type]
53
+ input = args.input
54
+ other = args.other
55
+
56
+ for operand in (input, other):
57
+ operand_dtype = extract_torch_dtype(operand)
58
+ if operand_dtype != torch.bool:
59
+ raise NotYetSupportedError(
60
+ "aten.bitwise_and.Tensor is only supported for bool operands "
61
+ f"(got {operand_dtype})"
62
+ )
63
+
64
+ op_index = get_op_index(
65
+ circle.BuiltinOperator.BuiltinOperator.LOGICAL_AND,
66
+ self._op_codes,
67
+ )
68
+
69
+ inputs = [input, other]
70
+ outputs = [node]
71
+
72
+ operator = create_builtin_operator(self.graph, op_index, inputs, outputs)
73
+
74
+ # Op-specific option
75
+ operator.builtinOptionsType = (
76
+ circle.BuiltinOptions.BuiltinOptions.LogicalAndOptions
77
+ )
78
+ option = circle.LogicalAndOptions.LogicalAndOptionsT()
79
+
80
+ operator.builtinOptions = option
81
+
82
+ return operator
@@ -12,6 +12,7 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
+ import importlib
15
16
  from typing import Any, Dict, Tuple
16
17
 
17
18
  import torch
@@ -70,6 +71,54 @@ __all__ = [
70
71
  ##################################################################################
71
72
 
72
73
 
74
+ # ---------------------------------------------------------------------------
75
+ # aux_data (pytree context) serialization
76
+ # ---------------------------------------------------------------------------
77
+ #
78
+ # `torch.export.save` serializes the TreeSpec of every pytree node to JSON.
79
+ # Our aux_data carries `torch.dtype`, `torch.device`, and class objects, which
80
+ # json cannot dump, so each registration passes these converters as
81
+ # `to_dumpable_context` / `from_dumpable_context`.
82
+
83
+ _DTYPE_TAG = "__torch_dtype__"
84
+ _DEVICE_TAG = "__torch_device__"
85
+ _CLASS_TAG = "__class__"
86
+
87
+
88
+ def _to_dumpable_value(value: Any) -> Any:
89
+ if isinstance(value, torch.dtype):
90
+ # str(torch.float32) == "torch.float32"
91
+ return {_DTYPE_TAG: str(value).removeprefix("torch.")}
92
+ if isinstance(value, torch.device):
93
+ return {_DEVICE_TAG: str(value)}
94
+ if isinstance(value, type):
95
+ return {_CLASS_TAG: f"{value.__module__}.{value.__qualname__}"}
96
+ return value
97
+
98
+
99
+ def _from_dumpable_value(value: Any) -> Any:
100
+ if isinstance(value, dict) and len(value) == 1:
101
+ if _DTYPE_TAG in value:
102
+ return getattr(torch, value[_DTYPE_TAG])
103
+ if _DEVICE_TAG in value:
104
+ return torch.device(value[_DEVICE_TAG])
105
+ if _CLASS_TAG in value:
106
+ module_name, _, qualname = value[_CLASS_TAG].rpartition(".")
107
+ obj: Any = importlib.import_module(module_name)
108
+ for attr in qualname.split("."):
109
+ obj = getattr(obj, attr)
110
+ return obj
111
+ return value
112
+
113
+
114
+ def _aux_to_dumpable(aux_data: Dict[str, Any]) -> Dict[str, Any]:
115
+ return {key: _to_dumpable_value(value) for key, value in aux_data.items()}
116
+
117
+
118
+ def _aux_from_dumpable(aux_data: Dict[str, Any]) -> Dict[str, Any]:
119
+ return {key: _from_dumpable_value(value) for key, value in aux_data.items()}
120
+
121
+
73
122
  # ---------------------------------------------------------------------------
74
123
  # StaticCache
75
124
  # ---------------------------------------------------------------------------
@@ -124,6 +173,8 @@ def register_static_cache():
124
173
  _flatten_static_cache,
125
174
  _unflatten_static_cache,
126
175
  serialized_type_name=f"{StaticCache.__module__}.{StaticCache.__name__}",
176
+ to_dumpable_context=_aux_to_dumpable,
177
+ from_dumpable_context=_aux_from_dumpable,
127
178
  flatten_with_keys_fn=_flatten_with_keys_static_cache,
128
179
  )
129
180
  fx_pytree.register_pytree_flatten_spec(
@@ -226,6 +277,8 @@ def register_static_layer():
226
277
  _flatten_static_layer,
227
278
  _unflatten_static_layer,
228
279
  serialized_type_name=f"{StaticLayer.__module__}.{StaticLayer.__name__}",
280
+ to_dumpable_context=_aux_to_dumpable,
281
+ from_dumpable_context=_aux_from_dumpable,
229
282
  flatten_with_keys_fn=_flatten_with_keys_static_layer,
230
283
  )
231
284
  fx_pytree.register_pytree_flatten_spec(
@@ -299,6 +352,8 @@ def register_dynamic_layer():
299
352
  _flatten_dynamic_layer,
300
353
  _unflatten_dynamic_layer,
301
354
  serialized_type_name=f"{DynamicLayer.__module__}.{DynamicLayer.__name__}",
355
+ to_dumpable_context=_aux_to_dumpable,
356
+ from_dumpable_context=_aux_from_dumpable,
302
357
  flatten_with_keys_fn=_flatten_with_keys_dynamic_layer,
303
358
  )
304
359
  fx_pytree.register_pytree_flatten_spec(
@@ -435,6 +490,8 @@ def register_dynamic_cache():
435
490
  _flatten_dynamic_cache,
436
491
  _unflatten_dynamic_cache,
437
492
  serialized_type_name=f"{DynamicCache.__module__}.{DynamicCache.__name__}",
493
+ to_dumpable_context=_aux_to_dumpable,
494
+ from_dumpable_context=_aux_from_dumpable,
438
495
  flatten_with_keys_fn=_flatten_with_keys_dynamic_cache,
439
496
  )
440
497
  fx_pytree.register_pytree_flatten_spec(
@@ -153,6 +153,13 @@ def enforce_type(callable):
153
153
  parameters = dict(zip(spec.args, args))
154
154
  parameters.update(kwargs)
155
155
 
156
+ # Resolve string annotations to actual types
157
+ try:
158
+ type_hints = typing.get_type_hints(callable)
159
+ except Exception:
160
+ # Fallback if get_type_hints fails (e.g., missing imports in module)
161
+ type_hints = spec.annotations or {}
162
+
156
163
  # Return tuple of flattened types.
157
164
  # Q) What is flatten?
158
165
  # A) Optional/Union is not included. Below are included.
@@ -211,10 +218,10 @@ def enforce_type(callable):
211
218
  continue
212
219
 
213
220
  assert (
214
- name in spec.annotations
221
+ name in type_hints
215
222
  ), f"All parameter require type hints. {name} needs a type hint"
216
223
 
217
- type_hint = spec.annotations[name]
224
+ type_hint = type_hints[name]
218
225
  type_hint = _flatten_type(type_hint)
219
226
  type_check_result = _check_type(value, type_hint)
220
227
  if not type_check_result:
@@ -12,6 +12,8 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
+ from __future__ import annotations
16
+
15
17
  from dataclasses import dataclass, field
16
18
  from typing import List, Optional, TYPE_CHECKING, Union
17
19
 
@@ -149,6 +151,17 @@ class AdaptiveAvgPool2dArgs:
149
151
  output_size: List[int]
150
152
 
151
153
 
154
+ @enforce_type
155
+ @dataclass
156
+ class BitwiseAndArgs:
157
+ """
158
+ bitwise_and.Tensor(Tensor self, Tensor other) -> Tensor
159
+ """
160
+
161
+ input: torch.fx.Node
162
+ other: torch.fx.Node
163
+
164
+
152
165
  @enforce_type
153
166
  @dataclass
154
167
  class BmmArgs:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: tico
3
- Version: 0.3.0.dev260930
3
+ Version: 0.3.0.dev261001
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
 
@@ -508,6 +508,7 @@ tico/serialize/operators/op_arange_start_step.py
508
508
  tico/serialize/operators/op_argmax.py
509
509
  tico/serialize/operators/op_attention.py
510
510
  tico/serialize/operators/op_avg_pool2d.py
511
+ tico/serialize/operators/op_bitwise_and.py
511
512
  tico/serialize/operators/op_bmm.py
512
513
  tico/serialize/operators/op_cat.py
513
514
  tico/serialize/operators/op_circle_gather_nd.py
@@ -1 +0,0 @@
1
- __version__ = "0.3.0.dev260930"
File without changes
File without changes
File without changes