UH-OH

It looks like you don’t have access to that feature yet

Contact sales to get upgraded to the full DevStudio experience.

UH-OH

It looks like you don't have access to that feature yet.

to select
to navigate
escto close
Introduction to the Chimera SDK
Chimera SDK Quick Start Guide
Chimera SDK Command Line Interface (CLI)
Tutorial: Using SDK as a Library
Chimera Graph Compiler (CGC)
Chimera LLVM C++ Compiler
Chimera SDK Licensing Policy Documentation
Glossary
Chimera Software User GuideChimera Graph Compiler (CGC)Preparing a Model for CompilationConverting TFLite to ONNX

Converting TFLite to ONNX


NOTE: The Jupyter Notebook below is included in the Chimera SDK and can be run interactively by running the following CLI command:

$ quadric sdk notebook

From the Jupyter Notebook window in your browser, select the notebook named /quadric/sdk-cli/examples/models/mediapipe/onnx_conversion/onnx_conversion.ipynb.


Conversion from TFLITE to ONNX

This notebook demonstrates how to convert TFLITE files to ONNX.

A TFLITE file in Mediapipe legacy model page is used as an example.

For Mediapipe Legacy Solutions, please refer Mediapipe page.

Package Install

The following packages are installed.

  • tensorflow
  • onnxconverter-common
  • tensorflow-onnx
!pip3 install -r ../../../requirements.txt -q
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv

import os
import sys
from pathlib import Path
import shutil, subprocess, zipfile

FILE_PATH = Path(os.path.abspath(""))
sys.path.append(f"{FILE_PATH.parent}")

from examples.models.zoo.zoo_utils import download_file
from mputils.convert_utils import (
    execute_command,
    get_inpoup,
    get_oup_with_nchw,
    replace_unk_to_one,
)
import os
import sys
from pathlib import Path

FILE_PATH = Path(os.path.abspath(""))
sys.path.append(f"{FILE_PATH.parent}")

from examples.models.zoo.zoo_utils import download_and_extract_zip

github_list = [
    (
        "https://github.com/microsoft/onnxconverter-common/archive/refs/tags/v%s.zip",
        "1.15.0",
    ),
    ("https://github.com/onnx/tensorflow-onnx/archive/refs/tags/v%s.zip", "1.16.1"),
]

for url, version in github_list:
    url = url % (version)
    basename = url.split("/")[-5]
    filename = Path(url).name
    if not Path(basename).exists():
        download_and_extract_zip(url, filename)
        Path(f"{basename}-{version}").rename(basename)
        Path(filename).unlink(missing_ok=True)

    print(f"{basename} is setup.")
onnxconverter-common is setup.
tensorflow-onnx is setup.

TFLITE File

Here, iris_landmark.tflite in Mediapipe legacy model page is used as an example.

tf_file = "iris_landmark.tflite"
tf_file = Path(tf_file)

url = f"https://storage.googleapis.com/mediapipe-assets/{tf_file}"
download_file(url, tf_file)
PosixPath('iris_landmark.tflite')

Conversion from TFLITE to ONNX

The following steps are taken to convert TFLITE files to ONNX.

  • Change input/output format from NHWC to NCHW
  • Replace unk__** with 1
  • Generate final ONNX

Change Input/Output Format to NCHW

TFLITE models adopt NHWC (channel-last) format for input/output. It is converted to NCHW (channel-first) format because it has more affinity for ONNX.

To do so, the onnxconverter-common package is used. It provides common functions and utilities for use in converters from various AI frameworks to ONNX. It also enables the different converters to work together to convert a model from mixed frameworks, like a scikit-learn pipeline embedding a xgboost model.

With this package, a tflite file is converted to an onnx model Input/output format is changed from NHWC to NCHW. . Names for input/output aralso e changed for later usagW.

opset = 16

cmd_option = f"--opset {opset} --tflite ../{tf_file} --output ../{tf_file.stem}.onnx --dequantize"
cmd_body = f"python3 -m tf2onnx.convert {cmd_option} "

exitcode, outputs = get_inpoup(cmd_body)

if exitcode == 0:
    in_list, in_replace, out_list, out_replace = outputs
else:
    print(outputs)
    assert False, f"Cannot proceed because tf2onnx.convert failed for {str(tf_file)}"

cmd_inpart = f"--inputs {in_list} --inputs-as-nchw {in_list} --rename-inputs {in_replace} "
cmd_outpart = f"--outputs {out_list} --outputs-as-nchw {out_list} --rename-outputs {out_replace}"

command_line = cmd_body + cmd_inpart + cmd_outpart

exitcode, output = execute_command("tensorflow-onnx", command_line, False)

if exitcode != 0:
    print(output)
    assert False, f"Failed in tf2onnx.convert for {str(tf_file)}"

print(f"{str(tf_file)} is converted to {tf_file.stem}.onnx.")
print(f"\tInput names: {in_list} ==> {in_replace}\n\tOutput names: {out_list} ==> {out_replace}")
iris_landmark.tflite is converted to iris_landmark.onnx.
	Input names: "input_1" ==> "inputs0"
	Output names: "output_eyes_contours_and_brows,output_iris" ==> "outputs0,outputs1"

Replace unk__** with 1

If there are 'unk__**' as a batch size in the model, they should be replaced with 1.

To do this, the onnx model is converted to a python script, and replace those strings.

## python -m onnxconverter_common.onnx2py
cmd_option = f"../{tf_file.stem}.onnx ../{tf_file.stem}.py"
cmd_body = f"python3 -m onnxconverter_common.onnx2py {cmd_option}"

exitcode, output = execute_command("onnxconverter-common", cmd_body, False)

if not os.path.isfile(f"{tf_file.stem}.py"):
    assert False, f"Failed onnxconverter-common to create {tf_file.stem}.py\n{output}"

if replace_unk_to_one(tf_file):
    print(f"{tf_file} contained 'unk__**' and replaced to 1")

Generate Final ONNX

Finally, the onnx model is recreated.

## generate onnx
onnx_file = f"{tf_file.stem}-convert.onnx"
cmd_body = f"python3 {tf_file.stem}.py {onnx_file}"

exitcode, output_text = execute_command("", cmd_body)
if exitcode != 0:
    print(output)
    assert False, f"Failed in tf2onnx.convert for {str(tf_file)}"

print(f"Generate onnx as {onnx_file}")
python3 iris_landmark.py iris_landmark-convert.onnx is succeeded. 

Generate onnx as iris_landmark-convert.onnx

Quantization and Compilation

Now we are going to compile the model. Because iris_landmark.tflite is a float32 model, we start with quantization with synthetic inputs which means that the inputs are generated synthetically.

For iris_landmark, QB1 as a QB type and 1MB as an ocm size are appropriate. Depending on models, please specify appropriate ones.

from tvm.contrib.epu.chimera_job.hw_config import DEFAULT_8_ARRAY_SIZE
from tvm.contrib.epu.chimera_job.quantize import quadric_quantize
import tvm.contrib.epu.chimera_job.core as core
from tvm.contrib.epu.chimera_job.chimera_job import ChimeraJob

print(f"1. Start quantizing {onnx_file}")
quantize_result = quadric_quantize(onnx_file, 100, synthetic_input=True, asymmetric_activation=True)

print(f"2. Define chimerajob with {quantize_result.qmodel_path}")
cgc_job = ChimeraJob(
    model_p=quantize_result.qmodel_path,
    **DEFAULT_8_ARRAY_SIZE.to_dict(),
    trange_file=quantize_result.tranges_path,
)

print("3. Start analyzing network")
cgc_job.analyze_network()

print("4. Start compiling network")
cgc_job.compile(quiet=True)
print(cgc_job)
1. Start quantizing iris_landmark-convert.onnx


2026-06-19 04:01 - INFO - epu - quantize - Generating synthetic data
2026-06-19 04:01 - INFO - epu - quantize - Optimized model to opset
2026-06-19 04:01 - INFO - epu - quantize - Saved optimized model to iris_landmark-convert_float32_opt.onnx
2026-06-19 04:01 - INFO - epu - quantize - Input shapes: [1, 3, 64, 64]. Input names: inputs0
2026-06-19 04:01 - INFO - epu - quantize - Output shapes: [[1, 213], [1, 15]]. Output names: ['outputs0', 'outputs1']
2026-06-19 04:01 - DEBUG - epu - quantize - Full exclusion set for quantization: ['Softmax', 'Sigmoid', 'QuadricCustomOp']
2026-06-19 04:01 - DEBUG - epu - quantize - excl_nodes []
2026-06-19 04:01 - INFO - epu - quantize - Quantization started...
WARNING:root:Please use QuantFormat.QDQ for activation type QInt8 and weight type QInt8. Or it will lead to bad performance on x64.
2026-06-19 04:01 - INFO - epu - quantize - Quantization done succesfully!
2026-06-19 04:01 - INFO - epu - quantize - ONNX full precision model size: 2.51 MB
2026-06-19 04:01 - INFO - epu - quantize - ONNX quantized model size: 0.73 MB
2026-06-19 04:01 - INFO - epu - quantize - Saved quantized model to /quadric/sdk-cli/examples/models/mediapipe/onnx_conversion/iris_landmark-convert_opt_asym_int8_q.onnx
2026-06-19 04:01 - INFO - epu - quantize - Saved shape inferenced model to /quadric/sdk-cli/examples/models/mediapipe/onnx_conversion/iris_landmark-convert_opt_asym_int8_q.onnx
2026-06-19 04:01 - INFO - epu - quantize - Checking for remaining FLOAT/FLOAT16 types.
2026-06-19 04:01 - INFO - epu - quantize - Model still has FLOAT/FLOAT16 types. Creating ranges for floating point tensors using calibration data
2026-06-19 04:01 - INFO - epu - quantize - Saved tensor ranges to /quadric/sdk-cli/examples/models/mediapipe/onnx_conversion/iris_landmark-convert_opt_asym_int8_q.onnx.tranges


2. Define chimerajob with /quadric/sdk-cli/examples/models/mediapipe/onnx_conversion/iris_landmark-convert_opt_asym_int8_q.onnx


/tmp/ipykernel_51397/2932871584.py:10: DeprecationWarning: Specifying hardware configuration through individual parameters is deprecated. Please use hw_config parameter instead. Example: hw_cfg = HWConfig(product='QC-U', ocm_size='16MB'); ChimeraJob('model.onnx', hw_config=hw_cfg)
  cgc_job = ChimeraJob(


3. Start analyzing network


2026-06-19 04:01 - INFO - epu - chimera_job - START==================================onnx_ingest
2026-06-19 04:01 - INFO - epu - chimera_job - Numerical ranges provided
2026-06-19 04:01 - INFO - epu - codegen - START===============================optimize_relay
2026-06-19 04:01 - INFO - epu - codegen - START====================quantize_to_cpu_runnable_fx
2026-06-19 04:01 - INFO - epu - fx - 

Source name                                    Op                          Output 0 Range            Output 0 Frac Bits
---------------------------------------------  --------------------------  ----------------------  --------------------
conv2d_DequantizeLinear                        contrib.epu.qlinear_conv2d  [-7.34016f, 8.12877f]                     27
p_re_lu                                        nn.prelu                    [-4.42341f, 8.12877f]                     27
conv2d_1_DequantizeLinear                      contrib.epu.qlinear_conv2d  [-9.46088f, 12.6724f]                     27
p_re_lu_1                                      nn.prelu                    [-7.14683f, 12.6724f]                     27
add__xeno_compat__1_DequantizeLinear           contrib.epu.dequantize      [-10.066f, 10.9736f]                      27
p_re_lu_2                                      nn.prelu                    [-2.12711f, 10.9736f]                     27
conv2d_3_DequantizeLinear                      contrib.epu.qlinear_conv2d  [-12.067f, 14.5854f]                      27
p_re_lu_3                                      nn.prelu                    [-3.05304f, 14.5854f]                     27
add_1__xeno_compat__1_DequantizeLinear         contrib.epu.dequantize      [-7.94748f, 10.4762f]                     27
p_re_lu_4                                      nn.prelu                    [-5.0358f, 10.4762f]                      27
conv2d_5_DequantizeLinear                      contrib.epu.qlinear_conv2d  [-11.9285f, 9.02918f]                     27
p_re_lu_5                                      nn.prelu                    [-3.81072f, 9.02918f]                     27
add_2__xeno_compat__1_DequantizeLinear         contrib.epu.dequantize      [-6.7741f, 10.1611f]                      27
p_re_lu_6                                      nn.prelu                    [-2.7213f, 10.1611f]                      27
conv2d_7_DequantizeLinear                      contrib.epu.qlinear_conv2d  [-11.8486f, 7.92524f]                     27
p_re_lu_7                                      nn.prelu                    [-3.46649f, 7.92524f]                     27
add_3__xeno_compat__1_DequantizeLinear         contrib.epu.dequantize      [-7.94107f, 11.0875f]                     27
p_re_lu_8                                      nn.prelu                    [-2.63785f, 11.0875f]                     27
conv2d_9_DequantizeLinear                      contrib.epu.qlinear_conv2d  [-5.92408f, 6.8861f]                      28
p_re_lu_9                                      nn.prelu                    [-2.94938f, 6.8861f]                      28
add_4__xeno_compat__1_DequantizeLinear         contrib.epu.dequantize      [-2.89868f, 11.0478f]                     27
p_re_lu_10                                     nn.prelu                    [-0.71019f, 11.0478f]                     27
conv2d_11_DequantizeLinear                     contrib.epu.qlinear_conv2d  [-10.1226f, 8.98949f]                     27
p_re_lu_11                                     nn.prelu                    [-4.76794f, 8.98949f]                     27
add_5__xeno_compat__1_DequantizeLinear         contrib.epu.dequantize      [-4.89435f, 11.1064f]                     27
p_re_lu_12                                     nn.prelu                    [-0.927484f, 11.1064f]                    27
conv2d_13_DequantizeLinear                     contrib.epu.qlinear_conv2d  [-9.40148f, 12.1118f]                     27
p_re_lu_13                                     nn.prelu                    [-2.30969f, 12.1118f]                     27
add_6__xeno_compat__1_DequantizeLinear         contrib.epu.dequantize      [-6.55803f, 10.6822f]                     27
p_re_lu_14                                     nn.prelu                    [-1.69176f, 10.6822f]                     27
conv2d_15_DequantizeLinear                     contrib.epu.qlinear_conv2d  [-7.00121f, 5.14374f]                     28
p_re_lu_15                                     nn.prelu                    [-1.26485f, 5.14374f]                     28
add_7__xeno_compat__1_DequantizeLinear         contrib.epu.dequantize      [-4.59979f, 9.70444f]                     27
p_re_lu_16                                     nn.prelu                    [-1.88479f, 9.70444f]                     27
conv2d_17_DequantizeLinear                     contrib.epu.qlinear_conv2d  [-8.53424f, 6.94931f]                     27
p_re_lu_17                                     nn.prelu                    [-2.76296f, 6.94931f]                     27
add_8__xeno_compat__1_DequantizeLinear         contrib.epu.dequantize      [-5.12762f, 9.24098f]                     27
p_re_lu_18                                     nn.prelu                    [-1.07331f, 9.24098f]                     27
conv2d_19_DequantizeLinear                     contrib.epu.qlinear_conv2d  [-4.45645f, 4.59905f]                     28
p_re_lu_19                                     nn.prelu                    [-3.41837f, 4.59905f]                     28
add_9__xeno_compat__1_DequantizeLinear         contrib.epu.dequantize      [-3.40875f, 9.00884f]                     27
p_re_lu_20                                     nn.prelu                    [-1.42879f, 9.00884f]                     27
conv2d_21_DequantizeLinear                     contrib.epu.qlinear_conv2d  [-6.34979f, 6.39979f]                     28
p_re_lu_21                                     nn.prelu                    [-2.07875f, 6.39979f]                     28
add_10__xeno_compat__1_DequantizeLinear        contrib.epu.dequantize      [-4.40711f, 7.84562f]                     27
p_re_lu_22                                     nn.prelu                    [-2.62492f, 7.84562f]                     27
conv2d_23_DequantizeLinear                     contrib.epu.qlinear_conv2d  [-3.55038f, 4.68005f]                     28
p_re_lu_23                                     nn.prelu                    [-1.54221f, 4.68005f]                     28
add_11__xeno_compat__1_DequantizeLinear        contrib.epu.dequantize      [-5.18704f, 7.36066f]                     27
p_re_lu_24                                     nn.prelu                    [-1.06645f, 7.36066f]                     27
conv2d_25_DequantizeLinear                     contrib.epu.qlinear_conv2d  [-2.8864f, 3.40447f]                      28
p_re_lu_25                                     nn.prelu                    [-1.6651f, 3.40447f]                      28
add_12__xeno_compat__1_DequantizeLinear        contrib.epu.dequantize      [-2.43735f, 6.1792f]                      28
p_re_lu_26                                     nn.prelu                    [-1.35755f, 6.1792f]                      28
conv2d_27_DequantizeLinear                     contrib.epu.qlinear_conv2d  [-2.71805f, 2.9672f]                      28
p_re_lu_27                                     nn.prelu                    [-1.4354f, 2.9672f]                       28
add_13__xeno_compat__1_DequantizeLinear        contrib.epu.dequantize      [-3.01204f, 5.84479f]                     28
p_re_lu_28                                     nn.prelu                    [-2.26777f, 5.84479f]                     28
conv2d_29_DequantizeLinear                     contrib.epu.qlinear_conv2d  [-2.9351f, 2.71274f]                      29
p_re_lu_29                                     nn.prelu                    [-0.669236f, 2.71274f]                    29
add_14__xeno_compat__1_DequantizeLinear        contrib.epu.dequantize      [-3.08454f, 6.09651f]                     28
p_re_lu_30                                     nn.prelu                    [-1.78016f, 6.09651f]                     28
conv2d_31_DequantizeLinear                     contrib.epu.qlinear_conv2d  [-2.95665f, 2.37818f]                     29
p_re_lu_31                                     nn.prelu                    [-2.15735f, 2.37818f]                     29
add_15__xeno_compat__1_DequantizeLinear        contrib.epu.dequantize      [-3.39989f, 7.39477f]                     27
p_re_lu_32                                     nn.prelu                    [-1.07502f, 7.39477f]                     27
conv2d_33_DequantizeLinear                     contrib.epu.qlinear_conv2d  [-2.49351f, 2.87388f]                     29
p_re_lu_33                                     nn.prelu                    [-0.966073f, 2.87388f]                    29
add_16__xeno_compat__1_DequantizeLinear        contrib.epu.dequantize      [-2.24598f, 7.72303f]                     27
p_re_lu_34                                     nn.prelu                    [-1.32124f, 7.72303f]                     27
conv2d_35_DequantizeLinear                     contrib.epu.qlinear_conv2d  [-1.94053f, 2.86369f]                     29
p_re_lu_35                                     nn.prelu                    [-0.606001f, 2.86369f]                    29
add_17__xeno_compat__1_DequantizeLinear        contrib.epu.dequantize      [-2.37886f, 9.42214f]                     27
p_re_lu_36                                     nn.prelu                    [-1.77375f, 9.42214f]                     27
conv_eyes_contours_and_brows_DequantizeLinear  contrib.epu.qlinear_conv2d  [-16.2439f, 53.6875f]                     25
output_eyes_contours_and_brows                 reshape                     [-16.2439f, 53.6875f]                     25
conv2d_37_DequantizeLinear                     contrib.epu.qlinear_conv2d  [-6.32238f, 6.17535f]                     28
p_re_lu_37                                     nn.prelu                    [-1.70034f, 6.17535f]                     28
add_18__xeno_compat__1_DequantizeLinear        contrib.epu.dequantize      [-3.71438f, 8.22806f]                     27
p_re_lu_38                                     nn.prelu                    [-1.41333f, 8.22806f]                     27
conv2d_39_DequantizeLinear                     contrib.epu.qlinear_conv2d  [-4.17118f, 5.15909f]                     28
p_re_lu_39                                     nn.prelu                    [-1.86831f, 5.15909f]                     28
add_19__xeno_compat__1_DequantizeLinear        contrib.epu.dequantize      [-2.95929f, 7.65187f]                     27
p_re_lu_40                                     nn.prelu                    [-1.74262f, 7.65187f]                     27
conv2d_41_DequantizeLinear                     contrib.epu.qlinear_conv2d  [-2.51177f, 4.32132f]                     28
p_re_lu_41                                     nn.prelu                    [-1.92909f, 4.32132f]                     28
add_20__xeno_compat__1_DequantizeLinear        contrib.epu.dequantize      [-3.59001f, 6.76737f]                     28
p_re_lu_42                                     nn.prelu                    [-3.03545f, 6.76737f]                     28
conv2d_43_DequantizeLinear                     contrib.epu.qlinear_conv2d  [-3.10935f, 3.1587f]                      28
p_re_lu_43                                     nn.prelu                    [-1.12316f, 3.1587f]                      28
add_21__xeno_compat__1_DequantizeLinear        contrib.epu.dequantize      [-3.15547f, 7.07959f]                     27
p_re_lu_44                                     nn.prelu                    [-2.41626f, 7.07959f]                     27
conv2d_45_DequantizeLinear                     contrib.epu.qlinear_conv2d  [-2.49229f, 4.89763f]                     28
p_re_lu_45                                     nn.prelu                    [-1.29383f, 4.89763f]                     28
add_22__xeno_compat__1_DequantizeLinear        contrib.epu.dequantize      [-2.59179f, 7.12743f]                     27
p_re_lu_46                                     nn.prelu                    [-1.90979f, 7.12743f]                     27
conv2d_47_DequantizeLinear                     contrib.epu.qlinear_conv2d  [-4.71281f, 4.07975f]                     28
p_re_lu_47                                     nn.prelu                    [-0.833847f, 4.07975f]                    28
add_23__xeno_compat__1_DequantizeLinear        contrib.epu.dequantize      [-5.07581f, 8.33501f]                     27
p_re_lu_48                                     nn.prelu                    [-2.02173f, 8.33501f]                     27
conv2d_49_DequantizeLinear                     contrib.epu.qlinear_conv2d  [-3.38343f, 5.42039f]                     28
p_re_lu_49                                     nn.prelu                    [-1.10543f, 5.42039f]                     28
add_24__xeno_compat__1_DequantizeLinear        contrib.epu.dequantize      [-4.17947f, 9.09036f]                     27
p_re_lu_50                                     nn.prelu                    [-1.18274f, 9.09036f]                     27
conv2d_51_DequantizeLinear                     contrib.epu.qlinear_conv2d  [-2.541f, 3.24432f]                       28
p_re_lu_51                                     nn.prelu                    [-0.56593f, 3.24432f]                     28
add_25__xeno_compat__1_DequantizeLinear        contrib.epu.dequantize      [-3.64679f, 10.4431f]                     27
p_re_lu_52                                     nn.prelu                    [-2.46499f, 10.4431f]                     27
conv_iris_DequantizeLinear                     contrib.epu.qlinear_conv2d  [-6.43777f, 43.3086f]                     25
output_iris                                    reshape                     [-6.43777f, 43.3086f]                     25



Analysis of /quadric/sdk-cli/examples/models/mediapipe/onnx_conversion/iris_landmark-convert_opt_asym_int8_q.onnx
4. Start compiling network

╒═════════════════════╤═══════════════════════════════════════════════════════════════════════════════════════════════════════╕
│ Module Name         │ iris_landmark_convert_opt_asym_int8_q_QC_N_1d7_8MB_4kB_128GBps_128GBps_16_OFF_x1_x1                   │
├─────────────────────┼───────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ ONNX File           │ /quadric/sdk-cli/examples/models/mediapipe/onnx_conversion/iris_landmark-convert_opt_asym_int8_q.onnx │
├─────────────────────┼───────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ Product Target      │ QC-N                                                                                                  │
├─────────────────────┼───────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ Number of Cores     │ 1                                                                                                     │
├─────────────────────┼───────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ ISS Clock Frequency │ 1.700                                                                                                 │
├─────────────────────┼───────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ L2M Size            │ 8MB                                                                                                   │
├─────────────────────┼───────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ LRM Size            │ 4kB                                                                                                   │
├─────────────────────┼───────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ External Read BW    │ 128GBps                                                                                               │
├─────────────────────┼───────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ External Write BW   │ 128GBps                                                                                               │
├─────────────────────┼───────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ MACS per PE         │ 16                                                                                                    │
├─────────────────────┼───────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ Max L2M             │ 0.298MB                                                                                               │
├─────────────────────┼───────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ Max LRM             │ 0.812kB                                                                                               │
├─────────────────────┼───────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ Max Temp Ext Bytes  │ 0.000MB                                                                                               │
├─────────────────────┼───────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ Network GMACs       │ 0.054                                                                                                 │
╘═════════════════════╧═══════════════════════════════════════════════════════════════════════════════════════════════════════╛

╒════╤════════╤══════════╤════════════════╤══════════════════════════╤═══════╕
│    │ Type   │ Name     │ shape          │ type                     │ mse   │
╞════╪════════╪══════════╪════════════════╪══════════════════════════╪═══════╡
│  0 │ Input  │ inputs0  │ [1, 3, 64, 64] │ tensor[FixedPoint32<30>] │ n/a   │
├────┼────────┼──────────┼────────────────┼──────────────────────────┼───────┤
│  1 │ Output │ outputs0 │ [1, 213]       │ tensor[FixedPoint32<25>] │ n/a   │
├────┼────────┼──────────┼────────────────┼──────────────────────────┼───────┤
│  2 │ Output │ outputs1 │ [1, 15]        │ tensor[FixedPoint32<25>] │ n/a   │
╘════╧════════╧══════════╧════════════════╧══════════════════════════╧═══════╛
cgc_job.run_inference_harness()
print(cgc_job)
cgc_job.plot_run_statistics()
2026-06-19 04:04 - INFO - epu - iss_testing - Found tranges for input: <tvm.contrib.epu.interval.Interval object at 0x7b6bf0d88850>
FILM 17/17: 100%|███████████████████████████████████████████████████| 17/17 [00:04<00:00,  3.90it/s]
2026-06-19 04:04 - INFO - epu - iss_testing - Found tranges for input: <tvm.contrib.epu.interval.Interval object at 0x7b6a60782e30>
2026-06-19 04:04 - INFO - epu - iss_testing - Started Executing Onnxruntime...
2026-06-19 04:04 - INFO - epu - iss_testing - Done 0:00:00.065080



╒═════════════════════╤═══════════════════════════════════════════════════════════════════════════════════════════════════════╕
 Module Name          iris_landmark_convert_opt_asym_int8_q_QC_N_1d7_8MB_4kB_128GBps_128GBps_16_OFF_x1_x1                   
├─────────────────────┼───────────────────────────────────────────────────────────────────────────────────────────────────────┤
 ONNX File            /quadric/sdk-cli/examples/models/mediapipe/onnx_conversion/iris_landmark-convert_opt_asym_int8_q.onnx 
├─────────────────────┼───────────────────────────────────────────────────────────────────────────────────────────────────────┤
 Product Target       QC-N                                                                                                  
├─────────────────────┼───────────────────────────────────────────────────────────────────────────────────────────────────────┤
 Number of Cores      1                                                                                                     
├─────────────────────┼───────────────────────────────────────────────────────────────────────────────────────────────────────┤
 ISS Clock Frequency  1.700                                                                                                 
├─────────────────────┼───────────────────────────────────────────────────────────────────────────────────────────────────────┤
 L2M Size             8MB                                                                                                   
├─────────────────────┼───────────────────────────────────────────────────────────────────────────────────────────────────────┤
 LRM Size             4kB                                                                                                   
├─────────────────────┼───────────────────────────────────────────────────────────────────────────────────────────────────────┤
 External Read BW     128GBps                                                                                               
├─────────────────────┼───────────────────────────────────────────────────────────────────────────────────────────────────────┤
 External Write BW    128GBps                                                                                               
├─────────────────────┼───────────────────────────────────────────────────────────────────────────────────────────────────────┤
 MACS per PE          16                                                                                                    
├─────────────────────┼───────────────────────────────────────────────────────────────────────────────────────────────────────┤
 Max L2M              0.298MB                                                                                               
├─────────────────────┼───────────────────────────────────────────────────────────────────────────────────────────────────────┤
 Max LRM              0.812kB                                                                                               
├─────────────────────┼───────────────────────────────────────────────────────────────────────────────────────────────────────┤
 Max Temp Ext Bytes   0.000MB                                                                                               
├─────────────────────┼───────────────────────────────────────────────────────────────────────────────────────────────────────┤
 Network GMACs        0.054                                                                                                 
╘═════════════════════╧═══════════════════════════════════════════════════════════════════════════════════════════════════════╛

╒════╤════════╤══════════╤════════════════╤══════════════════════════╤════════╕
     Type    Name      shape           type                      mse    
╞════╪════════╪══════════╪════════════════╪══════════════════════════╪════════╡
  0  Input   inputs0   [1, 3, 64, 64]  tensor[FixedPoint32<30>]  n/a    
├────┼────────┼──────────┼────────────────┼──────────────────────────┼────────┤
  1  Output  outputs0  [1, 213]        tensor[FixedPoint32<25>]  24.401 
├────┼────────┼──────────┼────────────────┼──────────────────────────┼────────┤
  2  Output  outputs1  [1, 15]         tensor[FixedPoint32<25>]  8.532  
╘════╧════════╧══════════╧════════════════╧══════════════════════════╧════════╛

Post-ISS Report 1.7 GHz ***
Fully placed-and-routed gate simulation: 
╒══════════════════════════════════╤═════════╕
 Latency (ms)                      0.56    
├──────────────────────────────────┼─────────┤
 FPS                               1774.41 
├──────────────────────────────────┼─────────┤
 Average Power @ 3nm SSGNP (mW)    197.18  
├──────────────────────────────────┼─────────┤
 FPS per Watt @ 3nm SSGNP (FPS/W)  8998.94 
├──────────────────────────────────┼─────────┤
 Ext Rd Bytes (MB)                 1.02    
├──────────────────────────────────┼─────────┤
 Ext Wr Bytes (MB)                 0.00    
├──────────────────────────────────┼─────────┤
 Avg Ext Rd BW (GBps)              1.77    
├──────────────────────────────────┼─────────┤
 Avg Ext Wr BW (GBps)              0.00    
├──────────────────────────────────┼─────────┤
 MAC Utilization                   5.47%   
╘══════════════════════════════════╧═════════╛
*** Data generated using 7nm SSGNP gatesim and scaled to 3nm

[SDK-CLI] : TotalCycles: 958,064
[SDK-CLI] : Executions/second: 1,774.41

compute      : ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 609.536K
data_array   : ▇▇▇▇▇▇▇▇▇▇▇ 139.494K
mac          : ▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 171.378K
data_external:  1.53K
data_ocm     : ▇▇ 35.825K

for more information check run directory: /quadric/sdk-cli/examples/models/mediapipe/onnx_conversion/ccl_build/iris_landmark_convert_opt_asym_int8_q_QC_N_1d7_8MB_4kB_128GBps_128GBps_16_OFF_x1_x1/run/20260619_040429_093bfc


2026-06-19 04:04 - INFO - epu - chimera_job - Combined plots generated and saved to: 
/quadric/sdk-cli/examples/models/mediapipe/onnx_conversion/ccl_build/iris_landmark_convert_opt_asym_int8_q_QC_N_1d7_8MB_4kB_128GBps_128GBps_16_OFF_x1_x1/run/20260619_040429_093bfc/data/iris_landmark_convert_opt_asym_int8_q_QC_N_1d7_8MB_4kB_128GBps_128GBps_16_OFF_x1_x1.combined.png





'/quadric/sdk-cli/examples/models/mediapipe/onnx_conversion/ccl_build/iris_landmark_convert_opt_asym_int8_q_QC_N_1d7_8MB_4kB_128GBps_128GBps_16_OFF_x1_x1/run/20260619_040429_093bfc/data'


Table of Contents
Introduction to the Chimera SDK
Chimera SDK Quick Start Guide
Chimera SDK Command Line Interface (CLI)
Tutorial: Using SDK as a Library
Chimera Graph Compiler (CGC)
Chimera LLVM C++ Compiler
Chimera SDK Licensing Policy Documentation
Glossary


© Copyright 2026 Quadric All Rights Reserved • Privacy Policy
This documentation is preliminary and confidential. It is subject to change. Quadric does not give any warranty express or implied that the contents will be complete or accurate or up to date. The company shall not be liable for any loss, actions, claims, proceedings, demands or costs or damages whatsoever or howsoever caused arising directly or indirectly in connection with or arising out of the use of this material.

Sign in to your account

Don't have an account? Create an Account
By signing in, you are agreeing to our Terms of Use and Privacy Policy.

Develop.

Simulate.

Profile.

Collaborate.

We use cookies to enhance your browsing experience, and analyze our traffic.
By clicking "Accept All", you consent to our use of cookies.