Profile additional Qualcomm model components
This commit is contained in:
1 parent
5d81c3678b
commit
698f8c13d9
21 files changed
+35175
-41
No files matched your search
@@ -6,6 +6,8 @@ from __future__ import annotations
|
||||
import argparse
|
||||
import hashlib
|
||||
import json
|
||||
import math
|
||||
from collections import Counter
|
||||
from pathlib import Path
|
||||
|
||||
import numpy as np
|
||||
@@ -61,6 +63,7 @@ def main() -> None:
|
||||
parser.add_argument("--output-report", type=Path, required=True)
|
||||
parser.add_argument("--expected-compile-options", default=COMPILE_OPTIONS)
|
||||
parser.add_argument("--expected-run-options", default="--compute_unit npu")
|
||||
parser.add_argument("--profile-report", type=Path)
|
||||
args = parser.parse_args()
|
||||
|
||||
compiled = json.loads(args.compile_report.read_text(encoding="utf-8"))
|
||||
@@ -143,10 +146,39 @@ def main() -> None:
|
||||
"limits": [
|
||||
"The historical source export does not attest an exact checkpoint revision.",
|
||||
"The fixture is synthetic and has no token-to-audio quality tolerance.",
|
||||
"Requested compute unit is not actual placement without a device profile.",
|
||||
"No predictor, vocoder, persistent cache loop or complete TTS stream was tested.",
|
||||
],
|
||||
}
|
||||
if args.profile_report is not None:
|
||||
profiled = json.loads(args.profile_report.read_text(encoding="utf-8"))
|
||||
if (profiled.get("status") != "SUCCESS"
|
||||
or profiled.get("model_id") != compiled["target_model_id"]
|
||||
or profiled.get("device") != inferred["device"]
|
||||
or profiled.get("options") != args.expected_run_options):
|
||||
raise ValueError("profile did not execute the same target, device and route")
|
||||
summary = profiled["profile"]["execution_summary"]
|
||||
samples = summary["all_inference_times"]
|
||||
if not samples or any(not isinstance(value, int) or value <= 0 for value in samples):
|
||||
raise ValueError("profile has no valid inference samples")
|
||||
units = Counter(row.get("compute_unit") for row in profiled["profile"]["execution_detail"])
|
||||
if not units:
|
||||
raise ValueError("profile has no compute-unit detail")
|
||||
ordered = sorted(samples)
|
||||
report["profile"] = {
|
||||
"job_id": profiled["job_id"],
|
||||
"sample_count": len(samples),
|
||||
"sample_min_us": ordered[0],
|
||||
"nearest_rank_p50_us": ordered[math.ceil(0.50 * len(samples)) - 1],
|
||||
"nearest_rank_p95_us": ordered[math.ceil(0.95 * len(samples)) - 1],
|
||||
"reported_estimated_inference_time_us": summary["estimated_inference_time"],
|
||||
"reported_peak_memory_bytes": summary["estimated_inference_peak_memory"],
|
||||
"reported_first_load_time_us": summary["first_load_time"],
|
||||
"reported_first_load_peak_memory_bytes": summary["first_load_peak_memory"],
|
||||
"compute_unit_row_counts": dict(units),
|
||||
}
|
||||
report["status"] = "component_inference_numeric_and_placement_measured"
|
||||
else:
|
||||
report["limits"].append("Requested compute unit is not actual placement without a device profile.")
|
||||
args.output_report.write_text(json.dumps(report, indent=2) + "\n", encoding="utf-8")
|
||||
print(json.dumps({
|
||||
"status": report["status"],
|
||||
|
||||
@@ -29,6 +29,7 @@ def main() -> None:
|
||||
parser = argparse.ArgumentParser(description=__doc__)
|
||||
for name in ("model-dir", "cosmos-dir", "processor-dir", "fixture", "device-output", "audit-report", "output"):
|
||||
parser.add_argument(f"--{name}", type=Path, required=True)
|
||||
parser.add_argument("--device-name", default="Samsung Galaxy S25")
|
||||
args = parser.parse_args()
|
||||
|
||||
os.environ["INTERNVLA_A1_COSMOS_DIR"] = str(args.cosmos_dir.resolve(strict=True))
|
||||
@@ -48,10 +49,13 @@ def main() -> None:
|
||||
if sha256(checkpoint) != CHECKPOINT_SHA256 or sha256(args.fixture) != FIXTURE_SHA256:
|
||||
raise ValueError("checkpoint or encoder fixture differs from pinned source")
|
||||
audit = json.loads(args.audit_report.read_text(encoding="utf-8"))
|
||||
if (audit.get("status") != "component_inference_numeric_measured"
|
||||
or audit.get("device", {}).get("name") != "Samsung Galaxy S25"
|
||||
if (audit.get("status") not in {
|
||||
"component_inference_numeric_measured",
|
||||
"component_inference_numeric_and_placement_measured",
|
||||
}
|
||||
or audit.get("device", {}).get("name") != args.device_name
|
||||
or audit.get("files", {}).get("device_output", {}).get("sha256") != sha256(args.device_output)):
|
||||
raise ValueError("hosted latent lacks audited S25 provenance")
|
||||
raise ValueError(f"hosted latent lacks audited {args.device_name} provenance")
|
||||
with np.load(args.fixture, allow_pickle=False) as fixture:
|
||||
source_latent = np.asarray(fixture["pattern_reference"])
|
||||
with np.load(args.device_output, allow_pickle=False) as output:
|
||||
@@ -130,8 +134,9 @@ def main() -> None:
|
||||
hosted = hosted_actions.astype(np.float64).ravel()
|
||||
delta = source - hosted
|
||||
report = {
|
||||
"scope": "S25 hosted Cosmos latent injected into local CPU InternVLA policy with synthetic state/noise; no device-local policy or robot-task result",
|
||||
"scope": f"{args.device_name} hosted Cosmos latent injected into local CPU InternVLA policy with synthetic state/noise; no device-local policy or robot-task result",
|
||||
"status": "synthetic_action_sensitivity_measured",
|
||||
"hosted_device_name": args.device_name,
|
||||
"policy_checkpoint_sha256": CHECKPOINT_SHA256,
|
||||
"fixture_sha256": FIXTURE_SHA256,
|
||||
"hosted_output_sha256": sha256(args.device_output),
|
||||
|
||||
@@ -18,6 +18,7 @@ from profile_local_text import HOST_ENVIRONMENT, save
|
||||
|
||||
async def run(args):
|
||||
import torch
|
||||
import vllm_omni
|
||||
from transformers import AutoTokenizer
|
||||
|
||||
from vllm_omni import AsyncOmni
|
||||
@@ -35,6 +36,8 @@ async def run(args):
|
||||
"status": "running",
|
||||
"argv": sys.argv,
|
||||
"python": sys.executable,
|
||||
"cwd": os.getcwd(),
|
||||
"loaded_omni_path": str(Path(vllm_omni.__file__).resolve()),
|
||||
"host_environment": HOST_ENVIRONMENT,
|
||||
"platform": platform.platform(),
|
||||
"runtime": runtime_versions().to_dict(),
|
||||
|
||||
@@ -4,10 +4,10 @@ The [Qwen3-TTS vocoder study](evidence/qwen_tts_vocoder_qualcomm/README.md) reus
|
||||
|
||||
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; the exact SA CPU control passed numerical and placement checks, while the faulty GPU delegate operation remains unidentified.
|
||||
|
||||
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. X Elite CPU-requested inference preserved CPU top-1 token 80 with logits relative L2 2.07e-5; its placement profile remains pending. SA8775P TFLite CPU-requested talker inference also preserved token 80 with logits relative L2 3.33e-5; its placement profile is pending. No complete talker loop or TTS stream passed.
|
||||
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. X Elite CPU-requested inference preserved CPU top-1 token 80 with logits relative L2 2.07e-5; its 100-sample decode-step profile measured p50/p95 191.414/309.428 ms, all 1,744 execution-detail rows on CPU. SA8775P TFLite CPU-requested talker inference also preserved token 80 with logits relative L2 3.33e-5; its 100-sample decode-step profile measured p50/p95 52.635/76.925 ms, all 1,800 execution-detail rows on CPU. 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. Their 100-sample component profiles had p50/p95 8.537/9.006 ms and 7.197/7.615 ms, with all 1,029 execution-detail rows on NPU for each. 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; its 100-sample profile measured p50/p95 11.901/13.038 ms, all 944 execution-detail rows on NPU. X Elite same-fixture inference also preserved token 1867 with 0.3170% logits relative L2; its 100-sample profile measured p50/p95 9.905/11.037 ms, all 944 execution-detail rows on NPU. RB3 FP16 QNN inference failed at graph load despite compile success; an explicit TFLite CPU fallback same-fixture inference preserved top-1 token 1867 with logits relative L2 1.26e-6 versus ONNX CPU; CPU placement profiling is pending. 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. Their 100-sample component profiles had p50/p95 8.537/9.006 ms and 7.197/7.615 ms, with all 1,029 execution-detail rows on NPU for each. 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; its 100-sample profile measured p50/p95 11.901/13.038 ms, all 944 execution-detail rows on NPU. X Elite same-fixture inference also preserved token 1867 with 0.3170% logits relative L2; its 100-sample profile measured p50/p95 9.905/11.037 ms, all 944 execution-detail rows on NPU. RB3 FP16 QNN inference failed at graph load despite compile success; an explicit TFLite CPU fallback same-fixture inference preserved top-1 token 1867 with logits relative L2 1.26e-6 versus ONNX CPU; its 100-sample CPU-requested profile measured p50/p95 59.518/71.347 ms with all 1,008 execution-detail rows on CPU. The complete multimodal model remains unqualified on those devices.
|
||||
|
||||
The [native Windows Qwen3-TTS sustained analysis](evidence/qwen_tts_sustained_drift/README.md) finds a sharp playback throughput collapse around minute 26–27 in the historical 30-minute RTX 5090 Laptop stream. The last 17 serial requests all had simulated underruns with median RTF 1.331; the separate WSL run did not show that behavior. A revised local profiler now records timestamped device-wide NVML clocks, power, temperature, throttling and utilization to investigate the cause in a repeat run. The historical evidence cannot identify the cause or qualify native Windows sustained playback.
|
||||
|
||||
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. S25 six-frame component placement profile returned 100 samples at p50/p95 49.665/51.382 ms, with all 121 execution-detail rows on NPU. The same encoder compiled to FP16 QNN DLC for X Elite CRD; same-fixture NPU-requested inference returned a finite latent at 0.0608% relative L2 / 64.32 dB SNR versus the source, with placement profiling pending. An SA8775P FP16 QNN DLC compile passed, with same-fixture NPU-requested inference pending. Device-local action-policy support remains unqualified. The checkpoint-named Place_Markpen dataset returned HTTP 404, and the official vLLM-Omni example archive in InternData-A1 returned HTTP 403 gated-access denial under the current authenticated account; [real-observation access evidence](evidence/internvla_real_observation_access/README.md) records the blocker without treating synthetic actions as task validation.
|
||||
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. S25 six-frame component placement profile returned 100 samples at p50/p95 49.665/51.382 ms, with all 121 execution-detail rows on NPU. The same encoder compiled to FP16 QNN DLC for X Elite CRD; same-fixture NPU-requested inference returned a finite latent at 0.0608% relative L2 / 64.32 dB SNR versus the source, with its 100-sample six-frame profile at p50/p95 82.939/83.837 ms and all 121 execution-detail rows on NPU. An SA8775P FP16 QNN DLC inference returned a finite same-fixture latent at 0.0613% relative L2 / 64.25 dB SNR versus source; placement profiling is pending. Device-local action-policy support remains unqualified. The checkpoint-named Place_Markpen dataset returned HTTP 404, and the official vLLM-Omni example archive in InternData-A1 returned HTTP 403 gated-access denial under the current authenticated account; [real-observation access evidence](evidence/internvla_real_observation_access/README.md) records the blocker without treating synthetic actions as task validation.
|
||||
+3
-3
@@ -4,10 +4,10 @@ This tests the **real Place_Markpen Cosmos CI8x8 image encoder component**, not
|
||||
|
||||
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`. [Same-fixture pattern inference](s25/inference_report.json) requesting NPU also succeeded. The [audit](s25/audit_report.json) found **0.0524% relative L2 / 65.61 dB SNR** versus the pinned source latent, with finite FP32 `[6,16,32,32]` output. This establishes numerical behavior on one synthetic encoder fixture; the [placement profile](s25/profile_report.json) attributed all 121 execution-detail rows to NPU. Its 100 six-frame component samples had nearest-rank p50/p95 49.665/51.382 ms (minimum 47.438 ms); reported inference peak memory was 158,232,576 bytes. The service reported first/warm load times of 20.996/0.178 s and corresponding peak memories of 679,317,504/279,449,600 bytes for this component job. The combined audit binds placement, numerical output and exact target/device. These exclude the action policy, data handoff, cold-load cost and sustained operation.
|
||||
|
||||
The same source model also [compiled to FP16 QNN DLC on Snapdragon X Elite CRD](xelite/compile_report.json), producing target `mmxj0w8kq` for Windows ARM. [Same-fixture NPU-requested inference](xelite/inference_report.json) on dataset `d26qo8p57` returned a finite FP32 `[6,16,32,32]` latent. Its [audit](xelite/audit_report.json) measured **0.0608% relative L2 / 64.32 dB SNR** versus the pinned source pattern, with cosine 0.999999815. This is one synthetic component inference; the [NPU placement profile](xelite/profile_submission.json) has been submitted and remains pending. Neither inference request nor QNN artifact alone establishes actual NPU node assignment, action quality or a complete device-local policy.
|
||||
The same source model also [compiled to FP16 QNN DLC on Snapdragon X Elite CRD](xelite/compile_report.json), producing target `mmxj0w8kq` for Windows ARM. [Same-fixture NPU-requested inference](xelite/inference_report.json) on dataset `d26qo8p57` returned a finite FP32 `[6,16,32,32]` latent. Its [audit](xelite/audit_report.json) measured **0.0608% relative L2 / 64.32 dB SNR** versus the pinned source pattern, with cosine 0.999999815. The [placement profile](xelite/profile_report.json) returned 100 six-frame component samples at nearest-rank p50/p95 **82.939/83.837 ms**, with all **121 execution-detail rows on NPU**. The 82.446 ms estimated-time field is the sample minimum. Reported inference peak memory was 24,059,904 bytes and first-load peak 692,891,648 bytes. This is component evidence only; neither action quality nor a complete device-local policy was tested.
|
||||
|
||||
The same source also [compiled to FP16 QNN DLC on SA8775P ADP](sa8775p/compile_report.json), producing target mn750wz8m for Android. [Same-fixture NPU-requested inference](sa8775p/inference_submission.json) was submitted using dataset d26qo8p57; numerical and placement outcomes remain pending.
|
||||
The same source also [compiled to FP16 QNN DLC on SA8775P ADP](sa8775p/compile_report.json), producing target mn750wz8m for Android. [Same-fixture NPU-requested inference](sa8775p/inference_report.json) using dataset d26qo8p57 returned a finite FP32 [6,16,32,32] latent. Its [audit](sa8775p/audit_report.json) measured **0.0613% relative L2 / 64.25 dB SNR** versus the pinned source pattern, with cosine 0.999999812. Actual NPU node assignment and timing await the [submitted placement profile](sa8775p/profile_submission.json); no complete local policy follows.
|
||||
|
||||
The [generic collector](../../../../experiments/collect_aihub_component.py) preserves terminal jobs, 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. A separate [synthetic action sensitivity check](s25/action_sensitivity.json) injected either the pinned source or S25 latent into the same real Place_Markpen policy on **local CPU**, with zero state/noise. The [reproducer](../../../../experiments/probe_internvla_hosted_latent_actions.py) returned finite `[1,50,32]` actions; hosted-vs-source action relative L2 was **0.742%**, maximum absolute difference **0.0115**, cosine **0.999973**. Repeating the source policy gave bitwise identical actions. This is a cross-device numerical handoff experiment, not a device-local policy or robot-task pass; no real-observation action tolerance is known.
|
||||
|
||||
Next: audit X Elite placement and SA8775P same-fixture output, test representative real observations and action tolerances, then build and validate a device-local stateful policy. Full multimodal observation processing, admission, cancellation and sustained profiling remain open.
|
||||
Next: audit SA8775P placement, test representative real observations and action tolerances, then build and validate a device-local stateful policy. Full multimodal observation processing, admission, cancellation and sustained profiling remain open.
|
||||
+54
@@ -0,0 +1,54 @@
|
||||
{
|
||||
"scope": "one six-frame Cosmos image encoder on synthetic pattern; no complete InternVLA policy",
|
||||
"status": "component_inference_numeric_measured",
|
||||
"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"
|
||||
]
|
||||
},
|
||||
"source_model_id": "mn4okj3rq",
|
||||
"target_model_id": "mn750wz8m",
|
||||
"compile_job_id": "j5687wx6g",
|
||||
"inference_job_id": "jp2rwe2rg",
|
||||
"input_dataset_id": "d26qo8p57",
|
||||
"requested_run_options": "--compute_unit npu",
|
||||
"files": {
|
||||
"source_onnx": {
|
||||
"bytes": 125112088,
|
||||
"sha256": "656a5263f584851a1457ef6dcf60b995f7c67b056b3c90a4f33c814f7caf9ec9"
|
||||
},
|
||||
"fixture": {
|
||||
"bytes": 2081321,
|
||||
"sha256": "dcbaf1391ca914d4bbccc1cb384daf05666e771d9cdae90c4f069ec8fcf05368"
|
||||
},
|
||||
"device_output": {
|
||||
"bytes": 185475,
|
||||
"sha256": "b30e4a7e312a0ceaa058fa1f6fe338b3dbc21ef7ee131e9347997822eccd0f40"
|
||||
}
|
||||
},
|
||||
"output_dtype": "float32",
|
||||
"source_vs_device": {
|
||||
"relative_l2": 0.0006133529653991887,
|
||||
"snr_db": 64.24579061372152,
|
||||
"max_abs_error": 0.009660720825195312,
|
||||
"cosine": 0.9999998122677838
|
||||
},
|
||||
"limits": [
|
||||
"The fixture is synthetic; no real-observation or action-quality tolerance is established.",
|
||||
"The action policy, state lifecycle, admission and complete request were not run on this device.",
|
||||
"Requested NPU is not actual per-node placement without a device profile."
|
||||
]
|
||||
}
|
||||
BIN
Binary file not shown.
+32
@@ -0,0 +1,32 @@
|
||||
{
|
||||
"timestamp_utc": "2026-09-24T01:18:21.481644+00:00",
|
||||
"qai_hub_version": "0.55.0",
|
||||
"facility": "Qualcomm AI Hub Workbench",
|
||||
"job_id": "jp2rwe2rg",
|
||||
"url": "https://workbench.aihub.qualcomm.com/jobs/jp2rwe2rg/",
|
||||
"status": "SUCCESS",
|
||||
"status_message": "",
|
||||
"options": "--compute_unit npu",
|
||||
"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": "mn750wz8m",
|
||||
"input_dataset_id": "d26qo8p57",
|
||||
"outputs": "device_output.npz"
|
||||
}
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"timestamp_utc": "2026-09-24T01:18:52.829788+00:00",
|
||||
"facility": "Qualcomm AI Hub Workbench",
|
||||
"qai_hub_version": "0.55.0",
|
||||
"source_compile_job_id": "j5687wx6g",
|
||||
"target_model_id": "mn750wz8m",
|
||||
"device": "SA8775P ADP",
|
||||
"options": "--compute_unit npu",
|
||||
"kind": "profile",
|
||||
"status": "SUBMITTED",
|
||||
"job_id": "jpe7z7ov5",
|
||||
"url": "https://workbench.aihub.qualcomm.com/jobs/jpe7z7ov5/"
|
||||
}
|
||||
+19
-4
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"scope": "one six-frame Cosmos image encoder on synthetic pattern; no complete InternVLA policy",
|
||||
"status": "component_inference_numeric_measured",
|
||||
"status": "component_inference_numeric_and_placement_measured",
|
||||
"device": {
|
||||
"name": "Snapdragon X Elite CRD",
|
||||
"os": "11",
|
||||
@@ -48,7 +48,22 @@
|
||||
},
|
||||
"limits": [
|
||||
"The fixture is synthetic; no real-observation or action-quality tolerance is established.",
|
||||
"The action policy, state lifecycle, admission and complete request were not run on this device.",
|
||||
"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."
|
||||
],
|
||||
"profile": {
|
||||
"job_id": "j5wl77r6p",
|
||||
"sample_count": 100,
|
||||
"sample_min_us": 82446,
|
||||
"nearest_rank_p50_us": 82939,
|
||||
"nearest_rank_p95_us": 83837,
|
||||
"reported_estimated_inference_time_us": 82446,
|
||||
"reported_peak_memory_bytes": 24059904,
|
||||
"reported_first_load_time_us": 50583490,
|
||||
"reported_warm_load_time_us": 1164543,
|
||||
"reported_first_load_peak_memory_bytes": 692891648,
|
||||
"reported_warm_load_peak_memory_bytes": 15200256,
|
||||
"compute_unit_row_counts": {
|
||||
"NPU": 121
|
||||
}
|
||||
}
|
||||
}
|
||||
+1043
File diff suppressed because it is too large.
Load diff
+1
-1
@@ -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. The [S24](s24/profile_report.json) and [S25](s25/profile_report.json) profiles each returned 100 fixed-cache 20-layer component samples, with nearest-rank p50/p95 **8.537/9.006 ms** and **7.197/7.615 ms**, respectively. All **1,029 execution-detail rows** in each profile were attributed to NPU. The service estimated-time fields were the sample minima (8.211/7.125 ms), not medians. Reported inference peak memory was 165,433,344/185,991,168 bytes. The [S24](s24/audit_report.json) and [S25](s25/audit_report.json) audits now bind numerical outputs and placement to the exact target/device; generated-audio quality and complete model state remain unverified.
|
||||
|
||||
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 [SA8775P placement profile](sa8775p/profile_report.json) returned 100 component samples with nearest-rank p50/p95 **11.901/13.038 ms**; all **944 execution-detail rows** were attributed to NPU. The 11.627 ms estimated-time field is the sample minimum, not median. Reported inference peak memory was 134,696,960 bytes and first-load peak 1,322,835,968 bytes, neither a whole-model co-residency measurement. 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_report.json) returned 100 component samples with nearest-rank p50/p95 **9.905/11.037 ms**; all **944 execution-detail rows** were attributed to NPU. The 9.106 ms estimated-time field is the sample minimum. Reported inference peak memory was 79,208,448 bytes and first-load peak 1,081,573,376 bytes. The exact RB3 [FP16 QNN DLC inference](rb3/inference_report.json) **failed** while loading the graph with QnnModel_composeGraphsFromDlc: MODEL_GRAPH_ERROR, despite a successful compile. RB3 does not advertise FP16 HTP support in the device attributes; this failure constrains the tested artifact, not every RB3 path. An explicit [TFLite CPU fallback compile](rb3/cpu_fallback/compile_report.json) succeeded, producing target mnwv5d7wq; [same-fixture CPU-requested inference](rb3/cpu_fallback/inference_report.json) returned 41 finite tensors, preserved CPU top-1 token **1867**, and had logits relative L2 **1.26e-6** and maximum K/V relative L2 **1.58e-6** versus the original ONNX CPU fixture. This establishes a numerical CPU fallback component, but actual per-node CPU placement and timing await its [submitted profile](rb3/cpu_fallback/profile_submission.json). 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 [SA8775P placement profile](sa8775p/profile_report.json) returned 100 component samples with nearest-rank p50/p95 **11.901/13.038 ms**; all **944 execution-detail rows** were attributed to NPU. The 11.627 ms estimated-time field is the sample minimum, not median. Reported inference peak memory was 134,696,960 bytes and first-load peak 1,322,835,968 bytes, neither a whole-model co-residency measurement. 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_report.json) returned 100 component samples with nearest-rank p50/p95 **9.905/11.037 ms**; all **944 execution-detail rows** were attributed to NPU. The 9.106 ms estimated-time field is the sample minimum. Reported inference peak memory was 79,208,448 bytes and first-load peak 1,081,573,376 bytes. The exact RB3 [FP16 QNN DLC inference](rb3/inference_report.json) **failed** while loading the graph with QnnModel_composeGraphsFromDlc: MODEL_GRAPH_ERROR, despite a successful compile. RB3 does not advertise FP16 HTP support in the device attributes; this failure constrains the tested artifact, not every RB3 path. An explicit [TFLite CPU fallback compile](rb3/cpu_fallback/compile_report.json) succeeded, producing target mnwv5d7wq; [same-fixture CPU-requested inference](rb3/cpu_fallback/inference_report.json) returned 41 finite tensors, preserved CPU top-1 token **1867**, and had logits relative L2 **1.26e-6** and maximum K/V relative L2 **1.58e-6** versus the original ONNX CPU fixture. The [CPU fallback profile](rb3/cpu_fallback/profile_report.json) returned 100 decode-step component samples at nearest-rank p50/p95 **59.518/71.347 ms**, with all **1,008 execution-detail rows on CPU**. The 59.007 ms estimated-time field is the sample minimum. Reported inference peak memory was 820,981,760 bytes. This is a numerical and placement-passing component fallback, not a full model request. 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.
|
||||
+17
-4
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"scope": "one fixed-cache 20-layer MiniCPM-o speech-head decode step; no complete multimodal stream",
|
||||
"status": "component_inference_numeric_measured",
|
||||
"status": "component_inference_numeric_and_placement_measured",
|
||||
"device": {
|
||||
"name": "Dragonwing RB3 Gen 2 Vision Kit",
|
||||
"os": "1.6",
|
||||
@@ -298,7 +298,20 @@
|
||||
"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.",
|
||||
"Thinker, audio/vision encoders, vocoder, state loop and complete Omni request were not tested.",
|
||||
"Actual CPU/NPU placement requires a device profile; a request or compiled artifact alone is insufficient."
|
||||
]
|
||||
"Thinker, audio/vision encoders, vocoder, state loop and complete Omni request were not tested."
|
||||
],
|
||||
"profile": {
|
||||
"job_id": "jprl00r0p",
|
||||
"sample_count": 100,
|
||||
"sample_min_us": 59007,
|
||||
"nearest_rank_p50_us": 59518,
|
||||
"nearest_rank_p95_us": 71347,
|
||||
"reported_estimated_inference_time_us": 59007,
|
||||
"reported_peak_memory_bytes": 820981760,
|
||||
"reported_first_load_time_us": 275127,
|
||||
"reported_first_load_peak_memory_bytes": 769884160,
|
||||
"compute_unit_row_counts": {
|
||||
"CPU": 1008
|
||||
}
|
||||
}
|
||||
}
|
||||
+7638
File diff suppressed because it is too large.
Load diff
+1
-1
@@ -6,7 +6,7 @@ The deterministic synthetic input dataset `d7dw6pgy2` has SHA256 `0bf538e1b64dfc
|
||||
|
||||
Historical FP16 QNN context-binary [S24](s24/compile_report.json), [S25](s25/compile_report.json), [SA8775P](sa8775p/compile_report.json), and [Snapdragon X Elite](xelite/compile_report.json) compile jobs succeeded. Same-fixture NPU-requested inference succeeded on all four, but **all changed the CPU reference top-1 logit** on this synthetic step: CPU token 80 versus S24/SA/X Elite 1720 and S25 412. The [S24](s24/audit_report.json), [S25](s25/audit_report.json), [SA8775P](sa8775p/audit_report.json) and [X Elite](xelite/audit_report.json) audits report logits relative L2 **9.33%/8.99%/9.43%/8.57%**, respectively, with maximum K/V relative L2 **11.23%/11.71%/11.54%/11.50%**. These FP16 artifacts are numerically unqualified for this fixture; a successful graph execution is not speech-token parity. The [RB3 compile](rb3/compile_report.json) rejected floating-point input on this device. These are artifact-specific outcomes, not full-model support claims.
|
||||
|
||||
Explicit [X Elite ONNX CPU](xelite/cpu_fallback/compile_report.json) and [SA8775P TFLite CPU](sa8775p/cpu_fallback/compile_report.json) fallback compiles succeeded from the same source. The same-fixture [X Elite CPU-requested inference](xelite/cpu_fallback/inference_report.json) succeeded. Its [audit](xelite/cpu_fallback/audit_report.json) found logits relative L2 2.07e-5, maximum new-K/V relative L2 2.18e-5, and preserved ONNX CPU top-1 speech token 80. A [CPU-requested placement profile](xelite/cpu_fallback/profile_submission.json) was submitted and remains pending. The [SA8775P TFLite CPU-requested inference](sa8775p/cpu_fallback/inference_report.json) also succeeded. Its [audit](sa8775p/cpu_fallback/audit_report.json) found logits relative L2 3.33e-5, maximum new-K/V relative L2 3.41e-5, and preserved CPU top-1 speech token 80. The [CPU-requested placement profile](sa8775p/cpu_fallback/profile_submission.json) is pending. Both explicit CPU routes are numerically close on one decode step, not complete talker loops or TTS deployments.
|
||||
Explicit [X Elite ONNX CPU](xelite/cpu_fallback/compile_report.json) and [SA8775P TFLite CPU](sa8775p/cpu_fallback/compile_report.json) fallback compiles succeeded from the same source. The same-fixture [X Elite CPU-requested inference](xelite/cpu_fallback/inference_report.json) succeeded. Its [audit](xelite/cpu_fallback/audit_report.json) found logits relative L2 2.07e-5, maximum new-K/V relative L2 2.18e-5, and preserved ONNX CPU top-1 speech token 80. The [CPU-requested placement profile](xelite/cpu_fallback/profile_report.json) returned 100 decode-step component samples at nearest-rank p50/p95 **191.414/309.428 ms**, with all **1,744 execution-detail rows on CPU**. The 142.921 ms estimated-time field is the sample minimum; reported inference peak memory was 1,928,019,968 bytes. The [SA8775P TFLite CPU-requested inference](sa8775p/cpu_fallback/inference_report.json) also succeeded. Its [audit](sa8775p/cpu_fallback/audit_report.json) found logits relative L2 3.33e-5, maximum new-K/V relative L2 3.41e-5, and preserved CPU top-1 speech token 80. The [CPU-requested placement profile](sa8775p/cpu_fallback/profile_report.json) returned 100 decode-step component samples at nearest-rank p50/p95 **52.635/76.925 ms**, with all **1,800 execution-detail rows on CPU**. The 45.688 ms estimated-time field is the sample minimum; reported inference peak memory was 1,913,794,560 bytes. Both explicit CPU routes are numerically close on one decode step, not complete talker loops or TTS deployments.
|
||||
|
||||
The [collector](../../../../experiments/collect_aihub_component.py) retrieves terminal inference outputs without resubmission. The [tensor auditor](../../../../experiments/audit_qwen_tts_talker_qualcomm.py) enforces the source, fixture, compile target, exact device, output shape and finiteness contracts, and reports logits top-1 plus relative error for all 56 new K/V tensors. It does not convert those metrics to a quality pass without an explicit token/audio tolerance. Its 57-output contract was exercised against the pinned CPU reference as a local self-check; that self-check is not device evidence. Requested NPU placement still needs a profile.
|
||||
|
||||
|
||||
+16
-3
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"scope": "one synthetic fixed-cache 28-layer Qwen3-TTS talker decode step; no complete TTS stream",
|
||||
"status": "component_executed_numeric_measured",
|
||||
"status": "component_inference_numeric_and_placement_measured",
|
||||
"device": {
|
||||
"name": "SA8775P ADP",
|
||||
"os": "14",
|
||||
@@ -394,7 +394,20 @@
|
||||
"limits": [
|
||||
"The historical source export does not attest an exact checkpoint revision.",
|
||||
"The fixture is synthetic and has no token-to-audio quality tolerance.",
|
||||
"Requested compute unit is not actual placement without a device profile.",
|
||||
"No predictor, vocoder, persistent cache loop or complete TTS stream was tested."
|
||||
]
|
||||
],
|
||||
"profile": {
|
||||
"job_id": "jgdd33x6g",
|
||||
"sample_count": 100,
|
||||
"sample_min_us": 45688,
|
||||
"nearest_rank_p50_us": 52635,
|
||||
"nearest_rank_p95_us": 76925,
|
||||
"reported_estimated_inference_time_us": 45688,
|
||||
"reported_peak_memory_bytes": 1913794560,
|
||||
"reported_first_load_time_us": 6679118,
|
||||
"reported_first_load_peak_memory_bytes": 1846460416,
|
||||
"compute_unit_row_counts": {
|
||||
"CPU": 1800
|
||||
}
|
||||
}
|
||||
}
|
||||
+13326
File diff suppressed because it is too large.
Load diff
+16
-3
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"scope": "one synthetic fixed-cache 28-layer Qwen3-TTS talker decode step; no complete TTS stream",
|
||||
"status": "component_executed_numeric_measured",
|
||||
"status": "component_inference_numeric_and_placement_measured",
|
||||
"device": {
|
||||
"name": "Snapdragon X Elite CRD",
|
||||
"os": "11",
|
||||
@@ -394,7 +394,20 @@
|
||||
"limits": [
|
||||
"The historical source export does not attest an exact checkpoint revision.",
|
||||
"The fixture is synthetic and has no token-to-audio quality tolerance.",
|
||||
"Requested compute unit is not actual placement without a device profile.",
|
||||
"No predictor, vocoder, persistent cache loop or complete TTS stream was tested."
|
||||
]
|
||||
],
|
||||
"profile": {
|
||||
"job_id": "jp2rwed4g",
|
||||
"sample_count": 100,
|
||||
"sample_min_us": 142921,
|
||||
"nearest_rank_p50_us": 191414,
|
||||
"nearest_rank_p95_us": 309428,
|
||||
"reported_estimated_inference_time_us": 142921,
|
||||
"reported_peak_memory_bytes": 1928019968,
|
||||
"reported_first_load_time_us": 2102540,
|
||||
"reported_first_load_peak_memory_bytes": 1806598144,
|
||||
"compute_unit_row_counts": {
|
||||
"CPU": 1744
|
||||
}
|
||||
}
|
||||
}
|
||||
+12934
File diff suppressed because it is too large.
Load diff
@@ -16,11 +16,11 @@ A [Qwen3-TTS Code2Wav follow-up](../../../e2e_expansion_20260924/evidence/qwen_t
|
||||
|
||||
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. Together with the exact SA CPU-requested parity result, this narrows the SA saturation to the GPU-requested route; the RB3 embedded CPU route and specific faulty delegate operation remain unverified.
|
||||
|
||||
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 inference executed on S24, S25, SA8775P and X Elite, but all four changed the CPU reference top-1 speech token with 8.57–9.43% logits relative L2; they are numerically unqualified on this fixture. An RB3 compile rejected floating-point input. Separate CPU-requested talker steps on X Elite ONNX and SA8775P TFLite preserved CPU token 80 with logits relative L2 2.07e-5 and 3.33e-5; both placement profiles are pending. No complete talker loop or TTS stream follows.
|
||||
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 inference executed on S24, S25, SA8775P and X Elite, but all four changed the CPU reference top-1 speech token with 8.57–9.43% logits relative L2; they are numerically unqualified on this fixture. An RB3 compile rejected floating-point input. Separate CPU-requested talker steps on X Elite ONNX and SA8775P TFLite preserved CPU token 80 with logits relative L2 2.07e-5 and 3.33e-5; X Elite had 100 component samples at p50/p95 191.414/309.428 ms with all 1,744 execution-detail rows on CPU; SA had 100 at 52.635/76.925 ms with all 1,800 rows on CPU. No complete talker loop or TTS stream follows.
|
||||
|
||||
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; its 100-sample six-frame component profile had p50/p95 49.665/51.382 ms and all 121 execution-detail rows on NPU. Injecting that latent into the real policy on local CPU changed synthetic actions by 0.742% relative L2, without a task tolerance. The same encoder compiled to FP16 QNN DLC for X Elite CRD; same-fixture NPU-requested inference returned a finite latent at 0.0608% relative L2 versus source, with actual placement profiling pending. This advances component and action-sensitivity evidence, not device-local full-policy qualification. The Place_Markpen checkpoint names dataset a2d_real/a2d_pen_holder, which returned HTTP 404 under the current authenticated Hugging Face account. The official vLLM-Omni example names a different Place_Markpen archive in InternData-A1, but access to that gated dataset returned HTTP 403; [the access record](../../../e2e_expansion_20260924/evidence/internvla_real_observation_access/README.md) leaves real-observation reference-action validation open.
|
||||
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; its 100-sample six-frame component profile had p50/p95 49.665/51.382 ms and all 121 execution-detail rows on NPU. Injecting that latent into the real policy on local CPU changed synthetic actions by 0.742% relative L2, without a task tolerance. The same encoder compiled to FP16 QNN DLC for X Elite CRD and SA8775P; same-fixture NPU-requested inferences returned finite latents at 0.0608% and 0.0613% relative L2 versus source, with X Elite profiled on NPU and SA8775P placement pending. This advances component and action-sensitivity evidence, not device-local full-policy qualification. The Place_Markpen checkpoint names dataset a2d_real/a2d_pen_holder, which returned HTTP 404 under the current authenticated Hugging Face account. The official vLLM-Omni example names a different Place_Markpen archive in InternData-A1, but access to that gated dataset returned HTTP 403; [the access record](../../../e2e_expansion_20260924/evidence/internvla_real_observation_access/README.md) leaves real-observation reference-action validation open.
|
||||
|
||||
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%. S24/S25 100-sample component profiles attributed all 1,029 execution-detail rows to NPU, with p50/p95 8.537/9.006 ms and 7.197/7.615 ms. New FP16 QNN DLC compiles passed for SA8775P, X Elite and RB3. SA8775P same-fixture inference preserved CPU top-1 token 1867 with 0.3568% logits relative L2; its 100-sample component profile measured p50/p95 11.901/13.038 ms with all 944 execution-detail rows on NPU. X Elite same-fixture inference also preserved token 1867 with 0.3170% logits relative L2; its 100-sample component profile measured p50/p95 9.905/11.037 ms with all 944 execution-detail rows on NPU; RB3 FP16 QNN inference failed at graph load; its explicit TFLite CPU fallback returned 41 finite outputs, preserved CPU top-1 token 1867 and had logits relative L2 1.26e-6 versus ONNX CPU, with placement profiling 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%. S24/S25 100-sample component profiles attributed all 1,029 execution-detail rows to NPU, with p50/p95 8.537/9.006 ms and 7.197/7.615 ms. New FP16 QNN DLC compiles passed for SA8775P, X Elite and RB3. SA8775P same-fixture inference preserved CPU top-1 token 1867 with 0.3568% logits relative L2; its 100-sample component profile measured p50/p95 11.901/13.038 ms with all 944 execution-detail rows on NPU. X Elite same-fixture inference also preserved token 1867 with 0.3170% logits relative L2; its 100-sample component profile measured p50/p95 9.905/11.037 ms with all 944 execution-detail rows on NPU; RB3 FP16 QNN inference failed at graph load; its explicit TFLite CPU fallback returned 41 finite outputs, preserved CPU top-1 token 1867 and had logits relative L2 1.26e-6 versus ONNX CPU, with 100 CPU-requested component samples at p50/p95 59.518/71.347 ms and all 1,008 execution-detail rows on CPU. These are speech-head component results, not multimodal MiniCPM-o requests.
|
||||
|
||||
A [raw sustained-window audit](../../../e2e_expansion_20260924/evidence/qwen_tts_sustained_drift/README.md) found that native Windows RTX Qwen3-TTS playback slows sharply after about 26 minutes: all 17 serial medium requests in minutes 27–30 underrun in the simulated first-audio playout, with median RTF 1.331. The separate WSL run stayed below real time without underruns. The cause is not established; a timestamped GPU telemetry repeat is underway.
|
||||
|
||||
@@ -43,11 +43,11 @@ NOT E2E means no complete device/model workload was verified. “Scoped E2E” i
|
||||
| PC HX370 + Radeon 890M / Windows worker | scoped E2E: Omni Spark text | scoped E2E: Omni Radeon talker/codec + CPU predictor | NOT E2E | scoped E2E: Omni Radeon+CPU image+audio → text+speech (native-storage 20-run profile) | synthetic policy pass: Omni CPU+Radeon Cosmos (WSL/native Windows) |
|
||||
| PC HX370 + AMD NPU / Windows worker | NOT E2E (output-head component passed) | NOT E2E | NOT E2E | NOT E2E | NOT E2E |
|
||||
| PC CPU+iGPU+NPU +/- discrete GPU, joint model execution | NOT E2E | NOT E2E | NOT E2E | NOT E2E | NOT E2E |
|
||||
| PC Snapdragon X Elite CRD / AI Hub | NOT E2E (one Spark attention layer on NPU) | NOT E2E (CPU talker/vocoder steps; QNN vocoder numeric) | NOT E2E | NOT E2E (NPU speech-head step profiled) | NOT E2E (Cosmos encoder numeric; placement pending) |
|
||||
| PC Snapdragon X Elite CRD / AI Hub | NOT E2E (one Spark attention layer on NPU) | NOT E2E (CPU talker/vocoder steps; QNN vocoder numeric) | NOT E2E | NOT E2E (NPU speech-head step profiled) | NOT E2E (Cosmos NPU encoder profiled) |
|
||||
| Mobile Galaxy S25 / Snapdragon 8 Elite for Galaxy | NOT E2E (one Spark attention layer on NPU) | NOT E2E (FP16 talker token mismatch) | NOT E2E | NOT E2E (NPU speech head step profiled) | NOT E2E (Cosmos NPU encoder profiled) |
|
||||
| Mobile Galaxy S24 / Snapdragon 8 Gen 3 | NOT E2E (one Spark attention layer on NPU) | NOT E2E (FP16 talker token mismatch) | NOT E2E | NOT E2E (NPU speech head step profiled) | NOT E2E |
|
||||
| Embedded SA8775P ADP / AI Hub | NOT E2E (one Spark attention layer on NPU) | NOT E2E (CPU talker/vocoder steps; NPU vocoder failed) | NOT E2E | NOT E2E (NPU speech-head step profiled) | NOT E2E (Cosmos compile; inference pending) |
|
||||
| Embedded RB3 Gen 2 / QCS6490 / AI Hub | NOT E2E (Spark CPU layer passed; W8A8 NPU quality open) | NOT E2E (mixed vocoder numeric unqualified) | NOT E2E | NOT E2E (speech-head CPU numeric; placement pending) | NOT E2E |
|
||||
| Embedded SA8775P ADP / AI Hub | NOT E2E (one Spark attention layer on NPU) | NOT E2E (CPU talker/vocoder steps; NPU vocoder failed) | NOT E2E | NOT E2E (NPU speech-head step profiled) | NOT E2E (Cosmos encoder numeric; placement pending) |
|
||||
| Embedded RB3 Gen 2 / QCS6490 / AI Hub | NOT E2E (Spark CPU layer passed; W8A8 NPU quality open) | NOT E2E (mixed vocoder numeric unqualified) | NOT E2E | NOT E2E (CPU speech-head step profiled) | NOT E2E |
|
||||
|
||||
## Per-cell reasons and next steps
|
||||
|
||||
@@ -89,10 +89,10 @@ 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; DIRECTML_RUNTIME_FAILED; TALKER_FP16_NUMERIC_FAIL; QNN_NPU_VOCODER_NUMERIC_MEASURED_PROFILE_TIMEOUT; TALKER_ONNX_CPU_NUMERIC_MEASURED; TALKER_CPU_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; the NPU node-placement profile timed out during graph preparation with no timing or per-node samples, 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-requested talker step preserved CPU token 80 with logits relative L2 2.07e-5 and maximum K/V relative L2 2.18e-5; its placement profile is pending. The older TFLite vocoder target was rejected on Windows ARM; no complete stream exists. | Reduce or partition the QNN vocoder profile graph and audit CPU talker placement; 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-TTS 0.6B CustomVoice | COMPONENT_ONNX_CPU_VOCODER_PARITY_PROFILED; DIRECTML_RUNTIME_FAILED; TALKER_FP16_NUMERIC_FAIL; QNN_NPU_VOCODER_NUMERIC_MEASURED_PROFILE_TIMEOUT; TALKER_ONNX_CPU_NUMERIC_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 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; the NPU node-placement profile timed out during graph preparation with no timing or per-node samples, 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-requested talker step preserved CPU token 80 with logits relative L2 2.07e-5 and maximum K/V relative L2 2.18e-5. Its 100-sample component profile had p50/p95 191.414/309.428 ms and all 1,744 execution-detail rows on CPU. The older TFLite vocoder target was rejected on Windows ARM; no complete stream exists. | Reduce or partition the QNN vocoder profile graph and audit CPU talker placement; 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_NPU_NUMERIC_PROFILED; NOT_E2E_PROFILEABLE | The real 20-layer MiniCPM-o speech-head FP16 QNN DLC ran on the exact X Elite CRD. Same-fixture 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. Its 100-sample component profile had nearest-rank p50/p95 9.905/11.037 ms, with all 944 execution-detail rows on NPU. Reported inference peak memory was 79,208,448 bytes and first-load peak 1,081,573,376 bytes. Thinker/encoders/vocoder and a device-local stateful Omni backend remain unqualified. | Validate the complete multimodal pipeline, state, quality, co-resident memory and sustained behavior; [X Elite raw evidence](../../../e2e_expansion_20260924/evidence/minicpmo_tts_qualcomm/README.md). |
|
||||
| PC Snapdragon X Elite CRD / AI Hub | InternVLA-A1 | COMPONENT_COSMOS_NUMERIC_MEASURED; PLACEMENT_PENDING; NOT_E2E_PROFILEABLE | The real Place_Markpen Cosmos FP16 QNN image encoder returned a finite FP32 latent for the six-frame synthetic pattern on exact X Elite CRD. Against the pinned source, relative L2 was 0.0608%, SNR 64.32 dB and cosine 0.999999815. The NPU-requested route awaits actual node-placement/timing profile. No real-observation action tolerance, complete policy or local stateful Omni backend exists. | Audit the [X Elite Cosmos placement profile](../../../e2e_expansion_20260924/evidence/internvla_cosmos_qualcomm/README.md), then validate real observations, action units/timing, state, admission, cancellation and sustained behavior. |
|
||||
| PC Snapdragon X Elite CRD / AI Hub | InternVLA-A1 | COMPONENT_COSMOS_NPU_NUMERIC_PROFILED; NOT_E2E_PROFILEABLE | The real Place_Markpen Cosmos FP16 QNN image encoder returned a finite FP32 latent for the six-frame synthetic pattern on exact X Elite CRD. Against the pinned source, relative L2 was 0.0608%, SNR 64.32 dB and cosine 0.999999815. The 100-sample six-frame encoder profile had p50/p95 82.939/83.837 ms, with all 121 execution-detail rows on NPU. Reported component inference peak memory was 24,059,904 bytes and first-load peak 692,891,648 bytes. No real-observation action tolerance, complete policy or local stateful Omni backend exists. | Validate real observations, action units/timing, state, admission, cancellation and sustained behavior; [X Elite Cosmos raw evidence](../../../e2e_expansion_20260924/evidence/internvla_cosmos_qualcomm/README.md). |
|
||||
| Mobile Galaxy S25 / Snapdragon 8 Elite for Galaxy | Spark-X2.5 | COMPONENT_NPU_INFERENCE_PROFILED; NOT_E2E_PROFILEABLE | The real 1.7B checkpoint one-layer W8A16 full-attention decoder artifact executed for a fixed 1,024-token cache bucket. Same-fixture outputs matched S24; the hosted S25 profile had 100 component samples at nearest-rank p50/p95 0.957/1.028 ms with all 73 execution-detail rows on NPU. FP32-source hidden-state relative L2 was 1.351% without a downstream token-quality gate. No full 28-layer prefill/decode, KV/ring, sampling or resident controller ran on S25. | Implement and validate local 128-token generation, 512/1024 transitions, cancellation, resident memory and sustained power; [S25/S24 component evidence](../../../e2e_expansion_20260923/evidence/spark_s24_full_attention/README.md). |
|
||||
| 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. |
|
||||
| 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. |
|
||||
@@ -104,14 +104,14 @@ NOT E2E means no complete device/model workload was verified. “Scoped E2E” i
|
||||
| Mobile Galaxy S24 / Snapdragon 8 Gen 3 | MiniCPM-o 4.5 | COMPONENT_FP16_SPEECH_HEAD_NPU_NUMERIC_PROFILED; NOT_E2E_PROFILEABLE | The retained FP16 speech-head job used a dataset with identical tensors to the recovered S25 fixture. Against original ONNX CPU, logits relative L2 was 0.3459%, maximum new-K/V relative L2 1.235%, and top-1 speech token 1867 matched. Earlier parity reported 49.22 dB SNR/top-1 match; tested W8A16 top-1 failed. The 100-sample component profile had p50/p95 8.537/9.006 ms, with all 1,029 execution-detail rows on NPU and reported inference peak memory 165,433,344 bytes. Generated-audio quality and the rest of the model remain unqualified. | Qualify thinker/encoders/vocoder and stateful local integration; [speech-head evidence](../../../e2e_expansion_20260924/evidence/minicpmo_tts_qualcomm/README.md). |
|
||||
| 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_CPU_VOCODER_PARITY_AND_PLACEMENT_PASS; TALKER_TFLITE_CPU_NUMERIC_MEASURED; QNN_NPU_VOCODER_INFERENCE_FAILED; COMPONENT_GPU_NUMERIC_FAIL; TALKER_FP16_NUMERIC_FAIL; NOT_E2E_PROFILEABLE | On the exact SA8775P, the same TFLite binary's CPU-requested Code2Wav inference matched original ONNX CPU within 4.13e-6 relative L2 / 107.67 dB SNR, without saturation. Its 100-sample CPU-requested component profile had p50/p95 5.384/5.534 s with all 738 execution-detail rows on CPU; the service estimated-time field 5.250 s is the sample minimum. The GPU-requested output saturated 96.63% of samples with 11.832 relative L2; its fresh 100-sample mixed CPU/GPU profile p50/p95 was 1.776/1.880 s, timing failed audio. Even with FP32-preserving GPU options, 84.89% of samples saturated with 11.389 relative L2. The 28-layer FP16 QNN talker step executed but changed CPU top-1 token 80 to 1720 with 9.43% logits relative L2. A separate TFLite CPU-requested talker step preserved CPU top-1 token 80 with logits relative L2 3.33e-5 and maximum K/V relative L2 3.41e-5; its placement profile is pending. A separate FP16 QNN DLC vocoder compile passed, but same-fixture NPU-requested inference failed after compilation without a waveform or placement samples. No complete pipeline exists. | Audit talker CPU placement and isolate the FP16 QNN vocoder runtime failure, GPU delegate failure and FP16 talker numerical drift, then establish listening quality, co-resident 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. |
|
||||
| Embedded SA8775P ADP / AI Hub | Qwen3-TTS 0.6B CustomVoice | COMPONENT_CPU_VOCODER_PARITY_AND_PLACEMENT_PASS; TALKER_TFLITE_CPU_NUMERIC_PROFILED; QNN_NPU_VOCODER_INFERENCE_FAILED; COMPONENT_GPU_NUMERIC_FAIL; TALKER_FP16_NUMERIC_FAIL; NOT_E2E_PROFILEABLE | On the exact SA8775P, the same TFLite binary's CPU-requested Code2Wav inference matched original ONNX CPU within 4.13e-6 relative L2 / 107.67 dB SNR, without saturation. Its 100-sample CPU-requested component profile had p50/p95 5.384/5.534 s with all 738 execution-detail rows on CPU; the service estimated-time field 5.250 s is the sample minimum. The GPU-requested output saturated 96.63% of samples with 11.832 relative L2; its fresh 100-sample mixed CPU/GPU profile p50/p95 was 1.776/1.880 s, timing failed audio. Even with FP32-preserving GPU options, 84.89% of samples saturated with 11.389 relative L2. The 28-layer FP16 QNN talker step executed but changed CPU top-1 token 80 to 1720 with 9.43% logits relative L2. A separate TFLite CPU-requested talker step preserved CPU top-1 token 80 with logits relative L2 3.33e-5 and maximum K/V relative L2 3.41e-5. Its 100-sample component profile had p50/p95 52.635/76.925 ms with all 1,800 execution-detail rows on CPU. A separate FP16 QNN DLC vocoder compile passed, but same-fixture NPU-requested inference failed after compilation without a waveform or placement samples. No complete pipeline exists. | Isolate the FP16 QNN vocoder runtime failure, GPU delegate failure and FP16 talker numerical drift, then establish listening quality, co-resident 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. |
|
||||
| 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 | COMPONENT_SPEECH_HEAD_NPU_NUMERIC_PROFILED; NOT_E2E_PROFILEABLE | The real 20-layer MiniCPM-o speech-head FP16 QNN DLC ran on the exact SA8775P ADP. Same-fixture inference returned 41 finite tensors, preserved ONNX CPU top-1 token 1867, and had 0.3568% logits relative L2 and 1.225% maximum K/V relative L2. Its 100-sample component profile had nearest-rank p50/p95 11.901/13.038 ms, with all 944 execution-detail rows on NPU. Reported inference peak memory was 134,696,960 bytes and first-load peak 1,322,835,968 bytes; no complete thinker/encoders/vocoder bundle or device-local stateful controller exists. | Validate complete multimodal generation, state, speech quality, co-resident memory, cancellation and sustained power; [SA8775P raw evidence](../../../e2e_expansion_20260924/evidence/minicpmo_tts_qualcomm/README.md). |
|
||||
| Embedded SA8775P ADP / AI Hub | InternVLA-A1 | COMPONENT_COSMOS_FP16_QNN_COMPILE_PASS_INFERENCE_PENDING; NOT_E2E_PROFILEABLE | The real Place_Markpen Cosmos image encoder source compiled to FP16 QNN DLC on exact SA8775P ADP. Same-fixture NPU-requested inference is pending; no numerical output, actual placement, full action policy or local stateful Omni backend exists yet. | Audit the [SA8775P Cosmos inference](../../../e2e_expansion_20260924/evidence/internvla_cosmos_qualcomm/README.md), then obtain placement, real-observation action validation and a complete local policy. |
|
||||
| Embedded SA8775P ADP / AI Hub | InternVLA-A1 | COMPONENT_COSMOS_NUMERIC_MEASURED; PLACEMENT_PENDING; NOT_E2E_PROFILEABLE | The real Place_Markpen Cosmos FP16 QNN image encoder returned a finite FP32 latent for the six-frame synthetic pattern on exact SA8775P ADP. Against the pinned source, relative L2 was 0.0613%, SNR 64.25 dB and cosine 0.999999812. The NPU-requested route awaits actual node-placement/timing profile. No real-observation action tolerance, complete policy or local stateful Omni backend exists. | Audit the [SA8775P Cosmos placement profile](../../../e2e_expansion_20260924/evidence/internvla_cosmos_qualcomm/README.md), then validate real observations, action units/timing, state, admission, cancellation and sustained behavior. |
|
||||
| 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_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 | COMPONENT_SPEECH_HEAD_FP16_QNN_LOAD_FAILED; CPU_FALLBACK_NUMERIC_MEASURED_PLACEMENT_PENDING; NOT_E2E_PROFILEABLE | The real 20-layer MiniCPM-o speech-head FP16 QNN DLC compiled for exact RB3 Gen 2, but same-fixture NPU-requested inference failed at graph load with QnnModel_composeGraphsFromDlc: MODEL_GRAPH_ERROR. RB3 device attributes do not advertise FP16 HTP support. An explicit TFLite CPU-requested fallback returned 41 finite tensors, preserved ONNX CPU top-1 token 1867, and had logits relative L2 1.26e-6 and maximum K/V relative L2 1.58e-6. Actual CPU placement and timing profile is pending; no complete model bundle or local stateful controller exists. | Audit the [RB3 speech-head CPU placement profile](../../../e2e_expansion_20260924/evidence/minicpmo_tts_qualcomm/README.md), then qualify complete multimodal generation and sustained behavior. |
|
||||
| Embedded RB3 Gen 2 / QCS6490 / AI Hub | MiniCPM-o 4.5 | COMPONENT_SPEECH_HEAD_FP16_QNN_LOAD_FAILED; CPU_FALLBACK_NUMERIC_PROFILED; NOT_E2E_PROFILEABLE | The real 20-layer MiniCPM-o speech-head FP16 QNN DLC compiled for exact RB3 Gen 2, but same-fixture NPU-requested inference failed at graph load with QnnModel_composeGraphsFromDlc: MODEL_GRAPH_ERROR. RB3 device attributes do not advertise FP16 HTP support. An explicit TFLite CPU-requested fallback returned 41 finite tensors, preserved ONNX CPU top-1 token 1867, and had logits relative L2 1.26e-6 and maximum K/V relative L2 1.58e-6. Its 100-sample component profile had p50/p95 59.518/71.347 ms with all 1,008 execution-detail rows on CPU; reported inference peak memory was 820,981,760 bytes. No complete model bundle or local stateful controller exists. | Qualify complete multimodal generation and sustained behavior; [RB3 speech-head CPU evidence](../../../e2e_expansion_20260924/evidence/minicpmo_tts_qualcomm/README.md). |
|
||||
| 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. |
|
||||
|
||||
## Measured request timing
|
||||
|
||||
@@ -19,13 +19,13 @@ The [Qwen3-TTS Code2Wav Qualcomm follow-up](../../benchmarks/edge_harness/result
|
||||
|
||||
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 narrows the failure to the GPU-requested route. The FP32-preserving GPU option did not fix it, so per-node placement and delegate-operation isolation remain open.
|
||||
|
||||
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. X Elite CPU-requested inference preserved CPU top-1 token 80 with logits relative L2 2.07e-5; its placement profile remains pending. SA8775P TFLite CPU-requested talker inference also preserved token 80 with logits relative L2 3.33e-5; its placement profile is pending. None advances M2 to numerical talker or full-stream qualification 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 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. X Elite CPU-requested inference preserved CPU top-1 token 80 with logits relative L2 2.07e-5; its 100-sample decode-step profile measured p50/p95 191.414/309.428 ms with all 1,744 execution-detail rows on CPU. SA8775P TFLite CPU-requested talker inference also preserved token 80 with logits relative L2 3.33e-5; its 100-sample decode-step profile measured p50/p95 52.635/76.925 ms with all 1,800 execution-detail rows on CPU. 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%. Their 100-sample component profiles had p50/p95 8.537/9.006 ms and 7.197/7.615 ms, with all 1,029 execution-detail rows on NPU for each. New FP16 QNN DLC compiles passed for SA8775P, X Elite and RB3. SA8775P same-fixture inference preserved CPU top-1 speech token 1867 with 0.3568% logits relative L2 and 1.225% maximum K/V relative L2; its 100-sample component profile measured p50/p95 11.901/13.038 ms with all 944 execution-detail rows on NPU. X Elite same-fixture inference also preserved token 1867 with 0.3170% logits relative L2; its 100-sample component profile measured p50/p95 9.905/11.037 ms with all 944 execution-detail rows on NPU. RB3 FP16 QNN inference failed at graph load despite compile success; a TFLite CPU fallback same-fixture inference preserved top-1 token 1867 with logits relative L2 1.26e-6 versus ONNX CPU; CPU placement profiling is 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%. Their 100-sample component profiles had p50/p95 8.537/9.006 ms and 7.197/7.615 ms, with all 1,029 execution-detail rows on NPU for each. New FP16 QNN DLC compiles passed for SA8775P, X Elite and RB3. SA8775P same-fixture inference preserved CPU top-1 speech token 1867 with 0.3568% logits relative L2 and 1.225% maximum K/V relative L2; its 100-sample component profile measured p50/p95 11.901/13.038 ms with all 944 execution-detail rows on NPU. X Elite same-fixture inference also preserved token 1867 with 0.3170% logits relative L2; its 100-sample component profile measured p50/p95 9.905/11.037 ms with all 944 execution-detail rows on NPU. RB3 FP16 QNN inference failed at graph load despite compile success; a TFLite CPU fallback same-fixture inference preserved top-1 token 1867 with logits relative L2 1.26e-6 versus ONNX CPU; its 100-sample CPU-requested profile measured p50/p95 59.518/71.347 ms with all 1,008 execution-detail rows on CPU. This is component C numerical evidence only, not thinker/encoder/vocoder or complete multimodal support.
|
||||
|
||||
The [native Windows Qwen3-TTS sustained audit](../../benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/qwen_tts_sustained_drift/README.md) identifies an additional M2 desktop blocker. The historical RTX 5090 Laptop complete-model stream changed regime around minute 26–27; all 17 requests in minutes 27–30 had simulated playback underruns and median RTF 1.331. The separate WSL run had no sustained underruns. Existing logs do not identify the cause; timestamped GPU clocks, power, temperature and throttling are now available in the local profiler for a controlled repeat. Native Windows sustained playback remains unqualified.
|
||||
|
||||
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. S25 six-frame component profile returned 100 samples at p50/p95 49.665/51.382 ms, with all 121 execution-detail rows on NPU; the action policy did not run on S25. The same encoder compiled to FP16 QNN DLC for X Elite CRD; same-fixture NPU-requested inference returned a finite latent at 0.0608% relative L2 versus source, with placement profiling pending. An SA8775P FP16 QNN DLC compile passed, with same-fixture NPU-requested inference pending. This is component/action-sensitivity evidence, not device-local M4 qualification. The checkpoint train config names a2d_real/a2d_pen_holder; an [authenticated access check](../../benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/internvla_real_observation_access/README.md) returned HTTP 404. The official vLLM-Omni example names an InternData-A1 Place_Markpen archive, but that dataset returned HTTP 403 gated-access denial under the current account, so real-observation reference-action quality is still unmeasured.
|
||||
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. S25 six-frame component profile returned 100 samples at p50/p95 49.665/51.382 ms, with all 121 execution-detail rows on NPU; the action policy did not run on S25. The same encoder compiled to FP16 QNN DLC for X Elite CRD; same-fixture NPU-requested inference returned a finite latent at 0.0608% relative L2 versus source, with its 100-sample six-frame profile at p50/p95 82.939/83.837 ms and all 121 execution-detail rows on NPU. An SA8775P FP16 QNN DLC inference returned a finite same-fixture latent at 0.0613% relative L2 versus source; placement profiling is pending. This is component/action-sensitivity evidence, not device-local M4 qualification. The checkpoint train config names a2d_real/a2d_pen_holder; an [authenticated access check](../../benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/internvla_real_observation_access/README.md) returned HTTP 404. The official vLLM-Omni example names an InternData-A1 Place_Markpen archive, but that dataset returned HTTP 403 gated-access denial under the current account, so real-observation reference-action quality is still unmeasured.
|
||||
|
||||
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
|
||||
|
||||
Reference in new issue
Block a user