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 000000000..babe34678 Binary files /dev/null and b/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/minicpmo_tts_qualcomm/xelite/device_output.npz differ 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.