Unlock this feature

This feature isn’t part of your plan yet

Contact sales to get upgraded to the full DevStudio experience.

Unlock this feature

This feature isn't part of your plan yet.

Model Demo: DETR Object Detection


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/detr/e2e/detr_e2e.ipynb.


DETR-R101 End-to-End Object Detection on Chimera GPNPU

DETR (DEtection TRansformer) frames object detection as direct set prediction: a ResNet-101 backbone feeds a transformer encoder–decoder that emits 100 box/class predictions with no anchors and no non-maximum suppression. This notebook compiles the whole DETR graph as one unit and runs it on the Chimera GPNPU, validating the result against ONNX Runtime with box-level IoU.

Why end-to-end?

The entire network — backbone, input projection, transformer encoder/decoder, and prediction heads — is quantized once and compiled as one CGC (Chimera Graph Compiler) unit that runs on the ISS (Instruction Set Simulator). Compiling end-to-end keeps one calibration, one tensor-range set, and one graph — no split and no intermediate handoff.

Every operator lowers on the native CGC path, attention included. There is no custom op and no hand-written CCL kernel in this flow: quantize, then compile. CGC's attention detection finds all 17 cores in the exported graph and lowers each to cgc::generalMultiheadAttention itself, including the layer-0 cross-attention whose Q is a compile-time constant.

Attention coresCountseq_q → seq_k
encoder self-attention6360 → 360
decoder self-attention5100 → 100
decoder cross-attention6100 → 360

Decoder layer 0 has no self-attention core to lower: DETR's 100 object queries are learned constants, so that core folds to a constant at export and its result arrives as the constant Q of the layer-0 cross-attention.

GraphI/O
backbone + input projection + encoder + decoder + headspixel_values [1,3,384,960] → pred_logits [1,100,92], pred_boxes [1,100,4]

Model: DETR-R101 (ResNet-101 backbone, COCO, 384×960 input, ~60 M params, 6 encoder + 6 decoder layers)


1. Setup

Imports first; then paths, calibration constants, and the hardware target.

from pathlib import Path

import numpy as np
import onnxruntime as ort

from sdk_cli.utils.model_helpers import ModelHelper
from tvm.contrib.epu.chimera_job.chimera_job import ChimeraJob
from tvm.contrib.epu.chimera_job.hw_config import HWConfig
from tvm.contrib.epu.chimera_job.quantize import quadric_quantize

import detr_viz
import iou_validation
from model_download import ensure_calibration_images
from model_download import main as download_model
FULL_FP = "onnx/detr_full.onnx"  # float32 full DETR graph (downloaded below)
OUTPUT_DIR = "onnx"
Path(OUTPUT_DIR).mkdir(exist_ok=True)

CALIB_DIR = Path("calib_images")  # COCO val2017 calibration images
NUM_CALIB_IMAGES = 100  # COCO images used for INT8 calibration
## Image used for the validation run below.
VAL_IMAGE_STEM = "000000105014"
IMG_H, IMG_W = 384, 960
DETR_MEAN = [0.485, 0.456, 0.406]
DETR_STD = [0.229, 0.224, 0.225]

hw_config = HWConfig(
    product="QC-U",
    ocm_size="8MB",
    lrm_size="4kB",
    macs_per_pe=16,
    clock_freq_ghz=1.56,
    ext_rd_bw="64GBps",
    ext_wr_bw="64GBps",
    num_cores=1,
)

2. Download & export the model

Download facebook/detr-resnet-101 and export the full inference DETR graph to onnx/detr_full.onnx. The implementation lives in model_download.py — it exports the full graph only (no sub-graph extraction). This cell runs the download only if the graph is not already present in onnx/.

if Path(FULL_FP).exists():
    print(f"Found cached graph: {FULL_FP}")
else:
    download_model()
Downloading facebook/detr-resnet-101 from HuggingFace -> onnx/facebook-detr-resnet-101 ...
  Saved to onnx/facebook-detr-resnet-101
  Model ready.

Exporting full DETR graph ...
  Exporting detr_full.onnx ...


/usr/local/lib/python3.10/dist-packages/transformers/models/detr/modeling_detr.py:568: TracerWarning: Converting a tensor to a Python boolean might cause the trace to be incorrect. We can't record the data flow of Python values, so this value will be treated as a constant in the future. This means that the trace might not generalize to other inputs!
  if attn_weights.size() != (batch_size * self.num_heads, target_len, source_len):
/usr/local/lib/python3.10/dist-packages/transformers/models/detr/modeling_detr.py:599: TracerWarning: Converting a tensor to a Python boolean might cause the trace to be incorrect. We can't record the data flow of Python values, so this value will be treated as a constant in the future. This means that the trace might not generalize to other inputs!
  if attn_output.size() != (batch_size * self.num_heads, target_len, self.head_dim):


    in  pixel_values: [1, 3, 384, 960]
    out pred_logits: [1, 100, 92]
    out pred_boxes: [1, 100, 4]

[PASS] onnx/detr_full.onnx
  in  [[1, 3, 384, 960]]
  out [[1, 100, 92], [1, 100, 4]]

3. Build the COCO calibration set

Fetch 100 COCO val2017 images into calib_images/ and calibrate on them. ModelHelper resizes and normalizes each image into pixel_values [1, 3, 384, 960]. A broad calibration set produces representative INT8 tensor ranges across the full graph.

mh = ModelHelper(size=(IMG_W, IMG_H), mean=DETR_MEAN, std=DETR_STD)

## Fetch the COCO val2017 calibration images into calib_images/.
ensure_calibration_images(out_dir=str(CALIB_DIR), num_images=NUM_CALIB_IMAGES)
image_paths = sorted(
    p for p in CALIB_DIR.iterdir() if p.suffix.lower() in (".jpg", ".jpeg", ".png")
)[:NUM_CALIB_IMAGES]
assert image_paths, f"No images found in {CALIB_DIR}"
NUM_CALIB = len(image_paths)

## Look up the validation image in the calibration set.
val_img = next((p for p in image_paths if p.stem == VAL_IMAGE_STEM), None)
assert val_img is not None, (
    f"Validation image {VAL_IMAGE_STEM} not found in {CALIB_DIR}/ "
    f"(first {NUM_CALIB_IMAGES} COCO val ids)"
)
print(f"Calibrating on {NUM_CALIB} COCO images from {CALIB_DIR}/")
print(f"Validation image: {val_img.name}")
/tmp/ipykernel_2468/4229429423.py:1: DeprecationWarning: Call to deprecated class ModelHelper. ('ModelHelper' class is being deprecated. Quadric APIs have been updated to use PyTorch datasets and transforms instead.) -- Deprecated since version 24.01.
  mh = ModelHelper(size=(IMG_W, IMG_H), mean=DETR_MEAN, std=DETR_STD)


Downloading COCO calibration images -> calib_images/ ...
Calibration set ready: 100 images in calib_images/
Calibrating on 100 COCO images from calib_images/
Validation image: 000000105014.jpg

4. Quantize the full graph

One INT8 calibration pass over the whole DETR graph produces the quantized model and its tensor-range file for the end-to-end compile.

qfull = quadric_quantize(
    FULL_FP,
    num_images=NUM_CALIB,
    mh=mh,
    calibration_folder=str(CALIB_DIR),
    synthetic_input=False,
    output_folder=OUTPUT_DIR,
)
QMODEL = qfull.qmodel_path
TRANGES = qfull.tranges_path
print(f"Quantized full model: {QMODEL}")
print(f"Tensor ranges:        {TRANGES}")
2026-09-22 02:52 - INFO - epu - quantize - Collecting calibration data
2026-09-22 02:52 - INFO - epu - quantize - Optimized model to opset
2026-09-22 02:52 - INFO - epu - quantize - Saved optimized model to detr_full_float32_opt.onnx
2026-09-22 02:52 - INFO - epu - quantize - Input shapes: [1, 3, 384, 960]. Input names: pixel_values
2026-09-22 02:52 - INFO - epu - quantize - Output shapes: [[1, 100, 92], [1, 100, 4]]. Output names: ['pred_logits', 'pred_boxes']
2026-09-22 02:52 - INFO - epu - quantize - applying calibration data to input: pixel_values
2026-09-22 02:52 - INFO - epu - quantize - calibration set size: 100
2026-09-22 02:52 - INFO - epu - quantize - Running real quantization on this input: pixel_values with input shape: [1, 3, 384, 960]
2026-09-22 02:52 - DEBUG - epu - quantize - Full exclusion set for quantization: ['Softmax', 'Sigmoid', 'QuadricCustomOp']
2026-09-22 02:52 - DEBUG - epu - quantize - excl_nodes ['/encoder/layers.0/self_attn/Softmax', '/encoder/layers.1/self_attn/Softmax', '/encoder/layers.2/self_attn/Softmax', '/encoder/layers.3/self_attn/Softmax', '/encoder/layers.4/self_attn/Softmax', '/encoder/layers.5/self_attn/Softmax', '/decoder/layers.0/encoder_attn/Softmax', '/decoder/layers.1/self_attn/Softmax', '/decoder/layers.1/encoder_attn/Softmax', '/decoder/layers.2/self_attn/Softmax', '/decoder/layers.2/encoder_attn/Softmax', '/decoder/layers.3/self_attn/Softmax', '/decoder/layers.3/encoder_attn/Softmax', '/decoder/layers.4/self_attn/Softmax', '/decoder/layers.4/encoder_attn/Softmax', '/decoder/layers.5/self_attn/Softmax', '/decoder/layers.5/encoder_attn/Softmax', '/Sigmoid', '/encoder/layers.0/self_attn_layer_norm/ReduceMean', '/encoder/layers.0/self_attn_layer_norm/Sub', '/encoder/layers.0/self_attn_layer_norm/Constant_output_0', '/encoder/layers.0/self_attn_layer_norm/Pow', '/encoder/layers.0/self_attn_layer_norm/ReduceMean_1', '/encoder/layers.0/self_attn_layer_norm/Constant_1_output_0', '/encoder/layers.0/self_attn_layer_norm/Add', '/encoder/layers.0/self_attn_layer_norm/Sqrt', '/encoder/layers.0/self_attn_layer_norm/Div', 'encoder.layers.0.self_attn_layer_norm.weight', '/encoder/layers.0/self_attn_layer_norm/Mul', 'encoder.layers.0.self_attn_layer_norm.bias', '/encoder/layers.0/self_attn_layer_norm/Add_1', '/encoder/layers.0/final_layer_norm/ReduceMean', '/encoder/layers.0/final_layer_norm/Sub', '/encoder/layers.0/self_attn_layer_norm/Constant_output_0', '/encoder/layers.0/final_layer_norm/Pow', '/encoder/layers.0/final_layer_norm/ReduceMean_1', '/encoder/layers.0/self_attn_layer_norm/Constant_1_output_0', '/encoder/layers.0/final_layer_norm/Add', '/encoder/layers.0/final_layer_norm/Sqrt', '/encoder/layers.0/final_layer_norm/Div', 'encoder.layers.0.final_layer_norm.weight', '/encoder/layers.0/final_layer_norm/Mul', 'encoder.layers.0.final_layer_norm.bias', '/encoder/layers.0/final_layer_norm/Add_1', '/encoder/layers.1/self_attn_layer_norm/ReduceMean', '/encoder/layers.1/self_attn_layer_norm/Sub', '/encoder/layers.0/self_attn_layer_norm/Constant_output_0', '/encoder/layers.1/self_attn_layer_norm/Pow', '/encoder/layers.1/self_attn_layer_norm/ReduceMean_1', '/encoder/layers.0/self_attn_layer_norm/Constant_1_output_0', '/encoder/layers.1/self_attn_layer_norm/Add', '/encoder/layers.1/self_attn_layer_norm/Sqrt', '/encoder/layers.1/self_attn_layer_norm/Div', 'encoder.layers.1.self_attn_layer_norm.weight', '/encoder/layers.1/self_attn_layer_norm/Mul', 'encoder.layers.1.self_attn_layer_norm.bias', '/encoder/layers.1/self_attn_layer_norm/Add_1', '/encoder/layers.1/final_layer_norm/ReduceMean', '/encoder/layers.1/final_layer_norm/Sub', '/encoder/layers.0/self_attn_layer_norm/Constant_output_0', '/encoder/layers.1/final_layer_norm/Pow', '/encoder/layers.1/final_layer_norm/ReduceMean_1', '/encoder/layers.0/self_attn_layer_norm/Constant_1_output_0', '/encoder/layers.1/final_layer_norm/Add', '/encoder/layers.1/final_layer_norm/Sqrt', '/encoder/layers.1/final_layer_norm/Div', 'encoder.layers.1.final_layer_norm.weight', '/encoder/layers.1/final_layer_norm/Mul', 'encoder.layers.1.final_layer_norm.bias', '/encoder/layers.1/final_layer_norm/Add_1', '/encoder/layers.2/self_attn_layer_norm/ReduceMean', '/encoder/layers.2/self_attn_layer_norm/Sub', '/encoder/layers.0/self_attn_layer_norm/Constant_output_0', '/encoder/layers.2/self_attn_layer_norm/Pow', '/encoder/layers.2/self_attn_layer_norm/ReduceMean_1', '/encoder/layers.0/self_attn_layer_norm/Constant_1_output_0', '/encoder/layers.2/self_attn_layer_norm/Add', '/encoder/layers.2/self_attn_layer_norm/Sqrt', '/encoder/layers.2/self_attn_layer_norm/Div', 'encoder.layers.2.self_attn_layer_norm.weight', '/encoder/layers.2/self_attn_layer_norm/Mul', 'encoder.layers.2.self_attn_layer_norm.bias', '/encoder/layers.2/self_attn_layer_norm/Add_1', '/encoder/layers.2/final_layer_norm/ReduceMean', '/encoder/layers.2/final_layer_norm/Sub', '/encoder/layers.0/self_attn_layer_norm/Constant_output_0', '/encoder/layers.2/final_layer_norm/Pow', '/encoder/layers.2/final_layer_norm/ReduceMean_1', '/encoder/layers.0/self_attn_layer_norm/Constant_1_output_0', '/encoder/layers.2/final_layer_norm/Add', '/encoder/layers.2/final_layer_norm/Sqrt', '/encoder/layers.2/final_layer_norm/Div', 'encoder.layers.2.final_layer_norm.weight', '/encoder/layers.2/final_layer_norm/Mul', 'encoder.layers.2.final_layer_norm.bias', '/encoder/layers.2/final_layer_norm/Add_1', '/encoder/layers.3/self_attn_layer_norm/ReduceMean', '/encoder/layers.3/self_attn_layer_norm/Sub', '/encoder/layers.0/self_attn_layer_norm/Constant_output_0', '/encoder/layers.3/self_attn_layer_norm/Pow', '/encoder/layers.3/self_attn_layer_norm/ReduceMean_1', '/encoder/layers.0/self_attn_layer_norm/Constant_1_output_0', '/encoder/layers.3/self_attn_layer_norm/Add', '/encoder/layers.3/self_attn_layer_norm/Sqrt', '/encoder/layers.3/self_attn_layer_norm/Div', 'encoder.layers.3.self_attn_layer_norm.weight', '/encoder/layers.3/self_attn_layer_norm/Mul', 'encoder.layers.3.self_attn_layer_norm.bias', '/encoder/layers.3/self_attn_layer_norm/Add_1', '/encoder/layers.3/final_layer_norm/ReduceMean', '/encoder/layers.3/final_layer_norm/Sub', '/encoder/layers.0/self_attn_layer_norm/Constant_output_0', '/encoder/layers.3/final_layer_norm/Pow', '/encoder/layers.3/final_layer_norm/ReduceMean_1', '/encoder/layers.0/self_attn_layer_norm/Constant_1_output_0', '/encoder/layers.3/final_layer_norm/Add', '/encoder/layers.3/final_layer_norm/Sqrt', '/encoder/layers.3/final_layer_norm/Div', 'encoder.layers.3.final_layer_norm.weight', '/encoder/layers.3/final_layer_norm/Mul', 'encoder.layers.3.final_layer_norm.bias', '/encoder/layers.3/final_layer_norm/Add_1', '/encoder/layers.4/self_attn_layer_norm/ReduceMean', '/encoder/layers.4/self_attn_layer_norm/Sub', '/encoder/layers.0/self_attn_layer_norm/Constant_output_0', '/encoder/layers.4/self_attn_layer_norm/Pow', '/encoder/layers.4/self_attn_layer_norm/ReduceMean_1', '/encoder/layers.0/self_attn_layer_norm/Constant_1_output_0', '/encoder/layers.4/self_attn_layer_norm/Add', '/encoder/layers.4/self_attn_layer_norm/Sqrt', '/encoder/layers.4/self_attn_layer_norm/Div', 'encoder.layers.4.self_attn_layer_norm.weight', '/encoder/layers.4/self_attn_layer_norm/Mul', 'encoder.layers.4.self_attn_layer_norm.bias', '/encoder/layers.4/self_attn_layer_norm/Add_1', '/encoder/layers.4/final_layer_norm/ReduceMean', '/encoder/layers.4/final_layer_norm/Sub', '/encoder/layers.0/self_attn_layer_norm/Constant_output_0', '/encoder/layers.4/final_layer_norm/Pow', '/encoder/layers.4/final_layer_norm/ReduceMean_1', '/encoder/layers.0/self_attn_layer_norm/Constant_1_output_0', '/encoder/layers.4/final_layer_norm/Add', '/encoder/layers.4/final_layer_norm/Sqrt', '/encoder/layers.4/final_layer_norm/Div', 'encoder.layers.4.final_layer_norm.weight', '/encoder/layers.4/final_layer_norm/Mul', 'encoder.layers.4.final_layer_norm.bias', '/encoder/layers.4/final_layer_norm/Add_1', '/encoder/layers.5/self_attn_layer_norm/ReduceMean', '/encoder/layers.5/self_attn_layer_norm/Sub', '/encoder/layers.0/self_attn_layer_norm/Constant_output_0', '/encoder/layers.5/self_attn_layer_norm/Pow', '/encoder/layers.5/self_attn_layer_norm/ReduceMean_1', '/encoder/layers.0/self_attn_layer_norm/Constant_1_output_0', '/encoder/layers.5/self_attn_layer_norm/Add', '/encoder/layers.5/self_attn_layer_norm/Sqrt', '/encoder/layers.5/self_attn_layer_norm/Div', 'encoder.layers.5.self_attn_layer_norm.weight', '/encoder/layers.5/self_attn_layer_norm/Mul', 'encoder.layers.5.self_attn_layer_norm.bias', '/encoder/layers.5/self_attn_layer_norm/Add_1', '/encoder/layers.5/final_layer_norm/ReduceMean', '/encoder/layers.5/final_layer_norm/Sub', '/encoder/layers.0/self_attn_layer_norm/Constant_output_0', '/encoder/layers.5/final_layer_norm/Pow', '/encoder/layers.5/final_layer_norm/ReduceMean_1', '/encoder/layers.0/self_attn_layer_norm/Constant_1_output_0', '/encoder/layers.5/final_layer_norm/Add', '/encoder/layers.5/final_layer_norm/Sqrt', '/encoder/layers.5/final_layer_norm/Div', 'encoder.layers.5.final_layer_norm.weight', '/encoder/layers.5/final_layer_norm/Mul', 'encoder.layers.5.final_layer_norm.bias', '/encoder/layers.5/final_layer_norm/Add_1', '/decoder/layers.0/encoder_attn_layer_norm/ReduceMean', '/decoder/layers.0/encoder_attn_layer_norm/Sub', '/encoder/layers.0/self_attn_layer_norm/Constant_output_0', '/decoder/layers.0/encoder_attn_layer_norm/Pow', '/decoder/layers.0/encoder_attn_layer_norm/ReduceMean_1', '/encoder/layers.0/self_attn_layer_norm/Constant_1_output_0', '/decoder/layers.0/encoder_attn_layer_norm/Add', '/decoder/layers.0/encoder_attn_layer_norm/Sqrt', '/decoder/layers.0/encoder_attn_layer_norm/Div', 'decoder.layers.0.encoder_attn_layer_norm.weight', '/decoder/layers.0/encoder_attn_layer_norm/Mul', 'decoder.layers.0.encoder_attn_layer_norm.bias', '/decoder/layers.0/encoder_attn_layer_norm/Add_1', '/decoder/layers.0/final_layer_norm/ReduceMean', '/decoder/layers.0/final_layer_norm/Sub', '/encoder/layers.0/self_attn_layer_norm/Constant_output_0', '/decoder/layers.0/final_layer_norm/Pow', '/decoder/layers.0/final_layer_norm/ReduceMean_1', '/encoder/layers.0/self_attn_layer_norm/Constant_1_output_0', '/decoder/layers.0/final_layer_norm/Add', '/decoder/layers.0/final_layer_norm/Sqrt', '/decoder/layers.0/final_layer_norm/Div', 'decoder.layers.0.final_layer_norm.weight', '/decoder/layers.0/final_layer_norm/Mul', 'decoder.layers.0.final_layer_norm.bias', '/decoder/layers.0/final_layer_norm/Add_1', '/decoder/layers.1/self_attn_layer_norm/ReduceMean', '/decoder/layers.1/self_attn_layer_norm/Sub', '/encoder/layers.0/self_attn_layer_norm/Constant_output_0', '/decoder/layers.1/self_attn_layer_norm/Pow', '/decoder/layers.1/self_attn_layer_norm/ReduceMean_1', '/encoder/layers.0/self_attn_layer_norm/Constant_1_output_0', '/decoder/layers.1/self_attn_layer_norm/Add', '/decoder/layers.1/self_attn_layer_norm/Sqrt', '/decoder/layers.1/self_attn_layer_norm/Div', 'decoder.layers.1.self_attn_layer_norm.weight', '/decoder/layers.1/self_attn_layer_norm/Mul', 'decoder.layers.1.self_attn_layer_norm.bias', '/decoder/layers.1/self_attn_layer_norm/Add_1', '/decoder/layers.1/encoder_attn_layer_norm/ReduceMean', '/decoder/layers.1/encoder_attn_layer_norm/Sub', '/encoder/layers.0/self_attn_layer_norm/Constant_output_0', '/decoder/layers.1/encoder_attn_layer_norm/Pow', '/decoder/layers.1/encoder_attn_layer_norm/ReduceMean_1', '/encoder/layers.0/self_attn_layer_norm/Constant_1_output_0', '/decoder/layers.1/encoder_attn_layer_norm/Add', '/decoder/layers.1/encoder_attn_layer_norm/Sqrt', '/decoder/layers.1/encoder_attn_layer_norm/Div', 'decoder.layers.1.encoder_attn_layer_norm.weight', '/decoder/layers.1/encoder_attn_layer_norm/Mul', 'decoder.layers.1.encoder_attn_layer_norm.bias', '/decoder/layers.1/encoder_attn_layer_norm/Add_1', '/decoder/layers.1/final_layer_norm/ReduceMean', '/decoder/layers.1/final_layer_norm/Sub', '/encoder/layers.0/self_attn_layer_norm/Constant_output_0', '/decoder/layers.1/final_layer_norm/Pow', '/decoder/layers.1/final_layer_norm/ReduceMean_1', '/encoder/layers.0/self_attn_layer_norm/Constant_1_output_0', '/decoder/layers.1/final_layer_norm/Add', '/decoder/layers.1/final_layer_norm/Sqrt', '/decoder/layers.1/final_layer_norm/Div', 'decoder.layers.1.final_layer_norm.weight', '/decoder/layers.1/final_layer_norm/Mul', 'decoder.layers.1.final_layer_norm.bias', '/decoder/layers.1/final_layer_norm/Add_1', '/decoder/layers.2/self_attn_layer_norm/ReduceMean', '/decoder/layers.2/self_attn_layer_norm/Sub', '/encoder/layers.0/self_attn_layer_norm/Constant_output_0', '/decoder/layers.2/self_attn_layer_norm/Pow', '/decoder/layers.2/self_attn_layer_norm/ReduceMean_1', '/encoder/layers.0/self_attn_layer_norm/Constant_1_output_0', '/decoder/layers.2/self_attn_layer_norm/Add', '/decoder/layers.2/self_attn_layer_norm/Sqrt', '/decoder/layers.2/self_attn_layer_norm/Div', 'decoder.layers.2.self_attn_layer_norm.weight', '/decoder/layers.2/self_attn_layer_norm/Mul', 'decoder.layers.2.self_attn_layer_norm.bias', '/decoder/layers.2/self_attn_layer_norm/Add_1', '/decoder/layers.2/encoder_attn_layer_norm/ReduceMean', '/decoder/layers.2/encoder_attn_layer_norm/Sub', '/encoder/layers.0/self_attn_layer_norm/Constant_output_0', '/decoder/layers.2/encoder_attn_layer_norm/Pow', '/decoder/layers.2/encoder_attn_layer_norm/ReduceMean_1', '/encoder/layers.0/self_attn_layer_norm/Constant_1_output_0', '/decoder/layers.2/encoder_attn_layer_norm/Add', '/decoder/layers.2/encoder_attn_layer_norm/Sqrt', '/decoder/layers.2/encoder_attn_layer_norm/Div', 'decoder.layers.2.encoder_attn_layer_norm.weight', '/decoder/layers.2/encoder_attn_layer_norm/Mul', 'decoder.layers.2.encoder_attn_layer_norm.bias', '/decoder/layers.2/encoder_attn_layer_norm/Add_1', '/decoder/layers.2/final_layer_norm/ReduceMean', '/decoder/layers.2/final_layer_norm/Sub', '/encoder/layers.0/self_attn_layer_norm/Constant_output_0', '/decoder/layers.2/final_layer_norm/Pow', '/decoder/layers.2/final_layer_norm/ReduceMean_1', '/encoder/layers.0/self_attn_layer_norm/Constant_1_output_0', '/decoder/layers.2/final_layer_norm/Add', '/decoder/layers.2/final_layer_norm/Sqrt', '/decoder/layers.2/final_layer_norm/Div', 'decoder.layers.2.final_layer_norm.weight', '/decoder/layers.2/final_layer_norm/Mul', 'decoder.layers.2.final_layer_norm.bias', '/decoder/layers.2/final_layer_norm/Add_1', '/decoder/layers.3/self_attn_layer_norm/ReduceMean', '/decoder/layers.3/self_attn_layer_norm/Sub', '/encoder/layers.0/self_attn_layer_norm/Constant_output_0', '/decoder/layers.3/self_attn_layer_norm/Pow', '/decoder/layers.3/self_attn_layer_norm/ReduceMean_1', '/encoder/layers.0/self_attn_layer_norm/Constant_1_output_0', '/decoder/layers.3/self_attn_layer_norm/Add', '/decoder/layers.3/self_attn_layer_norm/Sqrt', '/decoder/layers.3/self_attn_layer_norm/Div', 'decoder.layers.3.self_attn_layer_norm.weight', '/decoder/layers.3/self_attn_layer_norm/Mul', 'decoder.layers.3.self_attn_layer_norm.bias', '/decoder/layers.3/self_attn_layer_norm/Add_1', '/decoder/layers.3/encoder_attn_layer_norm/ReduceMean', '/decoder/layers.3/encoder_attn_layer_norm/Sub', '/encoder/layers.0/self_attn_layer_norm/Constant_output_0', '/decoder/layers.3/encoder_attn_layer_norm/Pow', '/decoder/layers.3/encoder_attn_layer_norm/ReduceMean_1', '/encoder/layers.0/self_attn_layer_norm/Constant_1_output_0', '/decoder/layers.3/encoder_attn_layer_norm/Add', '/decoder/layers.3/encoder_attn_layer_norm/Sqrt', '/decoder/layers.3/encoder_attn_layer_norm/Div', 'decoder.layers.3.encoder_attn_layer_norm.weight', '/decoder/layers.3/encoder_attn_layer_norm/Mul', 'decoder.layers.3.encoder_attn_layer_norm.bias', '/decoder/layers.3/encoder_attn_layer_norm/Add_1', '/decoder/layers.3/final_layer_norm/ReduceMean', '/decoder/layers.3/final_layer_norm/Sub', '/encoder/layers.0/self_attn_layer_norm/Constant_output_0', '/decoder/layers.3/final_layer_norm/Pow', '/decoder/layers.3/final_layer_norm/ReduceMean_1', '/encoder/layers.0/self_attn_layer_norm/Constant_1_output_0', '/decoder/layers.3/final_layer_norm/Add', '/decoder/layers.3/final_layer_norm/Sqrt', '/decoder/layers.3/final_layer_norm/Div', 'decoder.layers.3.final_layer_norm.weight', '/decoder/layers.3/final_layer_norm/Mul', 'decoder.layers.3.final_layer_norm.bias', '/decoder/layers.3/final_layer_norm/Add_1', '/decoder/layers.4/self_attn_layer_norm/ReduceMean', '/decoder/layers.4/self_attn_layer_norm/Sub', '/encoder/layers.0/self_attn_layer_norm/Constant_output_0', '/decoder/layers.4/self_attn_layer_norm/Pow', '/decoder/layers.4/self_attn_layer_norm/ReduceMean_1', '/encoder/layers.0/self_attn_layer_norm/Constant_1_output_0', '/decoder/layers.4/self_attn_layer_norm/Add', '/decoder/layers.4/self_attn_layer_norm/Sqrt', '/decoder/layers.4/self_attn_layer_norm/Div', 'decoder.layers.4.self_attn_layer_norm.weight', '/decoder/layers.4/self_attn_layer_norm/Mul', 'decoder.layers.4.self_attn_layer_norm.bias', '/decoder/layers.4/self_attn_layer_norm/Add_1', '/decoder/layers.4/encoder_attn_layer_norm/ReduceMean', '/decoder/layers.4/encoder_attn_layer_norm/Sub', '/encoder/layers.0/self_attn_layer_norm/Constant_output_0', '/decoder/layers.4/encoder_attn_layer_norm/Pow', '/decoder/layers.4/encoder_attn_layer_norm/ReduceMean_1', '/encoder/layers.0/self_attn_layer_norm/Constant_1_output_0', '/decoder/layers.4/encoder_attn_layer_norm/Add', '/decoder/layers.4/encoder_attn_layer_norm/Sqrt', '/decoder/layers.4/encoder_attn_layer_norm/Div', 'decoder.layers.4.encoder_attn_layer_norm.weight', '/decoder/layers.4/encoder_attn_layer_norm/Mul', 'decoder.layers.4.encoder_attn_layer_norm.bias', '/decoder/layers.4/encoder_attn_layer_norm/Add_1', '/decoder/layers.4/final_layer_norm/ReduceMean', '/decoder/layers.4/final_layer_norm/Sub', '/encoder/layers.0/self_attn_layer_norm/Constant_output_0', '/decoder/layers.4/final_layer_norm/Pow', '/decoder/layers.4/final_layer_norm/ReduceMean_1', '/encoder/layers.0/self_attn_layer_norm/Constant_1_output_0', '/decoder/layers.4/final_layer_norm/Add', '/decoder/layers.4/final_layer_norm/Sqrt', '/decoder/layers.4/final_layer_norm/Div', 'decoder.layers.4.final_layer_norm.weight', '/decoder/layers.4/final_layer_norm/Mul', 'decoder.layers.4.final_layer_norm.bias', '/decoder/layers.4/final_layer_norm/Add_1', '/decoder/layers.5/self_attn_layer_norm/ReduceMean', '/decoder/layers.5/self_attn_layer_norm/Sub', '/encoder/layers.0/self_attn_layer_norm/Constant_output_0', '/decoder/layers.5/self_attn_layer_norm/Pow', '/decoder/layers.5/self_attn_layer_norm/ReduceMean_1', '/encoder/layers.0/self_attn_layer_norm/Constant_1_output_0', '/decoder/layers.5/self_attn_layer_norm/Add', '/decoder/layers.5/self_attn_layer_norm/Sqrt', '/decoder/layers.5/self_attn_layer_norm/Div', 'decoder.layers.5.self_attn_layer_norm.weight', '/decoder/layers.5/self_attn_layer_norm/Mul', 'decoder.layers.5.self_attn_layer_norm.bias', '/decoder/layers.5/self_attn_layer_norm/Add_1', '/decoder/layers.5/encoder_attn_layer_norm/ReduceMean', '/decoder/layers.5/encoder_attn_layer_norm/Sub', '/encoder/layers.0/self_attn_layer_norm/Constant_output_0', '/decoder/layers.5/encoder_attn_layer_norm/Pow', '/decoder/layers.5/encoder_attn_layer_norm/ReduceMean_1', '/encoder/layers.0/self_attn_layer_norm/Constant_1_output_0', '/decoder/layers.5/encoder_attn_layer_norm/Add', '/decoder/layers.5/encoder_attn_layer_norm/Sqrt', '/decoder/layers.5/encoder_attn_layer_norm/Div', 'decoder.layers.5.encoder_attn_layer_norm.weight', '/decoder/layers.5/encoder_attn_layer_norm/Mul', 'decoder.layers.5.encoder_attn_layer_norm.bias', '/decoder/layers.5/encoder_attn_layer_norm/Add_1', '/decoder/layers.5/final_layer_norm/ReduceMean', '/decoder/layers.5/final_layer_norm/Sub', '/encoder/layers.0/self_attn_layer_norm/Constant_output_0', '/decoder/layers.5/final_layer_norm/Pow', '/decoder/layers.5/final_layer_norm/ReduceMean_1', '/encoder/layers.0/self_attn_layer_norm/Constant_1_output_0', '/decoder/layers.5/final_layer_norm/Add', '/decoder/layers.5/final_layer_norm/Sqrt', '/decoder/layers.5/final_layer_norm/Div', 'decoder.layers.5.final_layer_norm.weight', '/decoder/layers.5/final_layer_norm/Mul', 'decoder.layers.5.final_layer_norm.bias', '/decoder/layers.5/final_layer_norm/Add_1', '/decoder/layernorm/ReduceMean', '/decoder/layernorm/Sub', '/encoder/layers.0/self_attn_layer_norm/Constant_output_0', '/decoder/layernorm/Pow', '/decoder/layernorm/ReduceMean_1', '/encoder/layers.0/self_attn_layer_norm/Constant_1_output_0', '/decoder/layernorm/Add', '/decoder/layernorm/Sqrt', '/decoder/layernorm/Div', 'decoder.layernorm.weight', '/decoder/layernorm/Mul', 'decoder.layernorm.bias', '/decoder/layernorm/Add_1', '/encoder/layers.0/self_attn_layer_norm/ReduceMean', '/encoder/layers.0/self_attn_layer_norm/Sub', '/encoder/layers.0/self_attn_layer_norm/Constant_output_0', '/encoder/layers.0/self_attn_layer_norm/Pow', '/encoder/layers.0/self_attn_layer_norm/ReduceMean_1', '/encoder/layers.0/self_attn_layer_norm/Constant_1_output_0', '/encoder/layers.0/self_attn_layer_norm/Add', '/encoder/layers.0/self_attn_layer_norm/Sqrt', '/encoder/layers.0/self_attn_layer_norm/Div', '/encoder/layers.0/final_layer_norm/ReduceMean', '/encoder/layers.0/final_layer_norm/Sub', '/encoder/layers.0/self_attn_layer_norm/Constant_output_0', '/encoder/layers.0/final_layer_norm/Pow', '/encoder/layers.0/final_layer_norm/ReduceMean_1', '/encoder/layers.0/self_attn_layer_norm/Constant_1_output_0', '/encoder/layers.0/final_layer_norm/Add', '/encoder/layers.0/final_layer_norm/Sqrt', '/encoder/layers.0/final_layer_norm/Div', '/encoder/layers.1/self_attn_layer_norm/ReduceMean', '/encoder/layers.1/self_attn_layer_norm/Sub', '/encoder/layers.0/self_attn_layer_norm/Constant_output_0', '/encoder/layers.1/self_attn_layer_norm/Pow', '/encoder/layers.1/self_attn_layer_norm/ReduceMean_1', '/encoder/layers.0/self_attn_layer_norm/Constant_1_output_0', '/encoder/layers.1/self_attn_layer_norm/Add', '/encoder/layers.1/self_attn_layer_norm/Sqrt', '/encoder/layers.1/self_attn_layer_norm/Div', '/encoder/layers.1/final_layer_norm/ReduceMean', '/encoder/layers.1/final_layer_norm/Sub', '/encoder/layers.0/self_attn_layer_norm/Constant_output_0', '/encoder/layers.1/final_layer_norm/Pow', '/encoder/layers.1/final_layer_norm/ReduceMean_1', '/encoder/layers.0/self_attn_layer_norm/Constant_1_output_0', '/encoder/layers.1/final_layer_norm/Add', '/encoder/layers.1/final_layer_norm/Sqrt', '/encoder/layers.1/final_layer_norm/Div', '/encoder/layers.2/self_attn_layer_norm/ReduceMean', '/encoder/layers.2/self_attn_layer_norm/Sub', '/encoder/layers.0/self_attn_layer_norm/Constant_output_0', '/encoder/layers.2/self_attn_layer_norm/Pow', '/encoder/layers.2/self_attn_layer_norm/ReduceMean_1', '/encoder/layers.0/self_attn_layer_norm/Constant_1_output_0', '/encoder/layers.2/self_attn_layer_norm/Add', '/encoder/layers.2/self_attn_layer_norm/Sqrt', '/encoder/layers.2/self_attn_layer_norm/Div', '/encoder/layers.2/final_layer_norm/ReduceMean', '/encoder/layers.2/final_layer_norm/Sub', '/encoder/layers.0/self_attn_layer_norm/Constant_output_0', '/encoder/layers.2/final_layer_norm/Pow', '/encoder/layers.2/final_layer_norm/ReduceMean_1', '/encoder/layers.0/self_attn_layer_norm/Constant_1_output_0', '/encoder/layers.2/final_layer_norm/Add', '/encoder/layers.2/final_layer_norm/Sqrt', '/encoder/layers.2/final_layer_norm/Div', '/encoder/layers.3/self_attn_layer_norm/ReduceMean', '/encoder/layers.3/self_attn_layer_norm/Sub', '/encoder/layers.0/self_attn_layer_norm/Constant_output_0', '/encoder/layers.3/self_attn_layer_norm/Pow', '/encoder/layers.3/self_attn_layer_norm/ReduceMean_1', '/encoder/layers.0/self_attn_layer_norm/Constant_1_output_0', '/encoder/layers.3/self_attn_layer_norm/Add', '/encoder/layers.3/self_attn_layer_norm/Sqrt', '/encoder/layers.3/self_attn_layer_norm/Div', '/encoder/layers.3/final_layer_norm/ReduceMean', '/encoder/layers.3/final_layer_norm/Sub', '/encoder/layers.0/self_attn_layer_norm/Constant_output_0', '/encoder/layers.3/final_layer_norm/Pow', '/encoder/layers.3/final_layer_norm/ReduceMean_1', '/encoder/layers.0/self_attn_layer_norm/Constant_1_output_0', '/encoder/layers.3/final_layer_norm/Add', '/encoder/layers.3/final_layer_norm/Sqrt', '/encoder/layers.3/final_layer_norm/Div', '/encoder/layers.4/self_attn_layer_norm/ReduceMean', '/encoder/layers.4/self_attn_layer_norm/Sub', '/encoder/layers.0/self_attn_layer_norm/Constant_output_0', '/encoder/layers.4/self_attn_layer_norm/Pow', '/encoder/layers.4/self_attn_layer_norm/ReduceMean_1', '/encoder/layers.0/self_attn_layer_norm/Constant_1_output_0', '/encoder/layers.4/self_attn_layer_norm/Add', '/encoder/layers.4/self_attn_layer_norm/Sqrt', '/encoder/layers.4/self_attn_layer_norm/Div', '/encoder/layers.4/final_layer_norm/ReduceMean', '/encoder/layers.4/final_layer_norm/Sub', '/encoder/layers.0/self_attn_layer_norm/Constant_output_0', '/encoder/layers.4/final_layer_norm/Pow', '/encoder/layers.4/final_layer_norm/ReduceMean_1', '/encoder/layers.0/self_attn_layer_norm/Constant_1_output_0', '/encoder/layers.4/final_layer_norm/Add', '/encoder/layers.4/final_layer_norm/Sqrt', '/encoder/layers.4/final_layer_norm/Div', '/encoder/layers.5/self_attn_layer_norm/ReduceMean', '/encoder/layers.5/self_attn_layer_norm/Sub', '/encoder/layers.0/self_attn_layer_norm/Constant_output_0', '/encoder/layers.5/self_attn_layer_norm/Pow', '/encoder/layers.5/self_attn_layer_norm/ReduceMean_1', '/encoder/layers.0/self_attn_layer_norm/Constant_1_output_0', '/encoder/layers.5/self_attn_layer_norm/Add', '/encoder/layers.5/self_attn_layer_norm/Sqrt', '/encoder/layers.5/self_attn_layer_norm/Div', '/encoder/layers.5/final_layer_norm/ReduceMean', '/encoder/layers.5/final_layer_norm/Sub', '/encoder/layers.0/self_attn_layer_norm/Constant_output_0', '/encoder/layers.5/final_layer_norm/Pow', '/encoder/layers.5/final_layer_norm/ReduceMean_1', '/encoder/layers.0/self_attn_layer_norm/Constant_1_output_0', '/encoder/layers.5/final_layer_norm/Add', '/encoder/layers.5/final_layer_norm/Sqrt', '/encoder/layers.5/final_layer_norm/Div', '/decoder/layers.0/encoder_attn_layer_norm/ReduceMean', '/decoder/layers.0/encoder_attn_layer_norm/Sub', '/encoder/layers.0/self_attn_layer_norm/Constant_output_0', '/decoder/layers.0/encoder_attn_layer_norm/Pow', '/decoder/layers.0/encoder_attn_layer_norm/ReduceMean_1', '/encoder/layers.0/self_attn_layer_norm/Constant_1_output_0', '/decoder/layers.0/encoder_attn_layer_norm/Add', '/decoder/layers.0/encoder_attn_layer_norm/Sqrt', '/decoder/layers.0/encoder_attn_layer_norm/Div', '/decoder/layers.0/final_layer_norm/ReduceMean', '/decoder/layers.0/final_layer_norm/Sub', '/encoder/layers.0/self_attn_layer_norm/Constant_output_0', '/decoder/layers.0/final_layer_norm/Pow', '/decoder/layers.0/final_layer_norm/ReduceMean_1', '/encoder/layers.0/self_attn_layer_norm/Constant_1_output_0', '/decoder/layers.0/final_layer_norm/Add', '/decoder/layers.0/final_layer_norm/Sqrt', '/decoder/layers.0/final_layer_norm/Div', '/decoder/layers.1/self_attn_layer_norm/ReduceMean', '/decoder/layers.1/self_attn_layer_norm/Sub', '/encoder/layers.0/self_attn_layer_norm/Constant_output_0', '/decoder/layers.1/self_attn_layer_norm/Pow', '/decoder/layers.1/self_attn_layer_norm/ReduceMean_1', '/encoder/layers.0/self_attn_layer_norm/Constant_1_output_0', '/decoder/layers.1/self_attn_layer_norm/Add', '/decoder/layers.1/self_attn_layer_norm/Sqrt', '/decoder/layers.1/self_attn_layer_norm/Div', '/decoder/layers.1/encoder_attn_layer_norm/ReduceMean', '/decoder/layers.1/encoder_attn_layer_norm/Sub', '/encoder/layers.0/self_attn_layer_norm/Constant_output_0', '/decoder/layers.1/encoder_attn_layer_norm/Pow', '/decoder/layers.1/encoder_attn_layer_norm/ReduceMean_1', '/encoder/layers.0/self_attn_layer_norm/Constant_1_output_0', '/decoder/layers.1/encoder_attn_layer_norm/Add', '/decoder/layers.1/encoder_attn_layer_norm/Sqrt', '/decoder/layers.1/encoder_attn_layer_norm/Div', '/decoder/layers.1/final_layer_norm/ReduceMean', '/decoder/layers.1/final_layer_norm/Sub', '/encoder/layers.0/self_attn_layer_norm/Constant_output_0', '/decoder/layers.1/final_layer_norm/Pow', '/decoder/layers.1/final_layer_norm/ReduceMean_1', '/encoder/layers.0/self_attn_layer_norm/Constant_1_output_0', '/decoder/layers.1/final_layer_norm/Add', '/decoder/layers.1/final_layer_norm/Sqrt', '/decoder/layers.1/final_layer_norm/Div', '/decoder/layers.2/self_attn_layer_norm/ReduceMean', '/decoder/layers.2/self_attn_layer_norm/Sub', '/encoder/layers.0/self_attn_layer_norm/Constant_output_0', '/decoder/layers.2/self_attn_layer_norm/Pow', '/decoder/layers.2/self_attn_layer_norm/ReduceMean_1', '/encoder/layers.0/self_attn_layer_norm/Constant_1_output_0', '/decoder/layers.2/self_attn_layer_norm/Add', '/decoder/layers.2/self_attn_layer_norm/Sqrt', '/decoder/layers.2/self_attn_layer_norm/Div', '/decoder/layers.2/encoder_attn_layer_norm/ReduceMean', '/decoder/layers.2/encoder_attn_layer_norm/Sub', '/encoder/layers.0/self_attn_layer_norm/Constant_output_0', '/decoder/layers.2/encoder_attn_layer_norm/Pow', '/decoder/layers.2/encoder_attn_layer_norm/ReduceMean_1', '/encoder/layers.0/self_attn_layer_norm/Constant_1_output_0', '/decoder/layers.2/encoder_attn_layer_norm/Add', '/decoder/layers.2/encoder_attn_layer_norm/Sqrt', '/decoder/layers.2/encoder_attn_layer_norm/Div', '/decoder/layers.2/final_layer_norm/ReduceMean', '/decoder/layers.2/final_layer_norm/Sub', '/encoder/layers.0/self_attn_layer_norm/Constant_output_0', '/decoder/layers.2/final_layer_norm/Pow', '/decoder/layers.2/final_layer_norm/ReduceMean_1', '/encoder/layers.0/self_attn_layer_norm/Constant_1_output_0', '/decoder/layers.2/final_layer_norm/Add', '/decoder/layers.2/final_layer_norm/Sqrt', '/decoder/layers.2/final_layer_norm/Div', '/decoder/layers.3/self_attn_layer_norm/ReduceMean', '/decoder/layers.3/self_attn_layer_norm/Sub', '/encoder/layers.0/self_attn_layer_norm/Constant_output_0', '/decoder/layers.3/self_attn_layer_norm/Pow', '/decoder/layers.3/self_attn_layer_norm/ReduceMean_1', '/encoder/layers.0/self_attn_layer_norm/Constant_1_output_0', '/decoder/layers.3/self_attn_layer_norm/Add', '/decoder/layers.3/self_attn_layer_norm/Sqrt', '/decoder/layers.3/self_attn_layer_norm/Div', '/decoder/layers.3/encoder_attn_layer_norm/ReduceMean', '/decoder/layers.3/encoder_attn_layer_norm/Sub', '/encoder/layers.0/self_attn_layer_norm/Constant_output_0', '/decoder/layers.3/encoder_attn_layer_norm/Pow', '/decoder/layers.3/encoder_attn_layer_norm/ReduceMean_1', '/encoder/layers.0/self_attn_layer_norm/Constant_1_output_0', '/decoder/layers.3/encoder_attn_layer_norm/Add', '/decoder/layers.3/encoder_attn_layer_norm/Sqrt', '/decoder/layers.3/encoder_attn_layer_norm/Div', '/decoder/layers.3/final_layer_norm/ReduceMean', '/decoder/layers.3/final_layer_norm/Sub', '/encoder/layers.0/self_attn_layer_norm/Constant_output_0', '/decoder/layers.3/final_layer_norm/Pow', '/decoder/layers.3/final_layer_norm/ReduceMean_1', '/encoder/layers.0/self_attn_layer_norm/Constant_1_output_0', '/decoder/layers.3/final_layer_norm/Add', '/decoder/layers.3/final_layer_norm/Sqrt', '/decoder/layers.3/final_layer_norm/Div', '/decoder/layers.4/self_attn_layer_norm/ReduceMean', '/decoder/layers.4/self_attn_layer_norm/Sub', '/encoder/layers.0/self_attn_layer_norm/Constant_output_0', '/decoder/layers.4/self_attn_layer_norm/Pow', '/decoder/layers.4/self_attn_layer_norm/ReduceMean_1', '/encoder/layers.0/self_attn_layer_norm/Constant_1_output_0', '/decoder/layers.4/self_attn_layer_norm/Add', '/decoder/layers.4/self_attn_layer_norm/Sqrt', '/decoder/layers.4/self_attn_layer_norm/Div', '/decoder/layers.4/encoder_attn_layer_norm/ReduceMean', '/decoder/layers.4/encoder_attn_layer_norm/Sub', '/encoder/layers.0/self_attn_layer_norm/Constant_output_0', '/decoder/layers.4/encoder_attn_layer_norm/Pow', '/decoder/layers.4/encoder_attn_layer_norm/ReduceMean_1', '/encoder/layers.0/self_attn_layer_norm/Constant_1_output_0', '/decoder/layers.4/encoder_attn_layer_norm/Add', '/decoder/layers.4/encoder_attn_layer_norm/Sqrt', '/decoder/layers.4/encoder_attn_layer_norm/Div', '/decoder/layers.4/final_layer_norm/ReduceMean', '/decoder/layers.4/final_layer_norm/Sub', '/encoder/layers.0/self_attn_layer_norm/Constant_output_0', '/decoder/layers.4/final_layer_norm/Pow', '/decoder/layers.4/final_layer_norm/ReduceMean_1', '/encoder/layers.0/self_attn_layer_norm/Constant_1_output_0', '/decoder/layers.4/final_layer_norm/Add', '/decoder/layers.4/final_layer_norm/Sqrt', '/decoder/layers.4/final_layer_norm/Div', '/decoder/layers.5/self_attn_layer_norm/ReduceMean', '/decoder/layers.5/self_attn_layer_norm/Sub', '/encoder/layers.0/self_attn_layer_norm/Constant_output_0', '/decoder/layers.5/self_attn_layer_norm/Pow', '/decoder/layers.5/self_attn_layer_norm/ReduceMean_1', '/encoder/layers.0/self_attn_layer_norm/Constant_1_output_0', '/decoder/layers.5/self_attn_layer_norm/Add', '/decoder/layers.5/self_attn_layer_norm/Sqrt', '/decoder/layers.5/self_attn_layer_norm/Div', '/decoder/layers.5/encoder_attn_layer_norm/ReduceMean', '/decoder/layers.5/encoder_attn_layer_norm/Sub', '/encoder/layers.0/self_attn_layer_norm/Constant_output_0', '/decoder/layers.5/encoder_attn_layer_norm/Pow', '/decoder/layers.5/encoder_attn_layer_norm/ReduceMean_1', '/encoder/layers.0/self_attn_layer_norm/Constant_1_output_0', '/decoder/layers.5/encoder_attn_layer_norm/Add', '/decoder/layers.5/encoder_attn_layer_norm/Sqrt', '/decoder/layers.5/encoder_attn_layer_norm/Div', '/decoder/layers.5/final_layer_norm/ReduceMean', '/decoder/layers.5/final_layer_norm/Sub', '/encoder/layers.0/self_attn_layer_norm/Constant_output_0', '/decoder/layers.5/final_layer_norm/Pow', '/decoder/layers.5/final_layer_norm/ReduceMean_1', '/encoder/layers.0/self_attn_layer_norm/Constant_1_output_0', '/decoder/layers.5/final_layer_norm/Add', '/decoder/layers.5/final_layer_norm/Sqrt', '/decoder/layers.5/final_layer_norm/Div', '/decoder/layernorm/ReduceMean', '/decoder/layernorm/Sub', '/encoder/layers.0/self_attn_layer_norm/Constant_output_0', '/decoder/layernorm/Pow', '/decoder/layernorm/ReduceMean_1', '/encoder/layers.0/self_attn_layer_norm/Constant_1_output_0', '/decoder/layernorm/Add', '/decoder/layernorm/Sqrt', '/decoder/layernorm/Div']
2026-09-22 02:52 - 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-09-22 02:53 - INFO - epu - quantize - Quantization done succesfully!
2026-09-22 02:53 - INFO - epu - quantize - ONNX full precision model size: 230.66 MB
2026-09-22 02:53 - INFO - epu - quantize - ONNX quantized model size: 58.4 MB
2026-09-22 02:53 - INFO - epu - quantize - Saved quantized model to onnx/detr_full_opt_sym_int8_q.onnx
2026-09-22 02:53 - INFO - epu - quantize - Saved shape inferenced model to onnx/detr_full_opt_sym_int8_q.onnx
2026-09-22 02:53 - INFO - epu - quantize - Checking for remaining FLOAT/FLOAT16 types.
2026-09-22 02:53 - INFO - epu - quantize - Model still has FLOAT/FLOAT16 types. Creating ranges for floating point tensors using calibration data
2026-09-22 02:56 - INFO - epu - quantize - Saved tensor ranges to onnx/detr_full_opt_sym_int8_q.onnx.tranges


Quantized full model: onnx/detr_full_opt_sym_int8_q.onnx
Tensor ranges:        onnx/detr_full_opt_sym_int8_q.onnx.tranges

5. Compile the full graph to Chimera ASM

Compile the entire quantized DETR graph as one ChimeraJob — backbone, input projection, encoder, decoder, and heads in one unit. The job takes the quantized graph and its tensor ranges and nothing else: CGC detects the 17 attention cores during lowering and maps them onto cgc::generalMultiheadAttention with no attn_stub_src_path and no custom-op splicing. compile() emits Chimera ASM and prepares the unit for the ISS run in the next section.

job = ChimeraJob(
    QMODEL,
    hw_config=hw_config,
    trange_file=TRANGES,
    target_lang="ASM",
    validate_iss=True,
)

job.compile()

print("DETR compiled as one unit: backbone + input projection + encoder + decoder + heads")
2026-09-22 02:56 - INFO - epu - chimera_job - START==================================onnx_ingest
2026-09-22 02:56 - INFO - epu - chimera_job - Numerical ranges provided
2026-09-22 02:58 - INFO - epu - codegen - START===============================optimize_relay
2026-09-22 02:59 - INFO - epu - codegen - START====================quantize_to_cpu_runnable_fx
2026-09-22 02:59 - INFO - epu - fx - Clamped annotated range on /encoder/layers.0/Add_output_0_DequantizeLinear to static range: (-52.887855529785156, 67.1675796508789) -> (-52.887855529785156, 67.16757833957672) (within tol 0.528879)
2026-09-22 02:59 - INFO - epu - fx - Clamped annotated range on /encoder/layers.2/self_attn/MatMul_output_0_DequantizeLinear to static range: (-18.690174102783203, 23.97628402709961) -> (-18.690174102783203, 23.976283758878708) (within tol 0.18879)
2026-09-22 02:59 - INFO - epu - fx - Clamped annotated range on /encoder/layers.2/Add_1_output_0_DequantizeLinear to static range: (-34.76318359375, 60.47841262817383) -> (-34.76318359375, 60.47841238975525) (within tol 0.476208)
2026-09-22 02:59 - INFO - epu - fx - Clamped annotated range on /encoder/layers.4/Add_output_0_DequantizeLinear to static range: (-4.7721781730651855, 9.182827949523926) -> (-4.7721781730651855, 9.182827897369862) (within tol 0.0723057)
2026-09-22 02:59 - INFO - epu - fx - Clamped annotated range on /decoder/layers.0/Add_1_output_0_DequantizeLinear to static range: (-21.9024658203125, 30.567176818847656) -> (-21.9024658203125, 30.567176803946495) (within tol 0.240686)
2026-09-22 02:59 - INFO - epu - fx - Clamped annotated range on /decoder/layers.2/encoder_attn/MatMul_output_0_DequantizeLinear to static range: (-247.6725616455078, 288.5726318359375) -> (-247.6725616455078, 288.57262325286865) (within tol 2.27223)
2026-09-22 02:59 - INFO - epu - fx - Clamped annotated range on /decoder/layers.3/encoder_attn/MatMul_output_0_DequantizeLinear to static range: (-129.6407012939453, 177.03623962402344) -> (-129.6407012939453, 177.0362354516983) (within tol 1.39399)
2026-09-22 02:59 - INFO - epu - fx - 

Source name                                                      Op                      Output 0 Range             Output 0 Frac Bits
---------------------------------------------------------------  ----------------------  -------------------------  --------------------
/encoder/layers.0/self_attn/MatMul_output_0_DequantizeLinear     contrib.epu.dequantize  [-928.459f, 40.7219f]      20
/encoder/layers.0/self_attn/Softmax                              nn.softmax              [0f, 1f]                   20
/encoder/layers.0/Add_output_0_DequantizeLinear                  contrib.epu.dequantize  [-52.8879f, 67.1676f]      24
/encoder/layers.0/self_attn_layer_norm/Add_1                     nn.layer_norm           [-10.6562f, 14.3276f]      27
/encoder/layers.0/Add_1_output_0_DequantizeLinear                contrib.epu.dequantize  [-68.2148f, 68.2148f]      24
/encoder/layers.0/final_layer_norm/Add_1                         nn.layer_norm           [-7.48073f, 10.7392f]      27
/encoder/layers.1/self_attn/MatMul_output_0_DequantizeLinear     contrib.epu.dequantize  [-11.5462f, 21.5643f]      26
/encoder/layers.1/self_attn/Softmax                              nn.softmax              [1.16433e-11f, 0.966332f]  26
/encoder/layers.1/Add_output_0_DequantizeLinear                  contrib.epu.dequantize  [-7.71115f, 10.9391f]      27
/encoder/layers.1/self_attn_layer_norm/Add_1                     nn.layer_norm           [-13.3774f, 14.8253f]      27
/encoder/layers.1/Add_1_output_0_DequantizeLinear                contrib.epu.dequantize  [-18.4685f, 34.4561f]      25
/encoder/layers.1/final_layer_norm/Add_1                         nn.layer_norm           [-6.27449f, 10.3709f]      27
/encoder/layers.2/self_attn/MatMul_output_0_DequantizeLinear     contrib.epu.dequantize  [-18.6902f, 23.9763f]      26
/encoder/layers.2/self_attn/Softmax                              nn.softmax              [4.05337e-15f, 0.885612f]  26
/encoder/layers.2/Add_output_0_DequantizeLinear                  contrib.epu.dequantize  [-6.24802f, 10.3586f]      27
/encoder/layers.2/self_attn_layer_norm/Add_1                     nn.layer_norm           [-9.48785f, 18.1524f]      26
/encoder/layers.2/Add_1_output_0_DequantizeLinear                contrib.epu.dequantize  [-34.7632f, 60.4784f]      25
/encoder/layers.2/final_layer_norm/Add_1                         nn.layer_norm           [-6.26767f, 11.9776f]      27
/encoder/layers.3/self_attn/MatMul_output_0_DequantizeLinear     contrib.epu.dequantize  [-42.238f, 48.3817f]       25
/encoder/layers.3/self_attn/Softmax                              nn.softmax              [2.53344e-31f, 0.971664f]  25
/encoder/layers.3/Add_output_0_DequantizeLinear                  contrib.epu.dequantize  [-6.32148f, 11.6352f]      27
/encoder/layers.3/self_attn_layer_norm/Add_1                     nn.layer_norm           [-7.33951f, 22.111f]       26
/encoder/layers.3/Add_1_output_0_DequantizeLinear                contrib.epu.dequantize  [-66.827f, 146.328f]       23
/encoder/layers.3/final_layer_norm/Add_1                         nn.layer_norm           [-4.69213f, 8.91069f]      27
/encoder/layers.4/self_attn/MatMul_output_0_DequantizeLinear     contrib.epu.dequantize  [-22.8891f, 26.1884f]      26
/encoder/layers.4/self_attn/Softmax                              nn.softmax              [1.05028e-20f, 0.936618f]  26
/encoder/layers.4/Add_output_0_DequantizeLinear                  contrib.epu.dequantize  [-4.77218f, 9.18283f]      27
/encoder/layers.4/self_attn_layer_norm/Add_1                     nn.layer_norm           [-8.20218f, 20.1111f]      26
/encoder/layers.4/Add_1_output_0_DequantizeLinear                contrib.epu.dequantize  [-13.1065f, 33.0393f]      25
/encoder/layers.4/final_layer_norm/Add_1                         nn.layer_norm           [-5.8982f, 7.76882f]       27
/encoder/layers.5/self_attn/MatMul_output_0_DequantizeLinear     contrib.epu.dequantize  [-32.3585f, 30.0833f]      25
/encoder/layers.5/self_attn/Softmax                              nn.softmax              [3.05479e-21f, 0.937707f]  25
/encoder/layers.5/Add_output_0_DequantizeLinear                  contrib.epu.dequantize  [-6.12066f, 8.09712f]      27
/encoder/layers.5/self_attn_layer_norm/Add_1                     nn.layer_norm           [-9.88279f, 14.1164f]      27
/encoder/layers.5/Add_1_output_0_DequantizeLinear                contrib.epu.dequantize  [-11.6545f, 15.1388f]      27
/encoder/layers.5/final_layer_norm/Add_1                         nn.layer_norm           [-6.60448f, 7.47337f]      27
/decoder/layers.0/encoder_attn/MatMul_output_0_DequantizeLinear  contrib.epu.dequantize  [-216.087f, 199.205f]      23
/decoder/layers.0/encoder_attn/Softmax                           nn.softmax              [0f, 1f]                   23
/decoder/layers.0/Add_1_output_0_DequantizeLinear                contrib.epu.dequantize  [-21.9025f, 30.5672f]      26
/decoder/layers.0/encoder_attn_layer_norm/Add_1                  nn.layer_norm           [-7.69445f, 10.0638f]      27
/decoder/layers.0/Add_2_output_0_DequantizeLinear                contrib.epu.dequantize  [-21.3602f, 27.0411f]      26
/decoder/layers.0/final_layer_norm/Add_1                         nn.layer_norm           [-8.20018f, 7.84764f]      27
/decoder/layers.1/self_attn/MatMul_output_0_DequantizeLinear     contrib.epu.dequantize  [-34.7781f, 49.9685f]      25
/decoder/layers.1/self_attn/Softmax                              nn.softmax              [9.13368e-34f, 0.999999f]  25
/decoder/layers.1/Add_output_0_DequantizeLinear                  contrib.epu.dequantize  [-8.21843f, 7.8974f]       27
/decoder/layers.1/self_attn_layer_norm/Add_1                     nn.layer_norm           [-17.1152f, 15.705f]       26
/decoder/layers.1/encoder_attn/MatMul_output_0_DequantizeLinear  contrib.epu.dequantize  [-157.711f, 238.489f]      23
/decoder/layers.1/encoder_attn/Softmax                           nn.softmax              [0f, 1f]                   23
/decoder/layers.1/Add_1_output_0_DequantizeLinear                contrib.epu.dequantize  [-16.845f, 16.187f]        26
/decoder/layers.1/encoder_attn_layer_norm/Add_1                  nn.layer_norm           [-9.08264f, 9.79273f]      27
/decoder/layers.1/Add_2_output_0_DequantizeLinear                contrib.epu.dequantize  [-12.5053f, 20.3611f]      26
/decoder/layers.1/final_layer_norm/Add_1                         nn.layer_norm           [-9.255f, 9.35414f]        27
/decoder/layers.2/self_attn/MatMul_output_0_DequantizeLinear     contrib.epu.dequantize  [-38.1422f, 62.5533f]      24
/decoder/layers.2/self_attn/Softmax                              nn.softmax              [1.35942e-38f, 0.999999f]  24
/decoder/layers.2/Add_output_0_DequantizeLinear                  contrib.epu.dequantize  [-9.35218f, 10.0716f]      27
/decoder/layers.2/self_attn_layer_norm/Add_1                     nn.layer_norm           [-17.3578f, 15.8053f]      26
/decoder/layers.2/encoder_attn/MatMul_output_0_DequantizeLinear  contrib.epu.dequantize  [-247.673f, 288.573f]      22
/decoder/layers.2/encoder_attn/Softmax                           nn.softmax              [0f, 1f]                   22
/decoder/layers.2/Add_1_output_0_DequantizeLinear                contrib.epu.dequantize  [-17.1577f, 15.9513f]      26
/decoder/layers.2/encoder_attn_layer_norm/Add_1                  nn.layer_norm           [-9.45886f, 8.60461f]      27
/decoder/layers.2/Add_2_output_0_DequantizeLinear                contrib.epu.dequantize  [-11.7887f, 11.7887f]      27
/decoder/layers.2/final_layer_norm/Add_1                         nn.layer_norm           [-9.83173f, 9.01512f]      27
/decoder/layers.3/self_attn/MatMul_output_0_DequantizeLinear     contrib.epu.dequantize  [-50.839f, 94.9492f]       24
/decoder/layers.3/self_attn/Softmax                              nn.softmax              [0f, 1f]                   24
/decoder/layers.3/Add_output_0_DequantizeLinear                  contrib.epu.dequantize  [-9.75193f, 9.06625f]      27
/decoder/layers.3/self_attn_layer_norm/Add_1                     nn.layer_norm           [-15.1917f, 13.8236f]      27
/decoder/layers.3/encoder_attn/MatMul_output_0_DequantizeLinear  contrib.epu.dequantize  [-129.641f, 177.036f]      23
/decoder/layers.3/encoder_attn/Softmax                           nn.softmax              [0f, 0.999996f]            23
/decoder/layers.3/Add_1_output_0_DequantizeLinear                contrib.epu.dequantize  [-15.3203f, 13.884f]       27
/decoder/layers.3/encoder_attn_layer_norm/Add_1                  nn.layer_norm           [-8.91601f, 9.902f]        27
/decoder/layers.3/Add_2_output_0_DequantizeLinear                contrib.epu.dequantize  [-9.54903f, 11.8278f]      27
/decoder/layers.3/final_layer_norm/Add_1                         nn.layer_norm           [-9.41138f, 8.43573f]      27
/decoder/layers.4/self_attn/MatMul_output_0_DequantizeLinear     contrib.epu.dequantize  [-36.7863f, 71.8482f]      24
/decoder/layers.4/self_attn/Softmax                              nn.softmax              [7.28577e-41f, 1f]         24
/decoder/layers.4/Add_output_0_DequantizeLinear                  contrib.epu.dequantize  [-9.23462f, 8.44102f]      27
/decoder/layers.4/self_attn_layer_norm/Add_1                     nn.layer_norm           [-13.0399f, 11.9727f]      27
/decoder/layers.4/encoder_attn/MatMul_output_0_DequantizeLinear  contrib.epu.dequantize  [-255.542f, 253.546f]      23
/decoder/layers.4/encoder_attn/Softmax                           nn.softmax              [0f, 0.999989f]            23
/decoder/layers.4/Add_1_output_0_DequantizeLinear                contrib.epu.dequantize  [-13.1938f, 13.0908f]      27
/decoder/layers.4/encoder_attn_layer_norm/Add_1                  nn.layer_norm           [-9.38106f, 9.9824f]       27
/decoder/layers.4/Add_2_output_0_DequantizeLinear                contrib.epu.dequantize  [-9.49118f, 10.98f]        27
/decoder/layers.4/final_layer_norm/Add_1                         nn.layer_norm           [-8.45807f, 7.37254f]      27
/decoder/layers.5/self_attn/MatMul_output_0_DequantizeLinear     contrib.epu.dequantize  [-14.6562f, 16.1218f]      26
/decoder/layers.5/self_attn/Softmax                              nn.softmax              [2.17337e-11f, 0.9874f]    26
/decoder/layers.5/Add_output_0_DequantizeLinear                  contrib.epu.dequantize  [-8.40672f, 7.35588f]      27
/decoder/layers.5/self_attn_layer_norm/Add_1                     nn.layer_norm           [-11.0395f, 10.311f]       27
/decoder/layers.5/encoder_attn/MatMul_output_0_DequantizeLinear  contrib.epu.dequantize  [-133.443f, 176.534f]      23
/decoder/layers.5/encoder_attn/Softmax                           nn.softmax              [0f, 0.999998f]            23
/decoder/layers.5/Add_1_output_0_DequantizeLinear                contrib.epu.dequantize  [-11.1308f, 10.696f]       27
/decoder/layers.5/encoder_attn_layer_norm/Add_1                  nn.layer_norm           [-8.47405f, 8.63597f]      27
/decoder/layers.5/Add_2_output_0_DequantizeLinear                contrib.epu.dequantize  [-8.42067f, 8.916f]        27
/decoder/layers.5/final_layer_norm/Add_1                         nn.layer_norm           [-8.40978f, 7.43264f]      27
/decoder/layernorm/Add_1                                         nn.layer_norm           [-8.90096f, 8.0754f]       27
pred_logits_DequantizeLinear                                     contrib.epu.dequantize  [-23.437f, 14.0622f]       26
/bbox_pred/layers.2/Add_output_0_DequantizeLinear                contrib.epu.dequantize  [-6.36507f, 19.2881f]      26
/Sigmoid                                                         sigmoid                 [0.00171766f, 1f]          -

2026-09-22 02:59 - INFO - epu - codegen - START====================build_cpu_runnable_fx_relay
2026-09-22 02:59 - INFO - epu - codegen - START=======================quantize_to_chimera_fx
2026-09-22 02:59 - INFO - epu - codegen - START=================================relay_to_tir
2026-09-22 02:59 - INFO - epu - codegen - START===========================relay_to_epu_relay
2026-09-22 02:59 - INFO - epu - codegen - START==============================adapt_and_order
2026-09-22 03:00 - INFO - epu - mac_counter - 
2026-09-22 03:00 - INFO - epu - mac_counter - ============================================================
2026-09-22 03:00 - INFO - epu - mac_counter - MAC Operation Count Summary
2026-09-22 03:00 - INFO - epu - mac_counter - ============================================================
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 1,734,082,560 ops (867,041,280 MACs) - /conv1/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 188,743,680 ops (94,371,840 MACs) - /layer1/layer1.0/conv1/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 1,698,693,120 ops (849,346,560 MACs) - /layer1/layer1.0/conv2/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 754,974,720 ops (377,487,360 MACs) - /layer1/layer1.0/conv3/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 754,974,720 ops (377,487,360 MACs) - /layer1/layer1.0/downsample/downsample.0/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 754,974,720 ops (377,487,360 MACs) - /layer1/layer1.1/conv1/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 1,698,693,120 ops (849,346,560 MACs) - /layer1/layer1.1/conv2/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 754,974,720 ops (377,487,360 MACs) - /layer1/layer1.1/conv3/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 754,974,720 ops (377,487,360 MACs) - /layer1/layer1.2/conv1/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 1,698,693,120 ops (849,346,560 MACs) - /layer1/layer1.2/conv2/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 754,974,720 ops (377,487,360 MACs) - /layer1/layer1.2/conv3/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 1,509,949,440 ops (754,974,720 MACs) - /layer2/layer2.0/conv1/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 1,698,693,120 ops (849,346,560 MACs) - /layer2/layer2.0/conv2/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 754,974,720 ops (377,487,360 MACs) - /layer2/layer2.0/conv3/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 1,509,949,440 ops (754,974,720 MACs) - /layer2/layer2.0/downsample/downsample.0/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 754,974,720 ops (377,487,360 MACs) - /layer2/layer2.1/conv1/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 1,698,693,120 ops (849,346,560 MACs) - /layer2/layer2.1/conv2/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 754,974,720 ops (377,487,360 MACs) - /layer2/layer2.1/conv3/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 754,974,720 ops (377,487,360 MACs) - /layer2/layer2.2/conv1/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 1,698,693,120 ops (849,346,560 MACs) - /layer2/layer2.2/conv2/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 754,974,720 ops (377,487,360 MACs) - /layer2/layer2.2/conv3/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 754,974,720 ops (377,487,360 MACs) - /layer2/layer2.3/conv1/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 1,698,693,120 ops (849,346,560 MACs) - /layer2/layer2.3/conv2/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 754,974,720 ops (377,487,360 MACs) - /layer2/layer2.3/conv3/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 1,509,949,440 ops (754,974,720 MACs) - /layer3/layer3.0/conv1/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 1,698,693,120 ops (849,346,560 MACs) - /layer3/layer3.0/conv2/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 754,974,720 ops (377,487,360 MACs) - /layer3/layer3.0/conv3/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 1,509,949,440 ops (754,974,720 MACs) - /layer3/layer3.0/downsample/downsample.0/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 754,974,720 ops (377,487,360 MACs) - /layer3/layer3.1/conv1/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 1,698,693,120 ops (849,346,560 MACs) - /layer3/layer3.1/conv2/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 754,974,720 ops (377,487,360 MACs) - /layer3/layer3.1/conv3/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 754,974,720 ops (377,487,360 MACs) - /layer3/layer3.2/conv1/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 1,698,693,120 ops (849,346,560 MACs) - /layer3/layer3.2/conv2/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 754,974,720 ops (377,487,360 MACs) - /layer3/layer3.2/conv3/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 754,974,720 ops (377,487,360 MACs) - /layer3/layer3.3/conv1/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 1,698,693,120 ops (849,346,560 MACs) - /layer3/layer3.3/conv2/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 754,974,720 ops (377,487,360 MACs) - /layer3/layer3.3/conv3/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 754,974,720 ops (377,487,360 MACs) - /layer3/layer3.4/conv1/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 1,698,693,120 ops (849,346,560 MACs) - /layer3/layer3.4/conv2/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 754,974,720 ops (377,487,360 MACs) - /layer3/layer3.4/conv3/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 754,974,720 ops (377,487,360 MACs) - /layer3/layer3.5/conv1/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 1,698,693,120 ops (849,346,560 MACs) - /layer3/layer3.5/conv2/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 754,974,720 ops (377,487,360 MACs) - /layer3/layer3.5/conv3/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 754,974,720 ops (377,487,360 MACs) - /layer3/layer3.6/conv1/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 1,698,693,120 ops (849,346,560 MACs) - /layer3/layer3.6/conv2/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 754,974,720 ops (377,487,360 MACs) - /layer3/layer3.6/conv3/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 754,974,720 ops (377,487,360 MACs) - /layer3/layer3.7/conv1/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 1,698,693,120 ops (849,346,560 MACs) - /layer3/layer3.7/conv2/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 754,974,720 ops (377,487,360 MACs) - /layer3/layer3.7/conv3/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 754,974,720 ops (377,487,360 MACs) - /layer3/layer3.8/conv1/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 1,698,693,120 ops (849,346,560 MACs) - /layer3/layer3.8/conv2/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 754,974,720 ops (377,487,360 MACs) - /layer3/layer3.8/conv3/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 754,974,720 ops (377,487,360 MACs) - /layer3/layer3.9/conv1/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 1,698,693,120 ops (849,346,560 MACs) - /layer3/layer3.9/conv2/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 754,974,720 ops (377,487,360 MACs) - /layer3/layer3.9/conv3/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 754,974,720 ops (377,487,360 MACs) - /layer3/layer3.10/conv1/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 1,698,693,120 ops (849,346,560 MACs) - /layer3/layer3.10/conv2/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 754,974,720 ops (377,487,360 MACs) - /layer3/layer3.10/conv3/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 754,974,720 ops (377,487,360 MACs) - /layer3/layer3.11/conv1/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 1,698,693,120 ops (849,346,560 MACs) - /layer3/layer3.11/conv2/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 754,974,720 ops (377,487,360 MACs) - /layer3/layer3.11/conv3/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 754,974,720 ops (377,487,360 MACs) - /layer3/layer3.12/conv1/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 1,698,693,120 ops (849,346,560 MACs) - /layer3/layer3.12/conv2/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 754,974,720 ops (377,487,360 MACs) - /layer3/layer3.12/conv3/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 754,974,720 ops (377,487,360 MACs) - /layer3/layer3.13/conv1/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 1,698,693,120 ops (849,346,560 MACs) - /layer3/layer3.13/conv2/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 754,974,720 ops (377,487,360 MACs) - /layer3/layer3.13/conv3/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 754,974,720 ops (377,487,360 MACs) - /layer3/layer3.14/conv1/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 1,698,693,120 ops (849,346,560 MACs) - /layer3/layer3.14/conv2/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 754,974,720 ops (377,487,360 MACs) - /layer3/layer3.14/conv3/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 754,974,720 ops (377,487,360 MACs) - /layer3/layer3.15/conv1/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 1,698,693,120 ops (849,346,560 MACs) - /layer3/layer3.15/conv2/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 754,974,720 ops (377,487,360 MACs) - /layer3/layer3.15/conv3/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 754,974,720 ops (377,487,360 MACs) - /layer3/layer3.16/conv1/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 1,698,693,120 ops (849,346,560 MACs) - /layer3/layer3.16/conv2/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 754,974,720 ops (377,487,360 MACs) - /layer3/layer3.16/conv3/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 754,974,720 ops (377,487,360 MACs) - /layer3/layer3.17/conv1/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 1,698,693,120 ops (849,346,560 MACs) - /layer3/layer3.17/conv2/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 754,974,720 ops (377,487,360 MACs) - /layer3/layer3.17/conv3/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 754,974,720 ops (377,487,360 MACs) - /layer3/layer3.18/conv1/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 1,698,693,120 ops (849,346,560 MACs) - /layer3/layer3.18/conv2/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 754,974,720 ops (377,487,360 MACs) - /layer3/layer3.18/conv3/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 754,974,720 ops (377,487,360 MACs) - /layer3/layer3.19/conv1/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 1,698,693,120 ops (849,346,560 MACs) - /layer3/layer3.19/conv2/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 754,974,720 ops (377,487,360 MACs) - /layer3/layer3.19/conv3/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 754,974,720 ops (377,487,360 MACs) - /layer3/layer3.20/conv1/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 1,698,693,120 ops (849,346,560 MACs) - /layer3/layer3.20/conv2/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 754,974,720 ops (377,487,360 MACs) - /layer3/layer3.20/conv3/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 754,974,720 ops (377,487,360 MACs) - /layer3/layer3.21/conv1/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 1,698,693,120 ops (849,346,560 MACs) - /layer3/layer3.21/conv2/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 754,974,720 ops (377,487,360 MACs) - /layer3/layer3.21/conv3/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 754,974,720 ops (377,487,360 MACs) - /layer3/layer3.22/conv1/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 1,698,693,120 ops (849,346,560 MACs) - /layer3/layer3.22/conv2/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 754,974,720 ops (377,487,360 MACs) - /layer3/layer3.22/conv3/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 1,509,949,440 ops (754,974,720 MACs) - /layer4/layer4.0/conv1/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 1,698,693,120 ops (849,346,560 MACs) - /layer4/layer4.0/conv2/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 754,974,720 ops (377,487,360 MACs) - /layer4/layer4.0/conv3/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 1,509,949,440 ops (754,974,720 MACs) - /layer4/layer4.0/downsample/downsample.0/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 754,974,720 ops (377,487,360 MACs) - /layer4/layer4.1/conv1/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 1,698,693,120 ops (849,346,560 MACs) - /layer4/layer4.1/conv2/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 754,974,720 ops (377,487,360 MACs) - /layer4/layer4.1/conv3/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 754,974,720 ops (377,487,360 MACs) - /layer4/layer4.2/conv1/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 1,698,693,120 ops (849,346,560 MACs) - /layer4/layer4.2/conv2/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 754,974,720 ops (377,487,360 MACs) - /layer4/layer4.2/conv3/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 377,487,360 ops (188,743,680 MACs) - /input_proj/Conv_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 47,185,920 ops (23,592,960 MACs) - /encoder/layers.0/self_attn/out_proj/MatMul_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 377,487,360 ops (188,743,680 MACs) - /encoder/layers.0/fc1/MatMul_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 377,487,360 ops (188,743,680 MACs) - /encoder/layers.0/fc2/MatMul_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 47,185,920 ops (23,592,960 MACs) - /encoder/layers.1/self_attn/out_proj/MatMul_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 377,487,360 ops (188,743,680 MACs) - /encoder/layers.1/fc1/MatMul_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 377,487,360 ops (188,743,680 MACs) - /encoder/layers.1/fc2/MatMul_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 47,185,920 ops (23,592,960 MACs) - /encoder/layers.2/self_attn/out_proj/MatMul_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 377,487,360 ops (188,743,680 MACs) - /encoder/layers.2/fc1/MatMul_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 377,487,360 ops (188,743,680 MACs) - /encoder/layers.2/fc2/MatMul_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 47,185,920 ops (23,592,960 MACs) - /encoder/layers.3/self_attn/out_proj/MatMul_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 377,487,360 ops (188,743,680 MACs) - /encoder/layers.3/fc1/MatMul_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 377,487,360 ops (188,743,680 MACs) - /encoder/layers.3/fc2/MatMul_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 47,185,920 ops (23,592,960 MACs) - /encoder/layers.4/self_attn/out_proj/MatMul_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 377,487,360 ops (188,743,680 MACs) - /encoder/layers.4/fc1/MatMul_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 377,487,360 ops (188,743,680 MACs) - /encoder/layers.4/fc2/MatMul_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 47,185,920 ops (23,592,960 MACs) - /encoder/layers.5/self_attn/out_proj/MatMul_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 377,487,360 ops (188,743,680 MACs) - /encoder/layers.5/fc1/MatMul_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 377,487,360 ops (188,743,680 MACs) - /encoder/layers.5/fc2/MatMul_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 13,107,200 ops (6,553,600 MACs) - /decoder/layers.0/encoder_attn/out_proj/MatMul_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 104,857,600 ops (52,428,800 MACs) - /decoder/layers.0/fc1/MatMul_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 104,857,600 ops (52,428,800 MACs) - /decoder/layers.0/fc2/MatMul_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 13,107,200 ops (6,553,600 MACs) - /decoder/layers.1/self_attn/out_proj/MatMul_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 13,107,200 ops (6,553,600 MACs) - /decoder/layers.1/encoder_attn/out_proj/MatMul_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 104,857,600 ops (52,428,800 MACs) - /decoder/layers.1/fc1/MatMul_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 104,857,600 ops (52,428,800 MACs) - /decoder/layers.1/fc2/MatMul_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 13,107,200 ops (6,553,600 MACs) - /decoder/layers.2/self_attn/out_proj/MatMul_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 13,107,200 ops (6,553,600 MACs) - /decoder/layers.2/encoder_attn/out_proj/MatMul_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 104,857,600 ops (52,428,800 MACs) - /decoder/layers.2/fc1/MatMul_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 104,857,600 ops (52,428,800 MACs) - /decoder/layers.2/fc2/MatMul_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 13,107,200 ops (6,553,600 MACs) - /decoder/layers.3/self_attn/out_proj/MatMul_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 13,107,200 ops (6,553,600 MACs) - /decoder/layers.3/encoder_attn/out_proj/MatMul_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 104,857,600 ops (52,428,800 MACs) - /decoder/layers.3/fc1/MatMul_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 104,857,600 ops (52,428,800 MACs) - /decoder/layers.3/fc2/MatMul_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 13,107,200 ops (6,553,600 MACs) - /decoder/layers.4/self_attn/out_proj/MatMul_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 13,107,200 ops (6,553,600 MACs) - /decoder/layers.4/encoder_attn/out_proj/MatMul_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 104,857,600 ops (52,428,800 MACs) - /decoder/layers.4/fc1/MatMul_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 104,857,600 ops (52,428,800 MACs) - /decoder/layers.4/fc2/MatMul_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 13,107,200 ops (6,553,600 MACs) - /decoder/layers.5/self_attn/out_proj/MatMul_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 13,107,200 ops (6,553,600 MACs) - /decoder/layers.5/encoder_attn/out_proj/MatMul_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 104,857,600 ops (52,428,800 MACs) - /decoder/layers.5/fc1/MatMul_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 104,857,600 ops (52,428,800 MACs) - /decoder/layers.5/fc2/MatMul_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 4,710,400 ops (2,355,200 MACs) - /classifier/MatMul_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 13,107,200 ops (6,553,600 MACs) - /bbox_pred/layers.0/MatMul_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 13,107,200 ops (6,553,600 MACs) - /bbox_pred/layers.1/MatMul_quant
2026-09-22 03:00 - INFO - epu - mac_counter -   conv2d: 204,800 ops (102,400 MACs) - /bbox_pred/layers.2/MatMul_quant
2026-09-22 03:00 - INFO - epu - mac_counter - ------------------------------------------------------------
2026-09-22 03:00 - INFO - epu - mac_counter - Total: 121,226,854,400 ops (60,613,427,200 MACs)
2026-09-22 03:00 - INFO - epu - mac_counter - ============================================================
2026-09-22 03:00 - INFO - epu - mac_counter - 
2026-09-22 03:00 - INFO - epu - codegen - START==============================amend_ctrl_flow
2026-09-22 03:01 - INFO - epu - codegen - START=============================plan_lrm_virtual
2026-09-22 03:02 - INFO - epu - codegen - START==============================amend_ctrl_flow
2026-09-22 03:02 - INFO - epu - codegen - START===============================lrm_alloc_loop
2026-09-22 03:03 - INFO - epu - codegen - START==============================amend_ctrl_flow
2026-09-22 03:03 - INFO - epu - codegen - START================================lrm_splitting
2026-09-22 03:06 - INFO - epu - codegen - START==============================ext_split_relay
2026-09-22 03:08 - INFO - epu - codegen - START====================================build_tir
2026-09-22 03:08 - INFO - epu - chimera_job - Compilation of detr_full_opt_sym_int8_q_QC_U_1d56_8MB_4kB_64GBps_64GBps_16_OFF_x1_x1 successful


DETR compiled as one unit: backbone + input projection + encoder + decoder + heads

6. Run on ISS + validate (ISS vs ORT)

Run the compiled unit on the ISS, then report, in the cells below: the run's profiling and box-level IoU agreement against the same quantized graph on ONNX Runtime (run_iou_validation, boxes matched by IoU + class label).

img = mh.load_image(str(val_img)).astype(np.float32)
print(f"Validating with image: {val_img.name}  shape={img.shape}")

## ISS and the ORT reference run the same quantized graph, so this is a like-for-like comparison
## (ORT output is keyed to the ISS output names so the downstream IoU/visualization line up
## per output).
iss_out = job.run_inference_harness(inputs={"pixel_values": img}, compare_ort=False)
sess = ort.InferenceSession(QMODEL, providers=["CPUExecutionProvider"])
ort_out = dict(zip(iss_out.keys(), sess.run(None, {"pixel_values": img})))

## Job summary, includes the ISS run's profiling.
print(job)
Validating with image: 000000105014.jpg  shape=(1, 3, 384, 960)


2026-09-22 03:08 - INFO - epu - iss_testing - Found tranges for input: <tvm.contrib.epu.interval.Interval object at 0x77aae194f3d0>
FILM 55/55: 100%|███████████████████████████████████████████████████| 55/55 [03:07<00:00,  3.41s/it]



╒═════════════════════╤═══════════════════════════════════════════════════════════════════════╕
│ Module Name         │ detr_full_opt_sym_int8_q_QC_U_1d56_8MB_4kB_64GBps_64GBps_16_OFF_x1_x1 │
├─────────────────────┼───────────────────────────────────────────────────────────────────────┤
│ ONNX File           │ onnx/detr_full_opt_sym_int8_q.onnx                                    │
├─────────────────────┼───────────────────────────────────────────────────────────────────────┤
│ Product Target      │ QC-U                                                                  │
├─────────────────────┼───────────────────────────────────────────────────────────────────────┤
│ Number of Cores     │ 1                                                                     │
├─────────────────────┼───────────────────────────────────────────────────────────────────────┤
│ ISS Clock Frequency │ 1.560                                                                 │
├─────────────────────┼───────────────────────────────────────────────────────────────────────┤
│ L2M Size            │ 8MB                                                                   │
├─────────────────────┼───────────────────────────────────────────────────────────────────────┤
│ LRM Size            │ 4kB                                                                   │
├─────────────────────┼───────────────────────────────────────────────────────────────────────┤
│ External Read BW    │ 64GBps                                                                │
├─────────────────────┼───────────────────────────────────────────────────────────────────────┤
│ External Write BW   │ 64GBps                                                                │
├─────────────────────┼───────────────────────────────────────────────────────────────────────┤
│ MACS per PE         │ 16                                                                    │
├─────────────────────┼───────────────────────────────────────────────────────────────────────┤
│ Max L2M             │ 7.971MB                                                               │
├─────────────────────┼───────────────────────────────────────────────────────────────────────┤
│ Max LRM             │ 3.000kB                                                               │
├─────────────────────┼───────────────────────────────────────────────────────────────────────┤
│ Max Temp Ext Bytes  │ 15.469MB                                                              │
├─────────────────────┼───────────────────────────────────────────────────────────────────────┤
│ Network GMACs       │ 61.987                                                                │
╘═════════════════════╧═══════════════════════════════════════════════════════════════════════╛

╒════╤════════╤══════════════╤══════════════════╤══════════════════════════╤═══════╕
│    │ Type   │ Name         │ shape            │ type                     │ mse   │
╞════╪════════╪══════════════╪══════════════════╪══════════════════════════╪═══════╡
│  0 │ Input  │ pixel_values │ [1, 3, 384, 960] │ tensor[FixedPoint32<29>] │ n/a   │
├────┼────────┼──────────────┼──────────────────┼──────────────────────────┼───────┤
│  1 │ Output │ pred_logits  │ [1, 100, 92]     │ tensor[FixedPoint32<26>] │ n/a   │
├────┼────────┼──────────────┼──────────────────┼──────────────────────────┼───────┤
│  2 │ Output │ pred_boxes   │ [1, 100, 4]      │ tensor[FixedPoint32<31>] │ n/a   │
╘════╧════════╧══════════════╧══════════════════╧══════════════════════════╧═══════╛

Post-ISS Report 1.56 GHz ***
Fully placed-and-routed gate simulation: 
╒══════════════════════════════════╤═════════╕
│ Latency (ms)                     │ 11.17   │
├──────────────────────────────────┼─────────┤
│ FPS                              │ 89.54   │
├──────────────────────────────────┼─────────┤
│ Average Power @ 3nm SSGNP (mW)   │ 3404.63 │
├──────────────────────────────────┼─────────┤
│ FPS per Watt @ 3nm SSGNP (FPS/W) │ 26.30   │
├──────────────────────────────────┼─────────┤
│ Ext Rd Bytes (MB)                │ 98.05   │
├──────────────────────────────────┼─────────┤
│ Ext Wr Bytes (MB)                │ 27.46   │
├──────────────────────────────────┼─────────┤
│ Avg Ext Rd BW (GBps)             │ 8.57    │
├──────────────────────────────────┼─────────┤
│ Avg Ext Wr BW (GBps)             │ 2.40    │
├──────────────────────────────────┼─────────┤
│ MAC Utilization                  │ 21.72%  │
╘══════════════════════════════════╧═════════╛
*** Data generated using 7nm SSGNP gatesim and scaled to 3nm

[SDK-CLI] : TotalCycles: 17,421,830
[SDK-CLI] : Executions/second: 89.54

compute      : ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 6.506M
data_array   : ▇▇▇▇▇▇ 852.17K
mac          : ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 6.537M
data_external: ▇▇▇▇▇▇▇▇▇▇▇ 1.486M
data_ocm     : ▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 1.912M

for more information check run directory: /quadric/sdk-cli/examples/models/detr/e2e/ccl_build/detr_full_opt_sym_int8_q_QC_U_1d56_8MB_4kB_64GBps_64GBps_16_OFF_x1_x1/build
iou_metrics = iou_validation.run_iou_validation(
    ort_out=ort_out,
    iss_out=iss_out,
    img_w=IMG_W,
    img_h=IMG_H,
    pass_threshold=80.0,
)

assert iou_metrics[
    "passed"
], f"IoU regression: ISS-vs-ORT agreement {iou_metrics['match_pct']:.1f}% < 80% threshold"
DETR IoU validation (top-10 by score, IoU>0.5)
  ORT detections : 10
  ISS detections : 10
  Matched        : 8/10
  Mean IoU       : 0.8881
  [PASS] ISS-vs-ORT agreement = 80.00% (threshold 80%)

7. Visualize detections (ORT vs ISS)

Draw the decoded detections side-by-side — ORT reference (left) vs Chimera GPNPU / ISS (right) — on the validation image, mirroring the YoloX e2e notebook, and save detr_e2e_detections.png. Each panel shows the top-10 boxes above the score threshold with class + score; boxes that line up across the two panels indicate ISS-vs-ORT agreement.

## Side-by-side ORT reference vs Chimera GPNPU (ISS) detections on the validation image, saved to a
## PNG -- same style as the YoloX e2e notebook (compare_detections).
detr_viz.compare_detections(
    iss_out,
    ort_out,
    str(val_img),
    img_w=IMG_W,
    img_h=IMG_H,
    top_k=10,
    score_thr=0.3,
    out_png="detr_e2e_detections.png",
)
Saved detr_e2e_detections.png


Summary

ModelDETR-R101 (ResNet-101 backbone, COCO, 384×960, ~60 M params)
Pipelinefull graph quantized once and compiled as one end-to-end Chimera unit
Attentionall 17 cores lowered natively by CGC to cgc::generalMultiheadAttention — no custom op, no CCL kernel
TargetQC-U, 8 MB OCM (On-Chip Memory), 4 kB LRM, 16 MACs/PE, 1.56 GHz
Quantizationsymmetric INT8, one COCO calibration pass
Validationbox IoU: ISS unit vs the same quantized graph on ONNX Runtime

Key takeaways

  1. DETR runs on the Chimera GPNPU as a full-graph compilation, end-to-end: pixel_values → pred_logits, pred_boxes.
  2. One INT8 calibration pass over the whole graph keeps quantization simple and matches the full graph in ONNX Runtime.
  3. The ResNet backbone and the transformer encoder/decoder compile together as one unit — no split, no boundary handoff.
  4. The transformer attention needs no special handling. CGC recognizes the encoder self-attention, the decoder self-attention, and the decoder cross-attention — including a constant-Q core — and lowers all of them itself, so the notebook is a two-step flow: quantize, compile.

Sign in to your account

Don't have an account? 
By signing in, you are agreeing to our Terms of Use and Privacy Policy.
Quadric // One architecture. Every algorithm.

Develop.

Simulate.

Profile.

Collaborate.