diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260924/README.md b/benchmarks/edge_harness/results/e2e_expansion_20260924/README.md index d9f3d9b2b..e50675094 100644 --- a/benchmarks/edge_harness/results/e2e_expansion_20260924/README.md +++ b/benchmarks/edge_harness/results/e2e_expansion_20260924/README.md @@ -127,6 +127,8 @@ The [talker decode-step attempt](evidence/qwen_tts_talker_qualcomm/README.md) pi A separate [HX370 AMD NPU MiniCPM-o speech-head attempt](evidence/minicpmo_amd_npu_speech_head/README.md) ran the real fixed-cache 20-layer ONNX step as one VitisAI NPU node. The local ORT CPU output was bitwise identical to the retained reference; NPU preserved top speech token 1867 but differed 2.172% on logits and up to 4.353% on new-cache tensors, failing the provisional component gate. The 420.34 s session build and one cold 39.22 ms step do not profile or qualify a complete MiniCPM-o stream. +A separate [HX370 AMD NPU InternVLA FP32 source attempt](evidence/internvla_cosmos_amd_npu_fp32/README.md) reproduced the pinned Cosmos encoder on ORT CPU within 2.29e-6 relative L2 on two fixtures. The unchanged FP32 graph then aborted during VitisAI session creation at a native `SmallVector` assertion. The empty profile supplies no NPU placement or latency evidence, and the action policy did not run. This adds an FP32 compiler failure to the earlier A16W8 artifact failures without establishing general model incompatibility. + 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. The revised local profiler recorded a completed current-source 30-minute repeat with device-wide NVML telemetry. The final 119 requests had median RTF 0.185 and three brief simulated underruns, so the prior collapse did not recur. The historical evidence and uncontrolled repeat conditions cannot identify its cause; underrun-free native Windows playback remains unqualified. diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/internvla_cosmos_amd_npu_fp32/.gitattributes b/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/internvla_cosmos_amd_npu_fp32/.gitattributes new file mode 100644 index 000000000..c79c0d5cc --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/internvla_cosmos_amd_npu_fp32/.gitattributes @@ -0,0 +1,2 @@ +*.log binary -eol +*profile*.json binary -eol diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/internvla_cosmos_amd_npu_fp32/README.md b/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/internvla_cosmos_amd_npu_fp32/README.md new file mode 100644 index 000000000..5078a2a01 --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/internvla_cosmos_amd_npu_fp32/README.md @@ -0,0 +1,11 @@ +# InternVLA Cosmos FP32 encoder on HX370 AMD NPU (2026-09-24) + +**Disposition: CPU parity passed; VitisAI compiler assertion; no NPU inference; NOT E2E.** This is the real Place_Markpen Cosmos CI8x8 image-encoder component, not the action policy or a device-local Omni request. The attempted candidate is the unchanged FP32 ONNX export, distinct from the earlier A16W8 QDQ candidates in the [prior study](../../../e2e_expansion_20260923/evidence/internvla_cosmos_amd_npu/README.md). + +The 502,735-byte ONNX graph has SHA-256 `fee79864e393df35475ba243e14b4995c5651aa33e7e182cd1fda726425668b7`; its 124,649,472-byte external weight data has SHA-256 `b9bc3411c10f05daec2ff977698ee100979ef756ed7f0d685275403517558b58`. The fixed `[6,3,256,256]` ramp and pattern fixtures have SHA-256 `dcbaf1391ca914d4bbccc1cb384daf05666e771d9cdae90c4f069ec8fcf05368`. These artifacts are retained outside Git under `/home/zhout/project/edge_infer/models/InternVLA-cosmos-onnx/`. + +On HX370 native Windows 11 build 26200, AMD NPU driver `32.0.203.329`, ONNX Runtime `1.30.0`, ONNX `1.22.0`, and VitisAI EP `1.8.63.0`, the [CPU control](cpu_control.json) returned `[6,16,32,32]` latents within `8.737078e-7` and `2.286713e-6` relative L2 of the retained source on ramp and pattern. The CPU-control report calls the candidate `quantized` because the probe's candidate argument has that generic name; the file passed here is the **same FP32 source**, with no QDQ conversion. + +With the same graph and fixtures, VitisAI session creation aborted at a native LLVM `SmallVector.h:291` assertion (`idx < size()`), process exit code **3**. The [raw mixed-encoding log](npu_probe.log), SHA-256 `0f48cf84b5b528d193931a99bb5e594bf792d7040cded1b5f0d8bc79ed1e2de5`, records the failure. No inference JSON was produced; the only emitted [profile file](npu_probe_profile_2026-09-24_20-32-05_385.json) is zero bytes, with no execution event or placement evidence. [AMD's VitisAI documentation](https://ryzenai.docs.amd.com/projects/WinML/en/latest/model_support.html) describes automatic BF16 handling of FP32 models; this run did not reach a profile from which internal precision can be confirmed. + +The [probe](../../../../experiments/probe_internvla_cosmos_amd_npu.py) checked exact model, weights, fixture and prior-export hashes before the provider attempt. This result constrains this FP32 export with EP `1.8.63.0`; it does not show that the encoder or model is generally unsupported on AMD NPU. Next isolate the first failing operator or subgraph, preserve CPU latent parity through a supported rewrite or partition, and verify actual NPU node execution and policy-action tolerance before revisiting the complete-device cell. diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/internvla_cosmos_amd_npu_fp32/cpu_control.json b/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/internvla_cosmos_amd_npu_fp32/cpu_control.json new file mode 100644 index 000000000..aca179900 --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/internvla_cosmos_amd_npu_fp32/cpu_control.json @@ -0,0 +1,52 @@ +{ + "scope": "real InternVLA Cosmos CI8x8 fixed-shape encoder component only; no action-policy E2E claim", + "hardware": "Ryzen AI 9 HX 370 AMD NPU", + "os": "Windows-11-10.0.26200-SP0", + "onnx": "1.22.0", + "onnxruntime": "1.30.0", + "source_sha256": "fee79864e393df35475ba243e14b4995c5651aa33e7e182cd1fda726425668b7", + "external_weights_sha256": "b9bc3411c10f05daec2ff977698ee100979ef756ed7f0d685275403517558b58", + "fixtures_sha256": "dcbaf1391ca914d4bbccc1cb384daf05666e771d9cdae90c4f069ec8fcf05368", + "input_shape": [ + 6, + 3, + 256, + 256 + ], + "output_shape": [ + 6, + 16, + 32, + 32 + ], + "quantization": "FP32 source, VitisAI automatic BF16 candidate", + "quantized_op_types": [ + "Conv", + "MatMul" + ], + "per_channel": false, + "max_relative_l2_gate": 0.001, + "source_cpu_parity": { + "ramp": { + "max_abs": 1.5974044799804688e-05, + "relative_l2": 8.73707802280739e-07 + }, + "pattern": { + "max_abs": 2.8371810913085938e-05, + "relative_l2": 2.2867125923021193e-06 + } + }, + "quantized_sha256": "fee79864e393df35475ba243e14b4995c5651aa33e7e182cd1fda726425668b7", + "quantized_bytes": 502735, + "quantized_cpu_parity": { + "ramp": { + "max_abs": 1.5974044799804688e-05, + "relative_l2": 8.73707802280739e-07 + }, + "pattern": { + "max_abs": 2.8371810913085938e-05, + "relative_l2": 2.2867125923021193e-06 + } + }, + "status": "passed_cpu_component" +} diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/internvla_cosmos_amd_npu_fp32/npu_probe.log b/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/internvla_cosmos_amd_npu_fp32/npu_probe.log new file mode 100644 index 000000000..cf472e707 Binary files /dev/null and b/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/internvla_cosmos_amd_npu_fp32/npu_probe.log differ diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/internvla_cosmos_amd_npu_fp32/npu_probe_profile_2026-09-24_20-32-05_385.json b/benchmarks/edge_harness/results/e2e_expansion_20260924/evidence/internvla_cosmos_amd_npu_fp32/npu_probe_profile_2026-09-24_20-32-05_385.json new file mode 100644 index 000000000..e69de29bb 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 7b4c6dc80..ca80a7d7b 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 @@ -35,6 +35,8 @@ 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; 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 both X Elite and SA8775P profiled on NPU. 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 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 [native Windows HX370 AMD NPU InternVLA FP32 encoder attempt](../../../e2e_expansion_20260924/evidence/internvla_cosmos_amd_npu_fp32/README.md) passed the two fixed-shape CPU parity fixtures but hit a native VitisAI `SmallVector` assertion during session creation. The provider emitted no inference or placement event. This independently tests the original FP32 export after the A16W8 failures, but neither candidate qualifies an NPU component or a complete action-policy request. A [raw sustained-window audit](../../../e2e_expansion_20260924/evidence/qwen_tts_sustained_drift/README.md) found that the historical native Windows RTX Qwen3-TTS run slowed sharply after about 26 minutes: all 17 serial medium requests in minutes 27–30 underrun in simulated first-audio playout, with median RTF 1.331. A current-source instrumented 30-minute repeat did not reproduce the collapse: the final 119 requests had median RTF 0.185, with three brief simulated underruns. The cause of the original collapse and an underrun-free playback qualification remain open. @@ -59,7 +61,7 @@ NOT E2E means no complete device/model workload was verified. “Scoped E2E” i | PC HX370 + RTX 5090 Laptop / WSL | profile completed | profile completed | scoped E2E: text + image | scoped E2E: text/image/audio → speech | synthetic policy pass: admitted Omni CUDA | | PC HX370 + RTX 5090 Laptop / Windows | scoped E2E: Omni Spark 1.7B GGUF text on RTX Vulkan; fresh restart after in-flight cancel (separate 4B BF16 CUDA profile) | scoped E2E: Omni RTX Vulkan talker/codec + CPU predictor complete WAV and restart (separate CUDA stream has playback jitter) | scoped E2E: Omni FP8 Triton text+image on RTX; separate NVFP4 Windows startup failed | scoped E2E: text/image/audio → speech | synthetic policy pass: admitted Omni CUDA | | PC HX370 + Radeon 890M / Windows worker | scoped E2E: Omni Spark text; fresh restart after in-flight cancel | scoped E2E: Omni Radeon talker/codec + CPU predictor; fresh restart after in-flight cancel | scoped E2E: Omni Q4_K_M GGUF Radeon text+image (20 each; slower than CPU here) | 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 (NPU pre-decoder boundary 2.27% L2, NPU-prefix+CPU-decoder waveform 9.69% L2; full mixed short window 15.7% L2) | NOT E2E | NOT E2E (speech-head step on NPU; token matched, logits/cache numeric failed) | NOT E2E | +| PC HX370 + AMD NPU / Windows worker | NOT E2E (output-head component passed) | NOT E2E (NPU pre-decoder boundary 2.27% L2, NPU-prefix+CPU-decoder waveform 9.69% L2; full mixed short window 15.7% L2) | NOT E2E | NOT E2E (speech-head step on NPU; token matched, logits/cache numeric failed) | NOT E2E (FP32 and A16W8 encoder candidates hit compiler assertions; no NPU node) | | 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; two-frame QNN vocoder on NPU, component RTF 22.89) | 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; CPU talker + vocoder profiled; 25-frame and two-frame QNN vocoder memory failures; historical 25-frame TFLite mixed vocoder component RTF 0.420; pinned 25-frame mixed CPU/GPU vocoder profiled at RTF 0.335; generated-code waveform measured; short chunk RTF 3.49) | NOT E2E | NOT E2E (NPU speech head step profiled) | NOT E2E (Cosmos NPU encoder profiled) | @@ -100,7 +102,7 @@ NOT E2E means no complete device/model workload was verified. “Scoped E2E” i | PC HX370 + AMD NPU / Windows worker | Qwen3-TTS 0.6B CustomVoice | PREFIX_NPU_COMPONENT_PASS; MIXED_NPU_CPU_WAVEFORM_NUMERIC_FAILED; NOT_E2E_PROFILEABLE | The original real-weight FP32 25-frame and pinned two-frame Code2Wav graphs reproduced retained CPU waveforms, but VitisAI EP 1.8.63.0 crashed during session creation. Four extracted two-frame prefixes (18/50/97/192 nodes) then each executed one actual VitisAI NPU partition, with one-fixture intermediate relative L2 0.958%/1.059%/0.391%/1.083% versus CPU; these are not waveform or task-quality passes. An isolated original 1D decoder ConvTranspose reproduced the native LLVM ArrayRef assertion. Expressing it as an equivalent 2D convolution compiled and ran on one NPU node; its synthetic-input output differed 1.636% from CPU. Rewriting all six decoder upsampling convolutions made the full two-frame CPU waveform bitwise identical to the source. The rewritten short graph then completed with two VitisAI and 139 CPU node events, but the one-fixture waveform missed the 1% gate at 15.696% relative L2 / 16.08 dB SNR. Its 2515 s session build and one cold 2.205 s inference for 0.16 s audio are component observations, not a steady profile. At the real-weight boundary before the decoder, one NPU partition produced a tensor 2.265% from CPU; routing that NPU tensor through the unchanged CPU decoder yielded a waveform 9.689% from the CPU-boundary control, versus 1.05e-6 for CPU boundary plus CPU decoder. A documented unvectorized-layout control instead gave 2.287% boundary and 10.074% CPU-decoder waveform relative L2, so that setting did not repair the route. The NPU prefix itself fails the waveform gate; complete TTS streaming, representative quality, memory and power remain unverified. The historical export revision is unattested; the two-frame source is pinned to CustomVoice revision 85e237c. | Isolate the NPU prefix precision/operation error using same-fixture waveform gates, then warm-profile a numerically qualified coarse stage and run complete Omni TTS with state, cancellation, admission and listening quality. [Raw AMD NPU bisection and rewrite evidence](../../../e2e_expansion_20260924/evidence/qwen_tts_amd_npu_vocoder/README.md). | | PC HX370 + AMD NPU / Windows worker | Qwen3.8-27B | NOT_E2E_PROFILEABLE | The tested A16W8 whole-vision-tower export failed NPU placement. This conclusion is specific to that export, not all future Qwen/NPU combinations. | Validate a supported export or smaller useful component, including same-checkpoint numerical quality. | | PC HX370 + AMD NPU / Windows worker | MiniCPM-o 4.5 | SPEECH_HEAD_NPU_COMPONENT_EXECUTED_NUMERIC_FAILED; NOT_E2E_PROFILEABLE | The real-weight fixed-cache 20-layer speech-head ONNX step from the historical export ran on HX370 native Windows with one fused VitisAI NPU node and zero CPU node events. Local ORT CPU reproduced all 41 retained outputs bitwise. NPU preserved top speech token 1867, but logits differed 2.172% relative L2 and the worst new-cache tensor 4.353% from CPU, exceeding the provisional 1% component gate. Session creation was 420.34 s; one cold step was 39.22 ms, with no repeated timing, power, full speech loop or complete multimodal request. The exact checkpoint revision is unattested; model/fixture/reference hashes and driver are pinned. | Try a same-checkpoint numerically validated export or representative A16W8 calibration, then verify continuous cache/state, complete Omni model behavior, handoff, admission, cancellation, quality and warm performance; [raw speech-head AMD NPU evidence](../../../e2e_expansion_20260924/evidence/minicpmo_amd_npu_speech_head/README.md). | -| PC HX370 + AMD NPU / Windows worker | InternVLA-A1 | COMPONENT_EXPORT_CPU_PASS; NPU_ARTIFACTS_REJECTED; NOT_E2E_PROFILEABLE | The real Place_Markpen Cosmos CI8x8 encoder exported to fixed FP32 [6,3,256,256] -> [6,16,32,32] ONNX; ORT CPU matched the source on two fixtures with relative L2 8.74e-7/2.29e-6. A16W8 Conv+MatMul QDQ changed encoder output by 11.77%/5.03% on CPU and the VitisAI compiler emitted a missing-scale fatal assertion. MatMul-only A16W8 retained near-source CPU parity, but its original and ORT-preprocessed graphs each hit a native SmallVector compiler assertion. No VitisAI node executed, so this is not NPU component placement or complete InternVLA policy support. Failures are specific to these artifacts and EP 1.8.63.0. | Produce a VitisAI-supported whole-encoder or coarse substage artifact with representative calibration and numerical/policy tolerances; then verify actual NPU nodes, same-device handoff, full-policy behavior and memory/power before changing this disposition. [raw export and failure evidence](../../../e2e_expansion_20260923/evidence/internvla_cosmos_amd_npu/README.md). | +| PC HX370 + AMD NPU / Windows worker | InternVLA-A1 | COMPONENT_EXPORT_CPU_PASS; FP32_AND_A16W8_NPU_COMPILER_FAILED; NOT_E2E_PROFILEABLE | The real Place_Markpen Cosmos CI8x8 encoder exported to fixed FP32 [6,3,256,256] -> [6,16,32,32] ONNX; ORT CPU matched the source on two fixtures with relative L2 8.74e-7/2.29e-6. A16W8 Conv+MatMul QDQ changed encoder output by 11.77%/5.03% on CPU and the VitisAI compiler emitted a missing-scale fatal assertion. MatMul-only A16W8 retained near-source CPU parity, but its original and ORT-preprocessed graphs each hit a native SmallVector compiler assertion. A fresh attempt with the unchanged FP32 source graph also passed CPU parity on both fixtures, then aborted in VitisAI session creation at SmallVector.h:291 (exit code 3). Its only profile file is empty. No VitisAI node executed, so this is not NPU component placement or complete InternVLA policy support. Failures are specific to these artifacts and EP 1.8.63.0. | Isolate the compiler-failing operator or partition and preserve CPU parity through a supported rewrite; then verify actual NPU nodes, policy-action tolerance, same-device handoff, full-policy behavior and memory/power before changing this disposition. [A16W8 export and failure evidence](../../../e2e_expansion_20260923/evidence/internvla_cosmos_amd_npu/README.md); [FP32 source compiler-failure evidence](../../../e2e_expansion_20260924/evidence/internvla_cosmos_amd_npu_fp32/README.md). | | PC CPU+iGPU+NPU +/- discrete GPU, joint model execution | Spark-X2.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 | Qwen3-TTS 0.6B CustomVoice | 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 | Qwen3.8-27B | 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. |