From 1949c31f80e1bb0b48a5ffb495e57f6279765618 Mon Sep 17 00:00:00 2001 From: tzhouam Date: Thu, 24 Sep 2026 07:32:21 +0800 Subject: [PATCH] Advance Qualcomm TTS and InternVLA component qualification --- .../audit_internvla_cosmos_qualcomm.py | 120 + .../results/e2e_expansion_20260924/README.md | 4 +- .../internvla_cosmos_qualcomm/README.md | 9 + .../s25/compile_report.json | 32 + .../s25/compile_submission.json | 35 + .../s25/inference_submission.json | 16 + .../qwen_tts_vocoder_qualcomm/README.md | 8 +- .../rb3/audit_report.json | 86 + .../rb3/profile_report.json | 5361 +++++++++++++++++ .../sa8775p/cpu_control/device_output.npz | Bin 0 -> 179497 bytes .../cpu_control/inference_comparison.json | 51 + .../sa8775p/cpu_control/inference_report.json | 32 + .../cpu_control/profile_submission.json | 12 + .../xelite/directml/inference_report.json | 31 + .../xelite/directml/profile_report.json | 40 + .../xelite/qnn_npu/compile_report.json | 31 + .../xelite/qnn_npu/compile_submission.json | 12 + .../xelite/qnn_npu/inference_submission.json | 14 + .../evidence/summary/README.md | 12 +- docs/design/omni_edge_e2e_roadmap.md | 6 +- 20 files changed, 5901 insertions(+), 11 deletions(-) create mode 100644 benchmarks/edge_harness/experiments/audit_internvla_cosmos_qualcomm.py create mode 100644 benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/internvla_cosmos_qualcomm/README.md create mode 100644 benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/internvla_cosmos_qualcomm/s25/compile_report.json create mode 100644 benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/internvla_cosmos_qualcomm/s25/compile_submission.json create mode 100644 benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/internvla_cosmos_qualcomm/s25/inference_submission.json create mode 100644 benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/rb3/audit_report.json create mode 100644 benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/rb3/profile_report.json create mode 100644 benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/sa8775p/cpu_control/device_output.npz create mode 100644 benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/sa8775p/cpu_control/inference_comparison.json create mode 100644 benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/sa8775p/cpu_control/inference_report.json create mode 100644 benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/sa8775p/cpu_control/profile_submission.json create mode 100644 benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/xelite/directml/inference_report.json create mode 100644 benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/xelite/directml/profile_report.json create mode 100644 benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/xelite/qnn_npu/compile_report.json create mode 100644 benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/xelite/qnn_npu/compile_submission.json create mode 100644 benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/xelite/qnn_npu/inference_submission.json diff --git a/benchmarks/edge_harness/experiments/audit_internvla_cosmos_qualcomm.py b/benchmarks/edge_harness/experiments/audit_internvla_cosmos_qualcomm.py new file mode 100644 index 000000000..fc79e89ba --- /dev/null +++ b/benchmarks/edge_harness/experiments/audit_internvla_cosmos_qualcomm.py @@ -0,0 +1,120 @@ +#!/usr/bin/env python3 +"""Audit one hosted InternVLA Cosmos encoder output against a pinned source fixture.""" + +from __future__ import annotations + +import argparse +import hashlib +import json +import math +from pathlib import Path + +import numpy as np + + +MODEL_SHA256 = "656a5263f584851a1457ef6dcf60b995f7c67b056b3c90a4f33c814f7caf9ec9" +FIXTURE_SHA256 = "dcbaf1391ca914d4bbccc1cb384daf05666e771d9cdae90c4f069ec8fcf05368" +COMPILE_OPTIONS = "--target_runtime qnn_dlc --qnn_options default_graph_htp_precision=FLOAT16" + + +def file_record(path: Path) -> dict: + with path.open("rb") as source: + digest = hashlib.file_digest(source, "sha256").hexdigest() + return {"bytes": path.stat().st_size, "sha256": digest} + + +def main() -> None: + parser = argparse.ArgumentParser(description=__doc__) + for name in ( + "source-onnx", "fixture", "compile-report", "inference-submission", + "inference-report", "device-output", "output-report", + ): + parser.add_argument(f"--{name}", type=Path, required=True) + args = parser.parse_args() + + compiled = json.loads(args.compile_report.read_text(encoding="utf-8")) + submitted = json.loads(args.inference_submission.read_text(encoding="utf-8")) + inferred = json.loads(args.inference_report.read_text(encoding="utf-8")) + if compiled.get("status") != "SUCCESS" or inferred.get("status") != "SUCCESS": + raise ValueError("compile and inference must be terminal successes") + if compiled.get("source_model_id") != "mn4okj3rq" or compiled.get("options") != COMPILE_OPTIONS: + raise ValueError("compile used a different source or options") + if inferred.get("model_id") != compiled.get("target_model_id"): + raise ValueError("inference used a different target model") + if inferred.get("device") != compiled.get("device"): + raise ValueError("compile/inference device metadata differs") + if inferred.get("device", {}).get("name") != "Samsung Galaxy S25": + raise ValueError("inference did not use the exact Galaxy S25") + if inferred.get("options") != "--compute_unit npu": + raise ValueError("inference did not request NPU") + if (inferred.get("job_id") != submitted.get("job_id") + or inferred.get("input_dataset_id") != submitted.get("input_dataset_id")): + raise ValueError("inference used a different job or input dataset") + if submitted.get("fixture_key") != "pattern_pixels": + raise ValueError("submission did not use the pattern fixture") + + files = { + name: file_record(path) + for name, path in { + "source_onnx": args.source_onnx, + "fixture": args.fixture, + "device_output": args.device_output, + }.items() + } + if files["source_onnx"]["sha256"] != MODEL_SHA256 or files["fixture"]["sha256"] != FIXTURE_SHA256: + raise ValueError("source model or fixture hash differs") + with np.load(args.fixture, allow_pickle=False) as fixture: + if fixture.files != ["ramp_pixels", "ramp_reference", "pattern_pixels", "pattern_reference"]: + raise ValueError("fixture layout differs") + pixels = np.asarray(fixture["pattern_pixels"]) + reference = np.asarray(fixture["pattern_reference"]) + if pixels.shape != (6, 3, 256, 256) or pixels.dtype != np.float32 or not np.isfinite(pixels).all(): + raise ValueError("input pixels violate fixed source contract") + if reference.shape != (6, 16, 32, 32) or reference.dtype != np.float32 or not np.isfinite(reference).all(): + raise ValueError("source reference violates fixed latent contract") + with np.load(args.device_output, allow_pickle=False) as output: + if output.files != ["output_0__0"]: + raise ValueError("unexpected hosted output layout") + actual = np.asarray(output["output_0__0"]) + if (actual.shape != reference.shape or actual.dtype not in (np.float16, np.float32) + or not np.isfinite(actual).all()): + raise ValueError("hosted output violates finite latent contract") + + source_values = reference.astype(np.float64).ravel() + device_values = actual.astype(np.float64).ravel() + error = source_values - device_values + source_norm = float(np.linalg.norm(source_values)) + device_norm = float(np.linalg.norm(device_values)) + error_norm = float(np.linalg.norm(error)) + if source_norm == 0 or device_norm == 0: + raise ValueError("zero latent norm cannot define numerical similarity") + report = { + "scope": "one six-frame Cosmos image encoder on synthetic pattern; no complete InternVLA policy", + "status": "component_inference_numeric_measured", + "device": inferred["device"], + "source_model_id": compiled["source_model_id"], + "target_model_id": compiled["target_model_id"], + "compile_job_id": compiled["job_id"], + "inference_job_id": inferred["job_id"], + "input_dataset_id": inferred["input_dataset_id"], + "requested_run_options": inferred["options"], + "files": files, + "output_dtype": str(actual.dtype), + "source_vs_device": { + "relative_l2": error_norm / source_norm, + "snr_db": 20 * math.log10(source_norm / error_norm) if error_norm else None, + "max_abs_error": float(np.max(np.abs(error))), + "cosine": float(np.dot(source_values, device_values) / (source_norm * device_norm)), + }, + "limits": [ + "The fixture is synthetic; no real-observation or action-quality tolerance is established.", + "Requested NPU is not actual per-node placement without a device profile.", + "The action policy, state lifecycle, admission and complete request were not run on this device.", + ], + } + args.output_report.write_text(json.dumps(report, indent=2) + "\n", encoding="utf-8") + print(json.dumps({"status": report["status"], "difference": report["source_vs_device"]}, indent=2)) + + +if __name__ == "__main__": + main() diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260924/README.md b/benchmarks/edge_harness/results/e2e_expansion_20260924/README.md index 7412f1353..591e4f1ab 100644 --- a/benchmarks/edge_harness/results/e2e_expansion_20260924/README.md +++ b/benchmarks/edge_harness/results/e2e_expansion_20260924/README.md @@ -1,7 +1,9 @@ # 2026-09-24 Qualcomm component expansion -The [Qwen3-TTS vocoder study](evidence/qwen_tts_vocoder_qualcomm/README.md) reuses a retained fixed-shape Code2Wav export and historical Workbench input to test numerical behavior on SA8775P and other Qualcomm settings. The fresh SA8775P GPU inference produces a saturated waveform; RB3 produces an unsaturated but divergent waveform. Neither is numerically qualified as a usable TTS path. X Elite ONNX CPU output matches the local ONNX Runtime reference on the retained fixture; its 94-sample component p50/p95 was 6.384/6.644 s with all execution-detail rows on CPU. Its DirectML retry remains pending. Other Workbench jobs for RB3 profiling and SA8775P controls are also pending; their submission IDs are retained for completion. No complete on-device TTS stream or model-quality qualification is claimed. +The [Qwen3-TTS vocoder study](evidence/qwen_tts_vocoder_qualcomm/README.md) reuses a retained fixed-shape Code2Wav export and historical Workbench input to test numerical behavior on SA8775P and other Qualcomm settings. The fresh SA8775P GPU-requested inference produces a saturated waveform, while the same binary's CPU-requested output on the exact SA device matches ONNX CPU within 4.13e-6 relative L2. RB3 produces an unsaturated but 15.73%-divergent waveform; its fresh 100-sample mixed CPU/GPU component p50/p95 was 3.099/3.133 s, not a usable TTS timing claim. X Elite ONNX CPU output matches the local ONNX Runtime reference on the retained fixture; its 94-sample component p50/p95 was 6.384/6.644 s with all execution-detail rows on CPU. Corrected X Elite DirectML inference and profile both failed during provider initialization; separate FP16 QNN DLC compilation passed, with NPU-requested inference pending. SA CPU placement profiling and FP32-preserving GPU control remain pending. No complete on-device TTS stream or model-quality qualification is claimed. A local HX370 x86-64 LiteRT CPU control of the identical SA/RB3 TFLite binary matched the original ONNX CPU waveform within 3.45e-6 relative L2. The SA saturation is therefore not universal to the converted artifact; hosted CPU and GPU precision controls are still needed to isolate its device/runtime cause. The [talker decode-step attempt](evidence/qwen_tts_talker_qualcomm/README.md) pins a separate 28-layer source and synthetic cache fixture. Historical FP16 QNN context-binary compiles passed for S24, S25, SA8775P and X Elite, with same-fixture inference pending; RB3 rejected that floating-point-input artifact. Compile success is not a numerical or end-to-end pass. + +The [InternVLA Cosmos S25 attempt](evidence/internvla_cosmos_qualcomm/README.md) repackages the real policy's image encoder from its parity-tested ONNX export. FLOAT16 QNN DLC compilation passed; same-fixture NPU-requested inference was pending. Full action-policy support remains unqualified. diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/internvla_cosmos_qualcomm/README.md b/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/internvla_cosmos_qualcomm/README.md new file mode 100644 index 000000000..670f41104 --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/internvla_cosmos_qualcomm/README.md @@ -0,0 +1,9 @@ +# InternVLA Cosmos encoder on Galaxy S25 NPU: compile attempt + +This tests the **real Place_Markpen Cosmos CI8x8 image encoder component**, not the action policy or complete InternVLA. The [source export](../../../e2e_expansion_20260923/evidence/internvla_cosmos_amd_npu/README.md) pins the checkpoint, FP32 `[6,3,256,256]` input, `[6,16,32,32]` output, two CPU parity fixtures and the original external-data ONNX files. The external data were embedded into one 125,112,088-byte ONNX file outside Git at `/home/zhout/project/edge_infer/models/InternVLA-cosmos-onnx/cosmos_encoder_embedded.onnx` (SHA256 `656a5263f584851a1457ef6dcf60b995f7c67b056b3c90a4f33c814f7caf9ec9`). The embedded form retained reference-relative ONNX CPU L2 errors of `8.74e-7` and `2.29e-6` on ramp and pattern fixtures. + +Workbench source model `mn4okj3rq` was [submitted for Galaxy S25 QNN DLC compilation](s25/compile_submission.json) as job `jpxl4d1jp`, with `default_graph_htp_precision=FLOAT16`. The [compile](s25/compile_report.json) succeeded and produced target model `mqkp12rxm`. A [same-fixture pattern inference](s25/inference_submission.json) requesting NPU was submitted as `jp8ex43zp` and remained pending at this evidence snapshot. Compile success does not establish NPU execution, output parity, action quality, latency, or full-policy support. + +The [generic collector](../../../../experiments/collect_aihub_component.py) can retrieve the pending output, and the [Cosmos auditor](../../../../experiments/audit_internvla_cosmos_qualcomm.py) checks source/fixture hashes, target/device/dataset identity, latent shape and finite numerical difference against the pinned source reference. Neither script converts an encoder-only result to policy support. + +Next: retrieve and audit the device latent, inspect actual NPU placement with a profile if numerical error is acceptable, then test action-policy impact and a device-local stateful policy. Full multimodal observation processing, admission, cancellation and sustained profiling remain open. diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/internvla_cosmos_qualcomm/s25/compile_report.json b/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/internvla_cosmos_qualcomm/s25/compile_report.json new file mode 100644 index 000000000..b7214c683 --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/internvla_cosmos_qualcomm/s25/compile_report.json @@ -0,0 +1,32 @@ +{ + "retrieved_utc": "2026-09-23T23:21:02.427625+00:00", + "facility": "Qualcomm AI Hub Workbench", + "qai_hub_version": "0.55.0", + "job_id": "jpxl4d1jp", + "url": "https://workbench.aihub.qualcomm.com/jobs/jpxl4d1jp/", + "status": "SUCCESS", + "status_message": "", + "source_model_id": "mn4okj3rq", + "target_model_id": "mqkp12rxm", + "device": { + "name": "Samsung Galaxy S25", + "os": "15", + "attributes": [ + "os:android", + "framework:tflite", + "framework:onnx", + "abi:aarch64-android", + "vendor:samsung", + "format:phone", + "chipset:qualcomm-snapdragon-8-elite-for-galaxy", + "chipset:sm8750-ac", + "hexagon:v79", + "soc-model:69", + "htp-supports-fp16:true", + "htp-supports-weight-sharing:true", + "framework:qnn" + ] + }, + "options": "--target_runtime qnn_dlc --qnn_options default_graph_htp_precision=FLOAT16", + "hub_version": "aihub-2026.09.11.0" +} diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/internvla_cosmos_qualcomm/s25/compile_submission.json b/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/internvla_cosmos_qualcomm/s25/compile_submission.json new file mode 100644 index 000000000..df26d08ad --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/internvla_cosmos_qualcomm/s25/compile_submission.json @@ -0,0 +1,35 @@ +{ + "timestamp_utc": "2026-09-23T23:18:50.383852+00:00", + "facility": "Qualcomm AI Hub Workbench", + "qai_hub_version": "0.55.0", + "source_model_id": "mn4okj3rq", + "source_artifact": { + "name": "cosmos_encoder_embedded.onnx", + "bytes": 125112088, + "sha256": "656a5263f584851a1457ef6dcf60b995f7c67b056b3c90a4f33c814f7caf9ec9" + }, + "upstream_export_report": "e2e_expansion_20260923/evidence/internvla_cosmos_amd_npu/export_report.json", + "device": { + "name": "Samsung Galaxy S25", + "os": "15", + "attributes": [ + "os:android", + "framework:tflite", + "framework:onnx", + "abi:aarch64-android", + "vendor:samsung", + "format:phone", + "chipset:qualcomm-snapdragon-8-elite-for-galaxy", + "chipset:sm8750-ac", + "hexagon:v79", + "soc-model:69", + "htp-supports-fp16:true", + "htp-supports-weight-sharing:true", + "framework:qnn" + ] + }, + "options": "--target_runtime qnn_dlc --qnn_options default_graph_htp_precision=FLOAT16", + "job_id": "jpxl4d1jp", + "url": "https://workbench.aihub.qualcomm.com/jobs/jpxl4d1jp/", + "status_at_submission": "OPTIMIZING_MODEL" +} diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/internvla_cosmos_qualcomm/s25/inference_submission.json b/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/internvla_cosmos_qualcomm/s25/inference_submission.json new file mode 100644 index 000000000..5a68f2459 --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/internvla_cosmos_qualcomm/s25/inference_submission.json @@ -0,0 +1,16 @@ +{ + "timestamp_utc": "2026-09-23T23:21:34.357321+00:00", + "facility": "Qualcomm AI Hub Workbench", + "qai_hub_version": "0.55.0", + "source_compile_job_id": "jpxl4d1jp", + "target_model_id": "mqkp12rxm", + "fixture_sha256": "dcbaf1391ca914d4bbccc1cb384daf05666e771d9cdae90c4f069ec8fcf05368", + "fixture_key": "pattern_pixels", + "device": "Samsung Galaxy S25", + "options": "--compute_unit npu", + "kind": "inference", + "status": "SUBMITTED", + "job_id": "jp8ex43zp", + "url": "https://workbench.aihub.qualcomm.com/jobs/jp8ex43zp/", + "input_dataset_id": "d26qo8p57" +} diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/README.md b/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/README.md index 9922e08ab..20fbc9a28 100644 --- a/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/README.md +++ b/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/README.md @@ -6,14 +6,16 @@ The historical Workbench source model `mqyer339n` is a 423,655,047-byte ONNX gra The [S25 historical inference](s25_reference_inference.json) on the same fixture differed from local FP32 ONNX CPU by **4.24% relative L2 / 27.46 dB SNR** ([comparison](s25_cpu_comparison.json)); that waveform has no listening-quality tolerance. A fresh [SA8775P inference](sa8775p/inference_report.json) used historical compiled TFLite model `mnze95don` and requested GPU. Its [output](sa8775p/device_output.npz) had **96.63%** of samples at absolute amplitude at least 0.999, RMS **0.989** versus CPU **0.0837**, relative L2 **11.832**, and SNR **−21.46 dB**. The fresh [profile](sa8775p/profile_report.json) attributed 403 execution-detail rows to CPU and 335 to GPU; 100 component samples had nearest-rank p50/p95 **1.776/1.880 s** (minimum 1.675 s). The [audit](sa8775p/audit_report.json) pins all output hashes, waveform differences and placement. This is measured execution of a **numerically failed** output, not a usable TTS performance result. The [SA8775P compile record](sa8775p/compile_report.json) pins the artifact and source IDs. -The fresh [RB3 inference](rb3/inference_report.json) on the same fixture returned a finite, **unsaturated** waveform ([output](rb3/device_output.npz)). Its [comparison](rb3/inference_comparison.json) against original ONNX CPU was **15.73% relative L2 / 16.06 dB SNR**, still without a listening-quality threshold. Thus the bitwise identical SA and RB3 TFLite target downloads produce materially different outputs on their respective devices; target file identity does not establish runtime numerical parity. The fresh RB3 profile was still pending at this snapshot. +The fresh [RB3 inference](rb3/inference_report.json) on the same fixture returned a finite, **unsaturated** waveform ([output](rb3/device_output.npz)). Its [comparison](rb3/inference_comparison.json) against original ONNX CPU was **15.73% relative L2 / 16.06 dB SNR**, still without a listening-quality threshold. The fresh [profile](rb3/profile_report.json) returned 100 component samples at nearest-rank p50/p95 **3.099/3.133 s** and 403 CPU plus 335 GPU execution-detail rows; the [audit](rb3/audit_report.json) ties the profile to this numerically unqualified output. Thus the bitwise identical SA and RB3 TFLite target downloads produce materially different outputs on their respective devices; target file identity does not establish runtime numerical parity. A separate [local LiteRT 2.2.0 CPU control](local_litert_cpu/report.json) ran that **same pinned TFLite binary** on the WSL x86-64 HX370 host with four interpreter threads. Its [waveform](local_litert_cpu/device_output.npz) was finite and unsaturated, within **3.45e-6 relative L2 / 109.23 dB SNR** of the original ONNX Runtime CPU output. The [reproducer](../../../../experiments/probe_qwen_tts_vocoder_litert_cpu.py) checks binary/fixture/reference hashes and I/O contracts. This narrows the SA saturation to hosted runtime/device behavior rather than a universally bad TFLite conversion. The one local invoke is not a comparable performance profile; it does not prove either embedded device's CPU route or identify the specific delegate operation at fault. +On the **exact hosted SA8775P**, a [CPU-requested inference](sa8775p/cpu_control/inference_report.json) of that binary also returned a finite unsaturated waveform. The [same-fixture comparison](sa8775p/cpu_control/inference_comparison.json) was **4.13e-6 relative L2 / 107.67 dB SNR** against original ONNX CPU. The GPU-requested SA output differed from this SA CPU-requested output by **11.832 relative L2** and saturated 96.63% of samples. This is strong evidence that the tested GPU-requested route causes the waveform failure on SA, while its exact delegate operation and all CPU placement details still require the [CPU profile](sa8775p/cpu_control/profile_submission.json) and FP32-preserving GPU control. + The re-fetched *historical* [SA8775P profile](sa8775p/historical_profile_report.json) has 100 component samples, nearest-rank p50/p95 **1.751/1.874 s**, and 403 CPU plus 335 GPU execution-detail rows. The *historical* [RB3 profile](rb3/historical_profile_report.json) has 100 samples, p50/p95 **3.143/3.189 s**, also with 403 CPU plus 335 GPU rows. Their previously quoted 1.701/3.107 s estimated-time fields are sample minima, not medians. Both profiles exclude talker/predictor, stage handoff, streaming and full-request time. -The X Elite [ONNX CPU inference](xelite/cpu/inference_report.json) succeeded on the pinned fixture. Its [waveform comparison](xelite/cpu/inference_comparison.json) to the original local ONNX Runtime CPU output was **8.09e-7 relative L2 / 121.84 dB SNR**, with no saturation. The fresh [CPU profile](xelite/cpu/profile_report.json) returned **94** component samples, nearest-rank p50/p95 **6.384/6.644 s**, with all **634** execution-detail rows on CPU; the service's 5.917 s estimated-time field is the sample minimum. The [full audit](xelite/cpu/audit_report.json) pins source, fixture, target, waveform, placement and percentiles. This is near-source component parity on one fixture, without a listening-quality or complete-stream gate. The first X Elite [GPU inference](xelite/gpu/inference_report.json) and [profile](xelite/gpu/profile_report.json) jobs failed because Workbench rejects specifying both compute unit and ONNX execution provider; the [DirectML retry](xelite/directml/inference_submission.json) specifies DirectML alone. The [X Elite ONNX compile](xelite/compile_report.json) passed after the older TFLite target was rejected on Windows ARM. +The X Elite [ONNX CPU inference](xelite/cpu/inference_report.json) succeeded on the pinned fixture. Its [waveform comparison](xelite/cpu/inference_comparison.json) to the original local ONNX Runtime CPU output was **8.09e-7 relative L2 / 121.84 dB SNR**, with no saturation. The fresh [CPU profile](xelite/cpu/profile_report.json) returned **94** component samples, nearest-rank p50/p95 **6.384/6.644 s**, with all **634** execution-detail rows on CPU; the service's 5.917 s estimated-time field is the sample minimum. The [full audit](xelite/cpu/audit_report.json) pins source, fixture, target, waveform, placement and percentiles. This is near-source component parity on one fixture, without a listening-quality or complete-stream gate. The first X Elite [GPU inference](xelite/gpu/inference_report.json) and [profile](xelite/gpu/profile_report.json) jobs failed because Workbench rejects specifying both compute unit and ONNX execution provider. The corrected [DirectML inference](xelite/directml/inference_report.json) and [profile](xelite/directml/profile_report.json) both failed during DML provider initialization with Windows error `80070057` (`The parameter is incorrect`), without an output or timing samples. A separate [FP16 QNN DLC compile](xelite/qnn_npu/compile_report.json) succeeded and [NPU-requested same-fixture inference](xelite/qnn_npu/inference_submission.json) was pending. The [X Elite ONNX CPU compile](xelite/compile_report.json) passed after the older TFLite target was rejected on Windows ARM. These failures constrain the tested DirectML route, not all GPU or NPU artifacts. -The fresh [RB3 profile](rb3/profile_submission.json), [SA CPU](sa8775p/cpu_control/inference_submission.json) and [FP32-preserving GPU](sa8775p/gpu_fp32/inference_submission.json) controls, and X Elite [DirectML retry](xelite/directml/inference_submission.json) remained pending in this snapshot. Pending jobs have no numerical or latency conclusion. The [collector](../../../../experiments/collect_aihub_component.py) retrieves their terminal reports without resubmitting jobs, and the [audit script](../../../../experiments/audit_qwen_tts_vocoder_qualcomm.py) checks source/fixture hashes, device and model IDs, actual placement, waveform error, saturation and sample percentiles. +The [SA CPU profile](sa8775p/cpu_control/profile_submission.json), [FP32-preserving GPU](sa8775p/gpu_fp32/inference_submission.json) control, and X Elite [QNN NPU inference](xelite/qnn_npu/inference_submission.json) remained pending in this snapshot. Pending jobs have no numerical or latency conclusion. The [collector](../../../../experiments/collect_aihub_component.py) retrieves their terminal reports without resubmitting jobs, and the [audit script](../../../../experiments/audit_qwen_tts_vocoder_qualcomm.py) checks source/fixture hashes, device and model IDs, actual placement, waveform error, saturation and sample percentiles. This is one fixed vocoder component with a retained input, not complete Qwen3-TTS. The next gates are a quality-passing SA/RB3/X Elite target, talker and code predictor numerical checks, device-resident handoff/co-residency, playable streaming, cancellation, memory admission and sustained power/thermal profiling. diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/rb3/audit_report.json b/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/rb3/audit_report.json new file mode 100644 index 000000000..dfb71e3a0 --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/rb3/audit_report.json @@ -0,0 +1,86 @@ +{ + "scope": "one Qwen3-TTS code2wav 48,000-sample component on one retained fixture; no complete TTS stream", + "status": "component_executed_quality_unqualified", + "device": { + "name": "Dragonwing RB3 Gen 2 Vision Kit", + "os": "1.6", + "attributes": [ + "os:qc_linux", + "framework:tflite", + "framework:onnx", + "vendor:qualcomm", + "abi:aarch64-oe-linux-gcc11", + "format:iot", + "chipset:qualcomm-qcs6490", + "chipset:qcs6490", + "chipset:qualcomm-dragonwing-qcs6490", + "hexagon:v68", + "soc-model:93", + "framework:qnn" + ] + }, + "compile_job_id": "j5mmy28w5", + "inference_job_id": "jg9zmkv8p", + "profile_job_id": "jp1nj707g", + "target_model_id": "mn0wyzd3q", + "input_dataset_id": "d7m80jl32", + "s25_prior_inference_job_id": "jpx428ojg", + "requested_run_options": "--compute_unit gpu", + "files": { + "source_onnx": { + "bytes": 423655047, + "sha256": "7c07666229c6d404894132e22f784525e3212a49efad55ddd532eda5286c2b2b" + }, + "fixture": { + "bytes": 129721, + "sha256": "dfca9e8d2a724a568a31b6cd18ff6a52fdc205fd34e13cbf1cd75f0f7937e82d" + }, + "cpu_output": { + "bytes": 179942, + "sha256": "8de78b94b59f01e49852f7706adbd2508a9976b8e2705cfd3b94d07bb3606cb1" + }, + "s25_output": { + "bytes": 115235, + "sha256": "4a26486d5e84a6e22d16f9b26f995b8fe645c29bbd70b103615ec35a0fcb10a0" + }, + "device_output": { + "bytes": 113399, + "sha256": "476cae29892fbd6d93b8b4f3790e26bc6907cc2c8987bab3c141e1a585aea23a" + } + }, + "cpu_source_vs_device": { + "relative_l2": 0.15731895608191257, + "snr_db": 16.06437888182974, + "max_abs": 0.11359542608261108, + "cosine": 0.988868865169743, + "reference_rms": 0.08373439205485074, + "output_rms": 0.07852377091606144, + "output_saturated_fraction_abs_ge_0_999": 0.0 + }, + "s25_gpu_vs_device": { + "relative_l2": 0.1529833843922324, + "snr_db": 16.307114711572623, + "max_abs": 0.11407470703125, + "cosine": 0.9896069628698109, + "reference_rms": 0.08376787228276501, + "output_rms": 0.07852377091606144, + "output_saturated_fraction_abs_ge_0_999": 0.0 + }, + "profile": { + "sample_count": 100, + "sample_min_us": 3069620, + "nearest_rank_p50_us": 3098543, + "nearest_rank_p95_us": 3132926, + "reported_estimated_inference_time_us": 3069620, + "reported_peak_memory_bytes": 326594560, + "compute_unit_row_counts": { + "CPU": 403, + "GPU": 335 + } + }, + "limits": [ + "Historical source export does not attest its exact checkpoint revision.", + "This fixed component waveform has no listening or task-quality tolerance.", + "Hosted component profiling excludes talker, predictor, stage handoff, streaming, admission and sustained power/thermal behavior." + ] +} diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/rb3/profile_report.json b/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/rb3/profile_report.json new file mode 100644 index 000000000..ca22fed3f --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/rb3/profile_report.json @@ -0,0 +1,5361 @@ +{ + "timestamp_utc": "2026-09-23T23:20:09.066225+00:00", + "qai_hub_version": "0.55.0", + "facility": "Qualcomm AI Hub Workbench", + "job_id": "jp1nj707g", + "url": "https://workbench.aihub.qualcomm.com/jobs/jp1nj707g/", + "status": "SUCCESS", + "status_message": "", + "options": "--compute_unit gpu", + "hub_version": "aihub-2026.09.11.0", + "device": { + "name": "Dragonwing RB3 Gen 2 Vision Kit", + "os": "1.6", + "attributes": [ + "os:qc_linux", + "framework:tflite", + "framework:onnx", + "vendor:qualcomm", + "abi:aarch64-oe-linux-gcc11", + "format:iot", + "chipset:qualcomm-qcs6490", + "chipset:qcs6490", + "chipset:qualcomm-dragonwing-qcs6490", + "hexagon:v68", + "soc-model:93", + "framework:qnn" + ] + }, + "model_id": "mn0wyzd3q", + "shapes": { + "quantized": [ + [ + 1, + 512, + 97 + ], + "float32" + ] + }, + "profile": { + "execution_summary": { + "estimated_inference_time": 3069620, + "estimated_inference_peak_memory": 326594560, + "first_load_time": 362697872, + "first_load_peak_memory": 840724480, + "warm_load_time": 478538, + "warm_load_peak_memory": 724701184, + "compile_time": 0, + "compile_peak_memory": 0, + "compile_memory_increase_range": [ + 0, + 0 + ], + "compile_memory_peak_range": [ + 0, + 0 + ], + "first_load_memory_increase_range": [ + 294053504, + 294853984 + ], + "first_load_memory_peak_range": [ + 837828608, + 838629088 + ], + "warm_load_memory_increase_range": [ + 291934640, + 292982192 + ], + "warm_load_memory_peak_range": [ + 721530880, + 722578432 + ], + "inference_memory_increase_range": [ + 0, + 0 + ], + "inference_memory_peak_range": [ + 4096, + 31148608 + ], + "all_compile_times": [], + "all_first_load_times": [ + 362697872 + ], + "all_warm_load_times": [ + 478538 + ], + "all_inference_times": [ + 3121667, + 3152573, + 3093314, + 3128829, + 3121215, + 3096034, + 3116873, + 3100366, + 3091928, + 3095277, + 3137728, + 3098678, + 3092501, + 3098289, + 3112152, + 3117942, + 3097562, + 3100022, + 3112225, + 3095822, + 3106858, + 3086677, + 3111787, + 3093507, + 3098310, + 3087468, + 3132192, + 3114724, + 3093648, + 3131476, + 3126894, + 3076403, + 3097581, + 3131277, + 3098543, + 3091861, + 3116708, + 3085326, + 3123409, + 3091827, + 3134210, + 3096756, + 3109399, + 3078820, + 3091585, + 3105224, + 3091472, + 3096102, + 3069620, + 3080678, + 3097924, + 3097052, + 3106952, + 3104478, + 3095925, + 3108157, + 3078351, + 3098303, + 3082419, + 3103509, + 3141556, + 3108573, + 3085265, + 3111431, + 3089686, + 3074942, + 3098076, + 3098286, + 3120844, + 3086554, + 3127995, + 3108580, + 3100407, + 3092962, + 3109773, + 3107244, + 3102007, + 3095778, + 3095796, + 3132926, + 3079101, + 3099641, + 3112999, + 3093652, + 3091030, + 3107080, + 3098328, + 3104887, + 3110451, + 3102800, + 3113950, + 3136082, + 3090912, + 3123686, + 3092625, + 3099977, + 3088101, + 3094640, + 3117333, + 3086035 + ] + }, + "execution_detail": [ + { + "name": "model/tf.compat.v1.transpose/transpose", + "type": "TRANSPOSE", + "compute_unit": "CPU", + "execution_time": 69, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.pad/Pad", + "type": "PAD", + "compute_unit": "CPU", + "execution_time": 26, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d/DynamicConv1D/ExpandDims", + "type": "RESHAPE", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d/DynamicConv1D", + "type": "CONV_2D", + "compute_unit": "CPU", + "execution_time": 6339, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d/DynamicConv1D/Squeeze", + "type": "RESHAPE", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_1/Add", + "type": "FULLY_CONNECTED", + "compute_unit": "CPU", + "execution_time": 1491, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 48, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.reduce_mean/Mean", + "type": "MEAN", + "compute_unit": "CPU", + "execution_time": 2, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_2/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 1, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sqrt/Sqrt", + "type": "SQRT", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.reciprocal/Reciprocal", + "type": "DIV", + "compute_unit": "CPU", + "execution_time": 21, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_1/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 7377, + "execution_cycles": 0 + }, + { + "name": "model/tf.linalg.matmul_1/MatMul", + "type": "FULLY_CONNECTED", + "compute_unit": "CPU", + "execution_time": 38, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.reshape/Reshape", + "type": "RESHAPE", + "compute_unit": "CPU", + "execution_time": 58, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.transpose_1/transpose", + "type": "TRANSPOSE", + "compute_unit": "CPU", + "execution_time": 56, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_3/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 56, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_3/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 47, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_4/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 11, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.negative/Neg", + "type": "NEG", + "compute_unit": "CPU", + "execution_time": 33, + "execution_cycles": 0 + }, + { + "name": "model/tf.concat/node_cat_3", + "type": "CONCATENATION", + "compute_unit": "CPU", + "execution_time": 35, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_4/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 39, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_3/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 54, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_1/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.reshape_1/Reshape", + "type": "RESHAPE", + "compute_unit": "CPU", + "execution_time": 36, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.transpose_2/transpose", + "type": "TRANSPOSE", + "compute_unit": "CPU", + "execution_time": 37, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_5/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 30, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_5/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 34, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_6/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 8, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.negative_1/Neg", + "type": "NEG", + "compute_unit": "CPU", + "execution_time": 31, + "execution_cycles": 0 + }, + { + "name": "model/tf.concat_1/node_cat_4", + "type": "CONCATENATION", + "compute_unit": "CPU", + "execution_time": 26, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_6/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 32, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_4/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 478, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_4/Add", + "type": "BATCH_MATMUL", + "compute_unit": "CPU", + "execution_time": 28, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_7/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 57, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_5/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 221, + "execution_cycles": 0 + }, + { + "name": "model/tf.nn.softmax/Softmax", + "type": "SOFTMAX", + "compute_unit": "CPU", + "execution_time": 50, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_2/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.reshape_2/Reshape", + "type": "RESHAPE", + "compute_unit": "CPU", + "execution_time": 121, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.transpose_3/transpose", + "type": "TRANSPOSE", + "compute_unit": "CPU", + "execution_time": 490, + "execution_cycles": 0 + }, + { + "name": "model/tf.linalg.matmul_3/MatMul", + "type": "BATCH_MATMUL", + "compute_unit": "CPU", + "execution_time": 38, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.transpose_5/transpose", + "type": "TRANSPOSE", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.reshape_3/Reshape", + "type": "RESHAPE", + "compute_unit": "CPU", + "execution_time": 3373, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_8/Mul", + "type": "FULLY_CONNECTED", + "compute_unit": "CPU", + "execution_time": 46, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_6/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 11, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_9/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.reduce_mean_1/Mean", + "type": "MEAN", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_7/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sqrt_1/Sqrt", + "type": "SQRT", + "compute_unit": "CPU", + "execution_time": 14, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.reciprocal_1/Reciprocal", + "type": "DIV", + "compute_unit": "CPU", + "execution_time": 2808, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_10/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 114, + "execution_cycles": 0 + }, + { + "name": "model/tf.linalg.matmul_5/MatMul", + "type": "FULLY_CONNECTED", + "compute_unit": "CPU", + "execution_time": 35, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sigmoid/Sigmoid", + "type": "LOGISTIC", + "compute_unit": "CPU", + "execution_time": 2541, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_12/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 40, + "execution_cycles": 0 + }, + { + "name": "model/tf.linalg.matmul_6/MatMul", + "type": "FULLY_CONNECTED", + "compute_unit": "CPU", + "execution_time": 2973, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_13/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 34, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_14/Mul", + "type": "FULLY_CONNECTED", + "compute_unit": "CPU", + "execution_time": 9, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_8/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_15/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.reduce_mean_2/Mean", + "type": "MEAN", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_9/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 13, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sqrt_2/Sqrt", + "type": "SQRT", + "compute_unit": "CPU", + "execution_time": 6883, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.reciprocal_2/Reciprocal", + "type": "DIV", + "compute_unit": "CPU", + "execution_time": 55, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_16/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.linalg.matmul_8/MatMul", + "type": "FULLY_CONNECTED", + "compute_unit": "CPU", + "execution_time": 32, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_7/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 39, + "execution_cycles": 0 + }, + { + "name": "model/tf.reshape_4/Reshape", + "type": "RESHAPE", + "compute_unit": "CPU", + "execution_time": 47, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.transpose_6/transpose", + "type": "TRANSPOSE", + "compute_unit": "CPU", + "execution_time": 47, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_18/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 11, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_10/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 27, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_11/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 26, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.negative_2/Neg", + "type": "NEG", + "compute_unit": "CPU", + "execution_time": 35, + "execution_cycles": 0 + }, + { + "name": "model/tf.concat_2/node_cat_5", + "type": "CONCATENATION", + "compute_unit": "CPU", + "execution_time": 54, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_19/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_10/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 27, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_8/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 29, + "execution_cycles": 0 + }, + { + "name": "model/tf.reshape_5/Reshape", + "type": "RESHAPE", + "compute_unit": "CPU", + "execution_time": 23, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.transpose_7/transpose", + "type": "TRANSPOSE", + "compute_unit": "CPU", + "execution_time": 46, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_20/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 11, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_12/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 27, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_13/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 25, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.negative_3/Neg", + "type": "NEG", + "compute_unit": "CPU", + "execution_time": 34, + "execution_cycles": 0 + }, + { + "name": "model/tf.concat_3/node_cat_6", + "type": "CONCATENATION", + "compute_unit": "CPU", + "execution_time": 464, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_21/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 28, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_11/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 56, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_11/Add", + "type": "BATCH_MATMUL", + "compute_unit": "CPU", + "execution_time": 190, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_22/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 48, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_12/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.nn.softmax_1/Softmax", + "type": "SOFTMAX", + "compute_unit": "CPU", + "execution_time": 82, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_9/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 439, + "execution_cycles": 0 + }, + { + "name": "model/tf.reshape_6/Reshape", + "type": "RESHAPE", + "compute_unit": "CPU", + "execution_time": 38, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.transpose_8/transpose", + "type": "TRANSPOSE", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.linalg.matmul_10/MatMul", + "type": "BATCH_MATMUL", + "compute_unit": "CPU", + "execution_time": 2771, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.transpose_10/transpose", + "type": "TRANSPOSE", + "compute_unit": "CPU", + "execution_time": 42, + "execution_cycles": 0 + }, + { + "name": "model/tf.reshape_7/Reshape", + "type": "RESHAPE", + "compute_unit": "CPU", + "execution_time": 10, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_23/Mul", + "type": "FULLY_CONNECTED", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_13/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_24/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.reduce_mean_3/Mean", + "type": "MEAN", + "compute_unit": "CPU", + "execution_time": 12, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_14/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 2271, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sqrt_3/Sqrt", + "type": "SQRT", + "compute_unit": "CPU", + "execution_time": 106, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.reciprocal_3/Reciprocal", + "type": "DIV", + "compute_unit": "CPU", + "execution_time": 23, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_25/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 2629, + "execution_cycles": 0 + }, + { + "name": "model/tf.linalg.matmul_12/MatMul", + "type": "FULLY_CONNECTED", + "compute_unit": "CPU", + "execution_time": 40, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sigmoid_1/Sigmoid", + "type": "LOGISTIC", + "compute_unit": "CPU", + "execution_time": 3052, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_27/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 42, + "execution_cycles": 0 + }, + { + "name": "model/tf.linalg.matmul_13/MatMul", + "type": "FULLY_CONNECTED", + "compute_unit": "CPU", + "execution_time": 9, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_28/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_29/Mul", + "type": "FULLY_CONNECTED", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_15/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_30/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 11, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.reduce_mean_4/Mean", + "type": "MEAN", + "compute_unit": "CPU", + "execution_time": 7863, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_16/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 46, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sqrt_4/Sqrt", + "type": "SQRT", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.reciprocal_4/Reciprocal", + "type": "DIV", + "compute_unit": "CPU", + "execution_time": 31, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_31/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 37, + "execution_cycles": 0 + }, + { + "name": "model/tf.linalg.matmul_15/MatMul", + "type": "FULLY_CONNECTED", + "compute_unit": "CPU", + "execution_time": 47, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_14/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 45, + "execution_cycles": 0 + }, + { + "name": "model/tf.reshape_8/Reshape", + "type": "RESHAPE", + "compute_unit": "CPU", + "execution_time": 11, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.transpose_11/transpose", + "type": "TRANSPOSE", + "compute_unit": "CPU", + "execution_time": 29, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_33/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 25, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_17/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 25, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_18/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 41, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.negative_4/Neg", + "type": "NEG", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.concat_4/node_cat_7", + "type": "CONCATENATION", + "compute_unit": "CPU", + "execution_time": 27, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_34/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 27, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_17/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 23, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_15/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 45, + "execution_cycles": 0 + }, + { + "name": "model/tf.reshape_9/Reshape", + "type": "RESHAPE", + "compute_unit": "CPU", + "execution_time": 10, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.transpose_12/transpose", + "type": "TRANSPOSE", + "compute_unit": "CPU", + "execution_time": 26, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_35/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 25, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_19/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 24, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_20/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 468, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.negative_5/Neg", + "type": "NEG", + "compute_unit": "CPU", + "execution_time": 21, + "execution_cycles": 0 + }, + { + "name": "model/tf.concat_5/node_cat_8", + "type": "CONCATENATION", + "compute_unit": "CPU", + "execution_time": 34, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_36/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 162, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_18/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 39, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_18/Add", + "type": "BATCH_MATMUL", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_37/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 80, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_19/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 487, + "execution_cycles": 0 + }, + { + "name": "model/tf.nn.softmax_2/Softmax", + "type": "SOFTMAX", + "compute_unit": "CPU", + "execution_time": 23, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_16/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.reshape_10/Reshape", + "type": "RESHAPE", + "compute_unit": "CPU", + "execution_time": 2890, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.transpose_13/transpose", + "type": "TRANSPOSE", + "compute_unit": "CPU", + "execution_time": 36, + "execution_cycles": 0 + }, + { + "name": "model/tf.linalg.matmul_17/MatMul", + "type": "BATCH_MATMUL", + "compute_unit": "CPU", + "execution_time": 9, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.transpose_15/transpose", + "type": "TRANSPOSE", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.reshape_11/Reshape", + "type": "RESHAPE", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_38/Mul", + "type": "FULLY_CONNECTED", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_20/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 9, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_39/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 2533, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.reduce_mean_5/Mean", + "type": "MEAN", + "compute_unit": "CPU", + "execution_time": 105, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_21/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 24, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sqrt_5/Sqrt", + "type": "SQRT", + "compute_unit": "CPU", + "execution_time": 2442, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.reciprocal_5/Reciprocal", + "type": "DIV", + "compute_unit": "CPU", + "execution_time": 30, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_40/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 2685, + "execution_cycles": 0 + }, + { + "name": "model/tf.linalg.matmul_19/MatMul", + "type": "FULLY_CONNECTED", + "compute_unit": "CPU", + "execution_time": 40, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sigmoid_2/Sigmoid", + "type": "LOGISTIC", + "compute_unit": "CPU", + "execution_time": 10, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_42/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.linalg.matmul_20/MatMul", + "type": "FULLY_CONNECTED", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_43/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_44/Mul", + "type": "FULLY_CONNECTED", + "compute_unit": "CPU", + "execution_time": 11, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_22/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 4591, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_45/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 43, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.reduce_mean_6/Mean", + "type": "MEAN", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_23/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 23, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sqrt_6/Sqrt", + "type": "SQRT", + "compute_unit": "CPU", + "execution_time": 29, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.reciprocal_6/Reciprocal", + "type": "DIV", + "compute_unit": "CPU", + "execution_time": 23, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_46/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 16, + "execution_cycles": 0 + }, + { + "name": "model/tf.linalg.matmul_22/MatMul", + "type": "FULLY_CONNECTED", + "compute_unit": "CPU", + "execution_time": 6, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_21/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 22, + "execution_cycles": 0 + }, + { + "name": "model/tf.reshape_12/Reshape", + "type": "RESHAPE", + "compute_unit": "CPU", + "execution_time": 14, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.transpose_16/transpose", + "type": "TRANSPOSE", + "compute_unit": "CPU", + "execution_time": 18, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_48/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 38, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_24/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_25/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 20, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.negative_6/Neg", + "type": "NEG", + "compute_unit": "CPU", + "execution_time": 25, + "execution_cycles": 0 + }, + { + "name": "model/tf.concat_6/node_cat_9", + "type": "CONCATENATION", + "compute_unit": "CPU", + "execution_time": 17, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_49/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 13, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_24/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 5, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_22/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 22, + "execution_cycles": 0 + }, + { + "name": "model/tf.reshape_13/Reshape", + "type": "RESHAPE", + "compute_unit": "CPU", + "execution_time": 13, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.transpose_17/transpose", + "type": "TRANSPOSE", + "compute_unit": "CPU", + "execution_time": 17, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_50/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 279, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_26/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 15, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_27/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 19, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.negative_7/Neg", + "type": "NEG", + "compute_unit": "CPU", + "execution_time": 74, + "execution_cycles": 0 + }, + { + "name": "model/tf.concat_7/node_cat_10", + "type": "CONCATENATION", + "compute_unit": "CPU", + "execution_time": 35, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_51/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_25/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 49, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_25/Add", + "type": "BATCH_MATMUL", + "compute_unit": "CPU", + "execution_time": 260, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_52/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 21, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_26/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.nn.softmax_3/Softmax", + "type": "SOFTMAX", + "compute_unit": "CPU", + "execution_time": 1462, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_23/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 28, + "execution_cycles": 0 + }, + { + "name": "model/tf.reshape_14/Reshape", + "type": "RESHAPE", + "compute_unit": "CPU", + "execution_time": 6, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.transpose_18/transpose", + "type": "TRANSPOSE", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.linalg.matmul_24/MatMul", + "type": "BATCH_MATMUL", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.transpose_20/transpose", + "type": "TRANSPOSE", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.reshape_15/Reshape", + "type": "RESHAPE", + "compute_unit": "CPU", + "execution_time": 11, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_53/Mul", + "type": "FULLY_CONNECTED", + "compute_unit": "CPU", + "execution_time": 1453, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_27/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 77, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_54/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 18, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.reduce_mean_7/Mean", + "type": "MEAN", + "compute_unit": "CPU", + "execution_time": 1439, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_28/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 24, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sqrt_7/Sqrt", + "type": "SQRT", + "compute_unit": "CPU", + "execution_time": 1683, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.reciprocal_7/Reciprocal", + "type": "DIV", + "compute_unit": "CPU", + "execution_time": 30, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_55/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 7, + "execution_cycles": 0 + }, + { + "name": "model/tf.linalg.matmul_26/MatMul", + "type": "FULLY_CONNECTED", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sigmoid_3/Sigmoid", + "type": "LOGISTIC", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_57/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.linalg.matmul_27/MatMul", + "type": "FULLY_CONNECTED", + "compute_unit": "CPU", + "execution_time": 10, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_58/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 4249, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_59/Mul", + "type": "FULLY_CONNECTED", + "compute_unit": "CPU", + "execution_time": 27, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_29/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_60/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 22, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.reduce_mean_8/Mean", + "type": "MEAN", + "compute_unit": "CPU", + "execution_time": 29, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_30/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 15, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sqrt_8/Sqrt", + "type": "SQRT", + "compute_unit": "CPU", + "execution_time": 13, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.reciprocal_8/Reciprocal", + "type": "DIV", + "compute_unit": "CPU", + "execution_time": 6, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_61/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 23, + "execution_cycles": 0 + }, + { + "name": "model/tf.linalg.matmul_29/MatMul", + "type": "FULLY_CONNECTED", + "compute_unit": "CPU", + "execution_time": 13, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_28/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 15, + "execution_cycles": 0 + }, + { + "name": "model/tf.reshape_16/Reshape", + "type": "RESHAPE", + "compute_unit": "CPU", + "execution_time": 42, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.transpose_21/transpose", + "type": "TRANSPOSE", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_63/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 20, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_31/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 26, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_32/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 20, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.negative_8/Neg", + "type": "NEG", + "compute_unit": "CPU", + "execution_time": 11, + "execution_cycles": 0 + }, + { + "name": "model/tf.concat_8/node_cat_11", + "type": "CONCATENATION", + "compute_unit": "CPU", + "execution_time": 5, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_64/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 21, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_31/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 13, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_29/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 17, + "execution_cycles": 0 + }, + { + "name": "model/tf.reshape_17/Reshape", + "type": "RESHAPE", + "compute_unit": "CPU", + "execution_time": 271, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.transpose_22/transpose", + "type": "TRANSPOSE", + "compute_unit": "CPU", + "execution_time": 15, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_65/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 18, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_33/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 69, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_34/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 33, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.negative_9/Neg", + "type": "NEG", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.concat_9/node_cat_12", + "type": "CONCATENATION", + "compute_unit": "CPU", + "execution_time": 45, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_66/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 249, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_32/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 20, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_32/Add", + "type": "BATCH_MATMUL", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_67/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 1240, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_33/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 27, + "execution_cycles": 0 + }, + { + "name": "model/tf.nn.softmax_4/Softmax", + "type": "SOFTMAX", + "compute_unit": "CPU", + "execution_time": 7, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_30/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.reshape_18/Reshape", + "type": "RESHAPE", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.transpose_23/transpose", + "type": "TRANSPOSE", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.linalg.matmul_31/MatMul", + "type": "BATCH_MATMUL", + "compute_unit": "CPU", + "execution_time": 10, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.transpose_25/transpose", + "type": "TRANSPOSE", + "compute_unit": "CPU", + "execution_time": 1183, + "execution_cycles": 0 + }, + { + "name": "model/tf.reshape_19/Reshape", + "type": "RESHAPE", + "compute_unit": "CPU", + "execution_time": 53, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_68/Mul", + "type": "FULLY_CONNECTED", + "compute_unit": "CPU", + "execution_time": 15, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_34/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 1171, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_69/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 23, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.reduce_mean_9/Mean", + "type": "MEAN", + "compute_unit": "CPU", + "execution_time": 1167, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_35/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 26, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sqrt_9/Sqrt", + "type": "SQRT", + "compute_unit": "CPU", + "execution_time": 6, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.reciprocal_9/Reciprocal", + "type": "DIV", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_70/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.linalg.matmul_33/MatMul", + "type": "FULLY_CONNECTED", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sigmoid_4/Sigmoid", + "type": "LOGISTIC", + "compute_unit": "CPU", + "execution_time": 11, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_72/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 3506, + "execution_cycles": 0 + }, + { + "name": "model/tf.linalg.matmul_34/MatMul", + "type": "FULLY_CONNECTED", + "compute_unit": "CPU", + "execution_time": 26, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_73/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_74/Mul", + "type": "FULLY_CONNECTED", + "compute_unit": "CPU", + "execution_time": 23, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_36/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 29, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_75/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 17, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.reduce_mean_10/Mean", + "type": "MEAN", + "compute_unit": "CPU", + "execution_time": 11, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_37/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 6, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sqrt_10/Sqrt", + "type": "SQRT", + "compute_unit": "CPU", + "execution_time": 19, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.reciprocal_10/Reciprocal", + "type": "DIV", + "compute_unit": "CPU", + "execution_time": 14, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_76/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 18, + "execution_cycles": 0 + }, + { + "name": "model/tf.linalg.matmul_36/MatMul", + "type": "FULLY_CONNECTED", + "compute_unit": "CPU", + "execution_time": 39, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_35/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.reshape_20/Reshape", + "type": "RESHAPE", + "compute_unit": "CPU", + "execution_time": 22, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.transpose_26/transpose", + "type": "TRANSPOSE", + "compute_unit": "CPU", + "execution_time": 28, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_78/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 16, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_38/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 10, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_39/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 5, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.negative_10/Neg", + "type": "NEG", + "compute_unit": "CPU", + "execution_time": 25, + "execution_cycles": 0 + }, + { + "name": "model/tf.concat_10/node_cat_13", + "type": "CONCATENATION", + "compute_unit": "CPU", + "execution_time": 12, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_79/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 16, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_38/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 270, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_36/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 18, + "execution_cycles": 0 + }, + { + "name": "model/tf.reshape_21/Reshape", + "type": "RESHAPE", + "compute_unit": "CPU", + "execution_time": 21, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.transpose_27/transpose", + "type": "TRANSPOSE", + "compute_unit": "CPU", + "execution_time": 72, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_80/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 34, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_40/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_41/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 41, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.negative_11/Neg", + "type": "NEG", + "compute_unit": "CPU", + "execution_time": 250, + "execution_cycles": 0 + }, + { + "name": "model/tf.concat_11/node_cat_14", + "type": "CONCATENATION", + "compute_unit": "CPU", + "execution_time": 21, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_81/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_39/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 1217, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_39/Add", + "type": "BATCH_MATMUL", + "compute_unit": "CPU", + "execution_time": 28, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_82/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 6, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_40/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.nn.softmax_5/Softmax", + "type": "SOFTMAX", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_37/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.reshape_22/Reshape", + "type": "RESHAPE", + "compute_unit": "CPU", + "execution_time": 11, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.transpose_28/transpose", + "type": "TRANSPOSE", + "compute_unit": "CPU", + "execution_time": 1165, + "execution_cycles": 0 + }, + { + "name": "model/tf.linalg.matmul_38/MatMul", + "type": "BATCH_MATMUL", + "compute_unit": "CPU", + "execution_time": 60, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.transpose_30/transpose", + "type": "TRANSPOSE", + "compute_unit": "CPU", + "execution_time": 14, + "execution_cycles": 0 + }, + { + "name": "model/tf.reshape_23/Reshape", + "type": "RESHAPE", + "compute_unit": "CPU", + "execution_time": 1171, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_83/Mul", + "type": "FULLY_CONNECTED", + "compute_unit": "CPU", + "execution_time": 24, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_41/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 1185, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_84/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 25, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.reduce_mean_11/Mean", + "type": "MEAN", + "compute_unit": "CPU", + "execution_time": 7, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_42/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sqrt_11/Sqrt", + "type": "SQRT", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.reciprocal_11/Reciprocal", + "type": "DIV", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_85/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 12, + "execution_cycles": 0 + }, + { + "name": "model/tf.linalg.matmul_40/MatMul", + "type": "FULLY_CONNECTED", + "compute_unit": "CPU", + "execution_time": 3529, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sigmoid_5/Sigmoid", + "type": "LOGISTIC", + "compute_unit": "CPU", + "execution_time": 28, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_87/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.linalg.matmul_41/MatMul", + "type": "FULLY_CONNECTED", + "compute_unit": "CPU", + "execution_time": 24, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_88/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 31, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_89/Mul", + "type": "FULLY_CONNECTED", + "compute_unit": "CPU", + "execution_time": 14, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_43/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 11, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_90/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 5, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.reduce_mean_12/Mean", + "type": "MEAN", + "compute_unit": "CPU", + "execution_time": 21, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_44/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 13, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sqrt_12/Sqrt", + "type": "SQRT", + "compute_unit": "CPU", + "execution_time": 16, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.reciprocal_12/Reciprocal", + "type": "DIV", + "compute_unit": "CPU", + "execution_time": 39, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_91/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.linalg.matmul_43/MatMul", + "type": "FULLY_CONNECTED", + "compute_unit": "CPU", + "execution_time": 22, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_42/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 26, + "execution_cycles": 0 + }, + { + "name": "model/tf.reshape_24/Reshape", + "type": "RESHAPE", + "compute_unit": "CPU", + "execution_time": 15, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.transpose_31/transpose", + "type": "TRANSPOSE", + "compute_unit": "CPU", + "execution_time": 11, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_93/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 4, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_45/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 22, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_46/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 12, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.negative_12/Neg", + "type": "NEG", + "compute_unit": "CPU", + "execution_time": 16, + "execution_cycles": 0 + }, + { + "name": "model/tf.concat_12/node_cat_15", + "type": "CONCATENATION", + "compute_unit": "CPU", + "execution_time": 264, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_94/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 18, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_45/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 19, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_43/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 70, + "execution_cycles": 0 + }, + { + "name": "model/tf.reshape_25/Reshape", + "type": "RESHAPE", + "compute_unit": "CPU", + "execution_time": 31, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.transpose_32/transpose", + "type": "TRANSPOSE", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_95/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 42, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_47/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 241, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_48/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 20, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.negative_13/Neg", + "type": "NEG", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.concat_13/node_cat_16", + "type": "CONCATENATION", + "compute_unit": "CPU", + "execution_time": 1192, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_96/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 27, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_46/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 6, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_46/Add", + "type": "BATCH_MATMUL", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_97/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_47/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.nn.softmax_6/Softmax", + "type": "SOFTMAX", + "compute_unit": "CPU", + "execution_time": 10, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_44/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 1162, + "execution_cycles": 0 + }, + { + "name": "model/tf.reshape_26/Reshape", + "type": "RESHAPE", + "compute_unit": "CPU", + "execution_time": 48, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.transpose_33/transpose", + "type": "TRANSPOSE", + "compute_unit": "CPU", + "execution_time": 13, + "execution_cycles": 0 + }, + { + "name": "model/tf.linalg.matmul_45/MatMul", + "type": "BATCH_MATMUL", + "compute_unit": "CPU", + "execution_time": 1165, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.transpose_35/transpose", + "type": "TRANSPOSE", + "compute_unit": "CPU", + "execution_time": 25, + "execution_cycles": 0 + }, + { + "name": "model/tf.reshape_27/Reshape", + "type": "RESHAPE", + "compute_unit": "CPU", + "execution_time": 1180, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_98/Mul", + "type": "FULLY_CONNECTED", + "compute_unit": "CPU", + "execution_time": 25, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_48/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 7, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_99/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.reduce_mean_13/Mean", + "type": "MEAN", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_49/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sqrt_13/Sqrt", + "type": "SQRT", + "compute_unit": "CPU", + "execution_time": 12, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.reciprocal_13/Reciprocal", + "type": "DIV", + "compute_unit": "CPU", + "execution_time": 3492, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_100/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 24, + "execution_cycles": 0 + }, + { + "name": "model/tf.linalg.matmul_47/MatMul", + "type": "FULLY_CONNECTED", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sigmoid_6/Sigmoid", + "type": "LOGISTIC", + "compute_unit": "CPU", + "execution_time": 24, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_102/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 29, + "execution_cycles": 0 + }, + { + "name": "model/tf.linalg.matmul_48/MatMul", + "type": "FULLY_CONNECTED", + "compute_unit": "CPU", + "execution_time": 16, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_103/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 11, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_104/Mul", + "type": "FULLY_CONNECTED", + "compute_unit": "CPU", + "execution_time": 5, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_50/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 22, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_105/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 13, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.reduce_mean_14/Mean", + "type": "MEAN", + "compute_unit": "CPU", + "execution_time": 18, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_51/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 36, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sqrt_14/Sqrt", + "type": "SQRT", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.reciprocal_14/Reciprocal", + "type": "DIV", + "compute_unit": "CPU", + "execution_time": 22, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_106/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 27, + "execution_cycles": 0 + }, + { + "name": "model/tf.linalg.matmul_50/MatMul", + "type": "FULLY_CONNECTED", + "compute_unit": "CPU", + "execution_time": 15, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_49/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 10, + "execution_cycles": 0 + }, + { + "name": "model/tf.reshape_28/Reshape", + "type": "RESHAPE", + "compute_unit": "CPU", + "execution_time": 5, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.transpose_36/transpose", + "type": "TRANSPOSE", + "compute_unit": "CPU", + "execution_time": 23, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_108/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 13, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_52/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 17, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_53/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 264, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.negative_14/Neg", + "type": "NEG", + "compute_unit": "CPU", + "execution_time": 16, + "execution_cycles": 0 + }, + { + "name": "model/tf.concat_14/node_cat_17", + "type": "CONCATENATION", + "compute_unit": "CPU", + "execution_time": 37, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_109/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 73, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_52/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_50/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 27, + "execution_cycles": 0 + }, + { + "name": "model/tf.reshape_29/Reshape", + "type": "RESHAPE", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.transpose_37/transpose", + "type": "TRANSPOSE", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_110/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_54/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_55/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.negative_15/Neg", + "type": "NEG", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.concat_15/node_cat_18", + "type": "CONCATENATION", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_111/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_53/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_53/Add", + "type": "BATCH_MATMUL", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_112/Mul", + "type": "MUL", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_54/Add", + "type": "ADD", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.nn.softmax_7/Softmax", + "type": "SOFTMAX", + "compute_unit": "GPU", + "execution_time": 97, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_51/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.reshape_30/Reshape", + "type": "RESHAPE", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.transpose_38/transpose", + "type": "TRANSPOSE", + "compute_unit": "CPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.linalg.matmul_52/MatMul", + "type": "BATCH_MATMUL", + "compute_unit": "GPU", + "execution_time": 113, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.transpose_40/transpose", + "type": "TRANSPOSE", + "compute_unit": "GPU", + "execution_time": 17, + "execution_cycles": 0 + }, + { + "name": "model/tf.reshape_31/Reshape", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 17, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_113/Mul", + "type": "FULLY_CONNECTED", + "compute_unit": "GPU", + "execution_time": 540, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_55/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_114/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 8, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.reduce_mean_15/Mean", + "type": "MEAN", + "compute_unit": "GPU", + "execution_time": 49, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_56/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sqrt_15/Sqrt", + "type": "SQRT", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.reciprocal_15/Reciprocal", + "type": "DIV", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_115/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 6, + "execution_cycles": 0 + }, + { + "name": "model/tf.linalg.matmul_54/MatMul", + "type": "FULLY_CONNECTED", + "compute_unit": "GPU", + "execution_time": 512, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sigmoid_7/Sigmoid", + "type": "LOGISTIC", + "compute_unit": "GPU", + "execution_time": 16, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_117/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.linalg.matmul_55/MatMul", + "type": "FULLY_CONNECTED", + "compute_unit": "GPU", + "execution_time": 520, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_118/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_119/Mul", + "type": "FULLY_CONNECTED", + "compute_unit": "GPU", + "execution_time": 526, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_57/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_120/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 8, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.reduce_mean_16/Mean", + "type": "MEAN", + "compute_unit": "GPU", + "execution_time": 49, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_58/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sqrt_16/Sqrt", + "type": "SQRT", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.reciprocal_16/Reciprocal", + "type": "DIV", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_121/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 6, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_59/Add", + "type": "FULLY_CONNECTED", + "compute_unit": "GPU", + "execution_time": 513, + "execution_cycles": 0 + }, + { + "name": "model/tf.nn.conv1d_transpose/conv1d_transpose/ExpandDims", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.nn.conv1d_transpose/conv1d_transpose", + "type": "TRANSPOSE_CONV", + "compute_unit": "GPU", + "execution_time": 1955, + "execution_cycles": 0 + }, + { + "name": "model/tf.nn.conv1d_transpose/conv1d_transpose/Squeeze", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.pad_1/Pad", + "type": "PAD", + "compute_unit": "GPU", + "execution_time": 39, + "execution_cycles": 0 + }, + { + "name": "model/node_conv1d_1/ExpandDims", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/node_conv1d_1/depthwise", + "type": "DEPTHWISE_CONV_2D", + "compute_unit": "GPU", + "execution_time": 66, + "execution_cycles": 0 + }, + { + "name": "model/node_conv1d_1/Squeeze", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.reduce_mean_17/Mean", + "type": "MEAN", + "compute_unit": "GPU", + "execution_time": 37, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.squared_difference/SquaredDifference", + "type": "SQUARED_DIFFERENCE", + "compute_unit": "GPU", + "execution_time": 41, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.reduce_mean_18/Mean", + "type": "MEAN", + "compute_unit": "GPU", + "execution_time": 35, + "execution_cycles": 0 + }, + { + "name": "model/tf.__operators__.add/AddV2", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.rsqrt/Rsqrt", + "type": "RSQRT", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_123/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 13, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_124/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 107, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_125/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 99, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.subtract/Sub", + "type": "SUB", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.__operators__.add_1/AddV2", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_62/Add", + "type": "FULLY_CONNECTED", + "compute_unit": "GPU", + "execution_time": 8295, + "execution_cycles": 0 + }, + { + "name": "model/tf.nn.gelu/Gelu/Erfc", + "type": "GELU", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_63/Add", + "type": "FULLY_CONNECTED", + "compute_unit": "GPU", + "execution_time": 9257, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_64/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.nn.conv1d_transpose_1/conv1d_transpose/ExpandDims", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.nn.conv1d_transpose_1/conv1d_transpose", + "type": "TRANSPOSE_CONV", + "compute_unit": "GPU", + "execution_time": 3953, + "execution_cycles": 0 + }, + { + "name": "model/tf.nn.conv1d_transpose_1/conv1d_transpose/Squeeze", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.pad_2/Pad", + "type": "PAD", + "compute_unit": "GPU", + "execution_time": 98, + "execution_cycles": 0 + }, + { + "name": "model/node_conv1d_2/ExpandDims", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/node_conv1d_2/depthwise", + "type": "DEPTHWISE_CONV_2D", + "compute_unit": "GPU", + "execution_time": 133, + "execution_cycles": 0 + }, + { + "name": "model/node_conv1d_2/Squeeze", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.reduce_mean_19/Mean", + "type": "MEAN", + "compute_unit": "GPU", + "execution_time": 83, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.squared_difference_1/SquaredDifference", + "type": "SQUARED_DIFFERENCE", + "compute_unit": "GPU", + "execution_time": 89, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.reduce_mean_20/Mean", + "type": "MEAN", + "compute_unit": "GPU", + "execution_time": 86, + "execution_cycles": 0 + }, + { + "name": "model/tf.__operators__.add_2/AddV2", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.rsqrt_1/Rsqrt", + "type": "RSQRT", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_126/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 32, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_127/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 194, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_128/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 167, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.subtract_1/Sub", + "type": "SUB", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.__operators__.add_3/AddV2", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_67/Add", + "type": "FULLY_CONNECTED", + "compute_unit": "GPU", + "execution_time": 15133, + "execution_cycles": 0 + }, + { + "name": "model/tf.nn.gelu_1/Gelu/Erfc", + "type": "GELU", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_68/Add", + "type": "FULLY_CONNECTED", + "compute_unit": "GPU", + "execution_time": 16718, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_69/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.pad_3/Pad", + "type": "PAD", + "compute_unit": "GPU", + "execution_time": 88, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_1/DynamicConv1D/ExpandDims", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_1/DynamicConv1D", + "type": "CONV_2D", + "compute_unit": "GPU", + "execution_time": 45349, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_1/DynamicConv1D/Squeeze", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_129/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 143, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sin/Sin", + "type": "SIN", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_130/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_131/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_71/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.nn.conv1d_transpose_2/conv1d_transpose/ExpandDims", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.nn.conv1d_transpose_2/conv1d_transpose", + "type": "TRANSPOSE_CONV", + "compute_unit": "GPU", + "execution_time": 429300, + "execution_cycles": 0 + }, + { + "name": "model/tf.nn.conv1d_transpose_2/conv1d_transpose/Squeeze", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_56/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "GPU", + "execution_time": 643, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_132/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 674, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sin_1/Sin", + "type": "SIN", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_133/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_134/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_73/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.pad_4/Pad", + "type": "PAD", + "compute_unit": "GPU", + "execution_time": 680, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_2/DynamicConv1D/ExpandDims", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_2/DynamicConv1D", + "type": "CONV_2D", + "compute_unit": "GPU", + "execution_time": 106806, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_2/DynamicConv1D/Squeeze", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_135/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 646, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sin_2/Sin", + "type": "SIN", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_136/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_137/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_75/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_3/DynamicConv1D/ExpandDims", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_3/DynamicConv1D", + "type": "CONV_2D", + "compute_unit": "GPU", + "execution_time": 15564, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_3/DynamicConv1D/Squeeze", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_77/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_138/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 650, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sin_3/Sin", + "type": "SIN", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_139/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_140/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_78/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.pad_5/Pad", + "type": "PAD", + "compute_unit": "GPU", + "execution_time": 677, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_4/DynamicConv1D/ExpandDims", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_4/DynamicConv1D", + "type": "CONV_2D", + "compute_unit": "GPU", + "execution_time": 106775, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_4/DynamicConv1D/Squeeze", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_141/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 639, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sin_4/Sin", + "type": "SIN", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_142/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_143/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_80/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_5/DynamicConv1D/ExpandDims", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_5/DynamicConv1D", + "type": "CONV_2D", + "compute_unit": "GPU", + "execution_time": 15614, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_5/DynamicConv1D/Squeeze", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_82/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_144/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 653, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sin_5/Sin", + "type": "SIN", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_145/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_146/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_83/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.pad_6/Pad", + "type": "PAD", + "compute_unit": "GPU", + "execution_time": 740, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_6/DynamicConv1D/ExpandDims", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_6/DynamicConv1D", + "type": "CONV_2D", + "compute_unit": "GPU", + "execution_time": 106701, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_6/DynamicConv1D/Squeeze", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_147/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 647, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sin_6/Sin", + "type": "SIN", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_148/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_149/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_85/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_7/DynamicConv1D/ExpandDims", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_7/DynamicConv1D", + "type": "CONV_2D", + "compute_unit": "GPU", + "execution_time": 15604, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_7/DynamicConv1D/Squeeze", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_87/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_150/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 651, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sin_7/Sin", + "type": "SIN", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_151/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_152/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_88/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.nn.conv1d_transpose_3/conv1d_transpose/ExpandDims", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.nn.conv1d_transpose_3/conv1d_transpose", + "type": "TRANSPOSE_CONV", + "compute_unit": "GPU", + "execution_time": 296092, + "execution_cycles": 0 + }, + { + "name": "model/tf.nn.conv1d_transpose_3/conv1d_transpose/Squeeze", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_57/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "GPU", + "execution_time": 1657, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_153/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 1687, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sin_8/Sin", + "type": "SIN", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_154/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_155/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_90/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.pad_7/Pad", + "type": "PAD", + "compute_unit": "GPU", + "execution_time": 1752, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_8/DynamicConv1D/ExpandDims", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_8/DynamicConv1D", + "type": "CONV_2D", + "compute_unit": "GPU", + "execution_time": 133104, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_8/DynamicConv1D/Squeeze", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_156/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 1658, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sin_9/Sin", + "type": "SIN", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_157/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_158/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_92/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_9/DynamicConv1D/ExpandDims", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_9/DynamicConv1D", + "type": "CONV_2D", + "compute_unit": "GPU", + "execution_time": 19564, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_9/DynamicConv1D/Squeeze", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_94/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_159/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 1658, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sin_10/Sin", + "type": "SIN", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_160/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_161/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_95/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.pad_8/Pad", + "type": "PAD", + "compute_unit": "GPU", + "execution_time": 1687, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_10/DynamicConv1D/ExpandDims", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_10/DynamicConv1D", + "type": "CONV_2D", + "compute_unit": "GPU", + "execution_time": 132728, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_10/DynamicConv1D/Squeeze", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_162/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 1649, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sin_11/Sin", + "type": "SIN", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_163/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_164/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_97/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_11/DynamicConv1D/ExpandDims", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_11/DynamicConv1D", + "type": "CONV_2D", + "compute_unit": "GPU", + "execution_time": 19664, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_11/DynamicConv1D/Squeeze", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_99/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_165/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 1678, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sin_12/Sin", + "type": "SIN", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_166/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_167/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_100/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.pad_9/Pad", + "type": "PAD", + "compute_unit": "GPU", + "execution_time": 1719, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_12/DynamicConv1D/ExpandDims", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_12/DynamicConv1D", + "type": "CONV_2D", + "compute_unit": "GPU", + "execution_time": 132352, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_12/DynamicConv1D/Squeeze", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_168/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 1656, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sin_13/Sin", + "type": "SIN", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_169/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_170/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_102/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_13/DynamicConv1D/ExpandDims", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_13/DynamicConv1D", + "type": "CONV_2D", + "compute_unit": "GPU", + "execution_time": 19533, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_13/DynamicConv1D/Squeeze", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_104/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_171/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 1661, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sin_14/Sin", + "type": "SIN", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_172/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_173/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_105/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.nn.conv1d_transpose_4/conv1d_transpose/ExpandDims", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.nn.conv1d_transpose_4/conv1d_transpose", + "type": "TRANSPOSE_CONV", + "compute_unit": "GPU", + "execution_time": 145427, + "execution_cycles": 0 + }, + { + "name": "model/tf.nn.conv1d_transpose_4/conv1d_transpose/Squeeze", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_58/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "GPU", + "execution_time": 3348, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_174/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 3404, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sin_15/Sin", + "type": "SIN", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_175/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_176/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_107/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.pad_10/Pad", + "type": "PAD", + "compute_unit": "GPU", + "execution_time": 3369, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_14/DynamicConv1D/ExpandDims", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_14/DynamicConv1D", + "type": "CONV_2D", + "compute_unit": "GPU", + "execution_time": 149786, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_14/DynamicConv1D/Squeeze", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_177/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 3343, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sin_16/Sin", + "type": "SIN", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_178/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_179/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_109/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_15/DynamicConv1D/ExpandDims", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_15/DynamicConv1D", + "type": "CONV_2D", + "compute_unit": "GPU", + "execution_time": 20845, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_15/DynamicConv1D/Squeeze", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_111/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_180/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 3343, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sin_17/Sin", + "type": "SIN", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_181/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_182/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_112/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.pad_11/Pad", + "type": "PAD", + "compute_unit": "GPU", + "execution_time": 3354, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_16/DynamicConv1D/ExpandDims", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_16/DynamicConv1D", + "type": "CONV_2D", + "compute_unit": "GPU", + "execution_time": 149200, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_16/DynamicConv1D/Squeeze", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_183/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 3380, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sin_18/Sin", + "type": "SIN", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_184/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_185/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_114/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_17/DynamicConv1D/ExpandDims", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_17/DynamicConv1D", + "type": "CONV_2D", + "compute_unit": "GPU", + "execution_time": 20997, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_17/DynamicConv1D/Squeeze", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_116/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_186/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 3354, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sin_19/Sin", + "type": "SIN", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_187/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_188/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_117/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.pad_12/Pad", + "type": "PAD", + "compute_unit": "GPU", + "execution_time": 3354, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_18/DynamicConv1D/ExpandDims", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_18/DynamicConv1D", + "type": "CONV_2D", + "compute_unit": "GPU", + "execution_time": 149704, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_18/DynamicConv1D/Squeeze", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_189/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 3340, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sin_20/Sin", + "type": "SIN", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_190/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_191/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_119/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_19/DynamicConv1D/ExpandDims", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_19/DynamicConv1D", + "type": "CONV_2D", + "compute_unit": "GPU", + "execution_time": 20866, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_19/DynamicConv1D/Squeeze", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_121/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_192/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 3344, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sin_21/Sin", + "type": "SIN", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_193/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_194/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_122/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.nn.conv1d_transpose_5/conv1d_transpose/ExpandDims", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.nn.conv1d_transpose_5/conv1d_transpose", + "type": "TRANSPOSE_CONV", + "compute_unit": "GPU", + "execution_time": 77978, + "execution_cycles": 0 + }, + { + "name": "model/tf.nn.conv1d_transpose_5/conv1d_transpose/Squeeze", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_59/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "GPU", + "execution_time": 5028, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_195/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 5022, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sin_22/Sin", + "type": "SIN", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_196/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_197/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_124/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.pad_13/Pad", + "type": "PAD", + "compute_unit": "GPU", + "execution_time": 5114, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_20/DynamicConv1D/ExpandDims", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_20/DynamicConv1D", + "type": "CONV_2D", + "compute_unit": "GPU", + "execution_time": 110860, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_20/DynamicConv1D/Squeeze", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_198/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 5031, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sin_23/Sin", + "type": "SIN", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_199/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_200/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_126/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_21/DynamicConv1D/ExpandDims", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_21/DynamicConv1D", + "type": "CONV_2D", + "compute_unit": "GPU", + "execution_time": 16858, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_21/DynamicConv1D/Squeeze", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_128/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_201/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 5033, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sin_24/Sin", + "type": "SIN", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_202/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_203/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_129/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.pad_14/Pad", + "type": "PAD", + "compute_unit": "GPU", + "execution_time": 5094, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_22/DynamicConv1D/ExpandDims", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_22/DynamicConv1D", + "type": "CONV_2D", + "compute_unit": "GPU", + "execution_time": 111033, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_22/DynamicConv1D/Squeeze", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_204/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 5031, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sin_25/Sin", + "type": "SIN", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_205/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_206/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_131/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_23/DynamicConv1D/ExpandDims", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_23/DynamicConv1D", + "type": "CONV_2D", + "compute_unit": "GPU", + "execution_time": 16832, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_23/DynamicConv1D/Squeeze", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_133/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_207/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 5008, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sin_26/Sin", + "type": "SIN", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_208/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_209/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_134/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.pad_15/Pad", + "type": "PAD", + "compute_unit": "GPU", + "execution_time": 5063, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_24/DynamicConv1D/ExpandDims", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_24/DynamicConv1D", + "type": "CONV_2D", + "compute_unit": "GPU", + "execution_time": 110983, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_24/DynamicConv1D/Squeeze", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_210/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 5024, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sin_27/Sin", + "type": "SIN", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_211/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_212/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_136/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_25/DynamicConv1D/ExpandDims", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_25/DynamicConv1D", + "type": "CONV_2D", + "compute_unit": "GPU", + "execution_time": 16846, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_25/DynamicConv1D/Squeeze", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_138/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_213/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 5028, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.sin_28/Sin", + "type": "SIN", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_214/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.multiply_215/Mul", + "type": "MUL", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.math.add_139/Add", + "type": "ADD", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.pad_16/Pad", + "type": "PAD", + "compute_unit": "GPU", + "execution_time": 5112, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_26/DynamicConv1D/ExpandDims", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 0, + "execution_cycles": 0 + }, + { + "name": "model/dynamic_conv1d_26/DynamicConv1D", + "type": "CONV_2D", + "compute_unit": "GPU", + "execution_time": 2507, + "execution_cycles": 0 + }, + { + "name": "model/tf.compat.v1.transpose_41/transpose", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 134, + "execution_cycles": 0 + }, + { + "name": "model/tf.strided_slice_60/StridedSlice", + "type": "STRIDED_SLICE", + "compute_unit": "GPU", + "execution_time": 93, + "execution_cycles": 0 + }, + { + "name": "output_0", + "type": "RESHAPE", + "compute_unit": "GPU", + "execution_time": 188, + "execution_cycles": 0 + } + ] + } +} diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/sa8775p/cpu_control/device_output.npz b/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/sa8775p/cpu_control/device_output.npz new file mode 100644 index 0000000000000000000000000000000000000000..ca0d3d6bc774b99f70152ce4b4344e217d3e4b41 GIT binary patch literal 179497 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 RAJ{AWk}bs0P~mn&|#NN z%39rs`jjY=aQHvscI8F6z^V?KJyQ)k{7o>WbOo+d-i-c@Cvm666YOCf_*1?X(_ehR zsyk9lAblLW^0o(g+3mP9<_9VX^x?_E>u9Q0h*c^fxT&jyS{D#>JZy{StD^a}ne`+% z_a^E0{>jTc!Y4FU3YG~805@kI?4xF&?U6&gQd-H%5d#?Ta)jXqMYx&zj5usi1)i)0 zxcDyt=a?ms`P&DA$~MF0p4AZeIU0J!j=|~^A+T#tApAJ#3F%sk;Otl?%nq3XDYk<& z6=g8|`jlKhA`6>77(?H6J>dL>VUl|f5tyb254Xs{jE(Z}d72uyD5nsQsf$R%v;x9f zyh(Au2Y%KhK27=hmi8M<;rc#6jq2q%Ju(&z+sknFwhF8izmAQAEjU?oJX_xR9ed_I zLCdIWtX};dH{KdRgJ(BU4018#UnuS>eoK#^n~iz78<0IRp`+i1i1MBma>_xPRGvCc znqLdTP|*0X|GolNniDXsiy|v;oFmms6d>i82?Q*XgJ7Ri#B%2a^2tOINjj`08VL_+mo<*$$`^b zV-R{Q4VGsoLgvItaJFNZ81GYrr$?-y=yeybzAtJOp-;xv(y6(&QmJNYdE z;j~3Bn_34q(>48O*qGyqwq22EnVpOFGcKW1Trt)MzeiJ(Z+J)G5f)Td;>+5H=uy&x zm3~#Y`$ii6c@&2wuT=1t(FDwAfvCAl2H8(lB5>#s+4C}z_eV#Fw@*uwOqgX!gtc0T zqJao#^?c(wvm*XgiB-g^kWU_qWRimBBjn^nA+jjim0VH~hoGfq5E&s4%RRKg^0^so zY;y$#uMh}+7Y;i^_dxG`Z|Gm)1#Jr3Am`CM$l0+Pl9z9U!EY+ioiqV5VzeP-KplJz z>Vs*sGNcWR5b9AyqRPfW-c26-v;0oN>SD-|8)t}fR0*-Ya-1wFFd_|G3d#o78`6CR z`7}^Bmgc>?Ms>~^Vf&yxdd{@Ro>*T@d>4nEFArf<>RGg0`505pC>Cp-K;zNlxGk>` zdq*E)Zb&qmt_eYIg$thPKTi#8wQ_=UL}%hfNpQl<<|QgvJeeDd7`+v;Q3}TQf>OWG}(N%rKm^b_I^iJb_A;c}S0hS8zw4=M)JEDA?n2)!T|s?5_t0v|Qrdg(GH=r= zSz>DTkoTz4jBI=Vk{nAmhJavW81h*JVGiqI#|Cfkmkfj9FWbRk?MAq_-v<0EO3Q3)iePDhC!eMib%1mWk>4`eVy z66W1k0mUh=h)4Vz!dK}gu`xHu+PyAh>q|@i`U4mFDu>6>_V^5{;rNmI`%9yJo;9X8 z&cT{>i_kyI9o=+~;O|d4xa^jK;4M83?Ay(ut5*_&rbt7Uhagnv*AkH@??~U{i{z01Uh)mniMe|r(VbF7MHfB0nd8I9X3fgR#<__$RDPiu){@KjCAuQJAw@UfKZBp9bLX~%6{F{;yr&7DWs!fj zh01bCG$6nL4+|~C2h~of^u!DWY-CZccnbFAPRFbRBG@>ujZU=Dqod$i{>)p1KKi`U z*7m_g60vcBD1YuD9%sK1$LW$V^SLR6zc7cFb^74qVF>o;C7|b~Aaop82K6%%kZjOH zf<5jN?d9Kzs-7rZ=o}(Om69OZE(M(11TcKz1l?*2VP*6j(7s>=-aW?f_@^5fR-41Y z86)KIt3G1X{fR8vdW2|u_3=3G!#u6UX}nEuoA{m?zO+UBGk@rO9F5zQM}0R%(udtI z=xF~%Y8!Bdir;p`!Z;mNeszm>JgcR_+m%rGrW#(Z)6^o<50Uv99^osaWXDN;XQg7b5aSN;tkQl zdM>t{P(hE*i_~`+(!T?tR7ypJeh663uMU__ELWZ-w|>@=AGaS6XW#ckdg)})SU3yv zHp{{AaskkNrU>n2YM?wg=FQvx5MI_}qW+%{czS&#pNGDY@RfhaP@n`5@u`p}Wee}q zogsIr8|WWc53cRuQ2c2#ESvKm#3^lq)IH0g>6Z=kB+Y}AA4*{8{+!&soI^_3Orq2J zg4Z5(fp2&89lwg_K{p77Q;{?8>7&sL^x@AtH09+8ZGQiY<~>@8-%Iq-OIZ<*4{{jd zFN`~mNaI73Ww=ty6y>!mY5VkSD*tdCZun-2OB`Ei_`-`cqhKQH9H^wi&&AO0t_8w= zRs7kkfYk?NaoP4DT%E8Pf1kF-(_8JaJIxNWYM0=|@v@aRS|qfw0Uf9Ly^ALqNnf(0#Fa%z1W!t<4c2>jUA} zMN9B(w1H*+=|k&xSqRvSq{>~3n4~BWa|1hmCuhXJFIUPh<`vPTl}D(~e}PovY77mm zyi7ff9?%6pc2WzG3-nf+KE^-R#NUbEsG7!joN-wODv-B~+!v-G`HH@0N5cfGA#LH^l7}(*A z9%gfJo1isTnsS)qZHt{dTWHu&9+fgGpxjYsDs>>9|L~IriIX`&oGMa@@q@2KW1b{L zT`>VtumFxY*u$=FcZi&^6g&$TL)y%BV5+hd%9C8cIB)?3jkAKBKeItm!4Y2loCX^4 zV_o)cK5(f3PPGdl-*X|iXrvm@@Zu+Fb$&rUhhHNN zPl8CVpdH!7)XFnXsPorbf8iVI&Z0IB$~0w$7v?aipAyae;@reRJkpiIkbwD_Qi*7OH$ zNy(t2*X?LXuL=!oT*o_}9!lyT7nAJQVo>9y2PVsuc=O*I$icoVG4ll$k+I_B5#NGlJy!1psAk&~eTlO0ry_ zawiW~Uz`IccMz})HiX7AhVWHP0PN$ws`#F{i!|0 zH@mQgR!@Jy|8d%uPLKP--*I&Tzd0_0%Jfw5;~rn2cDZFV!l;_c?bbmd@x^FsCW`WZ z+vrW3S?KlJ0w0EN!1k#^__NOh9~YZo(yng0En*p_o-o7m>xJ}Gzsi_H>7s|EA!ZL* zV^W(a4sCbAF)P7Q2Y-C#ydOi9H=rVaF^)#KpupLMs1k0DA0LRK__A|U*kTt=%K&Po zvx@htYa@AFQA|d7KS|PMIT%Qr0uC-#km)lMEXOa0*hRC!aN<;mGPQ#HZw#Py*_a0l zPJl_LG+|8(0mWk~@aTdz$gVMk$?r6w<;Yl`LmlDl&fR(yAA;sdz^mZ>#4~ z(xm!|*!RnU?^Z(?khKHTtxm9P(JZL#F^8B_8nAr11{|mrfR%L*$X(rMgtl#-u+Y*LN_OY~QPPBwXj!n7drDGgJR*mL zu9LU5%Slg~E6E$(L^ebu5y4O4B&~Nk;r3<`YJZZ9)}@n*=JBv!emA*(GL}fo6cQKZ zAX5IPl-IsZn16QtW}d+NEMAia@Dv|J@mHQ`;rlJvQ9eJ>jplz5M-M9_9H*|1{%*$T zDzpN}KbwMD9YQ!HqKm&Pgt0*47;T-NL(e%G(Z{O$sK=GLbe!x=DscBD%~C@8VS)e} zs2E`KTvtpzwI2IaqHyP`lelf-8SK+Ngn3HwSafF(N@y%VZmKozomNjDbu6QEj{e6N zM>*0V6ie1E`$S$y_LHvEY9bfbP7YtXOj3NVkW`Zx5^ZEi(zLBeXSO*Ju#X{SU(<+F za6OUt6ouW{3b4A`0sQ6Gg7Z=z5D?u2@3~DdxM|CC8SKXQ>Ce?t6KzN?!dRhX7!q>@4DF0dx_sEY!$F+JGS3gXbOWoyv4`tLx;xScQ_ly2A zR79Eif+!p@2eZB|!jnfgqs;j@?0aww&s>Ya6TjQv+nG4JqR)=Lj6rlI-Ad!ssBiqfl z6Gh1i((Ro=VjgCa<@;*Mk`6Ukx7QX7g64o(%sPPlO^|PX0HXR1fN}ON*lcYF9_#-R z+1vqQu&avn?ervWrK7ymji+tJ^k3N?R6o!A+qQr&`*ftdRM&-n=D}oYIW3!}4CK?P zmea9MVL6WWAH*9WMHuf~ffCxUv6zZ7kvn|UHavzRK73TlK8eM%qtUYJIW0|%rxz2t zY2@P&8uOu;mQCQ$a{5c!BI|((O6PF)fn4-^R)LdpVsYo8BusgA9-DctI9_Hv`YsgX zOGb}}N4sjs<5GRFk(diSU4S`L_CS(B1ayTF8Bh? zJOP>xcfqcv1`OU+fUwpB$h%ene)%O}b~^|5`>lnMzawPlSvN8;z>%A7BfNs9Vt(_X za+`5w-bD9!C@*%>WwP_77Q~s%0^RaCu(nno+!joMuJLZ*Av7N5Ouk0!UY#Nve9cH@ zLNY1YT*oU*{mS!o4kIfth`Yge!JB{?M z*>?OPdj@6dbMWo_B9sg`iX@ey?TW|foVgM8B#cn&>m(YpX&%q!v@)k$$g8vT?i<863Dr(&zP&h(HA(n+2iN zO@-{4;YtcpT6kWE*Yo@@%aY8trTnsWa&%SVV&eQ`CK-MjLTsE$N%8a+vdsK5(VYK{ zl%M63!ml2rbN_X|Zp0>A7n5PzFo(x9{e?Q(?X$(@m#i^zd>kfEiN?g&S$NN-8nqtX z!zU)CXqr2TS=s0?U-L&e;t+!gihIyNQ3VytQ5;+MDH$KpSG!AxX4xL&{XV@MYLga2UWgua$!oy2 zC(R_IX@Hph3V}|^Vi=ur6FRjr;rZt(u;9jX-k)VTu@i3~{7MI`oBauF3txijv0A9! zdk8wiY~YW`ItWV$fxd=Qu<36u>=<4S$Fvth*-;MU?>K_X%k{A5Q#X;=tHMk7+Qr+k z+m&v<&{95Xb(1F$evX%|APokc($IEgJV#!c{RtZy_E!Jq-g|uha9gvZ%Rn8x9B^!mUe><58Ukl=JUJz5Fkj_RpNuPkrkxwq%N$f zDFIEPb`Vr%@LS~*{2h_vveyW4il0A0-MYJw7kUGF@eXiRg%CR~2D*<%LPbm_h(|K8 zPkRE(nqNbu>lKjyO<+x$5x5I}Cvs1asE!E2;1((JVsIW`^;#S;S~L+F9y&ni3xI(a z>mXm+9;`l=6J6^<@-|z8Bu5ugz0ODch`s~7_A+65tJ$2NvP_ivG{5B^e$#gPzuhP~L^$7F-3TiDi&@?=VchJxXHs zo+26xe~=~d6Cm{FL5Mqk6)JbH0e_##(AsGO>jtL6u=OOcm1!VL-fbsR6Hk-wvp~A$ zKj#@w*5!S$o=#s1)CT;d|a?9C|t*sv5& z`W?p9d2zUGVGXuTK8$aZ*I>IgK{@$KYRk(+sYUm(@ty$f6w?H8dl^W=K=^&UiG+u3 zCyl+8B)Q={lrFgf&Yr0-zNHY7bosD<(OXz<_7PNnRm1#+Z(-+jF>b_DinHo{4LLE_ zpfdXg_%Fx<;X}1h5GKJnosr@mYTt&-PfmdH)5Tz$9uJ*kQnEAtK3Eq-L$#+ic(wl} zqrxuGXcPfKq5na+jSIAYu?B1R$&jNq%4>)VC?C36QSMQ6gDBbSfV*uxi4>SfQ#4-E zd+rt}Jl_;ks|@gx#5lYi=7AEk`!R&~9XFh5M@7p&DA)A~y{3P_vm4CWo}aUr7D2N~STe6T9I_&z1Q<$!<&u&PJV|QJPP^9WB&N`HgMQDYV3$9>MYAbGjAg03?nB@!MPWn)_s(?%gRHAW#FZnI5cSwG?7I-f^LR6+G@ttxW(S-Mw_<4IEKG5NC z9iLmE31`LL z_L#BCH!m^R-kkMadWWCO&SA)!F3fs#0(-*3arVMzNWY3P%>W%Xec?kqeDEL^T$IMd z`}29e^ODiyU>%lzY@*RypYw(66G;5bLLxW+41KL6M#G;)5s$$;5EJcE(lU2cLx>Make8yb_jI zSit1#p(JG>g*FS{u@!040k4~@Ah47JMc74~j#{H}z6S0Z^2Xv8AAF?#lR7LCLlTgN zPF1h4s^c+EZvBd#m&DkGx?z;mn!?Oh+q3JhN^vjVr_QrP@WEdZHszf!`zj*KY~oCr z@j4~eqo0U<9+$A^Y$4VuoX3%8gD4+p$kJ1+SV^rg^E`0`Q(tl@FelP>=%_26UGN(P z8*bo*LUptdR-u^+_sNd@d%W~?H@^J3(eh(2HbVDMHOxMI7Sv-Cp)=?-G<9DBO|g@3 zuOc7RB*t++t{QTGc;?*ezuKI;R{_a=2hYmxx>Nllb{W+=?XoPGdjOV7a6Kbf#cEgssqNQgOh7Ph(U0(o;Ia4Q-Q zM{T6Y&$=hXYK%uGH%y0BD*n9Lb8BeV9tG?k^XR&RVmP4mfolKlpbBfe(f?i@+CUHf z`12C;wfV zpU=d;#%lbX-+?USC99)X-{vCZ5u(679q4>9Y7Ddyu$3iQ<%-iDts3ER}};r#XWc#|te)z2?+ zTiZ9(x&9eFd*oT(YZKNSSdF~PbMf=NooL*y#cV>>GLsrDW_NTt3%WmnO$!aiMR*yt zu^012MA$OE8S8%J#x|tev2@EW?0Kz$oTMQB7&jT2$0z(zWXBr3<(SffGUr6;OHjJZQ_jf~9V<+$6JUT=W@R zuJfBPS9#_H7+y$(TAPFL_;n1Z+dPE?_YV;89zj^|9E1>6(ADnbjeCBTH?->w8TR=P z?w0t$#;7JzX#RmeBfWa5gL>p!A^LHb7xDj>YQ&# z509d@(G>PqtO5JpZJ-9_qG%PS!WKy!WF?i8S-!h6Tl{@8OZswzx@*{Cl)C{d6*Fd) z12Sxef(;XRJC}83{KXw9htSDL9ee6s&}VZiDn;5b!-=!mYlmBCSiPUxb1G0j%>rU_ zITTr2in=StW9hjHA~H=1RJWf1->f?@5|$2Kb5DUqe>L=4zl4isv0%UO9z;%>!gYJ= zaFZvCav9#jT#&&CScV94HPfbX!y+>{{a_jH`G3zLe*6=7zEz%^|I~!-FK*58JByVD&FUPUecjip?c|K;Q#t^N7H`vl`&2}6xU`5Si zUEAWy{(e_xdC^zVVPqAyK2t=O=6Vze&|};5mNQ2^eU?=VSR>xdvu|GlU)MSD-A10H zrAaqRwZ5aip9hIB=LV^@bx<+(eR;04pux!pIQ>j$IFt?V4(0SA+S#4q>>)DhxW@gcmID;t!Q;c!MX&yb|P? zRk{EQ9QL=(DNn$y^A@oBxvQB$#dtPaGmY_uw&7Npl_a%$5dCjjvi>$B)|Wbqc_z6t zq18fcXyG+H?Bk7k!zx%^IgC~gGudSKHLM|CpJlvpL!om!h((4ESo}LoMK=qwPjls1 zs^ko;TYZvTPTT>aDcxZDGYUj4?~|rSBEbCCLC*eIh>bl8kGn)TsbDkCYmz3nvH25t zmE8n0{qxY5H3TiAz%B8b&2=m3ab^1bV7HsXhrfcH=`KAkwMdooZTtfDP7lFAxdtTX zynx>)`XRiq1FTf|K;ja?OC=tJYR-UP)N1IjngOE=10l6K1oR7bLus-J?5jA%)8-wg zoiAl*-$=;Kz|ckam$K9v^c9DP+^_Pq5KS+06KIHb;#xYab3+QmWLCCI1-nQIRr2NEua820;=`SBa*NSPJW~%|G+at(j_S}Nx zyOAK?atg-XRpsV+F61_9*m457nq1MUdN9^6hDcdK?glrB^P8u@1ugmmN@M(gch(!Y zAJ_=$X^)`uMGdfjsqkJi3TjtWL3?C2)T^zAO~1DTcgYP%=OT!8S^>I+6Cls4f#?6| z5bt^YQ8Lr}KDqoXf|!Rz(=P9ybe+;(%v!h$7r!`8eKr%^ycNgZw;mn3pJH0Q47)q! zCT8xML74AiT5tRsvy1~+#$0P=Gqx#ilf+qw@jBkVj%=!UQi(0vG`9V{b6Dq~GmEY= zVoOugF|x-CzevnR|L`_coM6eSsyx`mSxZ=iSvmR`ckrc`iNLATX=Gq>BZj3V)aZhnc)N&hvoVaTF$h?*?Pd>D+Fr$yo$_fJfR% zkg2=|9u^nEh>|{M^vIL*HMiqh6((}F(=WlO%@yE$g}4Y+Rjw#Zn|ov{!ks+Q4FYLT zAZl3+toif=F1{;)h^Z%Fk9Hx{Y`6=WgXh4cqz`idUd?~B?S+|bNZl`d%$#W>Ll4A8uf!Wz%;?rRx# zwW1iiOAeB(x@e-Qbq|X#`ZKTN*32hamd#lv%><73@w`5ym-pXPWIfcLxfEM71KYXG zCt(^}_wgEv9@vSIi7T)ql#kB(hK%g@Wa_t8un4tY>~yH2p)&-*z~Bc_-f>$yQnA`@N&Khz@c4~5N9`7N% zEfETTm_otSM5qr@KJUxSjr4;1>}F+IxE-bcQ+?`c0RM@mAv6HjU%n z7d?VSAy>e5MGl+}$^aXieDME$3nJ6IK;-swn0Rz4obkLxrYe<^&s%h%`&TrmpGY6$ zECcZOKh4{-r{}iEm$|$iOLfvXsmgZ83UR*s=4hJgXo}+$;_2$wb=0o#7OEbtLFa2{ zF|F%4_F2C{p-CI*%(5Yp^nN;SaJFJ+o4i@^PjM!9Wg>GI^+$tI0&%$+SY|$twXSqw zauT+zL7T_ozI{cP6}#|npf^4WPe$nwc~&gIF-6OK9&`#h(&6bnl&8q*~Ys=&=*<#zlr(=xxA# z^Bu>fU8{hvbPY_Kr2%em7w+$z%_Ylwa|=X(D-!w)%c^}LXZ&e+wN#kP*sjZ2jp%Z@ z*<&mq^Z^EJF9Yqk0Lx>GVX*%gsH$av$%8JqH@O%7ZOi~8KU4U5u#C8jKSQcr0m_xn zfZ4Buu#kKw7QH8UdVlqJkEExNhGpk@lj=Y6TMpUstG~~rcGZH|=sm!q;=aa2JO! z&t>OSm$Deex$H-~KC9b#4Zr}rI`ElsyK9O(o zWd{5>?ugU#++_&9{|KIa>wxg#6i6A-0ZpfAbn$s`x~`8>%jeEzm>O}_1wGxXB>M7n2V z5;gTo!cyT9j2rq7H?b3VOX)f0Zgj_=RqbTtqd3p>@*wt2@noi=%B(4RB1@1j$IWGX zz$wIsdhRo1!dgCTOS}tn=FeayZ-?-ff+_08MPT8l0&M6MXC{lSSfu`JcE@5i3-5T2 ze24E;&~ZFWUbdh2>46B7TIs-KZ_BWIN~(CuY7Xps@Ey{*bKsk3i%V5P(J}E4KY06? z<%ws2fATkw8{3`ZPkO*?(*tpE6RO6aGr*f``RJaz^e(;)`3f4hUpaf(68&L?c*9u_gfktqZXaUE%t02?10@4VQ zI;qq#e=>k+chkTiFdy`VUEx`fA!!j@RPHruL;CLBBc6vIlTPz~UQhLx@^Kq)^M?a& z(~`J1e1EG~luOUSffb3Ew{I?H_FTcC@*7y0|Lt}{m^8F}bwK4LBlfe?f;oN^XY+le znO(|M{`~!35b%kQ>1zp-y0(}}>|MZ;AF8oI*W+lr#uXcH#p0~QN|e7ll__^Pv7xHD zEa9spi!|3UPXRG#Sh^C%H9 z2ft{F@`j35L-NtFt;v?jN_h<_uw`jGUKAP zOTcJ*DY2?r1q0uQp*?pRw`YvWtd&){h*1PGVh$iC9^Y#*DGD<-J}mCDyN9q zqQ|`GTsQjppD6aUZK1uV-q5)pwxi(JS@^M58nw+zP(-Ey2d%95`49C$_@q2)8W}Uq zS7t0AUyw;w3bEZ?#>BF01}H|iW99)zR({`=$^Eur%7s!)%HbfU&+*5Bq5?GZYsJ=C zx=g;xo*kR)&IX=LWE#76q4u6i+g}q6KyhX^D#>`U$s3)S>iGLObvYw)hHVh_=LNVA zmQuy8J4kz1VAKZ%GAT6*JnUXTRJAl${qh?G_vb*5u_Z{QuOR*oYS6LmClH_cT!7;u z&Mr!qE1iA_w6BVg+_Ao>^%CRODA;nnhpo7JOIdE+g!Axdo;E{Ii51$4pL0!(<)j`1bJbi-jo z2w8KL>SoBXic%w%l_tV&$Vf76#UHlfqBhWRq6!;&ZJFJV1{O!=)82Kd z-10*U%q|#)-5M)sF82t{7aqWEFBAA7UQ3|9y$W9BNpq`;h9Ue|5%`C#2R;2`WaZME zWS?aP@E3AinzAqVw__G3;gSbQ*K2t}x#FP-&Y1&YwVT8ZznjlJ zwzcP!{C+{+s|66HXah}LEM(m(2LI!)p}|Lx(|IAlk)Uc=yVDh_Z<~<*by_4u*Btb| zw7|+YV%#PB8xXZ2nE0x{rPh|Bw0*AzSd?CZ-#?Cn;?2LLTt|V#d)85h%_3Nu6T?$( z(4oE`b#Uv~d|JNbIc;gahrF4uam(;wetfkF2yS^mOPnV%UC?IU>m-=#Q8i}v@JIQ< zxDk@|umgqeb4+5P8>_9fW~pnZFlpy|SUUR@rXFg*w8}nQ5;l#+YH%!0&6PFK zUjBh@iIIQ!e#kF7=9ZG4b5Lj_YTT` zJ6i*fyWgT$_D&$4`&Q8B!*3~Bu$s06FT~D?zwnoJ1q#fYM%d_7kYBHeCK=i+#88h3 zPuFGj-y~VqNGN%H)|v$V`hl$n9a-2CcNR0>nF)M0WOXTbv0!T+)?Y70Rk2_A^rtl& z`a6f2ja$JI%;qq|Z4XiIb{4NR=si)`UWXTdxwBU@-PoRYf-J>zH9zLb0NhUOf?5?Z zH1ofW`->K%Meh{8Nx(dKX#O6IRMohBp}%0c!+ppT-vCRjP7~K~?hJxU=pj(*cuua$=J3~_i6tL4S3sAvEH|(BC&0`DxK0WmrlnjXiyAA10N zmoSL>aT*e4Xn>{$pC31DkJUf*aF6j{+x`s-ws&87)Aj{fe8F3msQW;eU0yYWzP}Rr zieVNI9y^<+n@ce3k0$KiE@S4DtH*Tzh|t2qHKd}o3GF@-rnSkP$vZf(!fuXb@B4)F zjmt6j=o93|eMhlz2F!Ab85?l*W6=f6+17{=%uakse+Ueb#uZ^$^3s%bUSGo6pJ}oM zZzXV^JOvy6AILnVU~?t?I0_u}!T%{V*Kn+!E)Gl12}zP9Bq5PQ#q-SCAxT0=5)zW+ zP!c6cLK1RHQVB^V$tgKKvvxu%Ns7OuQc;qmlO(BL?}z-VTXtcL=}#a)$ej4yKM#Y{@iZHD{KqXL%%{aX9id& zi$dtjVmL6ql?NrjZ+y*g)%6Y z#wsflw9X6DdA#Lla;WLpL8*wyEq*q&-x_REhN)HLPc_QwtQ za)AtcAbSNHDY=9FrW(XH#VD|q8Y;Nrr8?NpZlh{tvssN0C)W15F!tGZpp!4@?u$*-c zc6q&nrepGqmbMCmga5&c`>VkC+*R%#b4S|rav|gykAj)$Oolk$gPE4&L{@E>RxOmk z#_lYlI&cySJSw2JcMmXgbI6UnM*6Dz5IVSspwxODj^pbYv|vgWFaA>rwc5%ewVB6C zWR&3Gqg)cCBL+dMyzuwY#q6$HT~;b=&16>cvoVd~WV>V&wG0(u%gZd-w-wfGRnjK5 za1F!m{MwH-@0+l0=PeW*|A*b9YHaa$YgR(*5c_k}8rJRi4gB&th%~DlCw5Ww`1JBh zR_c`K8xAZ{W0H<2GUY8I z%$d~}p!@q%QaI%U@#MUP-F;3>F+?+$&bl*(-`~L9dkewKTLHdZL&!)4CSuH&X;ogw z*tdLue_qi@erL2JFz-rhZB+2~Uwt%Tn6=qTfu0r|y^Q67Jh^AGpBbOXuSVZl3)ulJOEz@afi<0QVY6!IuuVT-p{YkRZg#terw>oMbBHeMso}>SIlG6A zoy_r$cXP4evnEu&e?VWf39!L?*0NGbgxz`d65fSah+i$i?5y(yC8N_cG*<}Ic^y*O(!Qp!->{F_P@e2~nzB?*Rv*-jA zEIteg31_$@Z$EO=gc~V8_nfd&e8#l77nMko_UcZ0Xe+% zQku%X(YcTU{I3Z-(NmfawP;uxdn+ zD}8u;k1TsHaXCADD2R2N<-&TO6=NS7RMQJnzLVGfMwr(n$XcE=X5TMZz*cCQW9`Xu z*nM#X4BX{G>1AOppH@7jE*t282Ld@^)R?Pl&?#%HFRYv$?Jv=gq1HMT@ z+ON13m}TwosalMQtdV4V@!Mn(cY#2bH?Q}{8rq@rjO+`m0^0ctHtuhLMVAHOwi;69 zzthmXb`CGBf(vOyu`vGE0U~V532(TDuA+gc;B0^-{1KgEHw*hiZqYI4KDs&p(IG^P z)mF*FFTd2fVem7^kzXq^tJgnGpP9F~X)pOa}3uIcvag-61 zWlsfj*atjeHotEbE!y4(9pfF)Kh{f}>b7!aZ=2IMLhpEQKdC}Y@>h6kzld3JSCe$R2c4OOux-#=;mDLjRkO$%7U0#%FI4?1JiKF zmJwS$hbiA$0b2q*pz!(vP*>Uy6P}$A(>sHa-#wE_jOl{hU%J45Fqh6;7fB5|3?S+G zq*LpCfzF*Q7^YN^&7WqV;AJuVZ|oB%Ekhm(>k?q%Rsa;fPa)P-qF7j;h|U|W&^vo3 zDusTbhU->S{cq|RCHpLyvBW<%5dLm!Z@SL49cwT>ZumZeL}oTigTsZP)x-?YW)gk@gbE zmQ@2C>zm}@f7__Lm@Aft5PZFQD#{P&Vcf3ixL?l#{TKD1xsVhaxUL9?7vG>Mz881} z{TUc1ugiXyU&+=7Y-h7|mDr!6f9b6QM^T;r!0LJPS+SLNY?}K)_Pj~CDn1P{tH7WdzPbW;KFt$G2&TjwyZNA#Eodv&I?N{UgC zZGdD4MF`T+1R1A`P;}`5+^c*EmXQy^@BU8ESfNEYbGo@-=n10sP6-ZQkAt9d0nogj z51Qsza|)}{sY8ejUH!P9n_bdNv?kg}{3kVXu}+h!&9X+BgC3|;B!E(z7hy(=CAJ=N z!Y4{iC}TOF4f@5$p3^tM&HvQt!L_28w^fAgl{RD>X9Tbg{2^?5L=(PfjYbE?Gu zu&VvhlOAWv`lr+(WA_S+emukWSCgG%jwY-3I)E)SNnp?K-OEmRS+FV_TQF;z4( zF(}0v+Bel{Z_Cd1rmR%NVe zxy+9yJI4F-})7TjyeYi-B+X1^&dzoRN2Di+t?dbM_8qG^Vr{+Q&@%DGgv9rAv8$&iM6{l*p4V4 zcKy&HR%S4Q)skMv=FPu{o!>oB_;WnoZJI!_P+-r-aM=UV{H*!@c>H+HjY@W1B9aUr zq&ljQ>&T^|dd(!j#RlfGaWJ~zGnCAn&q!QSVkT;)F`>*%rZr+F=F|*_*k{-AxOa1gguZ1=%o?Kh`si1ttu~LXWW>5@(igcnf7VEl^!i3qO{= zfhY5(Gh#Br%={yD(Dq^_Xg<6{_C0$`=Elv3yv-Zo$uAFZyr2rrvyYN+{z#)QB=AO~}8G&3BLBg6|2~wQ?#OW}(Esj@ZVAyx+x6 ztXaq!{M2O2t2EfePogaUgAok;B*{)svSvrA58J~=uz~RoY^nViE{`g}#|P8VSg>=_ zt;JYzr(ftiuM&&gqfjQ~AN}un4EI~v08tzpC&H^{LdL%oa2qOyK#3=inC$5C7`ICG$(L;E^>(To|F|jn+5bR`5qL9?VUkpsr2#686NSadw z)3(+^=;L(Idaen!*++?4`YUevSQt4i-9g0S`C#JcMRHU7J*OqrgQoqwLEQ^_Y3Wiy z9F%IL&o*4-&Ab)Eli2)tT@pUl_od1nVNH)?PQ(1a^#UJ`)jSe12-Goh{ zJ5a$e2~9r~q3^E}EWg`>BP-?E2964Q(^-uDtK5xRbMo*^Eyc6PUSp5aLRNO+diLmI zE;|^%nzgO6W%*(Z*^QZU?7BaK>`S#7Y}s8|_Q^qQcIRSXb(YOwncH7cy7?s@eb$RY zh9A)2R26!px?py^C$;9zCN2HnNkz#@kUyyl3yzz>zL;33`&j_yjgwh=a4y3?S?4bc z%^1ZZ6DHBsjB%_nWcGOJF&)LLn2T=f8P0k;=F2K`W;oY~G5e#->laY*gRfL^s=Sl%iO!MmmqoBhjpqcv+e zd~#j2kHq|VA+@i0O)^20;ib{zXYy(DO-lWXifN$TCc3|VJ5}UAL)C?<>3P}dXf-B; zRm&dHMcw(-<=rW&u8>BZOe$%5hYYIEw!qRbC;YJX2*#2mEcDJtpU^t|e4CHGvOuW5^ z@``7%qeOzubf3W*H4ULpe;JNsUBT6lu40u}3-&lwA*tPik`@vupD4&%yoE{DO!k%JY;J8jb z@)Z^$xIMs8pDFC}^;6i0kJDIHHCc8-Vmf;{Oq?BUlweb|#Mp)2; zhkxSlqW|LK*r*zYBNq;!%9C&;n*OL2ql4O=HFVJQPi=O@Ub3_BEs0rX0`f-=K-0QZ z(A$YnWcnVughZJmJEfQtzo#>itSBRA$ItZIjYCg^AoDsyikWIMo4JuZmkE6_i{UpB zX3j?b0;CNBgHCe9$|Og`R>d4z4Z-Xf#dhCbC4<9}A6>y;|> ze0Cex^PZyl+Q%3t_z3ew@1oS!K8$|Yi;XJ(q2aYYOz3-o_OpA?W>yDE2h?E0##H>M z9Ds7N*2sKcimGD@7`vj0?ymj8Qy*93vJ34Aul**eyvhepL+66P8A}jMKLq|KPJsI7 ztDsRzVZ!S^-1Tb*N8@(zS9}JpvfUtX>C+W+wjD`0?eN0!?W9GVcanV zno^UYW65#w`nL-TA8Y{IcN~Zpl7$oDeoiW}I((Si3s)i24_c9;6ZWLo)Re@jq;sV{AFq); z?m{Q@*VEXs26{YH5;Y%=Qvc#5xVyp*&ph9Ssu~$sy`&hW^71h#CkdUdA4lE)(lBBm z9Y4_=jQE#@&eGX&1nbrcb^KmCRZqiKZ&GU$w(jgM{riyru*O8%AE#h5QOKxsHO61O~ zle_yOIcYleyrDz)cn(49X-CQ-n$(a=1H+_IAoMF0Pqf0(IycPv=YrBgo@kk+kMiBF zm?mh64gXxR=$k!eJ#xqToE>PEz5!o5tU-fhKP>)XjlE8R7`rM4TQ5gpW@ZeoIO~lG zE5mVj!7l7E^FZy%HB7gzK&7cNIOO@9s(;9%Cok`&v{IG!98;zdb4qws3ja9aJ<8-u z)*0gIUr4SmY$bb7-6n=P4J1>jkI-x5B>a&moPH<`G<6PGsmg%(13{=)7K5M1gki*W z3aIWDf=I7vFy*lji0Qr|Lu@~>Ol>67{?(Ib?UWc?DJ9IR%cLVTk2o5iB%YsjN#sU9 zk`=dy^k&A90+n;*@}LQck1`xrj8)c}f)A?vocMev%pf{E&NMj8v@| zBJKf$#L#Ry1m2np(Xs+MO|;p zqxFCm+AQ|L+O|oT`sRyrWp*gbw*i|h0?^FT52d^UklIJ0{jzwRaEZblJ_#84ClTW` zPolj}Dr)@5z@^+wtd2;+#Q03bFco)eVchCPFu> zNQrm@`4`?v#BcVHTD~44+x3>@d-RcziT9J^e?(*IN5Xmhm6WExCvL8fh=m}J)D7Jr z8U2q)xfPGFq1EKk_5qTu^qR~%mq+BSUXc9!N>W_&k_6ur1kqw?&^)RRL;aedaA_6n z>RJSxi5*~h-x(~&EaCUl9q?qgEyPbd0u$36z=z`x*CnIiQq2wsc)(03^a&C`>-QeuaSa^>M1Camw`;vIdnJ7#fa9^=$3s7 zwas$y@u#!6{Z=N%nOwx!E18%JXYh+n4whd!kJTFKxH>!&9l|nE(>xik9}7qGZGre2 zU9s$i9y-e{#8}C%v@Z1*O^T|e#=lO|K-D8OPqLdg&EOr+CnToESEZC|_L}0XyjIZa1Q2$Yq|MxrT*scg& z{IA#?Zh%!eTVZ~) zH~h_851U;5AlU5ycr8u@p*wCMmUH;SJZ17?7+E$zPRLvnZ7h>q~ z!JJxu_)3iv1d;C*KNinb#khrI)IMVedKFpVu0Q_R?-zq3N@>XdCJn{(F5J3G^4?xPE0La>K0CLL0Aa}u9=vnR#`u`n)QJa+z{AUaFZrTcgCyk)& zCV*0d3XJs0z>_LHP}Js!NJkA&viM3qXU-(aH@k`JLs!ywU6O28_{)vi2&5n7Y2)*I zlaKfZ@87Of)Z#@y^(xAy%UfHh4|kMSd=|u@tl1d9i^2XGTof{&jXPI_;0eYEIbO%` z&a5NY?Us&O%a3BU#WCbhh{o5pNjUA6AF^Ab@Q~jbe8&sMsl^ExI-H2R?V>Sob|kut zr=q+{Bo^I|K>w%v@WiTUG}qjTRpP#w@zxdnp12_Y2SBeH1Dq=MiIe1IV$R>kCK%>|P8=^<$j=qDxle1K8?BqDVg zNK~uA`Zp_Jfvf}2HLCE}Fa+ukZH1WUKA@5l4jMO)fZ6mU5WnOD6%YgtHZ;B>&1ba`jH%e$&!keBgEOUhA{aLN#&u##I|}Rsjz=QBu7N3!VFs? z`B9#d6(@Pp2e`ERcPS-_5w-7izEVDQGy3wOI^7%eiMCxaKrEetdD=R7;tGRe7Wx=> z#2$tA?!}+?yinq;IYzd`OrBjFh6l&s9VZ`*_D{z3s}u35_Fj}$O+<+uq1a;+g;C|v z=$Mm%kyjH@RxJY88}383_0jm{sV%B$1Y>H+er!I!3f=v8;Ga~2!j?LSnNm35_nQ7# z{(@G|AEa5e3{}oHrDc}Sxz8JBbJrg>;DWh3X*GxL9q!bcRfo!|)~J2+(7x5VX?`!n>j; znc@WO%6EdQ##nfBCkB`l0qD`t0?x->z`8j@#Zv;aZ_EbC^?RX9Z-D5@%Y#3k0ED_L z!m(*);FP?FT%W!Y?2bJrYwDko&VnyQVMi3HSgJ~TFKiiXK3&X}n{_l-%=9*57h1uECMzVpv=2OqEH2p8WYe5ElYXm%Cx2@?S!)oQ|Ltqo}k zGSIe72Fhn^!=^!9D7P|$*&jy9;67*g+Z6>YyBWTHItZN;L2y1P2qG74geE^j$apsg zg6-x2vfF@^t%V|eJy5UO3q$5hp=-VuM9i@U&HQ;#T-rrqPDPS%H7;lyjc{q@7@6_% zIB9izLe|wskwzj7#sUUVmvf3{O|Eyk+Ky`>RZQA1EAjm19w9GI<#F8O$~i+Nr9}F1 z7Uk!*aQr^rqkpf~(a_VYaoA%jbz;YOp%3h6Socn9DtC*zZ_}yG*O-sBf!0Vp$En39 z6Kv#oW2~4B%ITUR=av>W{4hYz96j{Z0@Uga!7o!3vBuC4GevDN__`qa$@$~N;5?iZ z0bIXe9cr&zjIXEJU`w+i%7tZ7;g~7dwd)#9Ryj($2J+~uhE7_)qK<}l&!S?_57YL| zdw4fLr*T6s2XJI(>Jdka5;9j>nJYf#O+@UKNp8z6l2mttM0Q;#=VV5RbZH-9zfFVO ztf}zzWIOS?$`50FzetAsGcp#e0YVR2h`seRkXS7R8AhhyyM6&oY*T>GHuGUbXC`DZ z!Vu9@NlqP>ge9SiAvE|SsV%xjBnnr6Wl$xNivCA37mGsa-bT_`*~FFAYvzXP8@yU2$=){5BVvYj@k4NyuKNvRR5tY<%D!n>D75u=AawR7i^(Yt+BL2Glf>D|KOc_^RqTlDUR3J{ee3% zz(*d_H(Z(I^CWQ+p}Xb25~0j0Qo3q7EC*fCG!}tF+?V8ET@R5QDkmFi%81^_sUSE_ z1dhjw!;`}^q4l9C7!1ikqWeP7{!b42WaPj&Lk)uYUXpD6IFe;hM?S58MV5WOL!y+1 zNRHwhFq`#Zj`X-su*qkR+d7%_G$4$W( zwT-lRF{Q#arz!VIIgLD}kIRC$;|}72{t$#tKN&o-AFy(z1IpUo16H z$Za!5O<9k#HWKu#-i%JtdYEx>F%Af>z=R@woLf9dn{VHye?KgxVWW#_UCJW*%Kuia zfb9TR(Px-6Z{&xT2uz_u)O<#di*H<(1#@vLsK?`j|U3%;7KX+OCB1N#Z!;h6v6J{78qZKhvcN z3(ze_3PnzcqtvU#==0GWD@!;iExZ|vr9E(X$QygQx1w~B4XTT*!2DC{Sdn}HP3yDJ z{AMQB@}0ru^fX3_U%{4VSJCR!B`lK8LphV9c-n3UZr*H%;||KGI{OvP{ntQKo?26# zbE4GJA(3b4B0wK)2qqcBGr-=+2(;(!h9}|y-^GwCXPa_ zyAe3>R)EiSYiK<00Cy*|_^rM-2(8`-zQ(TLb1?xzKc<0$Y!UrA8SOxx1@xeoS{x! zPC3;!E{?7J!l|uw-c?*{uQ$RAB-5yi*EH(?&y{wb)uj36VRYO3-*mR9DtbL!h*y>| z$j@v+t<90x`sf&5uuQ~Iv1nAN+>VF7@5g}sktqB%70=qA!Mv^{<2!zv{H&{^SN6cdN#8(h2A->`gq6ZFer>6O~K& zq&E)|ck6J{{jiVg`{xU9ZhJCSlzvND`GuGuCxh9BPpKK_CjD|hjD{|>p`FI(se96C znsz3V8itfpV+$D!e&~zmRI<=XX%bk z&q6--mBEqKEMkPx=~&5 z8x9{4U`O@{vMbk4pp5+sd{lKEMKUg8=+2Y4X;~DGTuQ?9k?R<)%fq6ruW(cGKOE@j z#p0J&aCOff%n|%a?+>h_gHv?r+QehL*b-Y36l4HtBAX#)nj#hZr$SJs9z=0uK%4Il35*yd zU-yZ_(i@ARA|wfVZQG&$axYwc_y*iUK7jJK4^Wxb1u1piV5r&vK72=@md^@C{#d{+ z{Waj4Z3RPCJ0NLT15{qslciPN#Md>7s7BP)`lj+x=J^KNz3nLFIBU|57drIp-8}m9 zXcm3j;X?Th)T!x0EvmJ-nz}wv!zSsYsCw)yzCC>r#VxL(>VYaO6l_Ow;u*@HyN`|D zP3WW9j?yDf(Edg@mSn!dCoXN+^JnrLuC<}CbUVt>I&3t}$8Y)juuaJW-J)X9-sd`= z@4bcMOKLG>HAR!kTd4QwDtZm4p|9m;G;%AW@@s5OrloZmwX3)aCtuKFgEB+PFowm|5VS*TZnICKW9I(>wG_ETtM)MTJ9lH^=+$e^6 zbfAX)Fedj4vL-}|T{uU8U8>oGEy=fV*1;l-+L43jcO{^LfgK(`E`kvODrhq-iy6Xm z@Y7Lu6xo%Ha(n;7XHsJr^HG$QeImsQToYz}vKui!ZZ9_KchbF=%Q!+ty+r-L2xw}$ z0GDJI!OUZX1iI)!+JjQqnQ#Ys25&=U!ekv+`+{`^2M*8hg9)!>@SQa|KVA&R;nUz? z|21y*&EuTQpJoGJf+B47_>V-zC_|oJJiI7E_-oS*UgxGVx@kg;$|HUzR{j(0D}4dQ zCtDyksvO2FqQJ6I9_**Bht{@OSjUNij^6p;N(G6iHkV`Ub;&Sv_TL)s2ajr19Ibhm z+m?|`=Sm`RV~ohtx$y46G*Eq9N)iSI$!gtjA|?Had)DX}^*?Ng&BJ&Sv=sd^AEF1(MY%L?#G-)?+B=ArmI zbqqc!ffK_GRHX6>op)iB>TWi`>)idQY*2!$%D$t1_6$}pSCln9IfCXt8&F~VB>JvB zgln?5VWUkpl{1SbAARXKqu;l<3plxd8jcQrVCP6odid$@bBk}TM_oK)He@tPu}DOWY07*-fSsLE7` z-@A)k{;e?SXbI%2?+{70uz}ax*TLDEFXWZM6=Jx+oD5Gp!Yz!FB>pm|$yGl|qG@7F z2ijiHo@-xeTADhVIRxO}pairrEkN2{hcV$zSXywuTH&`Bi&5`MFv?H%IeC*?*mLY1 zE-n^k^|B{$(e2N8e9=3s+jJep-an*@I!LxH+XEpzksz|-B!pcIhmO;Hkdq?@>Y5QS z&>IDgGFxDJG6#kq&LviBPICrNe;`lnU0~@VC#c8^eZW}C?Yk1a-h!V4BnqN zfZyP2vMphPdu?V}tz%gsRX3i79inToZbmZh|9TZY@~@&6y@tm`&tUnj)0iusi!Dai zaoFZMep`0}g}$1ioj4y>-0h@RQoS^O?|dv+p^Ta(OZ}h~ABxOJ$KASK+=` zDF!qDtb?c<$KW#E4f&0#;O49bN-t&Ml=E^@)N4UI=8aIJIl^f8{Up!q#05y|kzx$q zPhqsamqFN^)zHhmNJM}BM}AJSLV#>6)Gzjc<;TN8{mLci8LEWtStVfV{RsX^-UEL1 zGH@3^3Fbc{;WM)aZlqozHq$O}WiEsg_ZcGa;-NjvnYR~q%~}c)w;zzDS#!Xv-yQa6 zC4iUJ1=y&p4|mrHlcIMD+z$?Z+`!=+qv7>@WSLMXcjYQUn)uI+dR;w9?^I34S;|@% zZtjHHN{i6yVlNHId`<^vNh0&W1B=FvqC?0rJSGu|Hj3$3@v#Q;=iR|~Emv`1k`*q! zi^aBQCg>(N3!6ox(RfJ*4OMtUJO8Mn*@+0ueOiOebHp#N((u;4Xw>`|hm>Yx(XldA zw0(~C<aLCSOKpfa1tP$jF)?rGM7I? zP==;FU#LCk2<;};(6)mQ+$-97CgU3Dl@yNU%r;bYc}owq>yiCh49GT|h9_lzz-(d) zV;YeG-o{Ue;=V4@^?EXYMx7wtClQ=Z<-^^hXCN#y1ma!?!$Om*5U}|xs63j&jGuoD z#x}_ips)b!96|`jG;{Sr4v^qnc_=r9O1ZbOk~ z2NWRAc+}4d=_gZ^*0Do=Nn7lH?1DzM2l3VMM9ey$fsJpP@#4om+);8BZC7Ssq1g>Q zBzgxGf7PRxVjVKq*I{E@2uE>{1Kw}q!RBW%)Pn(GZML23bOk&z=rdUIB|4=KW@?on{&YCZU-2C9R*(ZR7SdD z1~a`vmGSWqVPpnsp=D$vEV|Q4mP`?*E!mbl6+S8WwEG}P`mBMavzL>I9m|NqrB9?* zUlk zA9%e%mnasE(A=xmNM+8TxK<(F`jm^ezpux6T?%-mLKunCWvb*YLD|Pg=vj>v>b3kM z{k6v!g?WiMoS2D)ojdT^i9mF|5rXeU;!vH*LzN2^s9ZDI4;>Qmhess3hn~U8ojF)> zy%a~cm*VB_Qk1JH#@xpVSQnj&`AR2|xsi^CTm-W!$(= zJ8EYP&7xE~ki6Fm0_{mIai6~kBrYByCcGsg{QsTR&p$pw=IaS%0p3W`)7Lc=*8IC))#r?;{pef}AE z$sY{Ex4j`v+yo5#Lt*Y?Qz-cRgcKg%O&UhcNY(nY#6BRGC~}10%sUP!bcX^7iv@#Q z3D97)2S#7&fSp+`VWdBDT~0OfNOTvk>0uQ8d8~tWp1eaHaw};6_%t-XtAXuF)@axo zi(MTVs3M(*!3vZ4@Zk)uS#=U`?)AX6k`^eWyAAcE-Ei3oQ#@uVj7?_zsIqwheqmkE z{Od{No8;+&{iiW9>jsL5A@(;=>{h>x;es95@uwZVyKC^TKqe-xm+;=1!{~?# zX!Y$C^_+E%>Y0|3^oT%sW)cfsI^huI=Lk#m3_v9O0+BrsMcrC%(>vQXQ7!FzwJ&&G zT#imGDIT8#qozyX%eN_@qq`9dz0Sbi-KFq|?wmR$c+&^W_kD`V25CM}WjR!>K+U*u7sK6cwZ(Ye62#I)9EE)^~xbztq6EGe)>4 z(GUkhm*Tba&iJ-90bPHdL4#W-P;X%r24(8wErE9W;(8rb7o34A)0DAV)(WdLjL{e5 zP(x22y)QdpnrApRYn(+}{u@a9uj264Lj3*wJWgA14VzlZk&U~GDfyXry(t+7!ox7Q zKNbBpvzUMF75+W*5MMYy!OT?Yb7Uwr_*KRvM81pFDu<9rEw} zJu-E{Pa?mQ3tM-J!-~Q}uKJ21THjhiUzd~;Z}$MO{(TDgZf1eR(i+I%?F89b>%qV+ z8v+x{;Fiio=)HOq>}Otvw=<7|{NF&x-4O+XOOj#Jq?eisRKw~iw?Uw{4q|7Y0Pbod zxa1m7RNEhLz0MYsoS&kQuK$~;_o>0p`9|RP&K_zFL!eRR1gJ<|fxP-;P^$HVF9UPH zdwnVit~|pFlifjQI3@Bf#>*1Ey{5HcJ(p>x###(N6@}G@j-u7`cx=o_L!F*;_}rrq z#T&}eH8UB->JQeTP~nv*>&WcDM#tA7jSLP zacrZ>Xc&9}pS)#p+uVov`Nj(@82^kJ(No#Z{nD&rm;hUw(TJ^ok}+^5p!GFlqLOe5 z6t#*W>diyAuUHHqeF8G`cS7797075ZC#56*cwx~B7&z{RAEwU4&LjyeD*4VWv)>F$ zGm~NP$thrbQ=z|V1$ZXdfR11XsAkM$)Rm?&15a9^zT_fk-#ZQ}zb`?>yJs-?yB(Sh z%V0z*6$Jgaz|y6P&~Q}*HcYzrxX3PEz@QtEO%wsO2TpKqzzMw0Gw`R_5MIrTflkk2 z=!#}x;7b)89n6EZrCWi^QGr`~7J}sYQPO0qOqRVrMxSdgz@+7#_@X@-oqTH1yrCV9 zJ!??i<|NKt=85NbYGYN;LX4dwk5V7!pmVJV@&v~yFGLKNo{Gl0=eO~d<|F*v`v`p> zR3U%-4NT&{gd-#L(W$ z#GOCyVoTTnM#X9JrAM@QLC#nn6gHBFu9MQ){jP|PeNHrQFM`E& zhe37MS_t}n7-~0Mf(t`4d!JGcC54TkJ@M_3UY>y6k0yvte+$kV>Y+&g7MR}7gs>M& zpliGd#FGT_*mxLu+melZ#y&ld$032E4k@6Ia#yqYKQ%3%-*uJXjwkE$3tJ=_4r8UXRX=pD`ll z8=msNg!lxV3U*wCsorx^i&MgJ>LM~O;f=k+Y!o_3c$FmkuOM z0uaqa2uME)PG3$#$KNZk$*T-pg+pgy3qdwe8ywXQAm79Xrde%+xo?7@zxe>joJ)kd zC2?>$Hx+j6I0UxGQ{a_)61b$sfud0eD8!k=fPW70zgubFtrfv)#U3*4ontV6++r+T zz78J`eaqkPPYiKh33{uY#cR*9@xhAyXncM-UMQP}-R{=dne2+b+z&70twEDx+fX8D zKVErz9#^P8!RWc)(IQraJ8lr=>~KGx8rFm5`^C6^mIQzDU4rkD5#v*biSTRIZ?L7P z8chzI!4|tLbPGCwPtQA{p`saEnRT30{xN`#pe?X&r4JNd(S~ogCV^!0TIdT~4VD?< zu)Ja#T))^uvQAVG``#1eZI3*ZY*+}s`Cjlba21pX?}f#^F<{`B4LTZG(0V-{W_(Tr zqus^OsFe@>S*38R_zIYMUx8aSCqU{+J`75hLhZs5$oX{)wyK0f*Q}M0eK`=?eBwd; zc>)B>9)XAXsW5&?K9pZ5fXS8laM|)K80O_cVn+;kj@k~FDwaT+27t^O1qdj3CD_lF zF|ptt<{mZ`b37t&x@>Draa_zYyfpF(E1$KK98jAL_0MZSkaHh& zfpK{h!l7o25eS&;K*fdFXJu4B2xlAzAhgBsdgI5MtXMw#i6Xa|k zz%^_EMVIIB;(H4eNq&M(?}rd`W)i$mK2l-5tcFGZ(MHFVb$EHjQFNaji~ZZ3P<~rH zd%t@plh`Z{D>fW~YJ>Ao_For-98#sa^6Io>=Wtpe^%&f|E`s)=b1*CY7<>%~hx~^V zLA_%nh(#rl5wGpZ5>`eQO%nyl-~m#xT>-)+-jbZ-c_g?}0XzpbLgn6Qh?*pXd*vcD zo66Df$0~Gbq6YO^HG+1Yk)*XnuRuLE1d<2ulZ@}dEP1mx4pf!mw2Svp#Ox(LHhha+ z{tr<9WicM#9El~rrO;*N9QNFxRM>gBMeuX|A3=nsXa&R-GWL2j#%cMXN#a3#fBq6$ z-nxSiy56AJ)K6$vF2XeuA{UDFLQjchHKDUTehD zMgC%0|JEV>jAWZnd%@9Hm5^toN=q9k9jhO}ju7L|5Z zq09BesDLr+Qhraw0rUJVR3Hlr^FQw8gWu(%Dc?X zx#lkm-VtHLdx#Y;m6*iCD<|kI7m}MQo|M#51rkEhmGK7T79t8OtR#_~LPsxpTP*pFV0TuW?u9?KM~N z);|?Id#;@PTv`f`T{}RgN}r}41-hfno^IV>NpHDo((b%pP&J|wB-=A#im@kHRXrpL zTCD>8WNC7us!QnIzmfT9E@olVGuYa1oF$V(O!n?r_BcL4FzDAv{zchA8|;VI$F4)! z+P{!tq)wgnji_e5CEd8hnD*|`p+-N3(ejQfaNKV`m|A?UknNt1Dyxs+&X4!8VvGpa z7D(}dgTJvdy%PWQM&idhIm}A3W)(V_0^yVcB+#^gxb9j?qMvpMnq?E%Mhi;}l8;1Q zQ;sDgUgPKVuh?cffB_4>W0F@t?s++k`@R$5uCfYTa;Xw0GxhljLjjMnp2{be&El!o zJox?VZro9z#gAW&#>1BSaCzDX2-&GeSz$QkkCLclZ5}O(&!-`W;%Kpn2d$QP2i=ll z#Me`Ze&aQ{*rPREKRBAFOpN7{olE$$3%2~ZLI-Z~GsfV|v0(1^9=aFUQ~&w%Dbe(y zL2)aoPSaEhkG1GU-VN`qDj_2$5PT2*A;pi(gdu$~!qo9Hti12E&_QWBQ_PQHPv^cC zKE2||F7Lm>CPckr4t2Hcqlgc)wKgZk!Ow|OZWKsB9N$)c%w^ zT|Qt*Wva!gj88cjij0KGD^4&skr;eg)`U}R75M1f@jT>@E|-}-oX@Lkz{EMBSUmPP z>#qMGh=`LL%12%xvu`OV*4cwa^LdiyA?7x|PbjYL7DCTPDXFOSE}M;5a^baRN8cp3W1VxN`MBlX&fdyEy&jSYo7w z5F{;6>wSXgUg=mm?^7ntk2z1ZpPr?ut0U>H@0N7NtRxsnu)xqiKQLhf;rI7#;|Y?< zJlQaTAFhkwad%vK(0^^Xsqq4n-0cE+k4Dmlsk3SMi{;c^dnff(3Z&v9GwI?k0}8of zG$}e4a=z)q6|ajGalWN&^uInvLmSw}m)F@!|MzTmz$q4I9l;h(d(3RJud%MEJuJfX zB!(O4J*fRLGpL3xt4?V3R97Y&0*8my&$RS%VBrT z9tb$R9kTWs!^e_9()S{P+5en}D@?9q@viU4)+%!mbA8^qX%hdHYsQ~znetHO$y_o) zpI=|8#TQO8?MPtwa}?Ofu5VYkX}g(re@Q((B_q^>Ed<=s*|HjpFH^pulFZ{yRe?j{Q)dV z>mB0rVQ{zvJ`3z*`tR$Q%GV5*P@Z+YsAM(i{qc^7 zkBfw+r8mL(XfLeTHkK|uXhrSit?4vNYieI_Mt=;=W47OC`2IT)dgiSsPRpmEyy*o@ z;vM+ASDtGIsd8Tj4W7}X#{0v%&}d;iif;J9$TMj&-+wfO&GG=*U?2Ef<_yaoDZ8MdhQy%<#L>w=j@~! zatbuTteVWt$iUTm)OlCxGQKf2gE_fOX;IC*3|pyaC)k)9u}7`gB<@*qP^#k@Pb$zTkaFb)~^>s zz4X!Oy>B=YZCSL@f5@uJ8W?>hhCPP2nQ>biYqEXG9I8ZFWr;t@R&V15YXTBkt5vRUFZpA1X zcSMgqnWaYyl60tavnH)RDo#&t8>*>#9@N=}RveIW!>GGLyr9^PyS_^C%(t>ULQa&Q z9Py(|DNtV&3Gxd}#Oi@(XM=FI&8vyFT^cA_@!m>tA!Zhodrg_@je|9FK$eB5iud z87LL(r{xEeY5V$+jeZDo+!Pwmx4WpDN4Rb){L0?||^mwB^Kmq%`bMZ6zj_MkIXw zE#YVl6}B_kf*q_kWA2sf*g@c0^75tF zRvwBbTwc?BjXC5nz;`I#?Jmq~9mnjeB zR@{M4+$77R?CMeW%Qxl{X9-Qg1(2@L0t!!M=(Tbcx_*NMyELt?+Fmu|xxSD8KCzwW$gSnt8vZ=gaWvnjHwrHm=7IiNb^5S>Ha&eVhFVNaqcY2`(v*3P zw9~Jex|}^s9T$4jvSTt-wcQZ5j+MbX*3B4o-i7z)$MfW^30(d5A?_lK=fnB~d4uId zUa=fFhkHIf80VQ>1A@U*OshLxs?>5O*)0tXMLV zoN_HEPQi`jue5-Sjod;^s5tZt2Ef!wdEl*30#%w((E5ZxTE%3zvBeNB8tRg6rx-TO zMHB}c=Ax#>EG!rQ!a~%~vc~vb%>I@>Ir@~sO|JsDlk^Ohs*a#;s2uKb)j^?&GlH6|ZM|A&q z3lE6L;FC8dc&79v^T>*2hx8IzgN8cBwl2Zvn1XHIwW$7BfjcWr#&g8##9^$3DSMu1PiQM(^2V83) zhTn$$BvBhO!J*&@w7W~uh~p#Z4#knQBU*y?AGiY1GCq);%ZPm85d*U@VXYm(?eklXD4nw#o8xb2EOw-hnsQx^Vr+&U|&a4X^mF$!ng7 z@X_h#(WTA>i+{Xe2j4S3JU7y)5p=8JS+M^IGxJvH=^0+K7glaJaiwcCfiR)W2=59 z@_Wr#7q7uv&lvF0&qr~&4a0cT$&09%_#caLmj{OuAxN^(bjR}fwB~3q{rr1B-F-Qn zDmkyDPmf#BOBcSwo57V35^|sQE_;L(5ysqM)O@~d&PE1-m;#XZzvy4QsjTS7jR?INWLRAjhntY z#Z3&)@rXl*_`hj({M!2{)P2rKhT~fZtX@Q~HKfwb_nuPey<$^m{Wn0@|9wG=>TXcF zKa=(-yVA<%&tUebBdn%(49~WX;=!^<`OYDF-B&E+Ub9R2X_-uJICdj<_EF|mc1!S~ z%tfNTtpu(SX{tH2lOKMzr?IKi>9ikObbaeXFtxXWj{q}3%)fyyZ05}IXeykBn};P~ z#xNlktv-UEt>3ZAV?(Gu?iBcED$+xDE$HrYFS@NhoXVu`r|ip8YOiNW6WYb;#`biG zTwX6weG!S`_vLu>r#bMt+?Fwe;C)7f?acJ88zVKyzTJI<{~#ytI2~OhD2U=uZ*|)S98DO8@zeZMZQusoll1giy)!;Z*TwA*{b43))Sc!q%A-&#C^0o8?4! zm01re+n&b6Gb7RIS17q-bQ}iO%F}~Nb7^~71Wk2{r{$doso1MXdSg=%ozgUgN~^bl z$*d}}Wm-5E)=2WD=62jM*q28a1#=0yjxP?G$5*J2;d*MBXw-1SUbns&o{Tl1c3=Hy z_UveCFfoO;Elr?0*1Kt}>TFs!Y#8M-j!;mnhP8A0P;C87-q#YsC(MlJlh&p14C6yQ zWKlTJs_@|v$>aF;d3Q11QV%z6N)w3Bl7_mA=CFQ&CWv+9k}sP@Fh7{1%&akd#N(y> zaP=W>H6fi}n-|A(Z?EM>*>=3oO`hw#Q^v(@YeE07DXrU-PuI)W(C`lr=+?2Vw071< zn(*csT`kV3er_7|bh4!`kzQaXw822*|Nk#&H*ZKg#@jZY=Tef_ctr16Ub!-rcNeVV zRml^1f7}h^h7s(y%L-U5B~H5?#?z`9#&q$mvGm&Q;Z&yT8KiY3!^-^EB*Yq5BlKXVTm1x1F>LABqE)_z<>(=&F_?uvs{WiW~Qo;pb1Cj?L) zY)EfHCA`61OP=W@2$D%z8A$CDryF>tgZoBgGS6JVr_Xi&&djjLo41nB19zQGIuC!SYTN ztG;0pnHHioBPm*mksIjURCOJst}TgHwfx(OXDM>0*pQDsdALw868iq66QzVz0>x@= z66T;uk_&PxJ|KvuWjodhrI$<72cbtHxTUB6@(Fenq>d^e#wp3)IBQ@-wLqnY$ z=`3ec>f5SE>(vyf-LgxdS4^OPa}XJndB%9VAKv+tkGj1zI9UAE?H{X_EC=`nzTX4gb~!it}f|@=5cEn6)3v7F&mpR~F$aiCdW7^8;z7B6snY zMNyY7Yo0;H$1I_1 zDwfeNN&a+eoF^R^F@c&dl%^>LGIVSIMM%#2PF9!fvR5BI4C{RZF*IizHY_Ma6@wo1 zc`M2s?;~t^c-ShZ+bU6O4%0Qt*J~k??K!a7|(QR-v7Oi{1Y-_);+;9(Ef6gC$ z<;LKOm#P@LRU3UTwzF?unauB0rLelHmBbqFfG7JhK|237{Jt+mZS9Td!g&rf!P<)s zG`LguHBK~f(G2>q+=2Fgo<#Xu8QS=&9&BDlLfM%fG7#ZF7L7V5e7Ii$=UM`qhI-&b zTVLGsnV_uAFf_ezkKHgk#Nrd@2wk^a6&xHa6kP4OBDgU>Pw3@Z&gz{MuxExR-kgSzy!*sc!?nM4-wJCqnZoyZrv*EiAS#x!h@!azFSnl1d#p8A<^Uhmx z-07|&&#{)|WinTg-Cm2g-#4>qhntzr#K-o}i?v|#z7=rcpD67sHl~MvXwyP6j=ml1 zL>-?lpdZG2Qm0HWDp5J4|DP(fR$Q81k(8h+hx6e|tr|#N9@53e02U@LhJR-%V{Jtg zrYKcoNXrAft%`U{^dd?hO~V)R@wi^545t;I!Z(3&$Ug4C!P`ElaD<>s`W93jeFQa2 zBe5ZFHBM?>igz0A@$Z)5n04VZJ1MThYO3Foc~x^@cTy4VKCc~wJF^)mZaWBj=gkJ!^AE{0-O)nbzG4=) zLK$nWOvH>bEj(o=hj0IhB2oLr)HKRjv;Q?#B71|CI3U|_R2KKG72po##rP~F0qxzc z;GW9YSTkdxQi zTvKfjM%AkX@D~QUM5bL9`A-HDoL>SpDgU%K8ECup2^DQ-e<1gCD47x z4s^^pi=m!F&*LNbRWk#>ZQ72no%djLTps3orJ`z1D7sAFi!x2SvGdCYoa2#+L1C9L zV!|2hcy|(yEH1=u*%UOKvI||NF29;;|n>>O&n-IThz$d{tX7uqCnp@%oQ(?_G% z(hEB`(NnnrwAj>-CV?|`&DNmO-I7#6svTzJ9fVIUQsAjjAqZ33$G(pH!OV#~e(GL{ zaNsZ|RwQD9$39GM3&N)x?NGAJ26YxMA7VEzjGa0Yso@fw_B03|h;G5etbB|zyoq5t zH5hiF0XxE8V0lI@4$r!di$0!3_mBJ0PV6rew@ei_+BcHH1^Z#v!h0aOUZfQ-4~auTbp|S?z0hj*1P;rbtz^Hzx^Txrxo zZvWAf3!^FbEK}lzyBg7X>mJm)B#oubwj@tK9CUo|LC>-A^iKK$>S@1)rZpPk`;98XB#T>MxBoB_yf)}Pr$M}6Jh@07D15dmpOi+>a^tmB@8CQdw#S?*X3NvOnRU>m9s*sN zm&w39U=iiLtZ=jkmU*RM^Yr7WJ*gO154(!4x>r%UxD=&dUd2`Ku3<%ZDaJXMVOxd} z7k;{fF6Y|u{XJ1W@JWHU?bP5SRSfy*DK>m-lQaKy)|Xp_ui<6^fqccVU~Zzko!{E9 zl?Q*{!V_{=^2?Wpd~Ee7-gxge%4F@v8@>-%(;98K5_}S-ua=|lgFL9O;wEZq9zsK2 z9i%gIQfZTW8nv2}Os5NCsr~Li>N1nkKgY+@cD-NVl9mVSb2MR=$$^UR@~y1QbQJzq z=!!W33CMQl9`1jU4vuk;2EaBe3+4H166r4eJkO z;|f>A@OAf5U8Dm`8h@j%rwAXtQj+)EOL9+_HuPF}9z!Cdu;GR@>d5XBRQ67VNAXqA z9L({$18s2+wq6UDsLD{RB6XqI3(i;b8V zz|>!=p|tHTEQw6V8T>lhe{Vv8em_b-l;y+!8^aw(X!5i%GJLD(KeRG_igPv}!FRjH zqt2r~!9%+(AU^FC)QlQKE&Cj)_oglMp+Pc@%gv*SlBa2tMKLWBJxNVnj?w9RGH8Ef zEZzFdpZ0y3NVA9cgKl*SWQ3d{J)JAr_=SGxd7~Ol7x&?goZ<8qlFiqzOyivoB6#QU%^neGEFb z$ik{g4}@v^x|mOT1ezKm*7V;)@1XzCXG$4HxFupqM*tSxc0_S~H7wkl%1S<12|fRm z3e;3al7=a-g-Z8|Sp9EJbPC&uUjL5a!1}wWoZ5#juo(dPlnjQFZAn!M6( zI5+HnjkO<=(RVts4sx3~UQYnyJtDM9d8jU}b#&RRJh*i{XOd(1wFff%x5Y2yt6MR>uohn&yo@{D&f@oH=P~NXfB5zJJG@mV!&~(Y z_^!AqT;i%17ood(=(;$5{J(Vmr|>w}gHyaS{1{hFNagE4?&lW-%ejG%CAY#)Shg<` zHE$J@$W@JCET&JL&M%^>>2dVX%zUajc%CM=avJYZO~bl|}jkQ`y zB?B#}Wx{ue7&r*6uVg^q__OfUs1;}!dkS|fL$uj@4{y%Cf%U4nxUwT13x@8hkOAE1 zT+iw|D}qY$=Y~q$bg4Gq zmuJiun49pefx6ram3UK67fSjaN6*)KXzTLFu4aW7DF1!~2ec;AqL}5>d~P(=Jep2z zXPuzy7oMjx%db$=yfSLM=nOqsoN>lkd2xMVk9MX1 ze(U+z9(%rEnLKaOkHHbgOo*6j5}aXTRKU--~3@&dL%hxm!p_E@X7~d`6f5 zyheNGo}rWdv*>o~D4IKe5e?`YPmRrgL!C!9)HfhW+q{}Rzh{J-4-9#jUlywU$io>E z&!W_+V!YLR1UDbqhJlZ!U|`NW<}o>$1s3jRormYK$(75PNa#*x~qOZs&-j(D#KXv2A_qBMDrDEKIpetv)^$Dw}`PC>I`z4kBmd&GCVJB#S_Hnwt=_n1$NTH>dB5Cc^RkUxz6gnqL zih8dtfs2pipefmjxh`9Q-DhrM^@w3yZ_j8Rs$s_4F9>+B3+3$^)3{HI9oOGI#D3>> zxsA9QSGu6UEhb5Eqp1=+@wNo7Iw8g7&W_~%`eV7Ll{Me$?#zvw{dn+)-8{h}lE;M~ z;BLM#d{Sd15Axc}muju!rGGtm=vE^>%;-68db1Oo$2|}}Tr>|>I6VTpUt?(3ULU$b zH?m5++Y06DvY`IKD3De+v}@@SM?VsQPoy~h>FdIn<->Vh zy*h6%*WU+ncZejN-xUUM|rdf#pUL)c9mnSs~lNd z*C6|xFNJb_GMGO}4%PeBaLfEjXt-bswl>VgYME8If7Uv*Z`g~2rU$U|QVf1LuSR1y1$VOj&| z=q1KmqNKPX%5m#GBe?CW5qx2yEU!r!&Qq$Tc$AkYe-+Y)zyGzMXg@2b-od2G_h5PT4Gh97 z*qreY=3nP1R%~qY6iy0E5=Kra5zbp9&E%tXnb{pjW;}Zn`)0P6E%k|JobdlPyV7K_+>!q=hVsPyqRWiO`tj1k&dVCzzOGSW;-8Q(R z><3EkogwExD{ze*3-vo?fW7}pf|KqMyCo+{^6Y)2PZP+we|-Xn2N8nmVSe_f4>||~ z{T>PL+!(`}^W9n3_Pq>SlG&ac$A>z&!Y(=9W-aNBOdH;^h`KH|X!D)5^!;F?V}G-~ zg5Ruj;3v~Q_nnOs`^+A`=wQk_+F5wwYbJTMnI*WrU^>$uGx3~9Y}b?qR{r}bv%L6< zP44=@3hwu?*!91d$e;u|?N-1!|EZuzfF^F3qKoe$$75r$*^s~3;^{Vm<2O+Jtv(gw z!U1)y2|iX3V9aA%{7fffmgxjcexQf%4{2h;y-}F|Z3LQnNn^)H5&T};%QOexvC%=# z*^F^_SWChs<}>FQlNo-H{c7`Ps;~8#v*{JZ3_H(<_N_*JmA~SCBXexf^2*s=(4r2>gyWVQL+*;9{E8+>mn$4 z?g6f2=Rp30nZVHA zSfUFq9_p~mL>{_R2Z>QgGa280o!t3+gxJp8PL^)7B)epP2|k|57Yx6mBZ#Y-VIQ%& z;CgfS&x-aHHp0rS=E5pt6`^qZg$i9Qr3$%}W!E?QrCnDP8D2qWy}MqJ@b~&-QR9l( z%=Z;%bV7udMm0j^!V#?3-JaP6u4L!m#j@%rg>0+gO}5(jC2RNo%Emn!hTGrDVfhRd zY(A@jo{PtzsmEwcao4~d&(%?3nJOw;so>MCiYO|OM~9iRsB=#aZXrj0n%H8OnlajFtE0BH z1iqNq%GBSMvSiQQthQE_Wgqkx{=WFsKCi!CV0C^xF;ZSdw1W>4#rIjn=)rLksd|DW zpFcs;pBIu>ZYPPN;|U^^I6-hxA<0%fO`L7d6KS;yQlxN)3|2lTkLG?MCua|XIlcKxgenM1ypB$3$`@#NcrI3j-Q5czrkFq!O>LymkoNqY54$%^bNWbxJt5;cR9tc)9^ zZY?MBkITtYy<$R!W}LP@hB&=lONO7EMz+h2CJ)6r1k-*T75IpNAiDUreSeJ5F6V>p z_0z(+*P2e>u^ZIMuz&S)lpt;0cEQou69TE+r-I$<#Yn`Tk>uocHKK5A1PKfKCAj?e zhT!Wdf5F@uGyB)G?1bO$z7-av5@uT;#r8FwWz6aki(2=c{hTF>LD8dezWaELxMG2I zYwWOiEyXtrrla>M2h`MZK%EeZ#!B}1@3l4Ft}#a&_lc+)qK_*+XyN5`YA6?~gr{T` zaZI>8&h8tIYcnNrWtB2*pb>kp@rsWyj+gh~=A(mY7w zdiRt1)0;@`^9967!GYMmv?Nvy#^m#NBci(2gqRMP6Xh?2{9f%z#J;R0h6}^VNc9AA z;(I31J$#(hb)O+k4@-&Sor|R9NEs2YxInBr&ynVcGi2kiLXuyaOM2I2ljxL85?Yr@ zc6eu#f_M4EtF(w{J}4t*)i=qX)sIQ2{YRqj@Q=9K$Us(~3ItSYgUXxnu+`EGQgp1L z{pS?eadHaiFS3H8E@lw0a6AMr(F8882zz}+A?k1&DM_y+!m48=@9#!Za&J6w$wvVV zx@)i7GgA2PyQw^8=jJQz+4t> zhy1X`MFq|BG;r12v3U819&Y|K9(&hL#4aT>d}uHkU8h;0&1@Tt?zP5TZi&e|%+dCd zF#kgl`Xp=05=KDoZKl}q*vGqQ4D=K51VHvD(-dV-)oz@~L_S+EpPiPhzsHK%jGfG|)0ho^sl!}T zm03%T1Y5D@v#?V6kuZ8!sj%i}x-eEGO4zh_jWE~RO&B-ZSSX<_CH(DBQ(=`5P@yUmGM+@Rs#t3XW9|`J-3K?{rL0IEX;?~hg*wuf9|g_)ei&b!Tu2Jf@V zPfyr^fhOkK@rrfYw=kW#P3%tb6Bcp0jy084F~9TI*^H4Ttk?b+6M1@wmCxAE3VPQu z$wD6%^Jx~l^v;fb>oa3~ry2V_*^)i}MOkjuJSNHfS#9_()-@`Q9b0yk8Oohw>bDtN z^RA9vI{%X0`T3DWr1vvt9Wj*im%yc=lK7)r3ZKVH;jZrz_^eM1OB?>O@DaUCPVFPJ zU)RFK7d5b{3RP@uU>Vc5Enw;=k{D45VI_w1Sc}Ry7TVJyw4LfF3~wp04bu)0B$xaX z*y}qH-GUh6&PqtNVgo7q9|dO?&(+h%ab(|;rDRKzBq2%sX1*ttq>{9kRFb4!Qqdw? zl58PK$R0wH#5pr3BuSDaQAkp$q(Tz?_4HiK<=o8Y^;zCGv+Eb`T_p$K-L=3qXEwy~ z2p;z=1=ltQs5IUL_7Ao|UAz-0hd6?7$9hQ6Tm_A8z&5ywgV}0=P#+BIJMh~0s7R52jFHynST;%i34~6H?LWeUd1f{9V zEJx0{vG;=dSe=`TxE6~*Zq}-Ft~|ApgRu@SwD>2N%8Vm7iX_OoP%%=sYm6&u`p6YX zKj#|0lyGTw7r1@mrd+M(HTD*N+tO@Sk6@;c6`C~ci@pV3LUuz*D0@>9^7$NrKK!=@ zseK-YO5a6Wd=Z_V;Zp?Jqnk?}?0Z078owcV4~9saqBs@0 zEl-CcCQ{WQ4O;M2hqmPF(ZMVF^uGK|delyzZjziqI}Ym7hufyo8h=e1dt8;y-mXON zCd$(OKryPYWrWyo`bhe?7evFaoVXh0kh6C#l9qz~BrU^)jGpb_id7bKEh)Z&%DC$& zXO1df{MH#y9F4{Yf^K8OSctZ#i$LC7S(wwM1VJsT;9R8!QDbVbu1^)*_y6Of zW_geeJR-A+5KhDO2u<1A*Y2hDzs<18<{Q2-OGLZX%B)7gpPi}XhEpywD zx7a(BeEJje92-Q^D&p9HQ^Kb&OvhRg=6J)JW%!Ey7Az`#01w_jiIr!a#g9xw@tPgs z*n2Dt555nd6<nZgpRSM~*DQdQ(iX=}c{GbY1~t2Vq=2?F%|( z`36ZZXhv`EJV$94o00OPHq@8?0X4n)jv`k4K|)u@;f*pfxK>^s4{>sM!SnGrL2m*! z`!oTY9#FEYt@rZ{to74FMegYh_5yywd?yu9li_LPamR&!IZ zpMNesZ(NKG=MWrISb-DfRAEK?``GU#j|+xN@ap+__^o9!t~(x%-!~k_D#lB2#vx@q zRCFKp8e5^1wSHx|Xf>xJ^^ntAqd;!Yup}2(IFUC~PY{#q=Sh%vED=pjA~(e{h~~B& zvgTes>AiG|9EM`DuB3!qPbwuhOjuIx$q|t>O1=$KvUMR(2IcONSCe?6BT7hSU@7TH zyG@QN&N;)TUyl^H z1Xv@jw0QJL@X@*9B%z9(p^$`V{Cy(ySKwNCKvm>9~xJrgm1Rw45>o+#y47&@kT4Q-xO zfcBlKKtC_lp*eqEBHyG=lqmiQO<(dIy$KjVC&&In4u{3@^S2YQU#TYUPBp}0Q!tJS zTZxO@cH)fvC$Q7a5WI3nEOrRIhPC3e@uuioxc*5g-fcy&Y%j%~+X&V=P>PKz3USNB zOsq;S|I;cMAN1Lc*O^=4_}GbfnoI+dx#fX6i#H3X`%l(+Z!C9Q?H$)PTZtt0%_Z(% zRuOlNJ;X(Dij4mfOpG^#lauz*~C&%Ojy_ z1w_ujkXT$VB8&2iN#V<4qGNZP1R35U`lbbB>#rPQ?U_cpZpM=ptHOy_%o%cj`Yv)J zdnwV@(kF9nNRaM5&$)T$;<*_ImU4Vf1KWQ5Y+0YuTEVrOHG+uELda>ZB6?%4j1*Q# zAj8G)1Y2CP1!lPpf|!__maU(?OC#4`D`Q{Fv7$X<><3a>mLB!^Zn4%lLAX(fpzU0@ zV0V>1%1qjcR_aEfdnXEzE?kg7c_Hzt(z|N1G$rak}hJ6e1}lMQ(h0%MJJBbNhRbarw8#bB4Y1*;+h{iYfhQP(v2)zNU!-_8H;f!wc{Ul~q`|dn;a}a}cxnr}2;Q zU>t1_j!#I%;zvpeSoiEToPRO{m)^RLqmy&6MPx3XnV5s8e9FSBG}E!(wgHRawh>dw7ew>h@Ca>c}$Z51-0ZyA0SGvW|Vu2eQdg8LSn0z$*9lvCacB zT-Ih?ZoD4DiG?_E1#MoO>b?+8>t!r=)-8qm;E~UXim==lvj^O-srB5!o6THf%3H4e z)HiPN_dnc$(_+L)WIQ>;O(I@NIwa(@5$Tslq<^O^i9fxbtQ71dyPG_Sb;>F7vml7f z$vjU?|AvvVQkuPk=&f=fi5nTRtzZ_h z9hgKu4UHrB+&Z~jw^EMlisGt$R&&MN7nL~&pevj6klddp z)OhDFYS2~2G*TZ+vVfT_tFb(G#SN}UasJi-{Nh6hmhTP6B^DR4YH9SpEf|dj2QK2z z1L62kR|u9>48)VUB!G|8k#?C23i+68-0$LgZj~2lqfL|P2XjLvR=I;GZhb01Ki&4wt4o57VtRqVWQdi1K)z#VV zwTIYdwQH<|)I&Dw*a$mCT8+a=h+7u3gLBv!%o#jL;iA`WnFE1daGnW&`wzb5*%aOEQ+D?jPcMx*}XL4}%HnL{RCbCFlHJSXcr{qU5 zsYsbaZih`Le%+Hv`6oG2=P68nKK{ft`#$5Y?BuxSJsI4RU6Gstca$T&c3i=ashk$u z%aZU5?7Py^GG=nCW$*HMf&83t=$e!j%DHwN75_;(w{pE0P zk_xsurjGA;X=8hF9enZURJ@~h3J&vB$6f#SoYx~+%#4cQb=BX|ozXUA6Iq4SujeBt z?Rd2O-C6Y5Xb-w9y%fE;HXB_pQA2avl~Kr@iD(~ELuukVDEFxm^6Wq;)@v0~xv&*| zk2-(~=lP(9Uw()|0Z4Iq0D3MFgs$`lp_;4y=;YLsNOI*7#3Z?+ne29S;?o9nNzD%J zJhKEXP6nj&%@iF}o`vpoPClaYsK4?U%iQg4gFFhd&u8*)a*l?7N79odVF0jV@^0c5@_hT?`E`NE7T_z*(kT zQ)R!G)v(q&x}2Sa3pYk1xZ{w+g(p{X6Q;FrRO}1)Mgd6g z`!3W}Z-dTx&O{S~70_7!fIz9eQDE9vBq-|15VRdg6;#Gt5mar96Z~k45v15e3z{9H z1aCG(3((&P!6u7PL08yWL59md!Mklv0>8^^1mA{@1-S>N2*j|g;J;WgkRpF>}o!qL{2NW|Ah zqVl=tk$kit+O)(SDK4}|%C|Jo;-uGt`ZN0l+G=u^zLm3C$BX6cq$m|GBHV_vc<#wH zM22y1q*J)4zyi*zljZI@RdGt%Pq+a5oHJecg8Sk8k`wZM!4>Uq&xx-T) zax=54DiR4QL>Yc%$j+hyX{1%5 zR|~6<@cas7t;ix*`|tmYwla zf&H^?8f#~u&n~>H$2KgS!pgU3vfjs~*{W;pWntQpWygM~mHwK)%~D+Mk7c{?GJ&lA zWr2%MrNCXUSCEk`g9gI2(BiGL(P*duMFv}=TkXrxfWHlj(^`PcF3m*}bEYBNVo6l3 z*CrUYOcj_`Vu8<$^Op5a8D$;6oY^svTkLYvudHW@3KyVc%!P#5aD6A7I9Y8E&Q{Hj zlO7J{%JzhD+e)u9Mv*IFWnH9lxw}f#`5*N7ARp&V-<19CQG=R%d z^5ZIWk8x%5_jB@>oVhr^)!e+60z(}wq@%Y8JwCVtY1#WC*TnN^)x2nwb?!29T#$eo;0l^M=Q66h5rw#OA!vi~ z8Pwmr7wx;h4s9~DM3zHZ$V*ieS+0C8Sb8f>;C6k7z-Nz`;A^h2rK=P!Q)>BHHoR;G zTX|MWqDrcg5@2DT^0#XmXz7a zw3hWXXtOaAcI+3lhjqGgfj##-mUVxa!k*U6VMSZ=SSBE!y|6W#&CW?<-Td&&a;9QgiU^1!cMw+gH=sQV*NITvO)># z*rzFKtZl>5G7J33LZ2J647|TzP}X!)VDJ7>aKc6odG+ZbNo|Zo^H!s!MK0)?+#%Gv z!W&&s_d}Nz{ZXo@AIetsM$$S5(3i>1=z91nlqI(S^^D9yA(AR6H|{?{`sPOh7vluM zRb(v?yu53fy>iLj?~WB^??P?as9P6U_w)j`skoW7o;S#PCChNEu?D9jtIyf%m~yAy zFr3+18!j!vo*Q_#o{OYgxf%J}x%E?>xzRb>IoWgDIFD9GF1Tkcryt#z47{-&pb7*#6p3SelE!=SN&nPUi-|3E$v|A3tqBo>{{6KcCXpwXRp}}!e3bB znD6Xo>p!fulqe?=Ce58SlIPTakLOw@sc^$}iky<6Jhy9|B&TF7#6>UYV}mBXU`6A3 zcF~Izc8A7UR(bno*1UQWd)nt_nSAZtQh9fOOGR}dLAdrRf%TUN!Rq6g0y+80e;NEn zFmiNEP<&AmsSQj-iC?tQ8l^c%=OaSvCND)LG3(Ln!@H1s>~Z9L+#luNKaV=MMW8~9 zOK9=W1Z3QO4W;rK=NQo``&x#~~%>7*xA745^(vi>42p zMkzK&kg>*EbU120O04|XQPrJ-IK5=SzXc>%aAt?4&HUi9jD_;-YO$kiZ$~#{i-a+N_sE8;9-T~=~kpJx+Ik1+E0N<8vAUx6jf^}sz*48D%9$2PIcv25c7Lh|ZK zNt85I#IH#~_kGgXc9tYhpG5kt*I{a8JN!EeTyGac)WyKE<8zx zXSmQM`UW&irIe(<^B{+MdeB1WL@bjDc&uF!eR(p2^sl@|%2W!--lgYA;pkmfHEmv5 zg;fUHYwshN{AL^p1vk?DAcQ=BwU3-Lwc;N1NnOU;Wo)UTyWtvE;eOxO}sz8 zQ|^Lq{5tta=i~x$PaUH(ZY_zq5nv*3TdwudkD)DT!qJjwo{Q>T#m7&V?x5 zI6)F;+Ywb^W3u@69I`OimNdzpAmt*bNz7G$Vx|~K6b*yOw%?AV=Lsf(4|T|y0Wq@a zQ#U7mLW4Y3e8WZWjptgr-m*tqV+C=w4uWd&Ac6VtGE1GW3G5}SbT;GtVWcSDh_+of z#SFU(8~#3zKfFr84#{`$&hvM$h*~NRX-~mEFJf@S?kYTd^C#ALD+Hpx;xIf*0%WBm zV9_&4xHBRN14iPoc-a_s-0=oGWOZW`Bm$RrDuIZ$4!CR1fHd97ut^{cs*8QDFuRs$x$dgz86O6Zm8P01(X+UhorsRp~ZVQn7-TvFRpI@u?u#f{1d~< zaq}Q?%mVtqBH*7GfnmEoh+bER?3MB`E=>$RI1gf#$-nVn#W0pKAH?-L-s6rC9($Q2 z;GPC=%ru$fVwXiY;Mz*88s>!SytZJI$-j_agS{ZrtctUb@+3dKQpmLNSBT&2tE4d` zn)H4uBY9T8$>&#U)C(KY4$lR2p@AJeJ$o;W9rB?H5gyd&_-Wet_7rvU4yVvgF||1`S$#CY2O;4x8)y-4P{tB~!c%TeYRLoE8Y1b46c zgr&}Y!n4fY;NFwN_}YDS@RVH&0)vCFYi$T5?2G^}g%~hh7Y!#a#6ykwRd_!&0SsR! z!H{J<1ZpS3xvXoT_FpPgYNtU&UNY!xj)6FrNT|#{2j%agVMc8{RES4{wpcV|*+#&T zl_4Op&>t3z?t|o}l@Q!+2dA`F!UogbaIo$eI8<#0Bk%dp**OmGw*WXm$G^P5hg2Kz zQ0qfHwf#GudA1u5#@@iOP>7dQ1>pX&^Qd}eCTBJwh?pl`B_D2=5QCN*M5jEO7~KC# zMEew}ODfRxXFKVk<3Y60_Y&=o$)GbgvQ$p?9-VNfo(fuDQiW6XGu^35 zpI1kde|6I88}fX0=0ra2kR-pbzn^~guAytz=TiM?X>`N&8??9S3Ee;Q4P8FcLzO3f zr&VVv=uHTu3I`-<={kGTzAToMUl}BuS8LGG?zuGB>pm&ppuy%HiNjLQRA5r&JV?9f z1TIppP;<@&V!s@Q%8z?MG%67G;%iXQSPV(iYvA|CD(E{_0WQh+;kV{}@LGExs)HVa zwCr6l63&Fq|FWU#T@h$Zse*HZ&CtE~1yFJuHuuLu@304KQ#b@A&Y=*GF2T+ZJ+!20YeZ;DtOD)ISwI~ggi!5oXQ)t`EOp9nFa2q0*l)#PGRWPDo3jHFPV5pi8rsHB^ zQ+WUsfAfciaogbSnQdT@ejF}Wg+s&bR2Z4#4+#tAf{=qE7*r6vGHV#m-k}3}*=A6; zZy|*GE5egw!q7FL2UnId*kZ*TWHgq@Ic)`E5oE`GpU#wtJ7WZOO61H;8EWQWPABPl z(B)hlHO!Bu{Wp{8<(;>v_k>KUI?U7kpBrh4doNWvtiV6osKn=9{*Q)9_0Tg>&*_3M z{WRgEDj$4PpKpFC;3sa^}F5WAfNy8CiL@^dk46Zr@qdgPeJlO`}` zTjZGEtAB#L#8dcD{|I)+l|l6L8Zi3Z2AWN8q1ovxjKAIi&2OH7+S_7~;xEFXnMtrW zAsyQPs}Kptuaz{ zVHWLtVL{!jkI)UWVKg8lg|b_2(Y}TU^ez2BtI2ojEIvZrGNgD7u@UNfzvXC_#4p_emHvISveB&SJe$)j+YW4 zz_b!<@}EH6+e*mDp&+0aK)Go@Z0HSyI5kf=ea{CrMYzL}J9|NApD)PTY=!e;?%+7Z z8T9-n!KWSKFtM*6TaDCVr4tocdul5-z0`=4HJ{-XThp=64-Sc()Ft=uFsW9Sq068D zCC(@6i3ndtF1yK6tAnoe`|T?$*^;X7TotBk5x`%xj|a9aF6f~t5D8u027<)T7qv4#|NO8^-a+5&O6ZGCh0bjkAoh3$`1Eyxj^}tr zC|RB94pd+qgN9-1NHx3;C;;Og3Ss+RgXY>Hh%l019L9+;ZVf-d#i|BWRjxtP!C3Gp ziUFOAWe^(m222ZIfkE68*ltt+<86+B>NjVoH{A;XM}nazH3nkCBSE(C0_;gW3Pp3g z;q=!H;Hs$)k%rU3>4PYgS1bJM4s+-g(E-U?ZP>2*1qZ`n?As=ZJ2^wH!TnEJ;`U!$ z$|VnSe#C)zwcI8#7r&8AGabs;dr{@gD9Sv{q3*qpXwiyd8Z*dKwPzhvmH@{ zo{D^8s4|bYit(Z$15`D+hjyP);ZqcJc!yR4UN+T=pZ!Ri_nI<}zwh;j;;K=~zEa|^ zwrlV@Sc^AT)8$h(i}IF*-L(Aj9XjagMQ2PtN2`n?>ESiEXu*$4TC&@p_S&?P;%7#9 zx`hVFrb@wapLCr6pB~zJT^;iYlfkrfJNRu%13`B)xcYQ~>BCnLdGi6NMQ6as#Z(xO zxe0oUyCHe00uvjo$kb^_GB$~Q;FJ0QrrK1%dzU&GXzBo!o*_u}>;o(PArQ!X0YTqm zI3ZmGh41ueWPhy(`LP}t z%I}ZEto9m!|%nzK( z_rkc_+aOH&0`z@84Iw>25FH#1kD7wPv>^blDsO_uR|;UD_yxQCmyeAqv|v-HGsxdI zftWwK5Yk?U?UfY&d1b9dqSias@bC=wxaJnF=lKh6h$Wo#o`d8aY9yyT^yo3E09qm+ zPx~ibrhob)Y1?2LeY*GtP42u$M|KQR>&p`S(=AfGcBdk52NQTcc8I>2@`ieezoe2A zlz8pUb9vwQbNTcPTVBU>8vnzim)b?Ypkuq

&)-UU$O`UVC&Ve|&H@pQ0kpHxE9c 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 BIdcF2 literal 0 HcmV?d00001 diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/sa8775p/cpu_control/inference_comparison.json b/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/sa8775p/cpu_control/inference_comparison.json new file mode 100644 index 000000000..d786e6182 --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/sa8775p/cpu_control/inference_comparison.json @@ -0,0 +1,51 @@ +{ + "scope": "one Qwen3-TTS Code2Wav inference on the exact SA8775P ADP CPU; no complete TTS stream", + "status": "component_cpu_numeric_parity_on_one_fixture", + "compile_job_id": "jp410o3vp", + "inference_job_id": "jp1nj7x7g", + "target_model_id": "mnze95don", + "input_dataset_id": "d7m80jl32", + "requested_compute_unit": "cpu", + "device": { + "name": "SA8775P ADP", + "os": "14", + "attributes": [ + "os:android", + "framework:tflite", + "framework:onnx", + "vendor:qualcomm", + "abi:aarch64-android", + "format:auto", + "chipset:qualcomm-sa8775p", + "hexagon:v73", + "soc-model:52", + "htp-supports-fp16:true", + "htp-supports-weight-sharing:true", + "framework:qnn" + ] + }, + "output_sha256": "853feface7a93f7a22a0ffba8d1e297fe5a8780bd64f0444a6ce07b277246d3e", + "source_onnx_cpu_vs_sa_cpu": { + "relative_l2": 4.1337705035866275e-06, + "snr_db": 107.67307275926692, + "max_abs": 6.854534149169922e-06, + "cosine": 0.9999999999914584, + "reference_rms": 0.08373439205485074, + "output_rms": 0.08373439765610562, + "output_saturated_fraction_abs_ge_0_999": 0.0 + }, + "sa_cpu_vs_sa_gpu_requested": { + "relative_l2": 11.832416467511793, + "snr_db": -21.46146894384565, + "max_abs": 1.4882185459136963, + "cosine": 0.017841895688532488, + "reference_rms": 0.08373439765610562, + "output_rms": 0.988730688363501, + "output_saturated_fraction_abs_ge_0_999": 0.9663333333333334 + }, + "limits": [ + "No actual per-node placement profile yet.", + "One fixed vocoder waveform has no listening-quality tolerance.", + "No talker, predictor, handoff or complete TTS stream tested." + ] +} diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/sa8775p/cpu_control/inference_report.json b/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/sa8775p/cpu_control/inference_report.json new file mode 100644 index 000000000..afc357ff5 --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/sa8775p/cpu_control/inference_report.json @@ -0,0 +1,32 @@ +{ + "timestamp_utc": "2026-09-23T23:20:01.293905+00:00", + "qai_hub_version": "0.55.0", + "facility": "Qualcomm AI Hub Workbench", + "job_id": "jp1nj7x7g", + "url": "https://workbench.aihub.qualcomm.com/jobs/jp1nj7x7g/", + "status": "SUCCESS", + "status_message": "", + "options": "--compute_unit cpu", + "hub_version": "aihub-2026.09.11.0", + "device": { + "name": "SA8775P ADP", + "os": "14", + "attributes": [ + "os:android", + "framework:tflite", + "framework:onnx", + "vendor:qualcomm", + "abi:aarch64-android", + "format:auto", + "chipset:qualcomm-sa8775p", + "hexagon:v73", + "soc-model:52", + "htp-supports-fp16:true", + "htp-supports-weight-sharing:true", + "framework:qnn" + ] + }, + "model_id": "mnze95don", + "input_dataset_id": "d7m80jl32", + "outputs": "device_output.npz" +} diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/sa8775p/cpu_control/profile_submission.json b/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/sa8775p/cpu_control/profile_submission.json new file mode 100644 index 000000000..ca92bd496 --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/sa8775p/cpu_control/profile_submission.json @@ -0,0 +1,12 @@ +{ + "facility": "Qualcomm AI Hub Workbench", + "qai_hub_version": "0.55.0", + "source_compile_job_id": "jp410o3vp", + "target_model_id": "mnze95don", + "device": "SA8775P ADP", + "options": "--compute_unit cpu", + "kind": "profile", + "status": "SUBMITTED", + "job_id": "jp2rwv7xg", + "url": "https://workbench.aihub.qualcomm.com/jobs/jp2rwv7xg/" +} diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/xelite/directml/inference_report.json b/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/xelite/directml/inference_report.json new file mode 100644 index 000000000..0eed3e2c2 --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/xelite/directml/inference_report.json @@ -0,0 +1,31 @@ +{ + "timestamp_utc": "2026-09-23T23:24:59.412365+00:00", + "qai_hub_version": "0.55.0", + "facility": "Qualcomm AI Hub Workbench", + "job_id": "jp2rwvy6g", + "url": "https://workbench.aihub.qualcomm.com/jobs/jp2rwvy6g/", + "status": "FAILED", + "status_message": "Failed to profile the model: Exception during initialization: C:\\dev\\tetracode\\build\\third_party.build\\onnxruntime\\src\\onnxruntime\\core\\providers\\dml\\DmlExecutionProvider\\src\\MLOperatorAuthorImpl.cpp(2844)\\onnxruntime.dll!00007FFD9D307164: (caller: 00007FFD9D3236B0) Exception(2) tid(2870) 80070057 The parameter is incorrect.\r\n", + "options": "--onnx_execution_providers directml", + "hub_version": "aihub-2026.09.11.0", + "device": { + "name": "Snapdragon X Elite CRD", + "os": "11", + "attributes": [ + "os:windows", + "format:compute", + "framework:onnx", + "vendor:qualcomm", + "abi:aarch64-windows", + "chipset:qualcomm-snapdragon-x-elite", + "chipset:sc8380xp", + "hexagon:v73", + "soc-model:60", + "htp-supports-fp16:true", + "htp-supports-weight-sharing:true", + "framework:qnn" + ] + }, + "model_id": "mnz079ezm", + "input_dataset_id": "d7m80jl32" +} diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/xelite/directml/profile_report.json b/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/xelite/directml/profile_report.json new file mode 100644 index 000000000..fbc0e5458 --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/xelite/directml/profile_report.json @@ -0,0 +1,40 @@ +{ + "timestamp_utc": "2026-09-23T23:30:03.698535+00:00", + "qai_hub_version": "0.55.0", + "facility": "Qualcomm AI Hub Workbench", + "job_id": "jpyox7305", + "url": "https://workbench.aihub.qualcomm.com/jobs/jpyox7305/", + "status": "FAILED", + "status_message": "Failed to profile the model: Exception during initialization: C:\\dev\\tetracode\\build\\third_party.build\\onnxruntime\\src\\onnxruntime\\core\\providers\\dml\\DmlExecutionProvider\\src\\MLOperatorAuthorImpl.cpp(2844)\\onnxruntime.dll!00007FF89C7F7164: (caller: 00007FF89C8136B0) Exception(2) tid(2264) 80070057 The parameter is incorrect.\r\n", + "options": "--onnx_execution_providers directml", + "hub_version": "aihub-2026.09.11.0", + "device": { + "name": "Snapdragon X Elite CRD", + "os": "11", + "attributes": [ + "os:windows", + "format:compute", + "framework:onnx", + "vendor:qualcomm", + "abi:aarch64-windows", + "chipset:qualcomm-snapdragon-x-elite", + "chipset:sc8380xp", + "hexagon:v73", + "soc-model:60", + "htp-supports-fp16:true", + "htp-supports-weight-sharing:true", + "framework:qnn" + ] + }, + "model_id": "mnz079ezm", + "shapes": { + "quantized": [ + [ + 1, + 512, + 97 + ], + "float32" + ] + } +} diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/xelite/qnn_npu/compile_report.json b/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/xelite/qnn_npu/compile_report.json new file mode 100644 index 000000000..586bfed4e --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/xelite/qnn_npu/compile_report.json @@ -0,0 +1,31 @@ +{ + "retrieved_utc": "2026-09-23T23:28:23.406644+00:00", + "facility": "Qualcomm AI Hub Workbench", + "qai_hub_version": "0.55.0", + "job_id": "jgdd3zrkg", + "url": "https://workbench.aihub.qualcomm.com/jobs/jgdd3zrkg/", + "status": "SUCCESS", + "status_message": "", + "source_model_id": "mqyer339n", + "target_model_id": "mmxj098kq", + "device": { + "name": "Snapdragon X Elite CRD", + "os": "11", + "attributes": [ + "os:windows", + "format:compute", + "framework:onnx", + "vendor:qualcomm", + "abi:aarch64-windows", + "chipset:qualcomm-snapdragon-x-elite", + "chipset:sc8380xp", + "hexagon:v73", + "soc-model:60", + "htp-supports-fp16:true", + "htp-supports-weight-sharing:true", + "framework:qnn" + ] + }, + "options": "--target_runtime qnn_dlc --qnn_options default_graph_htp_precision=FLOAT16", + "hub_version": "aihub-2026.09.11.0" +} diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/xelite/qnn_npu/compile_submission.json b/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/xelite/qnn_npu/compile_submission.json new file mode 100644 index 000000000..dd97ac957 --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/xelite/qnn_npu/compile_submission.json @@ -0,0 +1,12 @@ +{ + "timestamp_utc": "2026-09-23T23:25:18.407088+00:00", + "facility": "Qualcomm AI Hub Workbench", + "qai_hub_version": "0.55.0", + "source_model_id": "mqyer339n", + "device": "Snapdragon X Elite CRD", + "options": "--target_runtime qnn_dlc --qnn_options default_graph_htp_precision=FLOAT16", + "kind": "compile", + "status": "SUBMITTED", + "job_id": "jgdd3zrkg", + "url": "https://workbench.aihub.qualcomm.com/jobs/jgdd3zrkg/" +} diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/xelite/qnn_npu/inference_submission.json b/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/xelite/qnn_npu/inference_submission.json new file mode 100644 index 000000000..bd2bb5a7f --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/xelite/qnn_npu/inference_submission.json @@ -0,0 +1,14 @@ +{ + "timestamp_utc": "2026-09-23T23:28:36.325272+00:00", + "facility": "Qualcomm AI Hub Workbench", + "qai_hub_version": "0.55.0", + "source_compile_job_id": "jgdd3zrkg", + "target_model_id": "mmxj098kq", + "input_dataset_id": "d7m80jl32", + "device": "Snapdragon X Elite CRD", + "options": "--compute_unit npu", + "kind": "inference", + "status": "SUBMITTED", + "job_id": "jprl0n9ep", + "url": "https://workbench.aihub.qualcomm.com/jobs/jprl0n9ep/" +} diff --git a/benchmarks/edge_harness/results/e2e_profiling_20260922/evidence/summary/README.md b/benchmarks/edge_harness/results/e2e_profiling_20260922/evidence/summary/README.md index 15041ae04..3dbafca80 100644 --- a/benchmarks/edge_harness/results/e2e_profiling_20260922/evidence/summary/README.md +++ b/benchmarks/edge_harness/results/e2e_profiling_20260922/evidence/summary/README.md @@ -12,11 +12,13 @@ On a hosted [Galaxy S24 Spark attention-layer experiment](../../../e2e_expansion The same W8A16 layer also ran on hosted [Snapdragon X Elite CRD](../../../e2e_expansion_20260923/evidence/spark_xelite_full_attention/README.md) and [SA8775P ADP](../../../e2e_expansion_20260923/evidence/spark_sa8775_full_attention/README.md) NPUs, with pinned-fixture outputs identical to S24/S25; the 100-sample component p50/p95 was 1.433/1.606 ms and 1.837/2.079 ms, respectively. On [RB3 Gen 2 / QCS6490](../../../e2e_expansion_20260923/evidence/spark_rb3_full_attention/README.md), that W8A16 graph failed QNN DLC loading even after target-specific recompilation. An FP32 ONNX CPU layer then passed with source-relative L2 below 9e-7, while a calibrated W8A8 NPU layer executed but had 20.9% hidden-state relative L2 and remains numerically unqualified. These hosted component outcomes do not establish full generation or comparable device speed. -A [Qwen3-TTS Code2Wav follow-up](../../../e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/README.md) recovered source and target artifacts, a retained fixture, and raw historical profiles. On SA8775P, fresh GPU-requested inference saturated 96.63% of waveform samples and differed from original ONNX CPU by 11.832 relative L2; this tested vocoder path is numerically unqualified. Fresh RB3 inference was unsaturated but differed from CPU by 15.73% relative L2 (16.06 dB SNR), also without a listening-quality gate. Historical SA8775P/RB3 profile p50/p95 values were 1.751/1.874 s and 3.143/3.189 s, respectively, with both CPU and GPU rows; earlier estimated-time fields were minima. X Elite ONNX CPU vocoder inference passed on the same fixture with 8.09e-7 relative L2 versus local ONNX CPU; its 94-sample component p50/p95 was 6.384/6.644 s with all execution-detail rows on CPU. DirectML retry was pending. None is a complete TTS stream. +A [Qwen3-TTS Code2Wav follow-up](../../../e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/README.md) recovered source and target artifacts, a retained fixture, and raw historical profiles. On SA8775P, fresh GPU-requested inference saturated 96.63% of waveform samples and differed from original ONNX CPU by 11.832 relative L2; the same binary's CPU-requested output on the exact SA device matched ONNX CPU within 4.13e-6 relative L2. The GPU-requested path remains numerically failed while CPU placement profiling is pending. Fresh RB3 inference was unsaturated but differed from CPU by 15.73% relative L2 (16.06 dB SNR), without a listening-quality gate; its 100-sample mixed CPU/GPU component p50/p95 was 3.099/3.133 s. X Elite ONNX CPU vocoder inference passed on the same fixture with 8.09e-7 relative L2 versus local ONNX CPU; its 94-sample component p50/p95 was 6.384/6.644 s with all execution-detail rows on CPU. DirectML retry was pending. None is a complete TTS stream. The identical SA/RB3 TFLite binary matched original ONNX CPU within 3.45e-6 relative L2 in a separate local HX370 x86-64 LiteRT CPU control. This narrows the SA waveform saturation to hosted device/runtime behavior, without proving either embedded CPU route or a specific GPU-delegate fault. A separate [Qwen3-TTS talker decode-step attempt](../../../e2e_expansion_20260924/evidence/qwen_tts_talker_qualcomm/README.md) recovered a 28-layer ONNX export and synthetic fixed-cache fixture. Historical FP16 QNN context-binary compiles passed for S24, S25, SA8775P and X Elite, but the same-fixture inference jobs were pending. An RB3 compile rejected floating-point input. No talker runtime or numerical pass is implied by those compile outcomes. + +A [Galaxy S25 InternVLA Cosmos attempt](../../../e2e_expansion_20260924/evidence/internvla_cosmos_qualcomm/README.md) packaged the real Place_Markpen image encoder into one ONNX file after two CPU parity fixtures. FLOAT16 QNN DLC compilation passed, while same-fixture NPU-requested inference was pending. This changes the artifact investigation for that cell, not its NPU or full-policy qualification. ## Configuration × model @@ -83,7 +85,7 @@ NOT E2E means no complete device/model workload was verified. “Scoped E2E” i | PC CPU+iGPU+NPU +/- discrete GPU, joint model execution | MiniCPM-o 4.5 | NOT_E2E_PROFILEABLE | No qualifying same-model multi-accelerator deployment/artifact plan or overlap/recovery evidence. Individual routes are not a joint pipeline. | Supply and validate the missing matching artifact/backend, then run the complete specified workload. | | PC CPU+iGPU+NPU +/- discrete GPU, joint model execution | InternVLA-A1 | NOT_E2E_PROFILEABLE | No qualifying same-model multi-accelerator deployment/artifact plan or overlap/recovery evidence. Individual routes are not a joint pipeline. | Supply and validate the missing matching artifact/backend, then run the complete specified workload. | | PC Snapdragon X Elite CRD / AI Hub | Spark-X2.5 | COMPONENT_NPU_INFERENCE_PROFILED; NOT_E2E_PROFILEABLE | A real Spark-X2.5-1.7B one-layer W8A16 QDQ attention artifact, compiled as QNN DLC, ran on the exact hosted Snapdragon X Elite CRD (Windows 11 ARM64). Inference returned finite hidden/new-K/new-V tensors bitwise identical to the prior S24/S25 NPU outputs on the same fixture; the profile attributed all 73 execution-detail rows to NPU. Across 100 component samples, nearest-rank p50/p95 was 1.433/1.606 ms; the 1.346 ms estimated-time field is the minimum. Hidden/K/V relative L2 versus original FP32 ONNX CPU was 1.351%/0.377%/0.650%, without a next-token quality tolerance. There is no complete 28-layer prefill/decode/KV-ring/sampling loop, resident Omni controller or complete-request timing. | Qualify a complete X Elite resident artifact/controller with state, token quality, memory admission/cancel and sustained power; [X Elite NPU raw evidence](../../../e2e_expansion_20260923/evidence/spark_xelite_full_attention/README.md). | -| PC Snapdragon X Elite CRD / AI Hub | Qwen3-TTS 0.6B CustomVoice | COMPONENT_ONNX_CPU_VOCODER_PARITY_PROFILED; NOT_E2E_PROFILEABLE | The fresh ONNX vocoder inference on the exact Windows 11 ARM64 X Elite CRD requested CPU and returned an unsaturated waveform on the pinned fixture, matching local ONNX Runtime CPU with 8.09e-7 relative L2 and 121.84 dB SNR. Its 94-sample component profile had nearest-rank p50/p95 6.384/6.644 s and all 634 execution-detail rows on CPU; 5.917 s estimated time is the sample minimum. This is one component, without a listening-quality gate. Corrected DirectML inference/profile jobs were pending; the initial DirectML submissions failed because mutually exclusive run options were specified. Historical QNN talker profiling lacks a same-fixture numerical or full-pipeline gate. The older TFLite vocoder target was rejected on Windows ARM; no complete stream exists. | Audit DirectML retry, qualify talker/predictor and complete local streaming, memory and sustained behavior; [vocoder evidence](../../../e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/README.md). | +| PC Snapdragon X Elite CRD / AI Hub | Qwen3-TTS 0.6B CustomVoice | COMPONENT_ONNX_CPU_VOCODER_PARITY_PROFILED; DIRECTML_RUNTIME_FAILED; QNN_NPU_COMPILE_PASS; NOT_E2E_PROFILEABLE | The fresh ONNX vocoder inference on the exact Windows 11 ARM64 X Elite CRD requested CPU and returned an unsaturated waveform on the pinned fixture, matching local ONNX Runtime CPU with 8.09e-7 relative L2 and 121.84 dB SNR. Its 94-sample component profile had nearest-rank p50/p95 6.384/6.644 s and all 634 execution-detail rows on CPU; 5.917 s estimated time is the sample minimum. This is one component, without a listening-quality gate. Corrected DirectML inference and profile both failed at provider initialization with Windows error 80070057, producing no output or timing. A separate FP16 QNN DLC compile passed, but same-fixture NPU-requested inference was pending. Historical QNN talker profiling lacks a same-fixture numerical or full-pipeline gate. The older TFLite vocoder target was rejected on Windows ARM; no complete stream exists. | Audit the explicit QNN NPU inference, investigate the tested DirectML provider failure, and qualify talker/predictor plus complete local streaming, memory and sustained behavior; [vocoder evidence](../../../e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/README.md). | | PC Snapdragon X Elite CRD / AI Hub | Qwen3.8-27B | NOT_E2E_PROFILEABLE | No complete qualified target artifact and device-local stateful Omni backend. Hub jobs provide component execution, not an on-device generation/streaming controller; ADB has no attached device. | Supply and validate the missing matching artifact/backend, then run the complete specified workload. | | PC Snapdragon X Elite CRD / AI Hub | MiniCPM-o 4.5 | NOT_E2E_PROFILEABLE | No complete qualified target artifact and device-local stateful Omni backend. Hub jobs provide component execution, not an on-device generation/streaming controller; ADB has no attached device. | Supply and validate the missing matching artifact/backend, then run the complete specified workload. | | PC Snapdragon X Elite CRD / AI Hub | InternVLA-A1 | NOT_E2E_PROFILEABLE | No complete qualified target artifact and device-local stateful Omni backend. Hub jobs provide component execution, not an on-device generation/streaming controller; ADB has no attached device. | Supply and validate the missing matching artifact/backend, then run the complete specified workload. | @@ -91,19 +93,19 @@ NOT E2E means no complete device/model workload was verified. “Scoped E2E” i | Mobile Galaxy S25 / Snapdragon 8 Elite for Galaxy | Qwen3-TTS 0.6B CustomVoice | NOT_E2E_PROFILEABLE | Fresh FP16 predictor inference passed; its one output exactly matches the same compiled artifact/dataset reference. Historical decoder parity exists. No complete co-resident NPU/GPU stream. | Validate the device-local talker/predictor/vocoder pipeline, output quality, recovery and 30-minute thermal behavior. | | Mobile Galaxy S25 / Snapdragon 8 Elite for Galaxy | Qwen3.8-27B | NOT_E2E_PROFILEABLE | No complete qualified target artifact and device-local stateful Omni backend. Hub jobs provide component execution, not an on-device generation/streaming controller; ADB has no attached device. | Supply and validate the missing matching artifact/backend, then run the complete specified workload. | | Mobile Galaxy S25 / Snapdragon 8 Elite for Galaxy | MiniCPM-o 4.5 | NOT_E2E_PROFILEABLE | Fresh FP16 speech-head inference passed; all 41 outputs exactly match the same artifact/dataset reference. Historical FP16 numerical parity passed; tested W8A16 top-1 parity failed. Thinker/encoders/vocoder are not qualified together. | Supply a qualified complete mobile checkpoint/export and validate the full multimodal/stateful pipeline. | -| Mobile Galaxy S25 / Snapdragon 8 Elite for Galaxy | InternVLA-A1 | NOT_E2E_PROFILEABLE | No complete qualified target artifact and device-local stateful Omni backend. Hub jobs provide component execution, not an on-device generation/streaming controller; ADB has no attached device. | Supply and validate the missing matching artifact/backend, then run the complete specified workload. | +| Mobile Galaxy S25 / Snapdragon 8 Elite for Galaxy | InternVLA-A1 | COMPONENT_NPU_ARTIFACT_COMPILE_PASS; INFERENCE_PENDING; NOT_E2E_PROFILEABLE | The real Place_Markpen Cosmos image encoder FP32 ONNX export matched its source on two six-frame fixtures (relative L2 8.74e-7/2.29e-6) after packaging external weights into a single file. Galaxy S25 FP16 QNN DLC compilation passed, but same-fixture NPU-requested inference was pending. There is no measured NPU placement, latent/action-policy parity, complete qualified target bundle or device-local controller; ADB has no attached device. | Audit the [S25 encoder inference](../../../e2e_expansion_20260924/evidence/internvla_cosmos_qualcomm/README.md), then validate action quality, state, admission, cancellation and sustained behavior. | | Mobile Galaxy S24 / Snapdragon 8 Gen 3 | Spark-X2.5 | COMPONENT_NPU_INFERENCE_PROFILED; NOT_E2E_PROFILEABLE | The real 1.7B checkpoint's fixed-shape full-attention decoder **one-layer** W8A16 QDQ artifact compiled as QNN DLC and ran on an exact hosted Galaxy S24 (Android 14). A same-dataset inference returned finite hidden/new-K/new-V outputs identical to the prior S25 NPU outputs; the profile attributed all 73 execution-detail rows to NPU. Across 100 component samples, nearest-rank p50/p95 was 1.109/1.205 ms; the 1.098 ms `estimated_inference_time` field is the minimum, not a median. Relative L2 versus original FP32 ONNX CPU was 1.351%/0.377%/0.650% for hidden/K/V; no token-quality tolerance is known. This is one cache bucket, not 28-layer prefill/decode, KV-ring, sampling, a resident local controller or complete-request timing. ADB has no attached device. | Qualify a complete device-resident artifact/controller with state and token-quality gates, 128-token generation across 512/1024 context transitions, admission/cancel and sustained memory/power; [S24 NPU raw evidence](../../../e2e_expansion_20260923/evidence/spark_s24_full_attention/README.md). | | Mobile Galaxy S24 / Snapdragon 8 Gen 3 | Qwen3-TTS 0.6B CustomVoice | NOT_E2E_PROFILEABLE | Historical FP16 decoder parity has SNR 39.13 dB. Tested calibrated INT8 decoder parity failed with negative SNR. Neither result is a full local TTS stream. | Validate the complete local pipeline and a quality-passing artifact set. | | Mobile Galaxy S24 / Snapdragon 8 Gen 3 | Qwen3.8-27B | NOT_E2E_PROFILEABLE | No complete qualified target artifact and device-local stateful Omni backend. Hub jobs provide component execution, not an on-device generation/streaming controller; ADB has no attached device. | Supply and validate the missing matching artifact/backend, then run the complete specified workload. | | Mobile Galaxy S24 / Snapdragon 8 Gen 3 | MiniCPM-o 4.5 | NOT_E2E_PROFILEABLE | Historical FP16 speech-head job re-fetched successfully; SNR 49.22 dB/top-1 match in the recorded parity test. W8A16 top-1 failed. Not complete MiniCPM-o. | Qualify thinker/encoders/vocoder and stateful local integration. | | Mobile Galaxy S24 / Snapdragon 8 Gen 3 | InternVLA-A1 | NOT_E2E_PROFILEABLE | No complete qualified target artifact and device-local stateful Omni backend. Hub jobs provide component execution, not an on-device generation/streaming controller; ADB has no attached device. | Supply and validate the missing matching artifact/backend, then run the complete specified workload. | | Embedded SA8775P ADP / AI Hub | Spark-X2.5 | COMPONENT_NPU_INFERENCE_PROFILED; NOT_E2E_PROFILEABLE | A real Spark-X2.5-1.7B one-layer W8A16 QDQ attention artifact, compiled as QNN DLC, ran on the exact hosted SA8775P ADP (Android 14). Inference returned finite hidden/new-K/new-V tensors bitwise identical to the prior S24/S25 NPU outputs on the same fixture; the profile attributed all 73 execution-detail rows to NPU. Across 100 component samples, nearest-rank p50/p95 was 1.837/2.079 ms; the 1.749 ms estimated-time field is the minimum. Hidden/K/V relative L2 versus original FP32 ONNX CPU was 1.351%/0.377%/0.650%, without a next-token quality tolerance. There is no complete 28-layer prefill/decode/KV-ring/sampling loop, resident Omni controller or complete-request timing. | Qualify a complete embedded resident artifact/controller with state, token quality, memory admission/cancel and sustained power; [SA8775P NPU raw evidence](../../../e2e_expansion_20260923/evidence/spark_sa8775_full_attention/README.md). | -| Embedded SA8775P ADP / AI Hub | Qwen3-TTS 0.6B CustomVoice | COMPONENT_VOCODER_NUMERIC_FAIL; NOT_E2E_PROFILEABLE | Historical NPU talker and mixed CPU+GPU vocoder profiles exist without a complete pipeline. A fresh GPU-requested Code2Wav inference on the retained fixture saturated 96.63% of waveform samples, with 11.832 relative L2 and -21.46 dB SNR versus original ONNX CPU; this tested vocoder path is numerically unqualified. The fresh profile has 100 samples at nearest-rank p50/p95 1.776/1.880 s with 403 CPU and 335 GPU execution-detail rows, not an all-GPU stage; it times a numerically failed output. CPU/FP32-GPU control jobs were pending. | Isolate delegate/precision failure, establish waveform and listening quality, then validate co-resident talker/predictor/vocoder, streaming, memory and sustained behavior; [raw vocoder evidence](../../../e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/README.md). | +| Embedded SA8775P ADP / AI Hub | Qwen3-TTS 0.6B CustomVoice | COMPONENT_CPU_REQUESTED_VOCODER_PARITY_PASS; COMPONENT_GPU_NUMERIC_FAIL; NOT_E2E_PROFILEABLE | On the exact SA8775P, the same TFLite binary's CPU-requested Code2Wav inference matched original ONNX CPU on the retained fixture within 4.13e-6 relative L2 / 107.67 dB SNR, with no saturation. Actual CPU placement/timing profile was pending. The GPU-requested output saturated 96.63% of samples, with 11.832 relative L2 / -21.46 dB SNR; its fresh 100-sample profile p50/p95 was 1.776/1.880 s with 403 CPU and 335 GPU execution-detail rows, timing a numerically failed waveform. Historical NPU talker profiling lacks a full pipeline. | Audit the pending CPU profile and FP32-preserving GPU control, establish listening quality, then validate co-resident talker/predictor/vocoder, streaming, memory and sustained behavior; [raw vocoder evidence](../../../e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/README.md). | | Embedded SA8775P ADP / AI Hub | Qwen3.8-27B | NOT_E2E_PROFILEABLE | No complete qualified target artifact and device-local stateful Omni backend. Hub jobs provide component execution, not an on-device generation/streaming controller; ADB has no attached device. | Supply and validate the missing matching artifact/backend, then run the complete specified workload. | | Embedded SA8775P ADP / AI Hub | MiniCPM-o 4.5 | NOT_E2E_PROFILEABLE | No complete qualified target artifact and device-local stateful Omni backend. Hub jobs provide component execution, not an on-device generation/streaming controller; ADB has no attached device. | Supply and validate the missing matching artifact/backend, then run the complete specified workload. | | Embedded SA8775P ADP / AI Hub | InternVLA-A1 | NOT_E2E_PROFILEABLE | No complete qualified target artifact and device-local stateful Omni backend. Hub jobs provide component execution, not an on-device generation/streaming controller; ADB has no attached device. | Supply and validate the missing matching artifact/backend, then run the complete specified workload. | | Embedded RB3 Gen 2 / QCS6490 / AI Hub | Spark-X2.5 | COMPONENT_CPU_PARITY_PASS; COMPONENT_NPU_NUMERIC_UNQUALIFIED; NOT_E2E_PROFILEABLE | On the exact hosted Dragonwing RB3 Gen 2 Vision Kit (QCS6490, QC Linux 1.6), the reused S24 W8A16 QNN DLC and a separately RB3-compiled W8A16 DLC each failed inference/profile at QnnModel_composeGraphsFromDlc: MODEL_GRAPH_ERROR. An FP32 ONNX one-layer CPU route passed with all 56 profile rows on CPU, source-relative hidden/K/V L2 of 8.73e-7/2.98e-7/3.37e-7 and 100-sample component p50/p95 19.304/21.113 ms. A calibrated W8A8 QNN DLC ran with all 61 rows on NPU and p50/p95 5.610/5.761 ms, but hidden/K/V relative L2 was 20.914%/1.702%/4.413% versus FP32 CPU, without a next-token quality gate. These are different precisions, not a qualified speedup; no complete 28-layer prefill/decode/KV-ring/sampling, local Omni controller or complete-request timing exists. | Improve representative W8A8 calibration or find another compatible quality-passing artifact; validate token parity, then full device-resident generation, admission/cancel and sustained power; [RB3 raw evidence](../../../e2e_expansion_20260923/evidence/spark_rb3_full_attention/README.md). | -| Embedded RB3 Gen 2 / QCS6490 / AI Hub | Qwen3-TTS 0.6B CustomVoice | COMPONENT_VOCODER_INFERENCE_NUMERIC_UNQUALIFIED; NOT_E2E_PROFILEABLE | Fresh same-fixture TFLite GPU-requested vocoder inference returned a finite unsaturated waveform, but relative L2 versus original ONNX CPU was 15.73% (16.06 dB SNR), without a listening-quality tolerance; it is not a qualified audio path. The historical mixed CPU+GPU profile re-fetched with 100 samples at nearest-rank p50/p95 3.143/3.189 s and 403 CPU plus 335 GPU execution-detail rows. Its estimated-time field 3.107 s is the minimum, not median. The fresh profile was pending. The historical NPU talker build was rejected for floating-point inputs; no full model pipeline exists. | Audit the fresh profile, establish waveform quality and a compatible integer talker artifact, then validate complete local execution, memory and sustained behavior; [vocoder evidence](../../../e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/README.md). | +| Embedded RB3 Gen 2 / QCS6490 / AI Hub | Qwen3-TTS 0.6B CustomVoice | COMPONENT_MIXED_VOCODER_PROFILED_NUMERIC_UNQUALIFIED; NOT_E2E_PROFILEABLE | Fresh same-fixture TFLite GPU-requested vocoder inference returned a finite unsaturated waveform, but relative L2 versus original ONNX CPU was 15.73% (16.06 dB SNR), without a listening-quality tolerance; it is not a qualified audio path. The fresh 100-sample component profile had nearest-rank p50/p95 3.099/3.133 s and 403 CPU plus 335 GPU execution-detail rows. Its 3.070 s estimated-time field is the sample minimum, not median. The historical NPU talker build was rejected for floating-point inputs; no full model pipeline exists. | Establish waveform quality and a compatible integer talker artifact, then validate complete local execution, memory and sustained behavior; [vocoder evidence](../../../e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/README.md). | | Embedded RB3 Gen 2 / QCS6490 / AI Hub | Qwen3.8-27B | NOT_E2E_PROFILEABLE | No complete qualified target artifact and device-local stateful Omni backend. Hub jobs provide component execution, not an on-device generation/streaming controller; ADB has no attached device. | Supply and validate the missing matching artifact/backend, then run the complete specified workload. | | Embedded RB3 Gen 2 / QCS6490 / AI Hub | MiniCPM-o 4.5 | NOT_E2E_PROFILEABLE | No complete qualified target artifact and device-local stateful Omni backend. Hub jobs provide component execution, not an on-device generation/streaming controller; ADB has no attached device. | Supply and validate the missing matching artifact/backend, then run the complete specified workload. | | Embedded RB3 Gen 2 / QCS6490 / AI Hub | InternVLA-A1 | NOT_E2E_PROFILEABLE | No complete qualified target artifact and device-local stateful Omni backend. Hub jobs provide component execution, not an on-device generation/streaming controller; ADB has no attached device. | Supply and validate the missing matching artifact/backend, then run the complete specified workload. | diff --git a/docs/design/omni_edge_e2e_roadmap.md b/docs/design/omni_edge_e2e_roadmap.md index f7e9df73d..a8f85939f 100644 --- a/docs/design/omni_edge_e2e_roadmap.md +++ b/docs/design/omni_edge_e2e_roadmap.md @@ -15,12 +15,14 @@ remain open; the 2026-09-22 audit remains the historical baseline. The [Spark hosted Qualcomm component expansion](../../benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/spark_s24_full_attention/README.md) advances M1 only to one real fixed-shape decoder attention layer. The same W8A16 QNN DLC ran on S24, Snapdragon X Elite CRD and SA8775P ADP NPUs with identical outputs on one pinned fixture; S25 had prior separate component evidence. On [RB3 Gen 2](../../benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/spark_rb3_full_attention/README.md), the tested W8A16 graph failed QNN loading even after an exact-device compile. FP32 ONNX ran on CPU with near-source parity, while calibrated W8A8 ran on NPU but had 20.9% hidden-state relative L2 and remains numerically unqualified. These are component C results, not full M1: device-local 28-layer prefill/continuous decode, KV/ring, sampling, token quality, admission/cancellation, complete-request timing and sustained power/thermal gates remain open. AI Hub is the test facility, not a deployment dependency. -The [Qwen3-TTS Code2Wav Qualcomm follow-up](../../benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/README.md) adds a retained same-fixture numerical check to M2. A fresh SA8775P GPU-requested output saturated 96.63% of samples and differs from original ONNX CPU by 11.832 relative L2, so the tested vocoder target fails the numerical gate despite historical component profiling. Historical SA8775P and RB3 vocoder profiles have mixed CPU/GPU placement; their estimated-time fields were minima. RB3 TFLite GPU-requested inference returned an unsaturated but 15.73%-relative-L2 divergent waveform; its fresh profile was pending. X Elite ONNX CPU inference matched the local ONNX Runtime output with 8.09e-7 relative L2; its 94-sample component profile was p50/p95 6.384/6.644 s with all execution-detail rows on CPU. DirectML retry and SA controls remained pending. M2 still requires a quality-passing talker/predictor/vocoder set, device-local co-residency and handoff, playable streaming and sustained memory/power validation. +The [Qwen3-TTS Code2Wav Qualcomm follow-up](../../benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/README.md) adds a retained same-fixture numerical check to M2. A fresh SA8775P GPU-requested output saturated 96.63% of samples and differs from original ONNX CPU by 11.832 relative L2, so that route fails the numerical gate despite profiling. The same binary's CPU-requested output on the exact SA device matched original ONNX CPU within 4.13e-6 relative L2; its placement profile remained pending. RB3 TFLite GPU-requested inference returned an unsaturated but 15.73%-relative-L2 divergent waveform; its fresh 100-sample mixed CPU/GPU component p50/p95 was 3.099/3.133 s. X Elite ONNX CPU inference matched the local ONNX Runtime output with 8.09e-7 relative L2; its 94-sample component profile was p50/p95 6.384/6.644 s with all execution-detail rows on CPU. Corrected DirectML inference and profile both failed during provider initialization; separate FP16 QNN DLC compilation passed with NPU-requested inference pending. SA FP32-preserving GPU control remained pending. M2 still requires a quality-passing talker/predictor/vocoder set, device-local co-residency and handoff, playable streaming and sustained memory/power validation. -The identical SA/RB3 TFLite vocoder binary also matched original ONNX CPU within 3.45e-6 relative L2 on a separate local HX370 x86-64 LiteRT 2.2.0 CPU control. That narrows the SA failure to hosted device/runtime behavior, but cannot establish either embedded CPU route or the cause within the GPU delegate. The pending SA CPU and FP32-preserving GPU controls are the next isolation gate. +The identical SA/RB3 TFLite vocoder binary also matched original ONNX CPU within 3.45e-6 relative L2 on a separate local HX370 x86-64 LiteRT 2.2.0 CPU control. Exact-SA CPU-requested parity now narrows the failure further to the GPU-requested route. Its per-node placement and the FP32-preserving GPU control are the next isolation gates; neither identifies the failing delegate operation yet. A separate [28-layer talker decode-step attempt](../../benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_talker_qualcomm/README.md) retains a synthetic fixed-cache fixture and CPU reference. Historical FP16 QNN context-binary compiles passed for S24, S25, SA8775P and X Elite; their same-fixture NPU inference was pending at this snapshot. RB3 rejected that floating-point-input artifact. None advances M2 to numerical talker or full-stream qualification yet. +For M4, a [Galaxy S25 Cosmos encoder attempt](../../benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/internvla_cosmos_qualcomm/README.md) repackages the real Place_Markpen FP32 ONNX export after retaining two CPU parity fixtures. FLOAT16 QNN DLC compilation passed and same-fixture NPU-requested inference was pending. This is only an artifact feasibility gate, not an NPU execution or full-policy result. + The [WSL CPU expansion](../../benchmarks/edge_harness/results/e2e_expansion_20260923/README.md) adds constrained three-stage MiniCPM-o text-to-speech requests and a CPU-only InternVLA synthetic policy forward. A subsequent 20-request serial MiniCPM-o