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 cores | Count | seq_q → seq_k |
|---|---|---|
| encoder self-attention | 6 | 360 → 360 |
| decoder self-attention | 5 | 100 → 100 |
| decoder cross-attention | 6 | 100 → 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.
| Graph | I/O |
|---|---|
| backbone + input projection + encoder + decoder + heads | pixel_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
| Model | DETR-R101 (ResNet-101 backbone, COCO, 384×960, ~60 M params) |
| Pipeline | full graph quantized once and compiled as one end-to-end Chimera unit |
| Attention | all 17 cores lowered natively by CGC to cgc::generalMultiheadAttention — no custom op, no CCL kernel |
| Target | QC-U, 8 MB OCM (On-Chip Memory), 4 kB LRM, 16 MACs/PE, 1.56 GHz |
| Quantization | symmetric INT8, one COCO calibration pass |
| Validation | box IoU: ISS unit vs the same quantized graph on ONNX Runtime |
Key takeaways
- DETR runs on the Chimera GPNPU as a full-graph compilation, end-to-end:
pixel_values→pred_logits,pred_boxes. - One INT8 calibration pass over the whole graph keeps quantization simple and matches the full graph in ONNX Runtime.
- The ResNet backbone and the transformer encoder/decoder compile together as one unit — no split, no boundary handoff.
- 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.
