tico 0.2.0.dev260701__tar.gz → 0.2.0.dev260702__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.2.0.dev260701 → tico-0.2.0.dev260702}/PKG-INFO +70 -320
- tico-0.2.0.dev260702/README.md +131 -0
- tico-0.2.0.dev260702/tico/_version.py +1 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/config/gemma4_builders.py +3 -3
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/recipes/debug/wrapper_smoke/cases/qwen3_vl.py +6 -1
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico.egg-info/PKG-INFO +70 -320
- tico-0.2.0.dev260701/README.md +0 -381
- tico-0.2.0.dev260701/tico/_version.py +0 -1
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/LICENSE +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/pyproject.toml +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/setup.cfg +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/__init__.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/config/__init__.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/config/base.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/config/factory.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/config/v1.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/experimental/__init__.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/interpreter/__init__.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/interpreter/infer.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/interpreter/interpreter.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/passes/__init__.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/passes/cast_aten_where_arg_type.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/passes/cast_clamp_mixed_type_args.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/passes/cast_mixed_type_args.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/passes/const_prop_pass.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/passes/convert_conv1d_to_conv2d.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/passes/convert_conv3d_to_conv2d.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/passes/convert_expand_to_slice_cat.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/passes/convert_gather_to_gather_nd.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/passes/convert_layout_op_to_reshape.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/passes/convert_matmul_to_linear.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/passes/convert_repeat_to_expand_copy.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/passes/convert_sym_size_to_circle_shape.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/passes/convert_to_relu6.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/passes/decompose_addmm.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/passes/decompose_batch_norm.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/passes/decompose_fake_quantize.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/passes/decompose_fake_quantize_tensor_qparams.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/passes/decompose_group_norm.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/passes/decompose_grouped_conv2d.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/passes/decompose_slice_scatter.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/passes/eliminate_rank_round_trip_region.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/passes/extract_dtype_kwargs.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/passes/fill_meta_val.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/passes/fuse_leading_unsqueeze_reshape.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/passes/fuse_redundant_reshape_to_mean.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/passes/legalize_causal_mask_value.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/passes/legalize_predefined_layout_operators.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/passes/lower_copy.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/passes/lower_pow2_to_mul.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/passes/lower_to_resize_nearest_neighbor.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/passes/lower_to_slice.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/passes/merge_consecutive_cat.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/passes/ops.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/passes/remove_nop.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/passes/remove_redundant_assert_nodes.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/passes/remove_redundant_expand.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/passes/remove_redundant_permute.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/passes/remove_redundant_reshape.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/passes/remove_redundant_slice.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/passes/remove_redundant_to_copy.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/passes/remove_unused_placeholder.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/passes/restore_linear.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/passes/segment_index_select.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/pt2_to_circle.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/__init__.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/algorithm/__init__.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/algorithm/cle/__init__.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/algorithm/cle/cle.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/algorithm/cle/quantizer.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/algorithm/fpi_gptq/__init__.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/algorithm/fpi_gptq/fpi_gptq.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/algorithm/fpi_gptq/quantizer.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/algorithm/fpi_gptq/util.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/algorithm/gptq/__init__.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/algorithm/gptq/gptq.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/algorithm/gptq/quant.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/algorithm/gptq/quantizer.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/algorithm/gptq/utils.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/algorithm/qwen3_vl_gptq/__init__.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/algorithm/qwen3_vl_gptq/gptq.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/algorithm/qwen3_vl_gptq/quantizer.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/algorithm/qwen3_vl_gptq/utils.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/algorithm/smoothquant/__init__.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/algorithm/smoothquant/observer.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/algorithm/smoothquant/quantizer.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/algorithm/smoothquant/smooth_quant.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/algorithm/spinquant/__init__.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/algorithm/spinquant/fuse_norm_utils.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/algorithm/spinquant/hadamard_utils.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/algorithm/spinquant/quantizer.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/algorithm/spinquant/qwen3_vl_model_utils.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/algorithm/spinquant/qwen3_vl_quantizer.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/algorithm/spinquant/qwen3_vl_rotation_utils.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/algorithm/spinquant/rotation_utils.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/algorithm/spinquant/spin_llama.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/algorithm/spinquant/spin_qwen3_vl.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/config/__init__.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/config/base.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/config/builders.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/config/cle.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/config/fpi_gptq.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/config/gptq.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/config/llama_attention.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/config/ptq.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/config/qwen3_vl_gptq.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/config/qwen3_vl_spinquant.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/config/smoothquant.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/config/specs.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/config/spinquant.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/config/utils.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/evaluation/__init__.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/evaluation/backend.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/evaluation/evaluate.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/evaluation/executor/__init__.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/evaluation/executor/backend_executor.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/evaluation/executor/circle_executor.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/evaluation/executor/triv24_executor.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/evaluation/hellaswag_eval_utils.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/evaluation/llava_bench_judge_eval_utils.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/evaluation/lmms_eval_utils.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/evaluation/lmms_tasks/videomme_mini/utils.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/evaluation/metric.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/evaluation/mmlu_eval_utils.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/evaluation/mmmu_eval_utils.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/evaluation/optional_deps.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/evaluation/script/llm_tasks_eval.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/evaluation/script/mini_vqa_eval.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/evaluation/utils.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/evaluation/vlm_eval_utils.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/examples/__init__.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/examples/configs/__init__.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/examples/evaluate.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/examples/inspect.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/examples/quantize.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/passes/__init__.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/passes/fold_quant_ops.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/passes/insert_quantize_on_dtype_mismatch.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/passes/propagate_qparam_backward.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/passes/propagate_qparam_forward.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/passes/qparam_safe_const_prop.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/passes/quantize_bias.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/passes/remove_weight_dequant_op.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/public_interface.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/quantizer.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/quantizer_registry.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/recipes/__init__.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/recipes/adapters/__init__.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/recipes/adapters/base.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/recipes/adapters/gemma4.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/recipes/adapters/llama.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/recipes/adapters/qwen3_vl.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/recipes/config.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/recipes/context.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/recipes/data/__init__.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/recipes/data/llm.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/recipes/data/vlm.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/recipes/debug/__init__.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/recipes/debug/static_gemma4_runtime.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/recipes/debug/static_llama_runtime.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/recipes/debug/static_qwen3_vl_runtime.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/recipes/debug/tied_embedding.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/recipes/debug/trace.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/recipes/debug/wrapper_smoke/__init__.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/recipes/debug/wrapper_smoke/case.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/recipes/debug/wrapper_smoke/cases/__init__.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/recipes/debug/wrapper_smoke/cases/gemma4.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/recipes/debug/wrapper_smoke/cases/llama.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/recipes/debug/wrapper_smoke/cases/nn.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/recipes/debug/wrapper_smoke/registry.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/recipes/debug/wrapper_smoke/result.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/recipes/debug/wrapper_smoke/runner.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/recipes/debug/wrapper_smoke/utils.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/recipes/evaluation/__init__.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/recipes/evaluation/hellaswag.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/recipes/evaluation/llava_bench_judge.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/recipes/evaluation/llm.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/recipes/evaluation/mmlu.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/recipes/evaluation/mmmu.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/recipes/evaluation/video_mme.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/recipes/evaluation/vlm.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/recipes/export/__init__.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/recipes/export/checkpoint.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/recipes/export/circle.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/recipes/export/llama.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/recipes/qparams.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/recipes/runner.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/recipes/stages/__init__.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/recipes/stages/base.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/recipes/stages/cle.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/recipes/stages/gptq.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/recipes/stages/ptq.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/recipes/stages/smoothquant.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/recipes/stages/spinquant.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/recipes/utils.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/__init__.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/dtypes.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/examples/__init__.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/examples/compare_ppl.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/examples/debug_quant_outputs.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/examples/evaluate_fk_llama_model.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/examples/gemma4/__init__.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/examples/gemma4/quantize_model.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/examples/gemma4/quantize_multimodal_embedder.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/examples/gemma4/quantize_text_scaled_word_embedding.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/examples/gemma4/quantize_vision_model.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/examples/gemma4/quantize_vision_patch_embedder.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/examples/gemma4/quantize_vision_pooler.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/examples/llama/__init__.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/examples/llama/quantize_attention_decode.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/examples/llama/quantize_attention_prefill.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/examples/llama/quantize_decoder_layer_decode.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/examples/llama/quantize_decoder_layer_prefill.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/examples/llama/quantize_mlp.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/examples/nn/__init__.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/examples/nn/quantize_conv3d.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/examples/nn/quantize_conv3d_special_case.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/examples/nn/quantize_layernorm.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/examples/nn/quantize_linear.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/examples/nn/quantize_tied_embedding.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/examples/quantize_full_qmodel_with_gptq.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/examples/quantize_qwen3_vl_with_gptq.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/examples/quantize_with_gptq.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/examples/qwen/__init__.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/examples/qwen/quantize_for_conditional_generation.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/examples/qwen/quantize_model.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/examples/qwen/quantize_text_attention.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/examples/qwen/quantize_text_decoder_layer.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/examples/qwen/quantize_text_mlp.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/examples/qwen/quantize_text_model.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/examples/qwen/quantize_vision_attention.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/examples/qwen/quantize_vision_block.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/examples/qwen/quantize_vision_mlp.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/examples/qwen/quantize_vision_model.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/examples/qwen/quantize_vision_patch_embed.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/examples/qwen/quantize_vision_patch_merger.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/examples/qwen/trace_qwen.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/examples/static_llama_layer_runtime.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/mode.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/observers/__init__.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/observers/affine_base.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/observers/base.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/observers/ema.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/observers/identity.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/observers/minmax.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/observers/mx.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/qscheme.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/quantizer.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/utils/__init__.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/utils/check_missing_qparam.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/utils/introspection.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/utils/metrics.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/utils/reduce_utils.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/utils/utils.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/utils/version.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/wrap_helper.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/wrappers/__init__.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/wrappers/fairseq/__init__.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/wrappers/fairseq/decoder_export_single_step.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/wrappers/fairseq/quant_decoder.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/wrappers/fairseq/quant_decoder_layer.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/wrappers/fairseq/quant_encoder.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/wrappers/fairseq/quant_encoder_layer.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/wrappers/fairseq/quant_mha.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/wrappers/gemma4/__init__.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/wrappers/gemma4/export_adapters.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/wrappers/gemma4/quant_clippable_linear.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/wrappers/gemma4/quant_for_causal_lm.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/wrappers/gemma4/quant_for_conditional_generation.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/wrappers/gemma4/quant_model.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/wrappers/gemma4/quant_multimodal_embedder.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/wrappers/gemma4/quant_rmsnorm.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/wrappers/gemma4/quant_text_attention.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/wrappers/gemma4/quant_text_decoder_layer.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/wrappers/gemma4/quant_text_mlp.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/wrappers/gemma4/quant_text_model.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/wrappers/gemma4/quant_text_scaled_word_embedding.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/wrappers/gemma4/quant_vision_attention.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/wrappers/gemma4/quant_vision_encoder.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/wrappers/gemma4/quant_vision_encoder_layer.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/wrappers/gemma4/quant_vision_mlp.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/wrappers/gemma4/quant_vision_model.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/wrappers/gemma4/quant_vision_patch_embedder.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/wrappers/gemma4/quant_vision_pooler.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/wrappers/gemma4/utils.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/wrappers/llama/__init__.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/wrappers/llama/export_adapters.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/wrappers/llama/quant_attention.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/wrappers/llama/quant_decoder_layer.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/wrappers/llama/quant_mlp.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/wrappers/llama/quant_model.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/wrappers/llama/quant_model_for_causal_lm.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/wrappers/nn/__init__.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/wrappers/nn/quant_conv3d.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/wrappers/nn/quant_conv3d_decomposed.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/wrappers/nn/quant_embedding.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/wrappers/nn/quant_layernorm.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/wrappers/nn/quant_linear.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/wrappers/nn/quant_silu.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/wrappers/ops/__init__.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/wrappers/ops/quant_rmsnorm.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/wrappers/ptq_wrapper.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/wrappers/quant_elementwise.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/wrappers/quant_module_base.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/wrappers/qwen_vl/export_adapters.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/wrappers/qwen_vl/quant_for_conditional_generation.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/wrappers/qwen_vl/quant_model.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/wrappers/qwen_vl/quant_text_attention.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/wrappers/qwen_vl/quant_text_decoder_layer.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/wrappers/qwen_vl/quant_text_mlp.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/wrappers/qwen_vl/quant_text_model.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/wrappers/qwen_vl/quant_vision_attention.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/wrappers/qwen_vl/quant_vision_block.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/wrappers/qwen_vl/quant_vision_mlp.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/wrappers/qwen_vl/quant_vision_model.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/wrappers/qwen_vl/quant_vision_patch_embed.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/wrappers/qwen_vl/quant_vision_patch_merger.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/quantization/wrapq/wrappers/registry.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/__init__.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/circle_graph.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/circle_mapping.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/circle_serializer.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/operators/__init__.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/operators/adapters/__init__.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/operators/adapters/llama_rmsnorm.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/operators/adapters/onert/__init__.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/operators/adapters/onert/llama_attention.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/operators/hashable_opcode.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/operators/node_visitor.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/operators/op_abs.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/operators/op_add.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/operators/op_alias_copy.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/operators/op_any.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/operators/op_arange_start_step.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/operators/op_argmax.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/operators/op_attention.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/operators/op_avg_pool2d.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/operators/op_bmm.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/operators/op_cat.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/operators/op_circle_gather_nd.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/operators/op_circle_shape.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/operators/op_clamp.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/operators/op_clone.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/operators/op_constant_pad_nd.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/operators/op_conv2d.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/operators/op_cos.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/operators/op_cumsum.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/operators/op_depthwise_conv2d.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/operators/op_dequantize_per_channel.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/operators/op_dequantize_per_tensor.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/operators/op_div.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/operators/op_elu.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/operators/op_embedding.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/operators/op_eq.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/operators/op_exp.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/operators/op_expand.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/operators/op_full.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/operators/op_full_like.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/operators/op_ge.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/operators/op_gelu.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/operators/op_gt.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/operators/op_index.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/operators/op_index_select.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/operators/op_instance_norm.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/operators/op_le.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/operators/op_leaky_relu.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/operators/op_linear.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/operators/op_log.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/operators/op_log1p.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/operators/op_logical_and.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/operators/op_logical_not.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/operators/op_lt.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/operators/op_max_dim.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/operators/op_max_pool2d_with_indices.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/operators/op_maximum.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/operators/op_mean.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/operators/op_minimum.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/operators/op_mm.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/operators/op_mul.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/operators/op_ne.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/operators/op_neg.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/operators/op_permute.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/operators/op_pow.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/operators/op_prelu.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/operators/op_quantize_per_tensor.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/operators/op_reciprocal.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/operators/op_relu.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/operators/op_relu6.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/operators/op_repeat.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/operators/op_reshape.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/operators/op_resize_nearest_neighbor.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/operators/op_rmsnorm.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/operators/op_round.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/operators/op_rsqrt.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/operators/op_scalar_tensor.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/operators/op_select_copy.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/operators/op_sigmoid.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/operators/op_sin.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/operators/op_slice.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/operators/op_softmax.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/operators/op_split_with_sizes.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/operators/op_sqrt.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/operators/op_squeeze.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/operators/op_sub.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/operators/op_sum.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/operators/op_tanh.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/operators/op_to_copy.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/operators/op_transpose_conv.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/operators/op_unsqueeze.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/operators/op_view.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/operators/op_where.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/operators/utils.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/pack.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/serialize/quant_param.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/utils/__init__.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/utils/compat/__init__.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/utils/compat/torch.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/utils/compat/transformers.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/utils/convert.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/utils/define.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/utils/diff_graph.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/utils/dtype.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/utils/errors.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/utils/graph.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/utils/installed_packages.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/utils/logging.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/utils/model.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/utils/mx/__init__.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/utils/mx/dtypes.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/utils/mx/elemwise_ops.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/utils/mx/formats.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/utils/mx/mx_ops.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/utils/padding.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/utils/passes.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/utils/pytree_utils.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/utils/record_input.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/utils/register_custom_op.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/utils/serialize.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/utils/signature.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/utils/trace_decorators.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/utils/utils.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/utils/validate_args_kwargs.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico/utils/version.py +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico.egg-info/SOURCES.txt +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico.egg-info/dependency_links.txt +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico.egg-info/entry_points.txt +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/tico.egg-info/requires.txt +0 -0
- {tico-0.2.0.dev260701 → tico-0.2.0.dev260702}/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.2.0.
|
|
3
|
+
Version: 0.2.0.dev260702
|
|
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
|
|
|
@@ -257,91 +257,62 @@ Dynamic: license-file
|
|
|
257
257
|
|
|
258
258
|
# TICO
|
|
259
259
|
|
|
260
|
-
_TICO_ (
|
|
261
|
-
|
|
262
|
-
designed for optimized on-device neural network inference.
|
|
260
|
+
_TICO_ (**T**orch **I**R to **C**ircle [ONE](https://github.com/Samsung/ONE)) is a Python
|
|
261
|
+
library that converts PyTorch modules into Circle models — a lightweight and efficient
|
|
262
|
+
representation in ONE designed for optimized on-device neural network inference.
|
|
263
263
|
|
|
264
|
-
##
|
|
264
|
+
## Highlights
|
|
265
265
|
|
|
266
|
-
|
|
266
|
+
- **One-call conversion** — `tico.convert()` turns an `nn.Module` into a ready-to-deploy `.circle` binary.
|
|
267
|
+
- **`.pt2` support** — convert saved `torch.export` programs via the Python API or the `pt2-to-circle` command-line tool.
|
|
268
|
+
- **Run Circle models in Python** — execute converted models directly for quick parity checks against PyTorch.
|
|
269
|
+
- **Quantization toolkit** — a unified `prepare`/`convert` API with GPTQ, PTQ (WrapQ), SmoothQuant, SpinQuant, and CLE, plus config-driven CLI recipes for LLMs and VLMs.
|
|
267
270
|
|
|
268
|
-
|
|
269
|
-
- [Getting Started](#getting-started)
|
|
270
|
-
- [From torch module](#from-torch-module)
|
|
271
|
-
- [From .pt2](#from-pt2)
|
|
272
|
-
- [Running circle models directly in Python](#running-circle-models-directly-in-python)
|
|
273
|
-
- [Quantization](#quantization)
|
|
271
|
+
## Installation
|
|
274
272
|
|
|
275
|
-
###
|
|
273
|
+
### Prerequisites
|
|
276
274
|
|
|
277
|
-
-
|
|
278
|
-
- [
|
|
279
|
-
|
|
275
|
+
- Python **3.10+**
|
|
276
|
+
- (Optional) [one-compiler](https://github.com/Samsung/ONE/releases) — only required to run
|
|
277
|
+
inference with converted Circle models. Conversion itself does not need it.
|
|
280
278
|
|
|
281
|
-
|
|
279
|
+
We highly recommend using a virtual environment (e.g., conda, venv).
|
|
282
280
|
|
|
283
|
-
###
|
|
284
|
-
|
|
285
|
-
0. Prerequisites
|
|
286
|
-
|
|
287
|
-
- Python 3.10
|
|
288
|
-
- (Optional) [one-compiler 1.30.0](https://github.com/Samsung/ONE/releases/tag/1.30.0)
|
|
289
|
-
- It is only required if you intend to run inference with the converted Circle model. If you are only converting models without running them, this dependency is not needed.
|
|
290
|
-
|
|
291
|
-
We highly recommend to use a virtual env, e.g., conda.
|
|
292
|
-
|
|
293
|
-
1. Clone this repo
|
|
294
|
-
|
|
295
|
-
2. Build python package
|
|
281
|
+
### From PyPI
|
|
296
282
|
|
|
297
283
|
```bash
|
|
298
|
-
|
|
284
|
+
pip install tico
|
|
299
285
|
```
|
|
300
286
|
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
3. Install generated package
|
|
287
|
+
### From source
|
|
304
288
|
|
|
305
289
|
```bash
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
**Available options**
|
|
310
|
-
- `--dist` To install the package from .whl (without this option, _TICO_ is installed in an editable mode)
|
|
311
|
-
- `--torch_ver <torch version>` To install a specific torch version (default: 2.6).
|
|
312
|
-
- Available <torch version>: 2.5, 2.6, 2.7, 2.8, nightly
|
|
290
|
+
git clone https://github.com/Samsung/TICO.git
|
|
291
|
+
cd TICO
|
|
313
292
|
|
|
314
|
-
|
|
293
|
+
./ccex build # generates build/ and dist/
|
|
294
|
+
./ccex install # installs the package
|
|
295
|
+
```
|
|
315
296
|
|
|
316
|
-
|
|
297
|
+
**`./ccex install` options**
|
|
317
298
|
|
|
318
|
-
|
|
299
|
+
| Option | Description |
|
|
300
|
+
|---|---|
|
|
301
|
+
| `--dist` | Install from the built wheel (default is editable mode) |
|
|
302
|
+
| `--torch_ver <ver>` | Torch version to install: a family (`2.5` ~ `2.10`), an exact version (e.g. `2.7.0+cu118`), or `nightly`. Default: `2.7` |
|
|
303
|
+
| `--cuda_ver <maj.min>` | Override the detected CUDA version (e.g. `12.1`) |
|
|
304
|
+
| `--cpu_only` | Force a CPU-only Torch installation |
|
|
319
305
|
|
|
320
|
-
|
|
306
|
+
## Quick start
|
|
321
307
|
|
|
322
308
|
```python
|
|
323
309
|
import tico
|
|
324
310
|
import torch
|
|
325
311
|
|
|
326
312
|
class AddModule(torch.nn.Module):
|
|
327
|
-
def __init__(self):
|
|
328
|
-
super().__init__()
|
|
329
|
-
|
|
330
313
|
def forward(self, x, y):
|
|
331
314
|
return x + y
|
|
332
|
-
```
|
|
333
|
-
|
|
334
|
-
**NOTE**
|
|
335
|
-
_TICO_ internally uses [torch.export](https://pytorch.org/docs/stable/export.html#torch-export).
|
|
336
|
-
Therefore, the torch module must be 'export'able. Please see
|
|
337
|
-
[this document](https://pytorch.org/docs/stable/export.html#limitations-of-torch-export)
|
|
338
|
-
if you have any trouble to export.
|
|
339
315
|
|
|
340
|
-
#### From torch module
|
|
341
|
-
|
|
342
|
-
You can convert a torch module to a circle model with these steps.
|
|
343
|
-
|
|
344
|
-
```python
|
|
345
316
|
torch_module = AddModule()
|
|
346
317
|
example_inputs = (torch.ones(4), torch.ones(4))
|
|
347
318
|
|
|
@@ -349,290 +320,69 @@ circle_model = tico.convert(torch_module.eval(), example_inputs)
|
|
|
349
320
|
circle_model.save('add.circle')
|
|
350
321
|
```
|
|
351
322
|
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
**Compile with configuration**
|
|
358
|
-
|
|
359
|
-
```python
|
|
360
|
-
from test.modules.op.add import AddWithCausalMaskFolded
|
|
361
|
-
|
|
362
|
-
torch_module = AddWithCausalMaskFolded()
|
|
363
|
-
example_inputs = torch_module.get_example_inputs()
|
|
364
|
-
|
|
365
|
-
config = tico.CompileConfigV1()
|
|
366
|
-
config.legalize_causal_mask_value = True
|
|
367
|
-
circle_model = tico.convert(torch_module, example_inputs, config = config)
|
|
368
|
-
circle_model.save('add_causal_mask_m120.circle')
|
|
369
|
-
```
|
|
370
|
-
|
|
371
|
-
With `legalize_causal_mask_value` option on, causal mask value is converted from
|
|
372
|
-
-inf to -120, creating a more quantization-friendly circle model with the cost of
|
|
373
|
-
slight accuracy drop.
|
|
374
|
-
|
|
375
|
-
#### From .pt2
|
|
376
|
-
|
|
377
|
-
The torch module can be exported and saved as `.pt2` file (from PyTorch 2.1).
|
|
378
|
-
|
|
379
|
-
```python
|
|
380
|
-
module = AddModule()
|
|
381
|
-
example_inputs = (torch.ones(4), torch.ones(4))
|
|
382
|
-
|
|
383
|
-
exported_program = torch.export.export(module, example_inputs)
|
|
384
|
-
torch.export.save(exported_program, 'add.pt2')
|
|
385
|
-
```
|
|
386
|
-
|
|
387
|
-
There are two ways to convert `.pt2` file: python api, command line tool.
|
|
388
|
-
|
|
389
|
-
- Python API
|
|
390
|
-
|
|
391
|
-
```python
|
|
392
|
-
circle_model = tico.convert_from_pt2('add.pt2')
|
|
393
|
-
circle_model.save('add.circle')
|
|
394
|
-
```
|
|
323
|
+
> [!NOTE]
|
|
324
|
+
> Call `eval()` on the module before conversion. _TICO_ internally uses
|
|
325
|
+
> [`torch.export`](https://pytorch.org/docs/stable/export.html#torch-export), so the module
|
|
326
|
+
> must be export-able.
|
|
395
327
|
|
|
396
|
-
|
|
328
|
+
Converting a saved `.pt2` file from the command line:
|
|
397
329
|
|
|
398
330
|
```bash
|
|
399
331
|
pt2-to-circle -i add.pt2 -o add.circle
|
|
400
332
|
```
|
|
401
333
|
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
```bash
|
|
405
|
-
pt2-to-circle -i add.pt2 -o add.circle -c config.yaml
|
|
406
|
-
```
|
|
407
|
-
|
|
408
|
-
```yaml
|
|
409
|
-
# config.yaml
|
|
410
|
-
|
|
411
|
-
version: '1.0' # You must specify the config version.
|
|
412
|
-
legalize_causal_mask_value: True
|
|
413
|
-
```
|
|
414
|
-
|
|
415
|
-
#### Running circle models directly in Python
|
|
416
|
-
|
|
417
|
-
After circle export, you can run the model directly in Python.
|
|
418
|
-
|
|
419
|
-
Note that you should install one-compiler package first.
|
|
420
|
-
|
|
421
|
-
The output types are numpy.ndarray.
|
|
422
|
-
|
|
423
|
-
```python
|
|
424
|
-
torch_module = AddModule()
|
|
425
|
-
example_inputs = (torch.ones(4), torch.ones(4))
|
|
426
|
-
|
|
427
|
-
circle_model = tico.convert(torch_module, example_inputs)
|
|
428
|
-
circle_model(*example_inputs)
|
|
429
|
-
# numpy.ndarray([2., 2., 2., 2.], dtype=float32)
|
|
430
|
-
```
|
|
431
|
-
|
|
432
|
-
### Quantization
|
|
334
|
+
See the [Getting Started guide](./docs/getting_started.md) for compile configurations,
|
|
335
|
+
`.pt2` conversion, and running Circle models directly in Python.
|
|
433
336
|
|
|
434
|
-
|
|
435
|
-
large language models (LLMs) and other neural networks.
|
|
436
|
-
|
|
437
|
-
It introduces a simple two-step workflow — **prepare** and **convert** — that
|
|
438
|
-
abstracts the details of different quantization algorithms.
|
|
337
|
+
## Quantization
|
|
439
338
|
|
|
440
|
-
|
|
339
|
+
The [`tico.quantization`](./tico/quantization/README.md) module provides a unified,
|
|
340
|
+
modular interface for quantizing neural networks — including large language models —
|
|
341
|
+
through a simple two-step **prepare** → **convert** workflow:
|
|
441
342
|
|
|
442
343
|
```python
|
|
443
344
|
from tico.quantization import prepare, convert
|
|
444
345
|
from tico.quantization.config.gptq import GPTQConfig
|
|
445
|
-
import torch
|
|
446
|
-
import torch.nn as nn
|
|
447
|
-
|
|
448
|
-
class LinearModel(nn.Module):
|
|
449
|
-
def __init__(self):
|
|
450
|
-
super().__init__()
|
|
451
|
-
self.linear = nn.Linear(8, 8)
|
|
452
|
-
|
|
453
|
-
def forward(self, x):
|
|
454
|
-
return self.linear(x)
|
|
455
|
-
|
|
456
|
-
model = LinearModel().eval()
|
|
457
346
|
|
|
458
|
-
|
|
459
|
-
quant_config = GPTQConfig()
|
|
460
|
-
prepared_model = prepare(model, quant_config)
|
|
347
|
+
prepared_model = prepare(model.eval(), GPTQConfig())
|
|
461
348
|
|
|
462
|
-
#
|
|
463
|
-
for d in dataset:
|
|
349
|
+
for d in dataset: # calibration
|
|
464
350
|
prepared_model(d)
|
|
465
351
|
|
|
466
|
-
|
|
467
|
-
quantized_model = convert(prepared_model, quant_config)
|
|
352
|
+
quantized_model = convert(prepared_model, GPTQConfig())
|
|
468
353
|
```
|
|
469
354
|
|
|
470
|
-
|
|
471
|
-
|
|
355
|
+
- [Quantization overview](./tico/quantization/README.md) — API, architecture, and how to add a new algorithm
|
|
356
|
+
- [Quantization algorithms](./tico/quantization/algorithm/README.md) — GPTQ, SmoothQuant, SpinQuant, CLE, …
|
|
357
|
+
- [Config-driven CLI examples](./tico/quantization/examples/README.md) — quantize, evaluate, and inspect LLM/VLM recipes from the command line
|
|
472
358
|
|
|
359
|
+
## Documentation
|
|
473
360
|
|
|
474
|
-
|
|
361
|
+
### For users
|
|
475
362
|
|
|
476
|
-
|
|
363
|
+
| Document | Description |
|
|
364
|
+
|---|---|
|
|
365
|
+
| [Getting Started](./docs/getting_started.md) | Converting modules and `.pt2` files, compile configuration, running Circle models in Python |
|
|
366
|
+
| [Quantization](./tico/quantization/README.md) | The `prepare`/`convert` quantization API and toolkit |
|
|
367
|
+
| [Quantization examples](./tico/quantization/examples/README.md) | Command-line quantization, evaluation, and debugging workflows |
|
|
477
368
|
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
Refer to the dedicated section to have more fine-grained control.
|
|
481
|
-
|
|
482
|
-
```bash
|
|
483
|
-
$ ./ccex configure # to set up testing & formatting environment
|
|
484
|
-
$ ./ccex configure format # to set up only formatting environment
|
|
485
|
-
$ ./ccex configure test # to set up only testing environment
|
|
486
|
-
```
|
|
487
|
-
|
|
488
|
-
**Available options**
|
|
489
|
-
- `--torch_ver <torch version>` To install a specific torch family package(ex. torchvision) version (default: 2.6)
|
|
490
|
-
- Available <torch version>: '2.5', '2.6', 'nightly'
|
|
491
|
-
|
|
492
|
-
```bash
|
|
493
|
-
$ ./ccex configure # to set up testing & formatting environment with stable2.6.x version
|
|
494
|
-
$ ./ccex configure test # to set up only testing environment with stable 2.6.x version
|
|
495
|
-
$ ./ccex configure test --torch_ver 2.5 # to set up only testing environment with stable 2.5.x version
|
|
496
|
-
$ ./ccex configure test --torch_ver nightly # to set up only testing environment with nightly version
|
|
497
|
-
```
|
|
369
|
+
### For developers
|
|
498
370
|
|
|
499
|
-
|
|
371
|
+
| Document | Description |
|
|
372
|
+
|---|---|
|
|
373
|
+
| [Development guide](./docs/development.md) | Environment setup, testing, and code formatting with `./ccex` |
|
|
374
|
+
| [System design](./docs/design.md) | Architecture, pass pipeline, invariants, and behavior design |
|
|
375
|
+
| [Requirements](./docs/requirements.md) | Functional and non-functional requirements |
|
|
376
|
+
| [System tests](./docs/system_test.md) | System-level test coverage |
|
|
500
377
|
|
|
501
|
-
|
|
378
|
+
## Contributing
|
|
502
379
|
|
|
503
|
-
|
|
380
|
+
Contributions are welcome! For quantization algorithms, start with the
|
|
381
|
+
[quantization contribution guide](./tico/quantization/README.md#contributing-adding-a-new-algorithm)
|
|
382
|
+
and the [recipes developer guide](./tico/quantization/recipes/README.md).
|
|
383
|
+
Before submitting a PR, set up the development environment and run the tests and
|
|
384
|
+
formatter as described in the [development guide](./docs/development.md).
|
|
504
385
|
|
|
505
|
-
|
|
386
|
+
## License
|
|
506
387
|
|
|
507
|
-
|
|
508
|
-
./ccex configure test
|
|
509
|
-
|
|
510
|
-
# without editable install
|
|
511
|
-
./ccex configure test --dist
|
|
512
|
-
```
|
|
513
|
-
|
|
514
|
-
#### Test All
|
|
515
|
-
|
|
516
|
-
Run below commands to run the all unit tests.
|
|
517
|
-
|
|
518
|
-
**NOTE** Unit tests don't include model test.
|
|
519
|
-
|
|
520
|
-
```bash
|
|
521
|
-
./ccex test
|
|
522
|
-
# OR
|
|
523
|
-
./ccex test run-all-tests
|
|
524
|
-
```
|
|
525
|
-
|
|
526
|
-
#### Test Subset
|
|
527
|
-
|
|
528
|
-
To run subset of `test.modules.*`,
|
|
529
|
-
Run `./ccex test -k <keyword>`
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
For example, to run tests in specific sub-directory (op, net, ..)
|
|
533
|
-
```bash
|
|
534
|
-
# To run tests in specific sub-directory (op/, net/ ..)
|
|
535
|
-
./ccex test -k op
|
|
536
|
-
./ccex test -k net
|
|
537
|
-
|
|
538
|
-
# To run tests in one file (single/op/add, single/op/sub, ...)
|
|
539
|
-
./ccex test -k add
|
|
540
|
-
./ccex test -k sub
|
|
541
|
-
|
|
542
|
-
# To run SimpleAdd test in test/modules/single/op/add.py
|
|
543
|
-
./ccex test -k SimpleAdd
|
|
544
|
-
```
|
|
545
|
-
|
|
546
|
-
To see the full debug log, add `-v` or `TICO_LOG=4`.
|
|
547
|
-
|
|
548
|
-
```bash
|
|
549
|
-
TICO_LOG=4 ./ccex test -k add
|
|
550
|
-
# OR
|
|
551
|
-
./ccex test -v -k add
|
|
552
|
-
```
|
|
553
|
-
|
|
554
|
-
To dump intermediate torch graph ir as `.png`, add `TICO_GRAPH_DUMP=1`
|
|
555
|
-
|
|
556
|
-
```bash
|
|
557
|
-
TICO_GRAPH_DUMP=1 ./ccex test -k add
|
|
558
|
-
# Images are dumped into `$(pwd)/.tico_temp`
|
|
559
|
-
```
|
|
560
|
-
|
|
561
|
-
#### Test Model
|
|
562
|
-
|
|
563
|
-
If you want to test them locally, you can do so by navigating to each model directory,
|
|
564
|
-
installing the dependencies listed in its `requirements.txt`, and running the tests one by one.
|
|
565
|
-
```bash
|
|
566
|
-
$ pip install -r test/modules/model/<model_name>/requirements.txt
|
|
567
|
-
# Run test for a single model
|
|
568
|
-
$ ./ccex test -m <model_name>
|
|
569
|
-
# Run models whose names contain "Llama" (e.g., Llama, LlamaDecoderLayer, LlamaWithGQA, etc.)
|
|
570
|
-
# Note that you should use quotes for the wildcard(*) pattern
|
|
571
|
-
$ ./ccex test -m "Llama*"
|
|
572
|
-
```
|
|
573
|
-
|
|
574
|
-
For example, to run a single model
|
|
575
|
-
```
|
|
576
|
-
./ccex test -m InceptionV3
|
|
577
|
-
```
|
|
578
|
-
|
|
579
|
-
#### Runtime Options
|
|
580
|
-
|
|
581
|
-
By default, `./ccex test` runs all modules with the `circle-interpreter` engine.
|
|
582
|
-
You can override this and run tests using the `onert` runtime instead.
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
##### 0. Install ONERT
|
|
586
|
-
|
|
587
|
-
```bash
|
|
588
|
-
pip install onert
|
|
589
|
-
```
|
|
590
|
-
|
|
591
|
-
##### 1. Command-Line Flag
|
|
592
|
-
|
|
593
|
-
Use the `--runtime` (or `-r`) flag to select a runtime:
|
|
594
|
-
|
|
595
|
-
```bash
|
|
596
|
-
# Run with the default circle-interpreter
|
|
597
|
-
./ccex test
|
|
598
|
-
|
|
599
|
-
# Run all tests with onert
|
|
600
|
-
./ccex test --runtime onert
|
|
601
|
-
# or
|
|
602
|
-
./ccex test -r onert
|
|
603
|
-
```
|
|
604
|
-
|
|
605
|
-
##### 2. Environment Variable
|
|
606
|
-
|
|
607
|
-
You can also set the `CCEX_RUNTIME` environment variable:
|
|
608
|
-
|
|
609
|
-
```bash
|
|
610
|
-
# Temporarily override for one command
|
|
611
|
-
CCEX_RUNTIME=onert ./ccex test
|
|
612
|
-
|
|
613
|
-
# Persist in your shell session
|
|
614
|
-
export CCEX_RUNTIME=onert
|
|
615
|
-
./ccex test
|
|
616
|
-
```
|
|
617
|
-
|
|
618
|
-
##### Supported Runtimes
|
|
619
|
-
|
|
620
|
-
- circle-interpreter (default): uses the Circle interpreter for inference.
|
|
621
|
-
- onert: uses the ONERT package for inference, useful when the Circle interpreter
|
|
622
|
-
cannot run a given module.
|
|
623
|
-
|
|
624
|
-
### Code Formatting
|
|
625
|
-
|
|
626
|
-
#### Format configure
|
|
627
|
-
|
|
628
|
-
Run below commands to install requirements for formatting.
|
|
629
|
-
|
|
630
|
-
```bash
|
|
631
|
-
./ccex configure format
|
|
632
|
-
```
|
|
633
|
-
|
|
634
|
-
#### Format run
|
|
635
|
-
|
|
636
|
-
```bash
|
|
637
|
-
./ccex format
|
|
638
|
-
```
|
|
388
|
+
Licensed under the Apache License 2.0 — see [LICENSE](./LICENSE).
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
# TICO
|
|
2
|
+
|
|
3
|
+
_TICO_ (**T**orch **I**R to **C**ircle [ONE](https://github.com/Samsung/ONE)) is a Python
|
|
4
|
+
library that converts PyTorch modules into Circle models — a lightweight and efficient
|
|
5
|
+
representation in ONE designed for optimized on-device neural network inference.
|
|
6
|
+
|
|
7
|
+
## Highlights
|
|
8
|
+
|
|
9
|
+
- **One-call conversion** — `tico.convert()` turns an `nn.Module` into a ready-to-deploy `.circle` binary.
|
|
10
|
+
- **`.pt2` support** — convert saved `torch.export` programs via the Python API or the `pt2-to-circle` command-line tool.
|
|
11
|
+
- **Run Circle models in Python** — execute converted models directly for quick parity checks against PyTorch.
|
|
12
|
+
- **Quantization toolkit** — a unified `prepare`/`convert` API with GPTQ, PTQ (WrapQ), SmoothQuant, SpinQuant, and CLE, plus config-driven CLI recipes for LLMs and VLMs.
|
|
13
|
+
|
|
14
|
+
## Installation
|
|
15
|
+
|
|
16
|
+
### Prerequisites
|
|
17
|
+
|
|
18
|
+
- Python **3.10+**
|
|
19
|
+
- (Optional) [one-compiler](https://github.com/Samsung/ONE/releases) — only required to run
|
|
20
|
+
inference with converted Circle models. Conversion itself does not need it.
|
|
21
|
+
|
|
22
|
+
We highly recommend using a virtual environment (e.g., conda, venv).
|
|
23
|
+
|
|
24
|
+
### From PyPI
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
pip install tico
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
### From source
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
git clone https://github.com/Samsung/TICO.git
|
|
34
|
+
cd TICO
|
|
35
|
+
|
|
36
|
+
./ccex build # generates build/ and dist/
|
|
37
|
+
./ccex install # installs the package
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
**`./ccex install` options**
|
|
41
|
+
|
|
42
|
+
| Option | Description |
|
|
43
|
+
|---|---|
|
|
44
|
+
| `--dist` | Install from the built wheel (default is editable mode) |
|
|
45
|
+
| `--torch_ver <ver>` | Torch version to install: a family (`2.5` ~ `2.10`), an exact version (e.g. `2.7.0+cu118`), or `nightly`. Default: `2.7` |
|
|
46
|
+
| `--cuda_ver <maj.min>` | Override the detected CUDA version (e.g. `12.1`) |
|
|
47
|
+
| `--cpu_only` | Force a CPU-only Torch installation |
|
|
48
|
+
|
|
49
|
+
## Quick start
|
|
50
|
+
|
|
51
|
+
```python
|
|
52
|
+
import tico
|
|
53
|
+
import torch
|
|
54
|
+
|
|
55
|
+
class AddModule(torch.nn.Module):
|
|
56
|
+
def forward(self, x, y):
|
|
57
|
+
return x + y
|
|
58
|
+
|
|
59
|
+
torch_module = AddModule()
|
|
60
|
+
example_inputs = (torch.ones(4), torch.ones(4))
|
|
61
|
+
|
|
62
|
+
circle_model = tico.convert(torch_module.eval(), example_inputs)
|
|
63
|
+
circle_model.save('add.circle')
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
> [!NOTE]
|
|
67
|
+
> Call `eval()` on the module before conversion. _TICO_ internally uses
|
|
68
|
+
> [`torch.export`](https://pytorch.org/docs/stable/export.html#torch-export), so the module
|
|
69
|
+
> must be export-able.
|
|
70
|
+
|
|
71
|
+
Converting a saved `.pt2` file from the command line:
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
pt2-to-circle -i add.pt2 -o add.circle
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
See the [Getting Started guide](./docs/getting_started.md) for compile configurations,
|
|
78
|
+
`.pt2` conversion, and running Circle models directly in Python.
|
|
79
|
+
|
|
80
|
+
## Quantization
|
|
81
|
+
|
|
82
|
+
The [`tico.quantization`](./tico/quantization/README.md) module provides a unified,
|
|
83
|
+
modular interface for quantizing neural networks — including large language models —
|
|
84
|
+
through a simple two-step **prepare** → **convert** workflow:
|
|
85
|
+
|
|
86
|
+
```python
|
|
87
|
+
from tico.quantization import prepare, convert
|
|
88
|
+
from tico.quantization.config.gptq import GPTQConfig
|
|
89
|
+
|
|
90
|
+
prepared_model = prepare(model.eval(), GPTQConfig())
|
|
91
|
+
|
|
92
|
+
for d in dataset: # calibration
|
|
93
|
+
prepared_model(d)
|
|
94
|
+
|
|
95
|
+
quantized_model = convert(prepared_model, GPTQConfig())
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
- [Quantization overview](./tico/quantization/README.md) — API, architecture, and how to add a new algorithm
|
|
99
|
+
- [Quantization algorithms](./tico/quantization/algorithm/README.md) — GPTQ, SmoothQuant, SpinQuant, CLE, …
|
|
100
|
+
- [Config-driven CLI examples](./tico/quantization/examples/README.md) — quantize, evaluate, and inspect LLM/VLM recipes from the command line
|
|
101
|
+
|
|
102
|
+
## Documentation
|
|
103
|
+
|
|
104
|
+
### For users
|
|
105
|
+
|
|
106
|
+
| Document | Description |
|
|
107
|
+
|---|---|
|
|
108
|
+
| [Getting Started](./docs/getting_started.md) | Converting modules and `.pt2` files, compile configuration, running Circle models in Python |
|
|
109
|
+
| [Quantization](./tico/quantization/README.md) | The `prepare`/`convert` quantization API and toolkit |
|
|
110
|
+
| [Quantization examples](./tico/quantization/examples/README.md) | Command-line quantization, evaluation, and debugging workflows |
|
|
111
|
+
|
|
112
|
+
### For developers
|
|
113
|
+
|
|
114
|
+
| Document | Description |
|
|
115
|
+
|---|---|
|
|
116
|
+
| [Development guide](./docs/development.md) | Environment setup, testing, and code formatting with `./ccex` |
|
|
117
|
+
| [System design](./docs/design.md) | Architecture, pass pipeline, invariants, and behavior design |
|
|
118
|
+
| [Requirements](./docs/requirements.md) | Functional and non-functional requirements |
|
|
119
|
+
| [System tests](./docs/system_test.md) | System-level test coverage |
|
|
120
|
+
|
|
121
|
+
## Contributing
|
|
122
|
+
|
|
123
|
+
Contributions are welcome! For quantization algorithms, start with the
|
|
124
|
+
[quantization contribution guide](./tico/quantization/README.md#contributing-adding-a-new-algorithm)
|
|
125
|
+
and the [recipes developer guide](./tico/quantization/recipes/README.md).
|
|
126
|
+
Before submitting a PR, set up the development environment and run the tests and
|
|
127
|
+
formatter as described in the [development guide](./docs/development.md).
|
|
128
|
+
|
|
129
|
+
## License
|
|
130
|
+
|
|
131
|
+
Licensed under the Apache License 2.0 — see [LICENSE](./LICENSE).
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.2.0.dev260702"
|
|
@@ -85,9 +85,9 @@ def build_gemma4_e2b_ptq_config(
|
|
|
85
85
|
weight = weight or _default_weight()
|
|
86
86
|
linear_weight = linear_weight or weight
|
|
87
87
|
|
|
88
|
-
overrides: Dict[str, Any] = {"model": {
|
|
88
|
+
overrides: Dict[str, Any] = {"model": {}}
|
|
89
89
|
|
|
90
|
-
model_overrides = overrides["model"]
|
|
90
|
+
model_overrides = overrides["model"]
|
|
91
91
|
model_overrides["language_model"] = {
|
|
92
92
|
"embed_tokens": _weight_override(embedding_weight),
|
|
93
93
|
"layers": {},
|
|
@@ -126,7 +126,7 @@ def build_gemma4_e2b_ptq_config(
|
|
|
126
126
|
model_overrides["embed_vision"] = {
|
|
127
127
|
"embedding_projection": _weight_override(linear_weight),
|
|
128
128
|
}
|
|
129
|
-
overrides["
|
|
129
|
+
overrides["lm_head"] = _weight_override(lm_head_weight or linear_weight)
|
|
130
130
|
|
|
131
131
|
return PTQConfig(
|
|
132
132
|
activation=activation,
|
|
@@ -292,6 +292,11 @@ def _create_image_input(
|
|
|
292
292
|
return example
|
|
293
293
|
|
|
294
294
|
|
|
295
|
+
def _causal_mask(seq_len: int, fill_value: float = -120.0) -> torch.Tensor:
|
|
296
|
+
mask = torch.full((1, 1, seq_len, seq_len), fill_value)
|
|
297
|
+
return torch.triu(mask, diagonal=1)
|
|
298
|
+
|
|
299
|
+
|
|
295
300
|
class QwenBaseCase(WrapperSmokeCase):
|
|
296
301
|
"""Base class for Qwen3-VL wrapper smoke cases."""
|
|
297
302
|
|
|
@@ -341,7 +346,7 @@ class QwenTextAttentionCase(QwenBaseCase):
|
|
|
341
346
|
) -> Any:
|
|
342
347
|
"""Run the original text attention signature with an explicit mask."""
|
|
343
348
|
hidden, rope = sample.args
|
|
344
|
-
mask =
|
|
349
|
+
mask = _causal_mask(hidden.shape[1])
|
|
345
350
|
return reference(hidden, position_embeddings=rope, attention_mask=mask)[0]
|
|
346
351
|
|
|
347
352
|
def export_input(
|