This release is a pre-release and may not be stable for production use.
TICO (Torch IR to Circle ONE) is a Python library that converts PyTorch modules into Circle models — a lightweight and efficient representation in ONE designed for optimized on-device neural network inference.
Highlights
- One-call conversion —
tico.convert()turns annn.Moduleinto a ready-to-deploy.circlebinary. .pt2support — convert savedtorch.exportprograms via the Python API or thept2-to-circlecommand-line tool.- Run Circle models in Python — execute converted models directly for quick parity checks against PyTorch.
- Quantization toolkit — a unified
prepare/convertAPI with GPTQ, PTQ (WrapQ), SmoothQuant, SpinQuant, and CLE, plus config-driven CLI recipes for LLMs and VLMs.
Installation
Prerequisites
- Python 3.10+
- (Optional) one-compiler — only required to run inference with converted Circle models. Conversion itself does not need it.
We highly recommend using a virtual environment (e.g., conda, venv).
From PyPI
pip install tico
From source
git clone https://github.com/Samsung/TICO.git
cd TICO
./ccex build # generates build/ and dist/
./ccex install # installs the package
./ccex install options
| Option | Description |
|---|---|
--dist |
Install from the built wheel (default is editable mode) |
--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 |
--cuda_ver <maj.min> |
Override the detected CUDA version (e.g. 12.1) |
--cpu_only |
Force a CPU-only Torch installation |
Quick start
import tico
import torch
class AddModule(torch.nn.Module):
def forward(self, x, y):
return x + y
torch_module = AddModule()
example_inputs = (torch.ones(4), torch.ones(4))
circle_model = tico.convert(torch_module.eval(), example_inputs)
circle_model.save('add.circle')
[!NOTE] Call
eval()on the module before conversion. TICO internally usestorch.export, so the module must be export-able.
Converting a saved .pt2 file from the command line:
pt2-to-circle -i add.pt2 -o add.circle
See the Getting Started guide for compile configurations,
.pt2 conversion, and running Circle models directly in Python.
Quantization
The tico.quantization module provides a unified,
modular interface for quantizing neural networks — including large language models —
through a simple two-step prepare → convert workflow:
from tico.quantization import prepare, convert
from tico.quantization.config.gptq import GPTQConfig
prepared_model = prepare(model.eval(), GPTQConfig())
for d in dataset: # calibration
prepared_model(d)
quantized_model = convert(prepared_model, GPTQConfig())
- Quantization overview — API, architecture, and how to add a new algorithm
- Quantization algorithms — GPTQ, SmoothQuant, SpinQuant, CLE, …
- Config-driven CLI examples — quantize, evaluate, and inspect LLM/VLM recipes from the command line
Documentation
For users
| Document | Description |
|---|---|
| Getting Started | Converting modules and .pt2 files, compile configuration, running Circle models in Python |
| Quantization | The prepare/convert quantization API and toolkit |
| Quantization examples | Command-line quantization, evaluation, and debugging workflows |
For developers
| Document | Description |
|---|---|
| Development guide | Environment setup, testing, and code formatting with ./ccex |
| System design | Architecture, pass pipeline, invariants, and behavior design |
| Requirements | Functional and non-functional requirements |
| System tests | System-level test coverage |
Contributing
Contributions are welcome! For quantization algorithms, start with the quantization contribution guide and the recipes developer guide. Before submitting a PR, set up the development environment and run the tests and formatter as described in the development guide.
License
Licensed under the Apache License 2.0 — see LICENSE.
Release files for tico 0.2.0.dev260720
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| tico-0.2.0.dev260720.tar.gz | 591.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| tico-0.2.0.dev260720-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.6 MB
Release files / tico-0.2.0.dev260720.tar.gz
| Download URL | tico-0.2.0.dev260720.tar.gz |
|---|---|
| Size | 591.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
04aaa9e1081cd778a409698752e6ff2582965099fb067a0e7bd9a07ac5b29fab
|
|
BLAKE2b-256 checksum How to use checksums |
07ab7f9712267d4404148b20bf4075d70422fdfedc8156075d7b86fbcc3aea32
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 20, 2026.
Transparency logRelease files / tico-0.2.0.dev260720-py3-none-any.whl
| Download URL | tico-0.2.0.dev260720-py3-none-any.whl |
|---|---|
| Size | 982.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8a578c4c18aa77b3875427339d118ae794dc01e9d4e93d10c5b62109e53f400e
|
|
BLAKE2b-256 checksum How to use checksums |
ad32523416fcde38806de0367223143e69da6d514f55ccb82be469c27e41f89e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 20, 2026.
Transparency log