From afd3f8c71666c8a1db49ca79b0f91501978f1f4b Mon Sep 17 00:00:00 2001 From: tzhouam Date: Thu, 24 Sep 2026 08:18:41 +0800 Subject: [PATCH] Record X Elite MiniCPM speech head inference --- .../results/e2e_expansion_20260924/README.md | 2 +- .../evidence/minicpmo_tts_qualcomm/README.md | 2 +- .../xelite/audit_report.json | 304 ++++++++++++++++++ .../xelite/device_output.npz | Bin 0 -> 105640 bytes .../xelite/inference_report.json | 32 ++ .../xelite/profile_submission.json | 13 + .../evidence/summary/README.md | 4 +- docs/design/omni_edge_e2e_roadmap.md | 2 +- 8 files changed, 354 insertions(+), 5 deletions(-) create mode 100644 benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/minicpmo_tts_qualcomm/xelite/audit_report.json create mode 100644 benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/minicpmo_tts_qualcomm/xelite/device_output.npz create mode 100644 benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/minicpmo_tts_qualcomm/xelite/inference_report.json create mode 100644 benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/minicpmo_tts_qualcomm/xelite/profile_submission.json diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260924/README.md b/benchmarks/edge_harness/results/e2e_expansion_20260924/README.md index d857c3f1c..04b1e895c 100644 --- a/benchmarks/edge_harness/results/e2e_expansion_20260924/README.md +++ b/benchmarks/edge_harness/results/e2e_expansion_20260924/README.md @@ -6,6 +6,6 @@ A local HX370 x86-64 LiteRT CPU control of the identical SA/RB3 TFLite binary ma 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 inference executed on S24, S25, SA8775P and X Elite, but all four changed the CPU top-1 speech token with 8.57–9.43% logits relative L2. These artifacts are numerically unqualified on the fixture. RB3 rejected the floating-point-input artifact. Explicit X Elite ONNX CPU and SA8775P TFLite CPU fallback compiles passed, with same-fixture inference pending. No complete talker loop or TTS stream passed. -The [MiniCPM-o speech-head study](evidence/minicpmo_tts_qualcomm/README.md) recovered the real 20-layer ONNX source and a matching retained fixture. S24 and S25 FP16 context-binary outputs preserved the ONNX CPU top-1 speech token with 0.346%/0.360% logits relative L2 on one step. FP16 QNN DLC compiles passed for SA8775P, X Elite and RB3. SA8775P NPU-requested inference preserved CPU top-1 token 1867 with 0.3568% logits relative L2; placement profiling remains pending, as do X Elite and RB3 inferences. The complete multimodal model remains unqualified on those devices. +The [MiniCPM-o speech-head study](evidence/minicpmo_tts_qualcomm/README.md) recovered the real 20-layer ONNX source and a matching retained fixture. S24 and S25 FP16 context-binary outputs preserved the ONNX CPU top-1 speech token with 0.346%/0.360% logits relative L2 on one step. FP16 QNN DLC compiles passed for SA8775P, X Elite and RB3. SA8775P NPU-requested inference preserved CPU top-1 token 1867 with 0.3568% logits relative L2; X Elite same-fixture inference also preserved token 1867 with 0.3170% logits relative L2. SA and X Elite placement profiles and RB3 inference remain pending. The complete multimodal model remains unqualified on those devices. 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 inference returned a latent within 0.0524% relative L2 of the source on one pattern. Injecting it into the real policy on local CPU changed synthetic actions by 0.742% relative L2, without a task tolerance. NPU placement profiling was pending; device-local action-policy support remains unqualified. diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/minicpmo_tts_qualcomm/README.md b/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/minicpmo_tts_qualcomm/README.md index 14e6bc5b9..4b5771391 100644 --- a/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/minicpmo_tts_qualcomm/README.md +++ b/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/minicpmo_tts_qualcomm/README.md @@ -6,6 +6,6 @@ The [S25 historical inference](s25/inference_report.json) used dataset `d7gwxe3y The historical [S24](s24/compile_report.json) and [S25](s25/compile_report.json) FP16 QNN context-binary compiles and inference jobs succeeded. Against the **same original ONNX CPU fixture**, [S24](s24/audit_report.json) logits relative L2 was **0.3459%** and max K/V relative L2 **1.235%**; [S25](s25/audit_report.json) logits relative L2 was **0.3605%** and max K/V relative L2 **1.311%**. Both preserved the CPU top-1 speech token **1867** on this one synthetic step. The raw [S24](s24/device_output.npz) and [S25](s25/device_output.npz) arrays are retained. [S24](s24/profile_submission.json) and [S25](s25/profile_submission.json) placement profiles were submitted and pending. These values remain numerical component evidence, without a generated-audio quality threshold or actual NPU placement proof. -New FP16 QNN DLC [SA8775P](sa8775p/compile_report.json), [Snapdragon X Elite](xelite/compile_report.json) and [RB3 Gen 2](rb3/compile_report.json) compiles passed from the same source. The SA8775P [NPU-requested inference](sa8775p/inference_report.json) returned all 41 finite tensors on the retained fixture. Its [audit](sa8775p/audit_report.json) found **0.3568% logits relative L2** versus ONNX CPU, preserved CPU top-1 speech token **1867**, and measured maximum K/V relative L2 **1.225%**. The [placement profile](sa8775p/profile_submission.json) was submitted and remains pending; the inference request alone does not prove actual NPU node assignment. Same-fixture NPU-requested inference jobs for [X Elite](xelite/inference_submission.json) and [RB3](rb3/inference_submission.json) also remain pending. The [collector](../../../../experiments/collect_aihub_component.py) retrieves terminal jobs, and the [auditor](../../../../experiments/audit_minicpmo_tts_qualcomm.py) pins hashes and checks all 41 output tensors. +New FP16 QNN DLC [SA8775P](sa8775p/compile_report.json), [Snapdragon X Elite](xelite/compile_report.json) and [RB3 Gen 2](rb3/compile_report.json) compiles passed from the same source. The SA8775P [NPU-requested inference](sa8775p/inference_report.json) returned all 41 finite tensors on the retained fixture. Its [audit](sa8775p/audit_report.json) found **0.3568% logits relative L2** versus ONNX CPU, preserved CPU top-1 speech token **1867**, and measured maximum K/V relative L2 **1.225%**. The [placement profile](sa8775p/profile_submission.json) was submitted and remains pending; the inference request alone does not prove actual NPU node assignment. The X Elite [NPU-requested inference](xelite/inference_report.json) also returned all 41 finite tensors: its [audit](xelite/audit_report.json) found **0.3170% logits relative L2**, preserved CPU top-1 token **1867**, and measured maximum K/V relative L2 **1.221%**. Its [placement profile](xelite/profile_submission.json) was submitted and remains pending. [RB3 same-fixture inference](rb3/inference_submission.json) remains pending. The [collector](../../../../experiments/collect_aihub_component.py) retrieves terminal jobs, and the [auditor](../../../../experiments/audit_minicpmo_tts_qualcomm.py) pins hashes and checks all 41 output tensors. Next: audit those device outputs and placement, then qualify the entire model with real multimodal inputs, stateful speech generation, task/audio quality, memory admission, cancellation and sustained power/thermal behavior. AI Hub is the test facility, not a deployment dependency. diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/minicpmo_tts_qualcomm/xelite/audit_report.json b/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/minicpmo_tts_qualcomm/xelite/audit_report.json new file mode 100644 index 000000000..05c262d05 --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/minicpmo_tts_qualcomm/xelite/audit_report.json @@ -0,0 +1,304 @@ +{ + "scope": "one fixed-cache 20-layer MiniCPM-o speech-head decode step; no complete multimodal stream", + "status": "component_inference_numeric_measured", + "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" + ] + }, + "compile_job_id": "jgzlm4mk5", + "inference_job_id": "jgolr4dxg", + "source_model_id": "mn4gjjpvn", + "target_model_id": "mmd04pj3n", + "input_dataset_id": "d7gwxe3y2", + "requested_run_options": "--compute_unit npu", + "files": { + "source_onnx": { + "bytes": 776341465, + "sha256": "78cf64804f11ad269ee4180da61588ccc5eefe2942773227345499756e4cc229" + }, + "fixture": { + "bytes": 29247541, + "sha256": "65919ea1f351feec33c1415a3e3db76d60bc9c2beb3d49a72af75dcb418e83b4" + }, + "cpu_reference": { + "bytes": 148471, + "sha256": "902adcceadbe761d938ef2ade51cf953c8917ea1abfaee33a10c84e300c1bd96" + }, + "device_output": { + "bytes": 105640, + "sha256": "5ec274be28d3a5436d0d2986db1368c0731732dd8db3f2da3d85642a79140c12" + } + }, + "tensor_comparison": { + "logits": { + "relative_l2": 0.0031700028839813, + "max_abs_error": 0.01659095287322998, + "source_rms": 1.4974441755558239, + "device_rms": 1.4976756779801723, + "cpu_top1": 1867, + "device_top1": 1867, + "top1_matches": true + }, + "k_new_0": { + "relative_l2": 0.0005147656431265523, + "max_abs_error": 0.003742694854736328, + "source_rms": 1.307108108274551, + "device_rms": 1.307038088812209 + }, + "v_new_0": { + "relative_l2": 0.00035345147473398163, + "max_abs_error": 0.0007248520851135254, + "source_rms": 0.5083994128636046, + "device_rms": 0.5084141364451746 + }, + "k_new_1": { + "relative_l2": 0.0005523109095696163, + "max_abs_error": 0.0020580291748046875, + "source_rms": 0.7542700462780494, + "device_rms": 0.7542605237718504 + }, + "v_new_1": { + "relative_l2": 0.0010212503665159528, + "max_abs_error": 0.00030508264899253845, + "source_rms": 0.0662130257652199, + "device_rms": 0.06622190429742661 + }, + "k_new_2": { + "relative_l2": 0.0012660332300085497, + "max_abs_error": 0.0056171417236328125, + "source_rms": 0.9817805619626084, + "device_rms": 0.9819165272792516 + }, + "v_new_2": { + "relative_l2": 0.0013941202877916915, + "max_abs_error": 0.0017390847206115723, + "source_rms": 0.24438175712240315, + "device_rms": 0.24439989486728894 + }, + "k_new_3": { + "relative_l2": 0.004104747307563847, + "max_abs_error": 0.013773024082183838, + "source_rms": 0.9312003114105484, + "device_rms": 0.9323887799652595 + }, + "v_new_3": { + "relative_l2": 0.004388581847016711, + "max_abs_error": 0.006326019763946533, + "source_rms": 0.27179250329538757, + "device_rms": 0.27220384489136223 + }, + "k_new_4": { + "relative_l2": 0.007779545096767518, + "max_abs_error": 0.039246320724487305, + "source_rms": 1.2078244698126999, + "device_rms": 1.2115520989954713 + }, + "v_new_4": { + "relative_l2": 0.008414148179106594, + "max_abs_error": 0.01820969581604004, + "source_rms": 0.4929021962159226, + "device_rms": 0.4943089809183415 + }, + "k_new_5": { + "relative_l2": 0.007452034487665665, + "max_abs_error": 0.04445651173591614, + "source_rms": 1.0960093751879882, + "device_rms": 1.0966943330718524 + }, + "v_new_5": { + "relative_l2": 0.012211649189410728, + "max_abs_error": 0.027927041053771973, + "source_rms": 0.49114616760529134, + "device_rms": 0.48967054012047084 + }, + "k_new_6": { + "relative_l2": 0.0061292171562801, + "max_abs_error": 0.03535480797290802, + "source_rms": 1.1726536779527166, + "device_rms": 1.173115323923179 + }, + "v_new_6": { + "relative_l2": 0.00944127599594071, + "max_abs_error": 0.016520775854587555, + "source_rms": 0.5369044199454948, + "device_rms": 0.5363747360693308 + }, + "k_new_7": { + "relative_l2": 0.003890039826671964, + "max_abs_error": 0.021133124828338623, + "source_rms": 1.6917150856043028, + "device_rms": 1.6937682079827496 + }, + "v_new_7": { + "relative_l2": 0.006906994746270466, + "max_abs_error": 0.02008109539747238, + "source_rms": 0.8116460286615261, + "device_rms": 0.8107319955904663 + }, + "k_new_8": { + "relative_l2": 0.0047713333145434685, + "max_abs_error": 0.031733155250549316, + "source_rms": 1.5021910590457033, + "device_rms": 1.5033379291990285 + }, + "v_new_8": { + "relative_l2": 0.0066740158237721245, + "max_abs_error": 0.027550816535949707, + "source_rms": 0.8807572129778053, + "device_rms": 0.8793833990886489 + }, + "k_new_9": { + "relative_l2": 0.004665944378169018, + "max_abs_error": 0.01780569553375244, + "source_rms": 1.1054146201792987, + "device_rms": 1.1057316668308173 + }, + "v_new_9": { + "relative_l2": 0.007561300460793002, + "max_abs_error": 0.01777637004852295, + "source_rms": 0.6580213796976341, + "device_rms": 0.6569723354399966 + }, + "k_new_10": { + "relative_l2": 0.004428435955964545, + "max_abs_error": 0.0177919864654541, + "source_rms": 1.325937063058518, + "device_rms": 1.3268511996216796 + }, + "v_new_10": { + "relative_l2": 0.0066985124074587276, + "max_abs_error": 0.021573245525360107, + "source_rms": 0.848351970479369, + "device_rms": 0.8468234992699584 + }, + "k_new_11": { + "relative_l2": 0.003429064933197882, + "max_abs_error": 0.008336663246154785, + "source_rms": 0.6808336872062942, + "device_rms": 0.6804917001316813 + }, + "v_new_11": { + "relative_l2": 0.006156563379302956, + "max_abs_error": 0.008510656654834747, + "source_rms": 0.3676426367961426, + "device_rms": 0.3672159888143714 + }, + "k_new_12": { + "relative_l2": 0.004129233348527031, + "max_abs_error": 0.008901238441467285, + "source_rms": 0.6128882051701765, + "device_rms": 0.6122828966759465 + }, + "v_new_12": { + "relative_l2": 0.005815610169090192, + "max_abs_error": 0.007399111986160278, + "source_rms": 0.34029547623567724, + "device_rms": 0.33994744996075893 + }, + "k_new_13": { + "relative_l2": 0.003986479035569083, + "max_abs_error": 0.00892484188079834, + "source_rms": 0.613775761616868, + "device_rms": 0.6134809238432836 + }, + "v_new_13": { + "relative_l2": 0.006311382994234031, + "max_abs_error": 0.008226275444030762, + "source_rms": 0.36907442918730654, + "device_rms": 0.36850471315926514 + }, + "k_new_14": { + "relative_l2": 0.003975218959210037, + "max_abs_error": 0.009820103645324707, + "source_rms": 0.5980841827735426, + "device_rms": 0.5977833545317282 + }, + "v_new_14": { + "relative_l2": 0.005947601968032226, + "max_abs_error": 0.006577491760253906, + "source_rms": 0.3506656009170703, + "device_rms": 0.3503015513144008 + }, + "k_new_15": { + "relative_l2": 0.0035972324999042045, + "max_abs_error": 0.008877158164978027, + "source_rms": 0.622821559168189, + "device_rms": 0.6224176726307988 + }, + "v_new_15": { + "relative_l2": 0.005320288804772653, + "max_abs_error": 0.0070031434297561646, + "source_rms": 0.41823950764909973, + "device_rms": 0.4178766892221755 + }, + "k_new_16": { + "relative_l2": 0.0031916991317839987, + "max_abs_error": 0.006972968578338623, + "source_rms": 0.6754924715823191, + "device_rms": 0.6753580010409884 + }, + "v_new_16": { + "relative_l2": 0.005726146021455772, + "max_abs_error": 0.009386241436004639, + "source_rms": 0.4659773620123202, + "device_rms": 0.4656833192747271 + }, + "k_new_17": { + "relative_l2": 0.003304237761951359, + "max_abs_error": 0.007736682891845703, + "source_rms": 0.6354120615871959, + "device_rms": 0.6351539196274629 + }, + "v_new_17": { + "relative_l2": 0.005790382158371946, + "max_abs_error": 0.011991262435913086, + "source_rms": 0.5384818316759848, + "device_rms": 0.5380287115508268 + }, + "k_new_18": { + "relative_l2": 0.0029809011639930372, + "max_abs_error": 0.007440060377120972, + "source_rms": 0.7283659936841244, + "device_rms": 0.7283979149704595 + }, + "v_new_18": { + "relative_l2": 0.00410675170171758, + "max_abs_error": 0.0086001455783844, + "source_rms": 0.6382820941879574, + "device_rms": 0.6381469978008664 + }, + "k_new_19": { + "relative_l2": 0.0036517005773021058, + "max_abs_error": 0.007315650582313538, + "source_rms": 0.5790109825658509, + "device_rms": 0.5790702382536065 + }, + "v_new_19": { + "relative_l2": 0.004105625819220487, + "max_abs_error": 0.009264230728149414, + "source_rms": 0.7220926350353908, + "device_rms": 0.7220696027280022 + } + }, + "cache_max_relative_l2": 0.012211649189410728, + "limits": [ + "The historical ONNX export does not attest the exact source checkpoint revision.", + "One retained decode fixture cannot establish speech-token or generated-audio quality.", + "Actual NPU placement requires a device profile; a request or QNN artifact alone is insufficient.", + "Thinker, audio/vision encoders, vocoder, state loop and complete Omni request were not tested." + ] +} diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/minicpmo_tts_qualcomm/xelite/device_output.npz b/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/minicpmo_tts_qualcomm/xelite/device_output.npz new file mode 100644 index 0000000000000000000000000000000000000000..babe346786b33726f313fa0b7d9fab91c43d053f GIT binary patch literal 105640 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 literal 0 HcmV?d00001 diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/minicpmo_tts_qualcomm/xelite/inference_report.json b/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/minicpmo_tts_qualcomm/xelite/inference_report.json new file mode 100644 index 000000000..304144e9e --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/minicpmo_tts_qualcomm/xelite/inference_report.json @@ -0,0 +1,32 @@ +{ + "timestamp_utc": "2026-09-24T00:17:22.418440+00:00", + "qai_hub_version": "0.55.0", + "facility": "Qualcomm AI Hub Workbench", + "job_id": "jgolr4dxg", + "url": "https://workbench.aihub.qualcomm.com/jobs/jgolr4dxg/", + "status": "SUCCESS", + "status_message": "", + "options": "--compute_unit npu", + "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": "mmd04pj3n", + "input_dataset_id": "d7gwxe3y2", + "outputs": "device_output.npz" +} diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/minicpmo_tts_qualcomm/xelite/profile_submission.json b/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/minicpmo_tts_qualcomm/xelite/profile_submission.json new file mode 100644 index 000000000..3ad0c9c45 --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/minicpmo_tts_qualcomm/xelite/profile_submission.json @@ -0,0 +1,13 @@ +{ + "timestamp_utc": "2026-09-24T00:17:47.758312+00:00", + "facility": "Qualcomm AI Hub Workbench", + "qai_hub_version": "0.55.0", + "source_compile_job_id": "jgzlm4mk5", + "target_model_id": "mmd04pj3n", + "device": "Snapdragon X Elite CRD", + "options": "--compute_unit npu", + "kind": "profile", + "status": "SUBMITTED", + "job_id": "jp1nj6qkg", + "url": "https://workbench.aihub.qualcomm.com/jobs/jp1nj6qkg/" +} 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 b33636717..fccb997a3 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 @@ -20,7 +20,7 @@ A separate [Qwen3-TTS talker decode-step attempt](../../../e2e_expansion_2026092 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 inference returned a latent within 0.0524% relative L2 of the source on one pattern; device placement profile was pending. Injecting that latent into the real policy on local CPU changed synthetic actions by 0.742% relative L2, without a task tolerance. This advances component and action-sensitivity evidence, not device-local full-policy qualification. -A [MiniCPM-o speech-head study](../../../e2e_expansion_20260924/evidence/minicpmo_tts_qualcomm/README.md) recovered the historical 20-layer source and matching S24/S25 fixtures. Both FP16 context-binary outputs preserved the ONNX CPU top-1 speech token on this one decode step with logits relative L2 of 0.346%/0.360%. New FP16 QNN DLC compiles passed for SA8775P, X Elite and RB3. SA8775P same-fixture NPU-requested inference returned finite outputs, preserved CPU top-1 token 1867 and had 0.3568% logits relative L2; actual NPU placement profiling is pending. X Elite and RB3 inference remains pending. These are speech-head component results, not multimodal MiniCPM-o requests. +A [MiniCPM-o speech-head study](../../../e2e_expansion_20260924/evidence/minicpmo_tts_qualcomm/README.md) recovered the historical 20-layer source and matching S24/S25 fixtures. Both FP16 context-binary outputs preserved the ONNX CPU top-1 speech token on this one decode step with logits relative L2 of 0.346%/0.360%. New FP16 QNN DLC compiles passed for SA8775P, X Elite and RB3. SA8775P same-fixture NPU-requested inference returned finite outputs, preserved CPU top-1 token 1867 and had 0.3568% logits relative L2; actual NPU placement profiling is pending. X Elite same-fixture inference also preserved token 1867 with 0.3170% logits relative L2; its placement profile and RB3 inference remain pending. These are speech-head component results, not multimodal MiniCPM-o requests. ## Configuration × model @@ -89,7 +89,7 @@ NOT E2E means no complete device/model workload was verified. “Scoped E2E” i | 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; DIRECTML_RUNTIME_FAILED; TALKER_FP16_NUMERIC_FAIL; QNN_NPU_VOCODER_NUMERIC_MEASURED; PLACEMENT_PENDING; 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. A separate FP16 QNN DLC vocoder inference returned an unsaturated waveform at 1.138% relative L2 / 38.88 dB SNR versus local ONNX CPU on the same fixture; NPU node-placement profile is pending and no listening-quality tolerance is set. The 28-layer FP16 QNN talker step executed, yet changed CPU top-1 token 80 to 1720 with 8.57% logits relative L2 on a synthetic cache fixture; a separate ONNX CPU talker compile passed, with inference pending. The older TFLite vocoder target was rejected on Windows ARM; no complete stream exists. | Audit QNN vocoder placement and CPU talker control, investigate DirectML failure, then qualify complete local streaming, memory and sustained behavior; [vocoder](../../../e2e_expansion_20260924/evidence/qwen_tts_vocoder_qualcomm/README.md) and [talker](../../../e2e_expansion_20260924/evidence/qwen_tts_talker_qualcomm/README.md) evidence. | | 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 | COMPONENT_SPEECH_HEAD_QNN_COMPILE_PASS; INFERENCE_PENDING; NOT_E2E_PROFILEABLE | The real 20-layer MiniCPM-o speech-head source compiled to FP16 QNN DLC for the exact X Elite CRD. Same-fixture NPU-requested inference was pending; no numerical output or placement profile exists. Thinker/encoders/vocoder and a device-local stateful Omni backend remain unqualified. | Audit the [X Elite speech-head inference](../../../e2e_expansion_20260924/evidence/minicpmo_tts_qualcomm/README.md), then validate the complete multimodal pipeline, state, quality, memory and sustained behavior. | +| PC Snapdragon X Elite CRD / AI Hub | MiniCPM-o 4.5 | COMPONENT_SPEECH_HEAD_NUMERIC_MEASURED; PLACEMENT_PENDING; NOT_E2E_PROFILEABLE | The real 20-layer MiniCPM-o speech-head source compiled to FP16 QNN DLC for the exact X Elite CRD. Same-fixture NPU-requested inference returned 41 finite tensors, preserved ONNX CPU top-1 speech token 1867, and had 0.3170% logits relative L2 and 1.221% maximum K/V relative L2. Actual NPU node assignment and timing await its placement profile. Thinker/encoders/vocoder and a device-local stateful Omni backend remain unqualified. | Audit the [X Elite speech-head placement profile](../../../e2e_expansion_20260924/evidence/minicpmo_tts_qualcomm/README.md), then validate the complete multimodal pipeline, state, quality, memory and sustained behavior. | | 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. | | Mobile Galaxy S25 / Snapdragon 8 Elite for Galaxy | Spark-X2.5 | NOT_E2E_PROFILEABLE | Fresh 2026-09-22 W8A16 full-attention component inference/profile passed; full1024 denotes one cache bucket. No full prefill/decode/KV/ring/sampling loop. | Implement and validate local 128-token generation, 512/1024 transitions, cancellation and resident memory. | | Mobile Galaxy S25 / Snapdragon 8 Elite for Galaxy | Qwen3-TTS 0.6B CustomVoice | TALKER_FP16_NUMERIC_FAIL; NOT_E2E_PROFILEABLE | Fresh FP16 predictor inference passed; its one output exactly matches the same compiled artifact/dataset reference. The real 28-layer FP16 QNN talker step executed on the synthetic cache fixture, but changed CPU top-1 speech token 80 to 412 with 8.99% logits relative L2 and maximum new-K/V relative L2 11.71%. This tested talker artifact is numerically unqualified; no complete co-resident NPU/GPU stream exists. | Improve and revalidate the [talker artifact](../../../e2e_expansion_20260924/evidence/qwen_tts_talker_qualcomm/README.md), then qualify the device-local predictor/vocoder pipeline, output quality, recovery and 30-minute thermal behavior. | diff --git a/docs/design/omni_edge_e2e_roadmap.md b/docs/design/omni_edge_e2e_roadmap.md index 74a6ebf7f..faea3d84f 100644 --- a/docs/design/omni_edge_e2e_roadmap.md +++ b/docs/design/omni_edge_e2e_roadmap.md @@ -21,7 +21,7 @@ The identical SA/RB3 TFLite vocoder binary also matched original ONNX CPU within 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 inference executed on S24, S25, SA8775P and X Elite, but all four changed the CPU top-1 speech token with 8.57–9.43% logits relative L2. RB3 rejected that floating-point-input artifact. Explicit X Elite ONNX CPU and SA8775P TFLite CPU fallback compiles passed, with same-fixture inference pending. None advances M2 to numerical talker or full-stream qualification yet. -For M4, a [MiniCPM-o 4.5 speech-head study](../../benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/minicpmo_tts_qualcomm/README.md) recovered the historical 20-layer ONNX source and matching S24/S25 fixtures. Both FP16 context-binary outputs preserved the ONNX CPU top-1 speech token on one decode step, with logits relative L2 0.346%/0.360%. New FP16 QNN DLC compiles passed for SA8775P, X Elite and RB3. SA8775P same-fixture NPU-requested inference preserved CPU top-1 speech token 1867 with 0.3568% logits relative L2 and 1.225% maximum K/V relative L2; placement profiling is pending. X Elite and RB3 inferences remain pending. This is component C numerical evidence only, not thinker/encoder/vocoder or complete multimodal support. +For M4, a [MiniCPM-o 4.5 speech-head study](../../benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/minicpmo_tts_qualcomm/README.md) recovered the historical 20-layer ONNX source and matching S24/S25 fixtures. Both FP16 context-binary outputs preserved the ONNX CPU top-1 speech token on one decode step, with logits relative L2 0.346%/0.360%. New FP16 QNN DLC compiles passed for SA8775P, X Elite and RB3. SA8775P same-fixture NPU-requested inference preserved CPU top-1 speech token 1867 with 0.3568% logits relative L2 and 1.225% maximum K/V relative L2; placement profiling is pending. X Elite same-fixture inference also preserved token 1867 with 0.3170% logits relative L2; both placement profiles and RB3 inference remain pending. This is component C numerical evidence only, not thinker/encoder/vocoder or complete multimodal support. 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 inference returned a latent within 0.0524% relative L2 of the source on one synthetic pattern. Injecting that output into the real policy on local CPU changed synthetic actions by 0.742% relative L2, without a task tolerance. NPU placement profile was pending, and the policy did not run on S25. This is component/action-sensitivity evidence, not device-local M4 qualification.