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.
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/PKG-INFO +1 -1
- tico-0.3.0.dev261001/tico/_version.py +1 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/debug/static_gemma4_runtime.py +2 -5
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/debug/wrapper_smoke/cases/gemma4.py +4 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/debug/wrapper_smoke/cases/gemma4_assistant.py +10 -4
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/export/gemma4_assistant.py +3 -3
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/examples/gemma4/quantize_for_causal_lm.py +1 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/examples/gemma4/quantize_for_conditional_generation.py +2 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/examples/gemma4/quantize_model.py +2 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/examples/gemma4/quantize_multimodal_embedder.py +2 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/examples/gemma4/quantize_vision_model.py +1 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/examples/gemma4/quantize_vision_patch_embedder.py +1 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/examples/gemma4/quantize_vision_pooler.py +1 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/gemma4/utils.py +20 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/gemma4_assistant/utils.py +8 -7
- tico-0.3.0.dev261001/tico/serialize/operators/op_bitwise_and.py +82 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/utils/pytree_utils.py +57 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/utils/utils.py +9 -2
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/utils/validate_args_kwargs.py +13 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico.egg-info/PKG-INFO +1 -1
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico.egg-info/SOURCES.txt +1 -0
- tico-0.3.0.dev260930/tico/_version.py +0 -1
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/LICENSE +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/README.md +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/pyproject.toml +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/setup.cfg +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/__init__.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/__init__.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/_buffer.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/_object.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/_schema.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/analysis/__init__.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/analysis/effects.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/analysis/purity.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/analysis/structural_hash.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/analysis/tensor_contract.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/builder.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/cli/__init__.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/cli/__main__.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/cli/main.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/document.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/errors.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/export.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/graph.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/inspect/__init__.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/inspect/printer.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/inspect/summary.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/io.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/mutation.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/operations/__init__.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/operations/extract.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/passes/__init__.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/passes/base.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/passes/cleanup/__init__.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/passes/cleanup/compact_indices.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/passes/cleanup/dead_code_elimination.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/passes/cleanup/graph_inputs.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/passes/manager.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/passes/optimization/__init__.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/passes/optimization/_pattern_utils.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/passes/optimization/_utils.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/passes/optimization/canonicalize/__init__.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/passes/optimization/canonicalize/equivalent_ops.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/passes/optimization/compatibility/__init__.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/passes/optimization/compatibility/custom_ops.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/passes/optimization/compatibility/fc_gelu_fc.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/passes/optimization/cse.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/passes/optimization/fold/__init__.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/passes/optimization/fold/constant_subgraph.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/passes/optimization/fold/evaluators/__init__.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/passes/optimization/fold/evaluators/base.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/passes/optimization/fold/evaluators/elementwise.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/passes/optimization/fold/evaluators/heavy.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/passes/optimization/fold/evaluators/indexing.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/passes/optimization/fold/evaluators/shape.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/passes/optimization/fold/profiles.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/passes/optimization/fuse/__init__.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/passes/optimization/fuse/activation.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/passes/optimization/fuse/composite.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/passes/optimization/fuse/linear.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/passes/optimization/fuse/requantize.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/passes/optimization/fuse/spatial.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/passes/optimization/legalize/__init__.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/passes/optimization/legalize/dynamic_fully_connected.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/passes/optimization/policy.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/passes/optimization/simplify/__init__.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/passes/optimization/simplify/_layout_utils.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/passes/optimization/simplify/arithmetic.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/passes/optimization/simplify/identity_ops.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/passes/optimization/simplify/reductions.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/passes/optimization/simplify/transpose_region.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/passes/optimization/simplify/transpose_region_rules.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/passes/optimization/simplify/views.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/passes/presets.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/passes/rules.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/passes/worklist.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/rewrite.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/runtime/__init__.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/runtime/errors.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/runtime/executor.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/runtime/kernels/__init__.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/runtime/kernels/base.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/runtime/kernels/elementwise.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/runtime/kernels/nn.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/runtime/kernels/quantize.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/runtime/kernels/reduction.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/runtime/kernels/shape_ops.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/runtime/program.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/runtime/quantization.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/selector.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/session.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/value/__init__.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/value/codec.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/value/dtype.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/value/tensor.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/verify.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/config/__init__.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/config/base.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/config/factory.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/config/v1.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/experimental/__init__.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/interpreter/__init__.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/interpreter/backends.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/interpreter/infer.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/interpreter/interpreter.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/ops/__init__.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/ops/concat.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/ops/resize_bilinear.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/ops/same_padding_conv2d.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/passes/__init__.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/passes/cast_aten_where_arg_type.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/passes/cast_clamp_mixed_type_args.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/passes/cast_mixed_type_args.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/passes/const_prop_pass.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/passes/convert_conv1d_to_conv2d.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/passes/convert_conv3d_to_conv2d.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/passes/convert_expand_to_slice_cat.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/passes/convert_gather_to_gather_nd.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/passes/convert_layout_op_to_reshape.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/passes/convert_matmul_to_linear.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/passes/convert_repeat_to_expand_copy.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/passes/convert_sym_size_to_circle_shape.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/passes/convert_to_relu6.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/passes/decompose_addmm.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/passes/decompose_batch_norm.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/passes/decompose_fake_quantize.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/passes/decompose_fake_quantize_tensor_qparams.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/passes/decompose_group_norm.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/passes/decompose_grouped_conv2d.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/passes/decompose_slice_scatter.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/passes/eliminate_rank_round_trip_region.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/passes/extract_dtype_kwargs.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/passes/fill_meta_val.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/passes/fuse_leading_unsqueeze_reshape.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/passes/fuse_redundant_reshape_to_mean.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/passes/legalize_causal_mask_value.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/passes/legalize_predefined_layout_operators.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/passes/lower_copy.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/passes/lower_pow2_to_mul.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/passes/lower_to_resize_nearest_neighbor.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/passes/lower_to_slice.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/passes/merge_consecutive_cat.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/passes/ops.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/passes/remove_nop.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/passes/remove_redundant_assert_nodes.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/passes/remove_redundant_expand.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/passes/remove_redundant_permute.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/passes/remove_redundant_reshape.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/passes/remove_redundant_slice.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/passes/remove_redundant_to_copy.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/passes/remove_unused_placeholder.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/passes/restore_linear.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/passes/segment_index_select.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/pt2_to_circle.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/__init__.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/__init__.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/adaround/__init__.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/adaround/discrete_refinement.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/adaround/global_refinement.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/adaround/joint.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/adaround/joint_runner.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/adaround/rounding.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/adaround/runner.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/adaround/screened_refinement.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/block_reconstruction/__init__.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/block_reconstruction/cache.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/block_reconstruction/multistart.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/block_reconstruction/observer.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/block_reconstruction/qdrop.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/block_reconstruction/runner.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/block_reconstruction/selection.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/cle/__init__.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/cle/cle.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/cle/quantizer.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/fpi_gptq/__init__.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/fpi_gptq/fpi_gptq.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/fpi_gptq/quantizer.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/fpi_gptq/util.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/gemma4_gptq/__init__.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/gemma4_gptq/gptq.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/gemma4_gptq/quantizer.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/gemma4_gptq/utils.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/gptq/__init__.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/gptq/gptq.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/gptq/quant.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/gptq/quantizer.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/gptq/utils.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/qwen3_vl_gptq/__init__.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/qwen3_vl_gptq/gptq.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/qwen3_vl_gptq/quantizer.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/qwen3_vl_gptq/utils.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/smoothquant/__init__.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/smoothquant/observer.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/smoothquant/quantizer.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/smoothquant/smooth_quant.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/spinquant/__init__.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/spinquant/fuse_norm_utils.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/spinquant/hadamard_utils.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/spinquant/quantizer.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/spinquant/qwen3_vl_model_utils.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/spinquant/qwen3_vl_quantizer.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/spinquant/qwen3_vl_rotation_utils.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/spinquant/rotation_utils.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/spinquant/spin_llama.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/spinquant/spin_qwen3_vl.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/algorithm/universal_gptq/quantizer.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/analysis/__init__.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/analysis/ablation.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/analysis/clipping.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/analysis/inputs.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/analysis/metrics.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/analysis/output_quantization.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/analysis/outputs.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/analysis/profile.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/analysis/report.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/analysis/selector.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/analysis/sensitivity.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/config/__init__.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/config/base.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/config/builders.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/config/cle.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/config/fpi_gptq.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/config/gemma4_assistant_builders.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/config/gemma4_attention.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/config/gemma4_builders.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/config/gemma4_gptq.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/config/gptq.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/config/llama_attention.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/config/ptq.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/config/qwen3_vl_attention.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/config/qwen3_vl_gptq.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/config/qwen3_vl_spinquant.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/config/smoothquant.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/config/specs.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/config/spinquant.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/config/utils.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/evaluation/__init__.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/evaluation/backend.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/evaluation/evaluate.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/evaluation/executor/__init__.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/evaluation/executor/backend_executor.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/evaluation/executor/circle_executor.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/evaluation/executor/triv24_executor.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/evaluation/hellaswag_eval_utils.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/evaluation/llava_bench_judge_eval_utils.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/evaluation/lmms_eval_utils.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/evaluation/lmms_gemma4.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/evaluation/lmms_tasks/videomme_mini/utils.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/evaluation/metric.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/evaluation/mmlu_eval_utils.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/evaluation/mmmu_eval_utils.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/evaluation/optional_deps.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/evaluation/script/llm_tasks_eval.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/evaluation/script/mini_vqa_eval.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/evaluation/utils.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/evaluation/vlm_eval_utils.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/examples/__init__.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/examples/compare_side_by_side.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/examples/configs/__init__.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/examples/evaluate.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/examples/export.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/examples/inspector.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/examples/quantize.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/passes/__init__.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/passes/concat_qparam.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/passes/fold_quant_ops.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/passes/insert_quantize_on_dtype_mismatch.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/passes/legalize_quantized_clamp.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/passes/propagate_qparam_backward.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/passes/propagate_qparam_forward.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/passes/qparam_safe_const_prop.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/passes/quantize_bias.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/passes/remove_weight_dequant_op.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/public_interface.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/quant_stub.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/quantizer.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/quantizer_registry.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/__init__.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/adapters/__init__.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/adapters/base.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/adapters/gemma4.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/adapters/gemma4_assistant.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/adapters/llama.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/adapters/qwen3_vl.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/config.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/context.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/data/__init__.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/data/dataset_config.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/data/dataset_usage.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/data/llm.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/data/vlm.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/debug/__init__.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/debug/static_gemma4_assistant_runtime.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/debug/static_llama_runtime.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/debug/static_qwen3_vl_runtime.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/debug/tied_embedding.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/debug/trace.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/debug/wrapper_smoke/__init__.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/debug/wrapper_smoke/case.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/debug/wrapper_smoke/cases/__init__.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/debug/wrapper_smoke/cases/llama.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/debug/wrapper_smoke/cases/nn.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/debug/wrapper_smoke/cases/qwen3_vl.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/debug/wrapper_smoke/registry.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/debug/wrapper_smoke/result.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/debug/wrapper_smoke/runner.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/debug/wrapper_smoke/utils.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/evaluation/__init__.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/evaluation/hellaswag.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/evaluation/llava_bench_judge.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/evaluation/llm.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/evaluation/mmlu.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/evaluation/mmmu.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/evaluation/selection.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/evaluation/video_mme.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/evaluation/vlm.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/export/__init__.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/export/checkpoint.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/export/circle.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/export/gemma4.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/export/llama.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/export/qwen3_vl.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/extensions.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/override_policies.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/qparams.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/runner.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/stages/__init__.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/stages/base.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/stages/cle.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/stages/gptq.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/stages/ptq.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/stages/smoothquant.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/stages/spinquant.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/utils.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/__init__.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/control.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/dtypes.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/examples/__init__.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/examples/compare_ppl.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/examples/debug_quant_outputs.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/examples/evaluate_fk_llama_model.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/examples/gemma4/__init__.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/examples/gemma4/quantize_text_scaled_word_embedding.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/examples/llama/__init__.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/examples/llama/quantize_attention_decode.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/examples/llama/quantize_attention_prefill.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/examples/llama/quantize_decoder_layer_decode.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/examples/llama/quantize_decoder_layer_prefill.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/examples/llama/quantize_mlp.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/examples/nn/__init__.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/examples/nn/quantize_conv3d.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/examples/nn/quantize_conv3d_special_case.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/examples/nn/quantize_layernorm.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/examples/nn/quantize_linear.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/examples/nn/quantize_tied_embedding.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/examples/quantize_full_qmodel_with_gptq.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/examples/quantize_qwen3_vl_with_gptq.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/examples/quantize_with_gptq.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/examples/qwen/__init__.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/examples/qwen/quantize_for_conditional_generation.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/examples/qwen/quantize_model.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/examples/qwen/quantize_text_attention.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/examples/qwen/quantize_text_decoder_layer.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/examples/qwen/quantize_text_mlp.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/examples/qwen/quantize_text_model.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/examples/qwen/quantize_vision_attention.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/examples/qwen/quantize_vision_block.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/examples/qwen/quantize_vision_mlp.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/examples/qwen/quantize_vision_model.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/examples/qwen/quantize_vision_patch_embed.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/examples/qwen/quantize_vision_patch_merger.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/examples/qwen/trace_qwen.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/examples/static_llama_layer_runtime.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/mode.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/observers/__init__.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/observers/affine_base.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/observers/base.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/observers/ema.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/observers/identity.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/observers/minmax.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/observers/mx.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/observers/percentile.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/qscheme.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/quantizer.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/utils/__init__.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/utils/check_missing_qparam.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/utils/introspection.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/utils/linear_folding.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/utils/metrics.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/utils/reduce_utils.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/utils/utils.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/utils/version.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrap_helper.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/__init__.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/fairseq/__init__.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/fairseq/decoder_export_single_step.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/fairseq/quant_decoder.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/fairseq/quant_decoder_layer.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/fairseq/quant_encoder.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/fairseq/quant_encoder_layer.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/fairseq/quant_mha.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/gemma4/__init__.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/gemma4/embedding_scale_fusion.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/gemma4/export_adapters.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/gemma4/ple_embedding_host.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/gemma4/quant_clippable_linear.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/gemma4/quant_for_causal_lm.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/gemma4/quant_for_conditional_generation.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/gemma4/quant_model.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/gemma4/quant_multimodal_embedder.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/gemma4/quant_rmsnorm.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/gemma4/quant_text_attention.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/gemma4/quant_text_decoder_layer.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/gemma4/quant_text_mlp.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/gemma4/quant_text_model.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/gemma4/quant_text_scaled_word_embedding.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/gemma4/quant_vision_attention.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/gemma4/quant_vision_encoder.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/gemma4/quant_vision_encoder_layer.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/gemma4/quant_vision_mlp.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/gemma4/quant_vision_model.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/gemma4/quant_vision_patch_embedder.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/gemma4/quant_vision_pooler.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/gemma4/rope.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/gemma4/static_vision_profile.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/gemma4/vision_split_export.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/gemma4_assistant/__init__.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/gemma4_assistant/export_adapters.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/gemma4_assistant/quant_backbone.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/gemma4_assistant/quant_for_causal_lm.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/gemma4_assistant/quant_masked_embedder.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/gemma4_assistant/sparse_head.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/gemma4_assistant/static_inputs.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/llama/__init__.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/llama/export_adapters.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/llama/quant_attention.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/llama/quant_decoder_layer.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/llama/quant_mlp.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/llama/quant_model.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/llama/quant_model_for_causal_lm.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/nn/__init__.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/nn/quant_conv2d.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/nn/quant_conv3d.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/nn/quant_conv3d_decomposed.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/nn/quant_conv_transpose2d.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/nn/quant_embedding.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/nn/quant_layernorm.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/nn/quant_linear.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/nn/quant_maxpool2d.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/nn/quant_prelu.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/nn/quant_silu.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/ops/__init__.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/ops/quant_concat.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/ops/quant_resize_bilinear.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/ops/quant_rmsnorm.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/ops/quant_same_padding_conv2d.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/ptq_wrapper.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/quant_elementwise.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/quant_module_base.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/quant_stub.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/qwen_vl/export_adapters.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/qwen_vl/quant_for_conditional_generation.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/qwen_vl/quant_model.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/qwen_vl/quant_text_attention.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/qwen_vl/quant_text_decoder_layer.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/qwen_vl/quant_text_mlp.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/qwen_vl/quant_text_model.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/qwen_vl/quant_vision_attention.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/qwen_vl/quant_vision_block.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/qwen_vl/quant_vision_mlp.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/qwen_vl/quant_vision_model.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/qwen_vl/quant_vision_patch_embed.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/qwen_vl/quant_vision_patch_merger.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/qwen_vl/vision_profile.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/registry.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/__init__.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/circle_binary.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/circle_graph.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/circle_mapping.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/circle_serializer.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/__init__.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/adapters/__init__.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/adapters/llama_rmsnorm.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/adapters/onert/__init__.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/adapters/onert/llama_attention.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/hashable_opcode.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/node_visitor.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_abs.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_add.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_alias_copy.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_any.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_arange_start_step.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_argmax.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_attention.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_avg_pool2d.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_bmm.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_cat.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_circle_gather_nd.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_circle_shape.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_clamp.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_clone.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_constant_pad_nd.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_conv2d.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_cos.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_cumsum.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_depthwise_conv2d.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_dequantize_per_channel.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_dequantize_per_tensor.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_div.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_elu.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_embedding.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_eq.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_exp.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_expand.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_full.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_full_like.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_ge.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_gelu.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_gt.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_index.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_index_select.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_instance_norm.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_le.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_leaky_relu.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_linear.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_log.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_log1p.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_logical_and.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_logical_not.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_lt.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_max_dim.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_max_pool2d_with_indices.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_maximum.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_mean.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_minimum.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_mm.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_mul.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_ne.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_neg.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_permute.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_pow.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_prelu.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_quantize_per_tensor.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_reciprocal.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_relu.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_relu6.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_repeat.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_reshape.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_resize_bilinear.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_resize_nearest_neighbor.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_rmsnorm.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_round.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_rsqrt.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_scalar_tensor.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_select_copy.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_sigmoid.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_sin.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_slice.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_softmax.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_split_with_sizes.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_sqrt.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_squeeze.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_sub.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_sum.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_tanh.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_to_copy.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_transpose_conv.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_unsqueeze.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_view.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/op_where.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/operators/utils.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/pack.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/serialize/quant_param.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/utils/__init__.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/utils/compat/__init__.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/utils/compat/torch.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/utils/compat/torch_version_policy.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/utils/compat/transformers.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/utils/convert.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/utils/define.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/utils/diff_graph.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/utils/dtype.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/utils/errors.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/utils/graph.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/utils/installed_packages.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/utils/logging.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/utils/model.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/utils/mx/__init__.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/utils/mx/dtypes.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/utils/mx/elemwise_ops.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/utils/mx/formats.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/utils/mx/mx_ops.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/utils/padding.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/utils/passes.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/utils/record_input.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/utils/register_custom_op.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/utils/serialize.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/utils/signature.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/utils/trace_decorators.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/utils/version.py +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico.egg-info/dependency_links.txt +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico.egg-info/entry_points.txt +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico.egg-info/requires.txt +0 -0
- {tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico.egg-info/top_level.txt +0 -0
|
@@ -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
|
-
|
|
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,
|
|
111
|
-
torch.randn(1, kv_heads, kv_len,
|
|
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,
|
|
115
|
-
torch.randn(1, kv_heads, kv_len,
|
|
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(
|
{tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/recipes/export/gemma4_assistant.py
RENAMED
|
@@ -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":
|
|
304
|
-
"global_head_dim":
|
|
305
|
-
|
|
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")
|
{tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/quantization/wrapq/wrappers/gemma4/utils.py
RENAMED
|
@@ -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
|
|
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
|
-
|
|
49
|
-
|
|
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
|
-
|
|
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
|
|
221
|
+
name in type_hints
|
|
215
222
|
), f"All parameter require type hints. {name} needs a type hint"
|
|
216
223
|
|
|
217
|
-
type_hint =
|
|
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:
|
|
@@ -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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/passes/cleanup/dead_code_elimination.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/passes/optimization/_pattern_utils.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tico-0.3.0.dev260930 → tico-0.3.0.dev261001}/tico/circle/passes/optimization/fold/__init__.py
RENAMED
|
File without changes
|