diff --git a/benchmarks/edge_harness/experiments/probe_qwen_tts_directml.py b/benchmarks/edge_harness/experiments/probe_qwen_tts_directml.py new file mode 100644 index 000000000..2e9b5cafe --- /dev/null +++ b/benchmarks/edge_harness/experiments/probe_qwen_tts_directml.py @@ -0,0 +1,190 @@ +#!/usr/bin/env python3 +"""Probe whole-model Qwen3-TTS on a named native Windows DirectML adapter. + +This is a standalone feasibility run; it does not claim Omni integration or +that every operator executes on the target adapter. +""" + +from __future__ import annotations + +import argparse +import hashlib +import json +import os +import platform +import sys +import time +import traceback +from pathlib import Path + + +def _sha256(path: Path) -> str: + digest = hashlib.sha256() + with path.open("rb") as stream: + for chunk in iter(lambda: stream.read(8 * 1024 * 1024), b""): + digest.update(chunk) + return digest.hexdigest() + + +def main() -> None: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--model-dir", type=Path, required=True) + parser.add_argument("--output-wav", type=Path, required=True) + parser.add_argument("--output-report", type=Path, required=True) + parser.add_argument("--device-index", type=int, default=1) + parser.add_argument("--expected-device-name", default="AMD Radeon(TM) 890M") + parser.add_argument("--dtype", choices=("float16", "bfloat16", "float32"), default="float16") + parser.add_argument("--text", default="Hello from the local computer.") + parser.add_argument("--speaker", default="Ryan") + parser.add_argument("--max-new-tokens", type=int, default=64) + parser.add_argument("--repetition-penalty", type=float) + parser.add_argument("--trace-cat", action="store_true") + parser.add_argument("--workaround-empty-int64-cat", action="store_true") + parser.add_argument("--subtalker-greedy", action="store_true") + parser.add_argument("--threads", type=int, default=8) + args = parser.parse_args() + if args.device_index < 0 or args.threads <= 0 or args.max_new_tokens <= 0: + parser.error("device index must be nonnegative; threads and token limit positive") + + os.environ["HF_HUB_OFFLINE"] = "1" + os.environ["TRANSFORMERS_OFFLINE"] = "1" + import numpy as np + import soundfile as sf + import torch + import torch_directml + import transformers + from qwen_tts import Qwen3TTSModel + + torch.set_num_threads(args.threads) + names = [torch_directml.device_name(i).rstrip("\x00") for i in range(torch_directml.device_count())] + if args.device_index >= len(names) or args.expected_device_name not in names[args.device_index]: + raise RuntimeError(f"requested DirectML adapter is absent: index={args.device_index}, adapters={names}") + device = torch_directml.device(args.device_index) + report = { + "scope": "standalone real-weight Qwen3-TTS DirectML feasibility; no Omni, streaming, or all-operator placement claim", + "platform": platform.platform(), + "python": platform.python_version(), + "torch": torch.__version__, + "torch_directml": getattr(torch_directml, "__version__", "unknown"), + "transformers": transformers.__version__, + "adapters": names, + "requested_index": args.device_index, + "target_device": str(device), + "model_dir": str(args.model_dir.resolve()), + "talker_sha256": _sha256(args.model_dir / "model.safetensors"), + "speech_tokenizer_sha256": _sha256(args.model_dir / "speech_tokenizer" / "model.safetensors"), + "dtype": args.dtype, + "attention": "sdpa", + "threads": args.threads, + "text": args.text, + "speaker": args.speaker, + "max_new_tokens": args.max_new_tokens, + "repetition_penalty_override": args.repetition_penalty, + "workaround_empty_int64_cat": args.workaround_empty_int64_cat, + "subtalker_greedy": args.subtalker_greedy, + "seed": 42, + "status": "started", + } + try: + started = time.perf_counter() + model = Qwen3TTSModel.from_pretrained( + str(args.model_dir.resolve()), + device_map="cpu", + dtype=getattr(torch, args.dtype), + attn_implementation="sdpa", + local_files_only=True, + ) + report["cpu_load_s"] = time.perf_counter() - started + report["phase"] = "move_to_directml" + started = time.perf_counter() + model.model.to(device) + report["device_move_s"] = time.perf_counter() - started + report["model_devices"] = sorted({str(parameter.device) for parameter in model.model.parameters()}) + if report["model_devices"] != [str(device)]: + raise RuntimeError(f"model parameters not wholly on DirectML target: {report['model_devices']}") + # Qwen's wrapper captures its device at construction, before this move. + model.device = device + report["phase"] = "generate" + if args.trace_cat or args.workaround_empty_int64_cat: + original_cat = torch.cat + + def traced_cat(tensors, *cat_args, **cat_kwargs): + tensors = tuple(tensors) + dim = cat_kwargs.get("dim", cat_args[0] if cat_args else 0) + axis = dim % tensors[0].ndim if tensors else dim + if ( + args.workaround_empty_int64_cat + and len(tensors) == 2 + and tensors[0].device == device + and tensors[1].device == device + and tensors[0].dtype == torch.int64 + and tensors[1].dtype == torch.int64 + and tensors[0].ndim == tensors[1].ndim + and tensors[0].numel() == 0 + and tensors[0].shape[axis] == 0 + and all(tensors[0].shape[i] == tensors[1].shape[i] for i in range(tensors[0].ndim) if i != axis) + ): + print("EMPTY_INT64_CAT_IDENTITY", file=sys.stderr, flush=True) + return tensors[1].clone() + try: + return original_cat(tensors, *cat_args, **cat_kwargs) + except Exception: + print( + "CAT_FAILURE " + repr([(str(x.device), str(x.dtype), tuple(x.shape)) for x in tensors]), + file=sys.stderr, + flush=True, + ) + raise + + torch.cat = traced_cat + torch.manual_seed(42) + started = time.perf_counter() + generation_overrides = {} + if args.repetition_penalty is not None: + generation_overrides["repetition_penalty"] = args.repetition_penalty + if args.subtalker_greedy: + generation_overrides["subtalker_dosample"] = False + wavs, sample_rate = model.generate_custom_voice( + text=args.text, + language="English", + speaker=args.speaker, + max_new_tokens=args.max_new_tokens, + do_sample=True, + non_streaming_mode=True, + **generation_overrides, + ) + report["request_s"] = time.perf_counter() - started + if len(wavs) != 1 or sample_rate <= 0: + raise RuntimeError("expected one waveform at a valid sample rate") + wav = np.asarray(wavs[0], dtype=np.float32).reshape(-1) + if not wav.size or not np.isfinite(wav).all(): + raise RuntimeError("waveform is empty or non-finite") + report["rms"] = float(np.sqrt(np.mean(wav.astype(np.float64) ** 2))) + report["peak_abs"] = float(np.max(np.abs(wav))) + report["nonzero_samples"] = int(np.count_nonzero(wav)) + if report["rms"] <= 1e-5: + raise RuntimeError("waveform is effectively silent") + args.output_wav.parent.mkdir(parents=True, exist_ok=True) + sf.write(args.output_wav, wav, sample_rate, subtype="PCM_16") + report.update( + status="passed", + phase="complete", + sample_rate=sample_rate, + samples=int(wav.size), + duration_s=float(wav.size / sample_rate), + wav_sha256=_sha256(args.output_wav), + ) + except BaseException as exc: + report.update(status="failed", error_type=type(exc).__name__, error=str(exc), traceback=traceback.format_exc()) + if isinstance(exc, UnicodeDecodeError): + report["backend_error_bytes_hex"] = exc.object.hex() + report["backend_error_cp936"] = exc.object.decode("cp936", errors="replace") + raise + finally: + args.output_report.parent.mkdir(parents=True, exist_ok=True) + args.output_report.write_text(json.dumps(report, indent=2) + "\n", encoding="utf-8") + print(json.dumps(report, indent=2)) + + +if __name__ == "__main__": + main() diff --git a/benchmarks/edge_harness/experiments/probe_qwen_tts_native_cpu.py b/benchmarks/edge_harness/experiments/probe_qwen_tts_native_cpu.py index bd3738983..0621d0aaa 100644 --- a/benchmarks/edge_harness/experiments/probe_qwen_tts_native_cpu.py +++ b/benchmarks/edge_harness/experiments/probe_qwen_tts_native_cpu.py @@ -32,6 +32,7 @@ def main() -> None: parser.add_argument("--output-report", type=Path, required=True) parser.add_argument("--text", default="Hello from the local computer.") parser.add_argument("--speaker", default="Ryan") + parser.add_argument("--dtype", choices=("float16", "bfloat16", "float32"), default="bfloat16") parser.add_argument("--max-new-tokens", type=int, default=64) parser.add_argument("--threads", type=int, default=8) parser.add_argument("--warmups", type=int, default=0) @@ -57,7 +58,7 @@ def main() -> None: model = Qwen3TTSModel.from_pretrained( str(args.model_dir.resolve()), device_map="cpu", - dtype=torch.bfloat16, + dtype=getattr(torch, args.dtype), attn_implementation="sdpa", local_files_only=True, ) @@ -116,7 +117,7 @@ def main() -> None: "talker_sha256": _sha256(checkpoint), "speech_tokenizer_sha256": _sha256(tokenizer_weights), "model_devices": model_devices, - "dtype": "bfloat16", + "dtype": args.dtype, "attention": "sdpa", "threads": args.threads, "text": args.text, diff --git a/benchmarks/edge_harness/experiments/profile_crisp_tts_http.py b/benchmarks/edge_harness/experiments/profile_crisp_tts_http.py new file mode 100644 index 000000000..6a4bda7ba --- /dev/null +++ b/benchmarks/edge_harness/experiments/profile_crisp_tts_http.py @@ -0,0 +1,140 @@ +#!/usr/bin/env python3 +"""Profile complete serial text-to-WAV requests against a resident CrispASR server. + +The caller must separately retain and inspect the server's actual placement log. +HTTP success and a nonzero WAV do not establish speech quality. +""" + +from __future__ import annotations + +import argparse +import array +import hashlib +import io +import json +import math +import sys +import threading +import time +import urllib.request +import wave +from pathlib import Path + + +def _rank(values: list[float], fraction: float) -> float: + ordered = sorted(values) + return ordered[math.ceil(fraction * len(ordered)) - 1] + + +def main() -> None: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--endpoint", default="http://127.0.0.1:18175/v1/audio/speech") + parser.add_argument("--text", default="Hello from the local computer.") + parser.add_argument("--seed", type=int, default=42) + parser.add_argument("--warmups", type=int, default=1) + parser.add_argument("--repeats", type=int, default=20) + parser.add_argument("--server-pid", type=int) + parser.add_argument("--output-report", type=Path, required=True) + parser.add_argument("--output-wav", type=Path, required=True) + args = parser.parse_args() + if args.warmups < 0 or args.repeats <= 0: + parser.error("warmups must be nonnegative and repeats positive") + + import psutil + + process = psutil.Process(args.server_pid) if args.server_pid else None + samples: list[dict] = [] + done = threading.Event() + + def sample_memory() -> None: + if process is None: + return + while not done.is_set(): + try: + memory = process.memory_full_info() + samples.append({ + "unix": time.time(), + "working_set_bytes": memory.rss, + "private_bytes": getattr(memory, "private", None), + "host_available_bytes": psutil.virtual_memory().available, + }) + except psutil.Error: + break + done.wait(0.25) + + sampler = threading.Thread(target=sample_memory, daemon=True) + sampler.start() + payload = json.dumps({"input": args.text, "response_format": "wav", "seed": args.seed}).encode() + + def request_one(*, save_wav: bool) -> dict: + request = urllib.request.Request( + args.endpoint, data=payload, headers={"Content-Type": "application/json"}, method="POST" + ) + started = time.perf_counter() + with urllib.request.urlopen(request, timeout=180) as response: + status = response.status + wav_bytes = response.read() + wall_s = time.perf_counter() - started + if status != 200: + raise RuntimeError(f"speech endpoint returned HTTP {status}") + with wave.open(io.BytesIO(wav_bytes), "rb") as audio: + channels, width, sample_rate, frames = ( + audio.getnchannels(), audio.getsampwidth(), audio.getframerate(), audio.getnframes() + ) + pcm = audio.readframes(frames) + if channels != 1 or width != 2 or sample_rate <= 0 or not frames: + raise RuntimeError("expected nonempty 16-bit mono WAV") + values = array.array("h") + values.frombytes(pcm) + if sys.byteorder != "little": + values.byteswap() + rms = math.sqrt(sum(value * value for value in values) / len(values)) / 32768 + if rms <= 1e-5: + raise RuntimeError("speech WAV is effectively silent") + if save_wav: + args.output_wav.parent.mkdir(parents=True, exist_ok=True) + args.output_wav.write_bytes(wav_bytes) + return { + "wall_s": wall_s, + "sample_rate": sample_rate, + "frames": frames, + "duration_s": frames / sample_rate, + "rms_pcm16_normalized": rms, + "pcm_sha256": hashlib.sha256(pcm).hexdigest(), + "sha256": hashlib.sha256(wav_bytes).hexdigest(), + "bytes": len(wav_bytes), + } + + try: + warmups = [request_one(save_wav=False) for _ in range(args.warmups)] + measured = [request_one(save_wav=i == 0) for i in range(args.repeats)] + finally: + done.set() + sampler.join(timeout=2) + + walls = [row["wall_s"] for row in measured] + report = { + "scope": "complete serial HTTP text-to-WAV requests in one resident server; speech quality and placement assessed separately", + "endpoint": args.endpoint, + "text": args.text, + "seed": args.seed, + "concurrency": 1, + "warmups": warmups, + "measured": measured, + "nearest_rank_p50_wall_s": _rank(walls, 0.5), + "nearest_rank_p95_wall_s": _rank(walls, 0.95), + "all_same_wav_sha256": len({row["sha256"] for row in measured}) == 1, + "all_same_pcm_sha256": len({row["pcm_sha256"] for row in measured}) == 1, + "server_pid": args.server_pid, + "memory_samples": samples, + "sampled_max_working_set_bytes": max((row["working_set_bytes"] for row in samples), default=None), + "sampled_max_private_bytes": max((row["private_bytes"] for row in samples if row["private_bytes"] is not None), default=None), + "sampled_min_host_available_bytes": min((row["host_available_bytes"] for row in samples), default=None), + } + args.output_report.parent.mkdir(parents=True, exist_ok=True) + args.output_report.write_text(json.dumps(report, indent=2) + "\n", encoding="utf-8") + print(json.dumps({key: value for key, value in report.items() if key not in {"memory_samples", "measured", "warmups"}}, indent=2)) + + +if __name__ == "__main__": + main() diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/README.md b/benchmarks/edge_harness/results/e2e_expansion_20260923/README.md index 33b97e49f..6894d6c61 100644 --- a/benchmarks/edge_harness/results/e2e_expansion_20260923/README.md +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/README.md @@ -1,9 +1,10 @@ # 2026-09-23 WSL CPU and native Windows expansion -This extends the [60-cell device × model matrix](../e2e_profiling_20260922/evidence/summary/README.md) with previously unrun WSL CPU and native Windows paths. The September 22 timing tables remain historical. MiniCPM-o now has separate 20-request serial text-to-speech timing runs on WSL CPU and native Windows GPU, plus one synthetic image and one synthetic audio input on each platform; each InternVLA timing remains one observation. Spark has a 20-request Omni output-head component profile on the HX370 AMD NPU and separate 20-request **complete text** profiles through standalone llama.cpp on native Windows CPU and Radeon 890M. Qwen3-TTS has a separate 20-request complete standalone text-to-WAV profile on native Windows CPU. None is a sustained or full-modality profile; the standalone paths still need Omni integration. The [checkpoint manifests](../e2e_recovery_20260923/README.md) pin the earlier real weights; the [Spark NPU component record](evidence/spark_amd_npu_output_head/README.md), [CPU/Radeon whole-model record](evidence/spark_radeon890m_llamacpp/README.md), and [native CPU Qwen TTS record](evidence/qwen_tts_native_cpu/README.md) pin their respective artifacts. No model, precision or context was silently substituted. +This extends the [60-cell device × model matrix](../e2e_profiling_20260922/evidence/summary/README.md) with previously unrun WSL CPU and native Windows paths. The September 22 timing tables remain historical. MiniCPM-o now has separate 20-request serial text-to-speech timing runs on WSL CPU and native Windows GPU, plus one synthetic image and one synthetic audio input on each platform; each InternVLA timing remains one observation. Spark has a 20-request Omni output-head component profile on the HX370 AMD NPU and separate 20-request **complete text** profiles through standalone llama.cpp on native Windows CPU and Radeon 890M. Qwen3-TTS has separate 20-request complete standalone text-to-WAV profiles on native Windows CPU and a CPU+Radeon 890M hybrid route. None is a sustained or full-modality profile; the standalone paths still need Omni integration. The [checkpoint manifests](../e2e_recovery_20260923/README.md) pin the earlier real weights; the [Spark NPU component record](evidence/spark_amd_npu_output_head/README.md), [CPU/Radeon whole-model record](evidence/spark_radeon890m_llamacpp/README.md), [native CPU Qwen TTS record](evidence/qwen_tts_native_cpu/README.md), and [joint CPU+Radeon TTS record](evidence/qwen_tts_radeon890m_joint/README.md) pin their respective artifacts. No model, precision or context was silently substituted. | Device / model | Verified depth | Observed output and time | Remaining gate | |---|---|---|---| +| Native Windows HX370 CPU+Radeon 890M / Qwen3-TTS 0.6B CustomVoice Q8_0 GGUF plus F16 codec | Scoped complete standalone CrispASR text-to-WAV path with Vulkan talker/codec and CPU FP32 code predictor (P for two named sentences; outside Omni; **not** all-Radeon or NPU) | Two 24 kHz WAVs of 2.56 s and 3.20 s; independently pinned Whisper tiny.en ASR WER 0 on both. One warmup + 20 serial measured resident-server requests for the first prompt had client wall p50/p95 3.310/3.345 s, all PCM hashes identical; RTF 1.29/1.31. The default Vulkan setting fell back to CPU, while all-Vulkan talker+predictor hit a 360-frame runaway cap. | Explicit Omni hybrid stage binding, quality and playback gates, loading-peak admission, cancellation, broader prompts, concurrency and sustained power/thermal behavior; [joint raw evidence](evidence/qwen_tts_radeon890m_joint/README.md), [failed DirectML attempt](evidence/qwen_tts_radeon890m_directml/README.md). | | Native Windows HX370 CPU / Qwen3-TTS 0.6B CustomVoice, revision `85e237c12c027371202489a0ec509ded67b5e4b5` | Scoped complete standalone PyTorch text-to-WAV path (P for two named sentences; outside Omni) | Nonzero 24 kHz WAVs of 4.56 s and 3.44 s. For the first prompt, 1 warmup + 20 serial measured complete generations p50/p95 13.94/14.68 s; Whisper tiny.en ASR WER 0.20 on the first and 0.00 on the second sentence. | Omni CPU stage binding and dependency isolation, playable streaming, speech quality, memory loading peak and sustained behavior; [raw evidence](evidence/qwen_tts_native_cpu/README.md). | | Native Windows HX370 CPU / Spark-X2.5-1.7B Q4_K_M GGUF, revision `1f7fa33b1245c14730da39e125714ad3a327901b` | Scoped complete standalone llama.cpp text path (P for two named inputs; outside Omni) | Correct `Paris` and 120-item inventory answer `1511`; 1 warmup + 20 uncached serial full inventory requests p50/p95 6.65/6.86 s, 20/20 correct. Stream-close recovery passed. | Omni whole-model stage binding, broader quality, explicit loading-peak admission and sustained behavior; [raw evidence](evidence/spark_radeon890m_llamacpp/README.md). | | Native Windows HX370 Radeon 890M / Spark-X2.5-1.7B same GGUF | Scoped complete standalone llama.cpp Vulkan1 text path (P for two named inputs; outside Omni) | All 29 logged layer assignments on Vulkan1, with a separate Vulkan_Host buffer; correct `Paris` and `1511`; 1 warmup + 20 uncached serial inventory requests p50/p95 2.18/2.20 s, 20/20 correct. Stream-close recovery passed. | Omni binding, state and memory contract, broad quality, GPU-memory attribution and sustained power/thermal behavior; [raw evidence](evidence/spark_radeon890m_llamacpp/README.md). | diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_directml/.gitattributes b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_directml/.gitattributes new file mode 100644 index 000000000..b92f35321 --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_directml/.gitattributes @@ -0,0 +1,4 @@ +# Preserve native Windows raw records byte-for-byte. +*.json -text -eol +*.log -text -eol +*.wav binary diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_directml/README.md b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_directml/README.md new file mode 100644 index 000000000..300c8096b --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_directml/README.md @@ -0,0 +1,16 @@ +# Radeon 890M DirectML Qwen3-TTS attempted route + +This is a **failed whole-model quality route**, not a Radeon Qwen3-TTS pass. It used the official [Qwen3-TTS 0.6B CustomVoice checkpoint](https://huggingface.co/Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice/tree/85e237c12c027371202489a0ec509ded67b5e4b5) and `qwen-tts==0.1.1` on Windows 11 build 26200. The isolated runtime had PyTorch 2.4.1+cpu, `torch-directml==0.2.5.dev240914`, Transformers 4.57.3, torchaudio 2.4.1, and AMD Radeon 890M driver `32.0.22018.6001`. `torch_directml.device_name(1)` identified Radeon 890M; all model parameters were checked on `privateuseone:1` after the move. The RTX 5090 Laptop was enumerated as device 0 but was not selected. + +The [probe](../../../../experiments/probe_qwen_tts_directml.py) loads the real talker and speech tokenizer, explicitly moves the model to DirectML, and records the selected adapter, model placement, precision and failure phase. The wrapper caches `self.device` at construction; setting it to the chosen DirectML device after the model move corrected the first CPU-input/GPU-weight mismatch. The following attempts retain the next genuine boundaries: + +| Attempt | Result | Raw record | +|---|---|---| +| FP16, original sampling | Reached talker token sampling, then failed at DirectML `torch.gather`. | [report](qwen_tts_dml_890m_20260923.json), [log](qwen_tts_dml_890m_20260923.log) | +| FP16, repetition penalty 1.0 | Bypassed gather, then failed at a DirectML `torch.cat` of an empty int64 prefix and one next token. A minimal `(1,0) ⊕ (1,1)` int64 DirectML reproduction failed the same way. | [report](qwen_tts_dml_890m_rp1_20260923.json), [trace](qwen_tts_dml_890m_rp1_trace_20260923.log) | +| FP16, exact empty-cat identity workaround, repetition penalty 1.0 | Reached the code predictor, then sampling failed on non-finite/negative probabilities. The same FP16 sampling failure occurred on CPU in this PyTorch 2.4.1 environment, so it cannot be assigned solely to DirectML. | [report](qwen_tts_dml_890m_workaround_20260923.json), [log](qwen_tts_dml_890m_workaround_20260923.log), [CPU FP16 log](qwen_tts_cpu_fp16_dmlenv_20260923.log) | +| FP32 | The full-model move to Radeon failed; the decoded backend error says the GPU device instance was suspended. A separate simple DirectML addition and Windows display-device check still passed afterward. | [report](qwen_tts_dml_890m_fp32_20260923.json), [log](qwen_tts_dml_890m_fp32_20260923.log) | +| BF16 | The DirectML process exited with `Invalid or unsupported data type BFloat16`; no report/WAV was emitted. | [fatal log](qwen_tts_dml_890m_bf16_20260923.log) | +| FP16, greedy code predictor, repetition penalty 1.0 and empty-cat workaround | A 5.04 s/24 kHz nonzero WAV was emitted after 189.11 s, but separately pinned Whisper tiny.en transcribed only “you” for “Hello from the local computer.” (WER 1.00). It is **not a quality pass**. | [report](qwen_tts_dml_890m_greedy_20260923.json), [WAV](qwen_tts_dml_890m_greedy_20260923.wav), [log](qwen_tts_dml_890m_greedy_20260923.log), [ASR proxy](qwen_tts_dml_890m_greedy_asr_20260923.json) | + +The tested dtype/sampling changes and workaround are explicit; none is silently substituted for the accepted CPU BF16 path. These results constrain this DirectML runtime/configuration, not every possible Radeon graph or quantized artifact. The [separate Q8_0 GGUF Vulkan experiment](../qwen_tts_radeon890m_joint/README.md) found a scoped CPU+Radeon route with two intelligible named outputs. It does not repair DirectML or establish that the whole model runs on Radeon alone. diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_directml/qwen_tts_cpu_fp16_dmlenv_20260923.log b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_directml/qwen_tts_cpu_fp16_dmlenv_20260923.log new file mode 100644 index 000000000..ce3fac1d2 --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_directml/qwen_tts_cpu_fp16_dmlenv_20260923.log @@ -0,0 +1,71 @@ +'\\wsl.localhost\Ubuntu\home\zhout\project\edge_infer' +CMD.EXE was started with the above path as the current directory. +UNC paths are not supported. Defaulting to Windows directory. +'sox' is not recognized as an internal or external command, +operable program or batch file. +SoX could not be found! + + If you do not have SoX, proceed here: + - - - http://sox.sourceforge.net/ - - - + + If you do (or think that you should) have SoX, double-check your + path variables. + +Setting `pad_token_id` to `eos_token_id`:2150 for open-end generation. +Traceback (most recent call last): + +******** +Warning: flash-attn is not installed. Will only run the manual PyTorch version. Please install flash-attn for faster inference. +******** + + File "\\wsl.localhost\Ubuntu\home\zhout\project\edge_infer\vllm-omni-edge\benchmarks\edge_harness\experiments\probe_qwen_tts_native_cpu.py", line 154, in + main() + File "\\wsl.localhost\Ubuntu\home\zhout\project\edge_infer\vllm-omni-edge\benchmarks\edge_harness\experiments\probe_qwen_tts_native_cpu.py", line 107, in main + measured = [generate_one(save_wav=index == 0) for index in range(args.repeats)] + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "\\wsl.localhost\Ubuntu\home\zhout\project\edge_infer\vllm-omni-edge\benchmarks\edge_harness\experiments\probe_qwen_tts_native_cpu.py", line 75, in generate_one + wavs, sample_rate = model.generate_custom_voice( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\zhout\w2\qwen_dml_venv\Lib\site-packages\torch\utils\_contextlib.py", line 116, in decorate_context + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\zhout\w2\qwen_dml_venv\Lib\site-packages\qwen_tts\inference\qwen3_tts_model.py", line 829, in generate_custom_voice + talker_codes_list, _ = self.model.generate( + ^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\zhout\w2\qwen_dml_venv\Lib\site-packages\torch\utils\_contextlib.py", line 116, in decorate_context + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\zhout\w2\qwen_dml_venv\Lib\site-packages\qwen_tts\core\models\modeling_qwen3_tts.py", line 2272, in generate + talker_result = self.talker.generate( + ^^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\zhout\w2\qwen_dml_venv\Lib\site-packages\torch\utils\_contextlib.py", line 116, in decorate_context + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\zhout\w2\qwen_dml_venv\Lib\site-packages\transformers\generation\utils.py", line 2564, in generate + result = decoding_method( + ^^^^^^^^^^^^^^^^ + File "C:\Users\zhout\w2\qwen_dml_venv\Lib\site-packages\transformers\generation\utils.py", line 2787, in _sample + outputs = model_forward(**model_inputs, return_dict=True) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\zhout\w2\qwen_dml_venv\Lib\site-packages\torch\nn\modules\module.py", line 1553, in _wrapped_call_impl + return self._call_impl(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\zhout\w2\qwen_dml_venv\Lib\site-packages\torch\nn\modules\module.py", line 1562, in _call_impl + return forward_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\zhout\w2\qwen_dml_venv\Lib\site-packages\transformers\utils\generic.py", line 918, in wrapper + output = func(self, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\zhout\w2\qwen_dml_venv\Lib\site-packages\qwen_tts\core\models\modeling_qwen3_tts.py", line 1671, in forward + predictor_result = self.code_predictor.generate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\zhout\w2\qwen_dml_venv\Lib\site-packages\torch\utils\_contextlib.py", line 116, in decorate_context + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\zhout\w2\qwen_dml_venv\Lib\site-packages\transformers\generation\utils.py", line 2564, in generate + result = decoding_method( + ^^^^^^^^^^^^^^^^ + File "C:\Users\zhout\w2\qwen_dml_venv\Lib\site-packages\transformers\generation\utils.py", line 2829, in _sample + next_tokens = torch.multinomial(probs, num_samples=1).squeeze(1) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +RuntimeError: probability tensor contains either `inf`, `nan` or element < 0 diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_directml/qwen_tts_dml_890m_20260923.json b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_directml/qwen_tts_dml_890m_20260923.json new file mode 100644 index 000000000..26329fc5b --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_directml/qwen_tts_dml_890m_20260923.json @@ -0,0 +1,34 @@ +{ + "scope": "standalone real-weight Qwen3-TTS DirectML feasibility; no Omni, streaming, or all-operator placement claim", + "platform": "Windows-11-10.0.26200-SP0", + "python": "3.12.10", + "torch": "2.4.1+cpu", + "torch_directml": "unknown", + "transformers": "4.57.3", + "adapters": [ + "NVIDIA GeForce RTX 5090 Laptop GPU", + "AMD Radeon(TM) 890M Graphics" + ], + "requested_index": 1, + "target_device": "privateuseone:1", + "model_dir": "C:\\Users\\zhout\\w2\\models\\Qwen3-TTS-0.6B-85e237c", + "talker_sha256": "bc3c7e785eb961179c25450d1acff03f839e0002f2f3a5aeb67b5735c0fa2adb", + "speech_tokenizer_sha256": "836b7b357f5ea43e889936a3709af68dfe3751881acefe4ecf0dbd30ba571258", + "dtype": "float16", + "attention": "sdpa", + "threads": 8, + "text": "Hello from the local computer.", + "speaker": "Ryan", + "max_new_tokens": 64, + "seed": 42, + "status": "failed", + "cpu_load_s": 2.3304581999545917, + "phase": "generate", + "device_move_s": 1.2001519000623375, + "model_devices": [ + "privateuseone:1" + ], + "error_type": "UnicodeDecodeError", + "error": "'utf-8' codec can't decode byte 0xb2 in position 0: invalid start byte", + "traceback": "Traceback (most recent call last):\n File \"\\\\wsl.localhost\\Ubuntu\\home\\zhout\\project\\edge_infer\\vllm-omni-edge\\benchmarks\\edge_harness\\experiments\\probe_qwen_tts_directml.py\", line 101, in main\n wavs, sample_rate = model.generate_custom_voice(\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"C:\\Users\\zhout\\w2\\qwen_dml_venv\\Lib\\site-packages\\torch\\utils\\_contextlib.py\", line 116, in decorate_context\n return func(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^\n File \"C:\\Users\\zhout\\w2\\qwen_dml_venv\\Lib\\site-packages\\qwen_tts\\inference\\qwen3_tts_model.py\", line 829, in generate_custom_voice\n talker_codes_list, _ = self.model.generate(\n ^^^^^^^^^^^^^^^^^^^^\n File \"C:\\Users\\zhout\\w2\\qwen_dml_venv\\Lib\\site-packages\\torch\\utils\\_contextlib.py\", line 116, in decorate_context\n return func(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^\n File \"C:\\Users\\zhout\\w2\\qwen_dml_venv\\Lib\\site-packages\\qwen_tts\\core\\models\\modeling_qwen3_tts.py\", line 2272, in generate\n talker_result = self.talker.generate(\n ^^^^^^^^^^^^^^^^^^^^^\n File \"C:\\Users\\zhout\\w2\\qwen_dml_venv\\Lib\\site-packages\\torch\\utils\\_contextlib.py\", line 116, in decorate_context\n return func(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^\n File \"C:\\Users\\zhout\\w2\\qwen_dml_venv\\Lib\\site-packages\\transformers\\generation\\utils.py\", line 2564, in generate\n result = decoding_method(\n ^^^^^^^^^^^^^^^^\n File \"C:\\Users\\zhout\\w2\\qwen_dml_venv\\Lib\\site-packages\\transformers\\generation\\utils.py\", line 2803, in _sample\n next_token_scores = logits_processor(input_ids, next_token_logits)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"C:\\Users\\zhout\\w2\\qwen_dml_venv\\Lib\\site-packages\\transformers\\generation\\logits_process.py\", line 93, in __call__\n scores = processor(input_ids, scores)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"C:\\Users\\zhout\\w2\\qwen_dml_venv\\Lib\\site-packages\\transformers\\generation\\logits_process.py\", line 402, in __call__\n score = torch.gather(scores, 1, input_ids)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nUnicodeDecodeError: 'utf-8' codec can't decode byte 0xb2 in position 0: invalid start byte\n" +} diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_directml/qwen_tts_dml_890m_20260923.log b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_directml/qwen_tts_dml_890m_20260923.log new file mode 100644 index 000000000..623f5ddc0 --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_directml/qwen_tts_dml_890m_20260923.log @@ -0,0 +1,87 @@ +'\\wsl.localhost\Ubuntu\home\zhout\project\edge_infer' +CMD.EXE was started with the above path as the current directory. +UNC paths are not supported. Defaulting to Windows directory. +'sox' is not recognized as an internal or external command, +operable program or batch file. +SoX could not be found! + + If you do not have SoX, proceed here: + - - - http://sox.sourceforge.net/ - - - + + If you do (or think that you should) have SoX, double-check your + path variables. + +Setting `pad_token_id` to `eos_token_id`:2150 for open-end generation. +Traceback (most recent call last): + +******** +Warning: flash-attn is not installed. Will only run the manual PyTorch version. Please install flash-attn for faster inference. +******** + +{ + "scope": "standalone real-weight Qwen3-TTS DirectML feasibility; no Omni, streaming, or all-operator placement claim", + "platform": "Windows-11-10.0.26200-SP0", + "python": "3.12.10", + "torch": "2.4.1+cpu", + "torch_directml": "unknown", + "transformers": "4.57.3", + "adapters": [ + "NVIDIA GeForce RTX 5090 Laptop GPU", + "AMD Radeon(TM) 890M Graphics" + ], + "requested_index": 1, + "target_device": "privateuseone:1", + "model_dir": "C:\\Users\\zhout\\w2\\models\\Qwen3-TTS-0.6B-85e237c", + "talker_sha256": "bc3c7e785eb961179c25450d1acff03f839e0002f2f3a5aeb67b5735c0fa2adb", + "speech_tokenizer_sha256": "836b7b357f5ea43e889936a3709af68dfe3751881acefe4ecf0dbd30ba571258", + "dtype": "float16", + "attention": "sdpa", + "threads": 8, + "text": "Hello from the local computer.", + "speaker": "Ryan", + "max_new_tokens": 64, + File "\\wsl.localhost\Ubuntu\home\zhout\project\edge_infer\vllm-omni-edge\benchmarks\edge_harness\experiments\probe_qwen_tts_directml.py", line 140, in + "seed": 42, + "status": "failed", + "cpu_load_s": 2.3304581999545917, + "phase": "generate", + "device_move_s": 1.2001519000623375, + "model_devices": [ + "privateuseone:1" + ], + "error_type": "UnicodeDecodeError", + "error": "'utf-8' codec can't decode byte 0xb2 in position 0: invalid start byte", + "traceback": "Traceback (most recent call last):\n File \"\\\\wsl.localhost\\Ubuntu\\home\\zhout\\project\\edge_infer\\vllm-omni-edge\\benchmarks\\edge_harness\\experiments\\probe_qwen_tts_directml.py\", line 101, in main\n wavs, sample_rate = model.generate_custom_voice(\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"C:\\Users\\zhout\\w2\\qwen_dml_venv\\Lib\\site-packages\\torch\\utils\\_contextlib.py\", line 116, in decorate_context\n return func(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^\n File \"C:\\Users\\zhout\\w2\\qwen_dml_venv\\Lib\\site-packages\\qwen_tts\\inference\\qwen3_tts_model.py\", line 829, in generate_custom_voice\n talker_codes_list, _ = self.model.generate(\n ^^^^^^^^^^^^^^^^^^^^\n File \"C:\\Users\\zhout\\w2\\qwen_dml_venv\\Lib\\site-packages\\torch\\utils\\_contextlib.py\", line 116, in decorate_context\n return func(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^\n File \"C:\\Users\\zhout\\w2\\qwen_dml_venv\\Lib\\site-packages\\qwen_tts\\core\\models\\modeling_qwen3_tts.py\", line 2272, in generate\n talker_result = self.talker.generate(\n ^^^^^^^^^^^^^^^^^^^^^\n File \"C:\\Users\\zhout\\w2\\qwen_dml_venv\\Lib\\site-packages\\torch\\utils\\_contextlib.py\", line 116, in decorate_context\n return func(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^\n File \"C:\\Users\\zhout\\w2\\qwen_dml_venv\\Lib\\site-packages\\transformers\\generation\\utils.py\", line 2564, in generate\n result = decoding_method(\n ^^^^^^^^^^^^^^^^\n File \"C:\\Users\\zhout\\w2\\qwen_dml_venv\\Lib\\site-packages\\transformers\\generation\\utils.py\", line 2803, in _sample\n next_token_scores = logits_processor(input_ids, next_token_logits)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"C:\\Users\\zhout\\w2\\qwen_dml_venv\\Lib\\site-packages\\transformers\\generation\\logits_process.py\", line 93, in __call__\n scores = processor(input_ids, scores)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"C:\\Users\\zhout\\w2\\qwen_dml_venv\\Lib\\site-packages\\transformers\\generation\\logits_process.py\", line 402, in __call__\n score = torch.gather(scores, 1, input_ids)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nUnicodeDecodeError: 'utf-8' codec can't decode byte 0xb2 in position 0: invalid start byte\n" +} + main() + File "\\wsl.localhost\Ubuntu\home\zhout\project\edge_infer\vllm-omni-edge\benchmarks\edge_harness\experiments\probe_qwen_tts_directml.py", line 101, in main + wavs, sample_rate = model.generate_custom_voice( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\zhout\w2\qwen_dml_venv\Lib\site-packages\torch\utils\_contextlib.py", line 116, in decorate_context + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\zhout\w2\qwen_dml_venv\Lib\site-packages\qwen_tts\inference\qwen3_tts_model.py", line 829, in generate_custom_voice + talker_codes_list, _ = self.model.generate( + ^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\zhout\w2\qwen_dml_venv\Lib\site-packages\torch\utils\_contextlib.py", line 116, in decorate_context + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\zhout\w2\qwen_dml_venv\Lib\site-packages\qwen_tts\core\models\modeling_qwen3_tts.py", line 2272, in generate + talker_result = self.talker.generate( + ^^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\zhout\w2\qwen_dml_venv\Lib\site-packages\torch\utils\_contextlib.py", line 116, in decorate_context + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\zhout\w2\qwen_dml_venv\Lib\site-packages\transformers\generation\utils.py", line 2564, in generate + result = decoding_method( + ^^^^^^^^^^^^^^^^ + File "C:\Users\zhout\w2\qwen_dml_venv\Lib\site-packages\transformers\generation\utils.py", line 2803, in _sample + next_token_scores = logits_processor(input_ids, next_token_logits) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\zhout\w2\qwen_dml_venv\Lib\site-packages\transformers\generation\logits_process.py", line 93, in __call__ + scores = processor(input_ids, scores) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\zhout\w2\qwen_dml_venv\Lib\site-packages\transformers\generation\logits_process.py", line 402, in __call__ + score = torch.gather(scores, 1, input_ids) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb2 in position 0: invalid start byte diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_directml/qwen_tts_dml_890m_bf16_20260923.log b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_directml/qwen_tts_dml_890m_bf16_20260923.log new file mode 100644 index 000000000..bb5502d0c --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_directml/qwen_tts_dml_890m_bf16_20260923.log @@ -0,0 +1,14 @@ +'\\wsl.localhost\Ubuntu\home\zhout\project\edge_infer' +CMD.EXE was started with the above path as the current directory. +UNC paths are not supported. Defaulting to Windows directory. +'sox' is not recognized as an internal or external command, +operable program or batch file. +SoX could not be found! + + If you do not have SoX, proceed here: + - - - http://sox.sourceforge.net/ - - - + + If you do (or think that you should) have SoX, double-check your + path variables. + +[F923 19:32:34.000000000 dml_util.cc:118] Invalid or unsupported data type BFloat16. diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_directml/qwen_tts_dml_890m_fp32_20260923.json b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_directml/qwen_tts_dml_890m_fp32_20260923.json new file mode 100644 index 000000000..8a2392ed3 --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_directml/qwen_tts_dml_890m_fp32_20260923.json @@ -0,0 +1,34 @@ +{ + "scope": "standalone real-weight Qwen3-TTS DirectML feasibility; no Omni, streaming, or all-operator placement claim", + "platform": "Windows-11-10.0.26200-SP0", + "python": "3.12.10", + "torch": "2.4.1+cpu", + "torch_directml": "unknown", + "transformers": "4.57.3", + "adapters": [ + "NVIDIA GeForce RTX 5090 Laptop GPU", + "AMD Radeon(TM) 890M Graphics" + ], + "requested_index": 1, + "target_device": "privateuseone:1", + "model_dir": "C:\\Users\\zhout\\w2\\models\\Qwen3-TTS-0.6B-85e237c", + "talker_sha256": "bc3c7e785eb961179c25450d1acff03f839e0002f2f3a5aeb67b5735c0fa2adb", + "speech_tokenizer_sha256": "836b7b357f5ea43e889936a3709af68dfe3751881acefe4ecf0dbd30ba571258", + "dtype": "float32", + "attention": "sdpa", + "threads": 8, + "text": "Hello from the local computer.", + "speaker": "Ryan", + "max_new_tokens": 64, + "repetition_penalty_override": 1.0, + "workaround_empty_int64_cat": true, + "seed": 42, + "status": "failed", + "cpu_load_s": 1.82569450000301, + "phase": "move_to_directml", + "error_type": "UnicodeDecodeError", + "error": "'utf-8' codec can't decode byte 0xc9 in position 4: invalid continuation byte", + "traceback": "Traceback (most recent call last):\n File \"\\\\wsl.localhost\\Ubuntu\\home\\zhout\\project\\edge_infer\\vllm-omni-edge\\benchmarks\\edge_harness\\experiments\\probe_qwen_tts_directml.py\", line 98, in main\n model.model.to(device)\n File \"C:\\Users\\zhout\\w2\\qwen_dml_venv\\Lib\\site-packages\\transformers\\modeling_utils.py\", line 4343, in to\n return super().to(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"C:\\Users\\zhout\\w2\\qwen_dml_venv\\Lib\\site-packages\\torch\\nn\\modules\\module.py\", line 1174, in to\n return self._apply(convert)\n ^^^^^^^^^^^^^^^^^^^^\n File \"C:\\Users\\zhout\\w2\\qwen_dml_venv\\Lib\\site-packages\\torch\\nn\\modules\\module.py\", line 780, in _apply\n module._apply(fn)\n File \"C:\\Users\\zhout\\w2\\qwen_dml_venv\\Lib\\site-packages\\torch\\nn\\modules\\module.py\", line 780, in _apply\n module._apply(fn)\n File \"C:\\Users\\zhout\\w2\\qwen_dml_venv\\Lib\\site-packages\\torch\\nn\\modules\\module.py\", line 780, in _apply\n module._apply(fn)\n File \"C:\\Users\\zhout\\w2\\qwen_dml_venv\\Lib\\site-packages\\torch\\nn\\modules\\module.py\", line 805, in _apply\n param_applied = fn(param)\n ^^^^^^^^^\n File \"C:\\Users\\zhout\\w2\\qwen_dml_venv\\Lib\\site-packages\\torch\\nn\\modules\\module.py\", line 1160, in convert\n return t.to(\n ^^^^^\nUnicodeDecodeError: 'utf-8' codec can't decode byte 0xc9 in position 4: invalid continuation byte\n", + "backend_error_bytes_hex": "47505520c9e8b1b8cab5c0fdd2d1beadd4ddcda3a1a3cab9d3c32047657444657669636552656d6f766564526561736f6e20d2d4c8b7b6a8cfe0d3a6b5c4b4ebcaa9a1a3", + "backend_error_cp936": "GPU \u8bbe\u5907\u5b9e\u4f8b\u5df2\u7ecf\u6682\u505c\u3002\u4f7f\u7528 GetDeviceRemovedReason \u4ee5\u786e\u5b9a\u76f8\u5e94\u7684\u63aa\u65bd\u3002" +} diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_directml/qwen_tts_dml_890m_fp32_20260923.log b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_directml/qwen_tts_dml_890m_fp32_20260923.log new file mode 100644 index 000000000..2394f09b4 --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_directml/qwen_tts_dml_890m_fp32_20260923.log @@ -0,0 +1,76 @@ +'\\wsl.localhost\Ubuntu\home\zhout\project\edge_infer' +CMD.EXE was started with the above path as the current directory. +UNC paths are not supported. Defaulting to Windows directory. +'sox' is not recognized as an internal or external command, +operable program or batch file. +SoX could not be found! + + If you do not have SoX, proceed here: + - - - http://sox.sourceforge.net/ - - - + + If you do (or think that you should) have SoX, double-check your + path variables. + +Traceback (most recent call last): + +******** +Warning: flash-attn is not installed. Will only run the manual PyTorch version. Please install flash-attn for faster inference. +******** + +{ + "scope": "standalone real-weight Qwen3-TTS DirectML feasibility; no Omni, streaming, or all-operator placement claim", + "platform": "Windows-11-10.0.26200-SP0", + "python": "3.12.10", + "torch": "2.4.1+cpu", + "torch_directml": "unknown", + "transformers": "4.57.3", + "adapters": [ + "NVIDIA GeForce RTX 5090 Laptop GPU", + "AMD Radeon(TM) 890M Graphics" + ], + "requested_index": 1, + "target_device": "privateuseone:1", + "model_dir": "C:\\Users\\zhout\\w2\\models\\Qwen3-TTS-0.6B-85e237c", + "talker_sha256": "bc3c7e785eb961179c25450d1acff03f839e0002f2f3a5aeb67b5735c0fa2adb", + "speech_tokenizer_sha256": "836b7b357f5ea43e889936a3709af68dfe3751881acefe4ecf0dbd30ba571258", + "dtype": "float32", + "attention": "sdpa", + "threads": 8, + "text": "Hello from the local computer.", + "speaker": "Ryan", + "max_new_tokens": 64, + "repetition_penalty_override": 1.0, + "workaround_empty_int64_cat": true, + "seed": 42, + "status": "failed", + "cpu_load_s": 1.82569450000301, + File "\\wsl.localhost\Ubuntu\home\zhout\project\edge_infer\vllm-omni-edge\benchmarks\edge_harness\experiments\probe_qwen_tts_directml.py", line 186, in + "phase": "move_to_directml", + "error_type": "UnicodeDecodeError", + "error": "'utf-8' codec can't decode byte 0xc9 in position 4: invalid continuation byte", + "traceback": "Traceback (most recent call last):\n File \"\\\\wsl.localhost\\Ubuntu\\home\\zhout\\project\\edge_infer\\vllm-omni-edge\\benchmarks\\edge_harness\\experiments\\probe_qwen_tts_directml.py\", line 98, in main\n model.model.to(device)\n File \"C:\\Users\\zhout\\w2\\qwen_dml_venv\\Lib\\site-packages\\transformers\\modeling_utils.py\", line 4343, in to\n return super().to(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"C:\\Users\\zhout\\w2\\qwen_dml_venv\\Lib\\site-packages\\torch\\nn\\modules\\module.py\", line 1174, in to\n return self._apply(convert)\n ^^^^^^^^^^^^^^^^^^^^\n File \"C:\\Users\\zhout\\w2\\qwen_dml_venv\\Lib\\site-packages\\torch\\nn\\modules\\module.py\", line 780, in _apply\n module._apply(fn)\n File \"C:\\Users\\zhout\\w2\\qwen_dml_venv\\Lib\\site-packages\\torch\\nn\\modules\\module.py\", line 780, in _apply\n module._apply(fn)\n File \"C:\\Users\\zhout\\w2\\qwen_dml_venv\\Lib\\site-packages\\torch\\nn\\modules\\module.py\", line 780, in _apply\n module._apply(fn)\n File \"C:\\Users\\zhout\\w2\\qwen_dml_venv\\Lib\\site-packages\\torch\\nn\\modules\\module.py\", line 805, in _apply\n param_applied = fn(param)\n ^^^^^^^^^\n File \"C:\\Users\\zhout\\w2\\qwen_dml_venv\\Lib\\site-packages\\torch\\nn\\modules\\module.py\", line 1160, in convert\n return t.to(\n ^^^^^\nUnicodeDecodeError: 'utf-8' codec can't decode byte 0xc9 in position 4: invalid continuation byte\n", + "backend_error_bytes_hex": "47505520c9e8b1b8cab5c0fdd2d1beadd4ddcda3a1a3cab9d3c32047657444657669636552656d6f766564526561736f6e20d2d4c8b7b6a8cfe0d3a6b5c4b4ebcaa9a1a3", + "backend_error_cp936": "GPU \u8bbe\u5907\u5b9e\u4f8b\u5df2\u7ecf\u6682\u505c\u3002\u4f7f\u7528 GetDeviceRemovedReason \u4ee5\u786e\u5b9a\u76f8\u5e94\u7684\u63aa\u65bd\u3002" +} + main() + File "\\wsl.localhost\Ubuntu\home\zhout\project\edge_infer\vllm-omni-edge\benchmarks\edge_harness\experiments\probe_qwen_tts_directml.py", line 98, in main + model.model.to(device) + File "C:\Users\zhout\w2\qwen_dml_venv\Lib\site-packages\transformers\modeling_utils.py", line 4343, in to + return super().to(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\zhout\w2\qwen_dml_venv\Lib\site-packages\torch\nn\modules\module.py", line 1174, in to + return self._apply(convert) + ^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\zhout\w2\qwen_dml_venv\Lib\site-packages\torch\nn\modules\module.py", line 780, in _apply + module._apply(fn) + File "C:\Users\zhout\w2\qwen_dml_venv\Lib\site-packages\torch\nn\modules\module.py", line 780, in _apply + module._apply(fn) + File "C:\Users\zhout\w2\qwen_dml_venv\Lib\site-packages\torch\nn\modules\module.py", line 780, in _apply + module._apply(fn) + File "C:\Users\zhout\w2\qwen_dml_venv\Lib\site-packages\torch\nn\modules\module.py", line 805, in _apply + param_applied = fn(param) + ^^^^^^^^^ + File "C:\Users\zhout\w2\qwen_dml_venv\Lib\site-packages\torch\nn\modules\module.py", line 1160, in convert + return t.to( + ^^^^^ +UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc9 in position 4: invalid continuation byte diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_directml/qwen_tts_dml_890m_greedy_20260923.json b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_directml/qwen_tts_dml_890m_greedy_20260923.json new file mode 100644 index 000000000..1597c6354 --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_directml/qwen_tts_dml_890m_greedy_20260923.json @@ -0,0 +1,42 @@ +{ + "scope": "standalone real-weight Qwen3-TTS DirectML feasibility; no Omni, streaming, or all-operator placement claim", + "platform": "Windows-11-10.0.26200-SP0", + "python": "3.12.10", + "torch": "2.4.1+cpu", + "torch_directml": "unknown", + "transformers": "4.57.3", + "adapters": [ + "NVIDIA GeForce RTX 5090 Laptop GPU", + "AMD Radeon(TM) 890M Graphics" + ], + "requested_index": 1, + "target_device": "privateuseone:1", + "model_dir": "C:\\Users\\zhout\\w2\\models\\Qwen3-TTS-0.6B-85e237c", + "talker_sha256": "bc3c7e785eb961179c25450d1acff03f839e0002f2f3a5aeb67b5735c0fa2adb", + "speech_tokenizer_sha256": "836b7b357f5ea43e889936a3709af68dfe3751881acefe4ecf0dbd30ba571258", + "dtype": "float16", + "attention": "sdpa", + "threads": 8, + "text": "Hello from the local computer.", + "speaker": "Ryan", + "max_new_tokens": 64, + "repetition_penalty_override": 1.0, + "workaround_empty_int64_cat": true, + "subtalker_greedy": true, + "seed": 42, + "status": "passed", + "cpu_load_s": 2.0600192999700084, + "phase": "complete", + "device_move_s": 0.9054825000930578, + "model_devices": [ + "privateuseone:1" + ], + "request_s": 189.10949669999536, + "rms": 0.006188759764276907, + "peak_abs": 0.03369140625, + "nonzero_samples": 120959, + "sample_rate": 24000, + "samples": 120960, + "duration_s": 5.04, + "wav_sha256": "5cd8b4928841cd389d3d20daa6ac2d4ef05d305f77ce0121ffc055f02a3b2833" +} diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_directml/qwen_tts_dml_890m_greedy_20260923.log b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_directml/qwen_tts_dml_890m_greedy_20260923.log new file mode 100644 index 000000000..982b74005 --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_directml/qwen_tts_dml_890m_greedy_20260923.log @@ -0,0 +1,126 @@ +'\\wsl.localhost\Ubuntu\home\zhout\project\edge_infer' +CMD.EXE was started with the above path as the current directory. +UNC paths are not supported. Defaulting to Windows directory. +'sox' is not recognized as an internal or external command, +operable program or batch file. +SoX could not be found! + + If you do not have SoX, proceed here: + - - - http://sox.sourceforge.net/ - - - + + If you do (or think that you should) have SoX, double-check your + path variables. + +Setting `pad_token_id` to `eos_token_id`:2150 for open-end generation. +EMPTY_INT64_CAT_IDENTITY +The following generation flags are not valid and may be ignored: ['temperature']. Set `TRANSFORMERS_VERBOSITY=info` for more details. +EMPTY_INT64_CAT_IDENTITY +EMPTY_INT64_CAT_IDENTITY +EMPTY_INT64_CAT_IDENTITY +EMPTY_INT64_CAT_IDENTITY +EMPTY_INT64_CAT_IDENTITY +EMPTY_INT64_CAT_IDENTITY +EMPTY_INT64_CAT_IDENTITY +EMPTY_INT64_CAT_IDENTITY +EMPTY_INT64_CAT_IDENTITY +EMPTY_INT64_CAT_IDENTITY +EMPTY_INT64_CAT_IDENTITY +EMPTY_INT64_CAT_IDENTITY +EMPTY_INT64_CAT_IDENTITY +EMPTY_INT64_CAT_IDENTITY +EMPTY_INT64_CAT_IDENTITY +EMPTY_INT64_CAT_IDENTITY +EMPTY_INT64_CAT_IDENTITY +EMPTY_INT64_CAT_IDENTITY +EMPTY_INT64_CAT_IDENTITY +EMPTY_INT64_CAT_IDENTITY +EMPTY_INT64_CAT_IDENTITY +EMPTY_INT64_CAT_IDENTITY +EMPTY_INT64_CAT_IDENTITY +EMPTY_INT64_CAT_IDENTITY +EMPTY_INT64_CAT_IDENTITY +EMPTY_INT64_CAT_IDENTITY +EMPTY_INT64_CAT_IDENTITY +EMPTY_INT64_CAT_IDENTITY +EMPTY_INT64_CAT_IDENTITY +EMPTY_INT64_CAT_IDENTITY +EMPTY_INT64_CAT_IDENTITY +EMPTY_INT64_CAT_IDENTITY +EMPTY_INT64_CAT_IDENTITY +EMPTY_INT64_CAT_IDENTITY +EMPTY_INT64_CAT_IDENTITY +EMPTY_INT64_CAT_IDENTITY +EMPTY_INT64_CAT_IDENTITY +EMPTY_INT64_CAT_IDENTITY +EMPTY_INT64_CAT_IDENTITY +EMPTY_INT64_CAT_IDENTITY +EMPTY_INT64_CAT_IDENTITY +EMPTY_INT64_CAT_IDENTITY +EMPTY_INT64_CAT_IDENTITY +EMPTY_INT64_CAT_IDENTITY +EMPTY_INT64_CAT_IDENTITY +EMPTY_INT64_CAT_IDENTITY +EMPTY_INT64_CAT_IDENTITY +EMPTY_INT64_CAT_IDENTITY +EMPTY_INT64_CAT_IDENTITY +EMPTY_INT64_CAT_IDENTITY +EMPTY_INT64_CAT_IDENTITY +EMPTY_INT64_CAT_IDENTITY +EMPTY_INT64_CAT_IDENTITY +EMPTY_INT64_CAT_IDENTITY +EMPTY_INT64_CAT_IDENTITY +EMPTY_INT64_CAT_IDENTITY +EMPTY_INT64_CAT_IDENTITY +EMPTY_INT64_CAT_IDENTITY +EMPTY_INT64_CAT_IDENTITY +EMPTY_INT64_CAT_IDENTITY +EMPTY_INT64_CAT_IDENTITY +EMPTY_INT64_CAT_IDENTITY +EMPTY_INT64_CAT_IDENTITY + +******** +Warning: flash-attn is not installed. Will only run the manual PyTorch version. Please install flash-attn for faster inference. +******** + +{ + "scope": "standalone real-weight Qwen3-TTS DirectML feasibility; no Omni, streaming, or all-operator placement claim", + "platform": "Windows-11-10.0.26200-SP0", + "python": "3.12.10", + "torch": "2.4.1+cpu", + "torch_directml": "unknown", + "transformers": "4.57.3", + "adapters": [ + "NVIDIA GeForce RTX 5090 Laptop GPU", + "AMD Radeon(TM) 890M Graphics" + ], + "requested_index": 1, + "target_device": "privateuseone:1", + "model_dir": "C:\\Users\\zhout\\w2\\models\\Qwen3-TTS-0.6B-85e237c", + "talker_sha256": "bc3c7e785eb961179c25450d1acff03f839e0002f2f3a5aeb67b5735c0fa2adb", + "speech_tokenizer_sha256": "836b7b357f5ea43e889936a3709af68dfe3751881acefe4ecf0dbd30ba571258", + "dtype": "float16", + "attention": "sdpa", + "threads": 8, + "text": "Hello from the local computer.", + "speaker": "Ryan", + "max_new_tokens": 64, + "repetition_penalty_override": 1.0, + "workaround_empty_int64_cat": true, + "subtalker_greedy": true, + "seed": 42, + "status": "passed", + "cpu_load_s": 2.0600192999700084, + "phase": "complete", + "device_move_s": 0.9054825000930578, + "model_devices": [ + "privateuseone:1" + ], + "request_s": 189.10949669999536, + "rms": 0.006188759764276907, + "peak_abs": 0.03369140625, + "nonzero_samples": 120959, + "sample_rate": 24000, + "samples": 120960, + "duration_s": 5.04, + "wav_sha256": "5cd8b4928841cd389d3d20daa6ac2d4ef05d305f77ce0121ffc055f02a3b2833" +} diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_directml/qwen_tts_dml_890m_greedy_20260923.wav b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_directml/qwen_tts_dml_890m_greedy_20260923.wav new file mode 100644 index 000000000..cebb20a73 Binary files /dev/null and b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_directml/qwen_tts_dml_890m_greedy_20260923.wav differ diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_directml/qwen_tts_dml_890m_greedy_asr_20260923.json b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_directml/qwen_tts_dml_890m_greedy_asr_20260923.json new file mode 100644 index 000000000..91c26f02b --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_directml/qwen_tts_dml_890m_greedy_asr_20260923.json @@ -0,0 +1,16 @@ +{ + "scope": "local Whisper tiny.en ASR proxy for generated speech; no perceptual quality claim", + "asr_model": "openai/whisper-tiny.en", + "asr_revision": "87c7102498dcde7456f24cfd30239ca606ed9063", + "asr_weights_sha256": "db59695928ded6043adaef491a53ef4e12da9611184d77c53baa691a60b958ad", + "transformers": "4.57.3", + "torch": "2.4.1+cpu", + "wav_sha256": "5cd8b4928841cd389d3d20daa6ac2d4ef05d305f77ce0121ffc055f02a3b2833", + "input_sample_rate": 24000, + "input_duration_s": 5.04, + "reference_text": "Hello from the local computer.", + "transcript": "you", + "word_error_rate": 1.0, + "asr_load_s": 0.8331252000061795, + "asr_inference_s": 0.8376452999655157 +} diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_directml/qwen_tts_dml_890m_greedy_asr_20260923.log b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_directml/qwen_tts_dml_890m_greedy_asr_20260923.log new file mode 100644 index 000000000..f5303a6c3 --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_directml/qwen_tts_dml_890m_greedy_asr_20260923.log @@ -0,0 +1,17 @@ +Using custom `forced_decoder_ids` from the (generation) config. This is deprecated in favor of the `task` and `language` flags/config options. +{ + "scope": "local Whisper tiny.en ASR proxy for generated speech; no perceptual quality claim", + "asr_model": "openai/whisper-tiny.en", + "asr_revision": "87c7102498dcde7456f24cfd30239ca606ed9063", + "asr_weights_sha256": "db59695928ded6043adaef491a53ef4e12da9611184d77c53baa691a60b958ad", + "transformers": "4.57.3", + "torch": "2.4.1+cpu", + "wav_sha256": "5cd8b4928841cd389d3d20daa6ac2d4ef05d305f77ce0121ffc055f02a3b2833", + "input_sample_rate": 24000, + "input_duration_s": 5.04, + "reference_text": "Hello from the local computer.", + "transcript": "you", + "word_error_rate": 1.0, + "asr_load_s": 0.8331252000061795, + "asr_inference_s": 0.8376452999655157 +} diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_directml/qwen_tts_dml_890m_rp1_20260923.json b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_directml/qwen_tts_dml_890m_rp1_20260923.json new file mode 100644 index 000000000..1ab4067ef --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_directml/qwen_tts_dml_890m_rp1_20260923.json @@ -0,0 +1,35 @@ +{ + "scope": "standalone real-weight Qwen3-TTS DirectML feasibility; no Omni, streaming, or all-operator placement claim", + "platform": "Windows-11-10.0.26200-SP0", + "python": "3.12.10", + "torch": "2.4.1+cpu", + "torch_directml": "unknown", + "transformers": "4.57.3", + "adapters": [ + "NVIDIA GeForce RTX 5090 Laptop GPU", + "AMD Radeon(TM) 890M Graphics" + ], + "requested_index": 1, + "target_device": "privateuseone:1", + "model_dir": "C:\\Users\\zhout\\w2\\models\\Qwen3-TTS-0.6B-85e237c", + "talker_sha256": "bc3c7e785eb961179c25450d1acff03f839e0002f2f3a5aeb67b5735c0fa2adb", + "speech_tokenizer_sha256": "836b7b357f5ea43e889936a3709af68dfe3751881acefe4ecf0dbd30ba571258", + "dtype": "float16", + "attention": "sdpa", + "threads": 8, + "text": "Hello from the local computer.", + "speaker": "Ryan", + "max_new_tokens": 64, + "repetition_penalty_override": 1.0, + "seed": 42, + "status": "failed", + "cpu_load_s": 1.9829754000529647, + "phase": "generate", + "device_move_s": 1.012216999894008, + "model_devices": [ + "privateuseone:1" + ], + "error_type": "UnicodeDecodeError", + "error": "'utf-8' codec can't decode byte 0xb2 in position 0: invalid start byte", + "traceback": "Traceback (most recent call last):\n File \"\\\\wsl.localhost\\Ubuntu\\home\\zhout\\project\\edge_infer\\vllm-omni-edge\\benchmarks\\edge_harness\\experiments\\probe_qwen_tts_directml.py\", line 123, in main\n wavs, sample_rate = model.generate_custom_voice(\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"C:\\Users\\zhout\\w2\\qwen_dml_venv\\Lib\\site-packages\\torch\\utils\\_contextlib.py\", line 116, in decorate_context\n return func(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^\n File \"C:\\Users\\zhout\\w2\\qwen_dml_venv\\Lib\\site-packages\\qwen_tts\\inference\\qwen3_tts_model.py\", line 829, in generate_custom_voice\n talker_codes_list, _ = self.model.generate(\n ^^^^^^^^^^^^^^^^^^^^\n File \"C:\\Users\\zhout\\w2\\qwen_dml_venv\\Lib\\site-packages\\torch\\utils\\_contextlib.py\", line 116, in decorate_context\n return func(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^\n File \"C:\\Users\\zhout\\w2\\qwen_dml_venv\\Lib\\site-packages\\qwen_tts\\core\\models\\modeling_qwen3_tts.py\", line 2272, in generate\n talker_result = self.talker.generate(\n ^^^^^^^^^^^^^^^^^^^^^\n File \"C:\\Users\\zhout\\w2\\qwen_dml_venv\\Lib\\site-packages\\torch\\utils\\_contextlib.py\", line 116, in decorate_context\n return func(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^\n File \"C:\\Users\\zhout\\w2\\qwen_dml_venv\\Lib\\site-packages\\transformers\\generation\\utils.py\", line 2564, in generate\n result = decoding_method(\n ^^^^^^^^^^^^^^^^\n File \"C:\\Users\\zhout\\w2\\qwen_dml_venv\\Lib\\site-packages\\transformers\\generation\\utils.py\", line 2838, in _sample\n input_ids = torch.cat([input_ids, next_tokens[:, None]], dim=-1)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"\\\\wsl.localhost\\Ubuntu\\home\\zhout\\project\\edge_infer\\vllm-omni-edge\\benchmarks\\edge_harness\\experiments\\probe_qwen_tts_directml.py\", line 108, in traced_cat\n return original_cat(tensors, *cat_args, **cat_kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nUnicodeDecodeError: 'utf-8' codec can't decode byte 0xb2 in position 0: invalid start byte\n" +} diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_directml/qwen_tts_dml_890m_rp1_20260923.log b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_directml/qwen_tts_dml_890m_rp1_20260923.log new file mode 100644 index 000000000..fe44aba92 --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_directml/qwen_tts_dml_890m_rp1_20260923.log @@ -0,0 +1,82 @@ +'\\wsl.localhost\Ubuntu\home\zhout\project\edge_infer' +CMD.EXE was started with the above path as the current directory. +UNC paths are not supported. Defaulting to Windows directory. +'sox' is not recognized as an internal or external command, +operable program or batch file. +SoX could not be found! + + If you do not have SoX, proceed here: + - - - http://sox.sourceforge.net/ - - - + + If you do (or think that you should) have SoX, double-check your + path variables. + +Setting `pad_token_id` to `eos_token_id`:2150 for open-end generation. +Traceback (most recent call last): + +******** +Warning: flash-attn is not installed. Will only run the manual PyTorch version. Please install flash-attn for faster inference. +******** + +{ + "scope": "standalone real-weight Qwen3-TTS DirectML feasibility; no Omni, streaming, or all-operator placement claim", + "platform": "Windows-11-10.0.26200-SP0", + "python": "3.12.10", + "torch": "2.4.1+cpu", + "torch_directml": "unknown", + "transformers": "4.57.3", + "adapters": [ + "NVIDIA GeForce RTX 5090 Laptop GPU", + "AMD Radeon(TM) 890M Graphics" + ], + "requested_index": 1, + "target_device": "privateuseone:1", + "model_dir": "C:\\Users\\zhout\\w2\\models\\Qwen3-TTS-0.6B-85e237c", + "talker_sha256": "bc3c7e785eb961179c25450d1acff03f839e0002f2f3a5aeb67b5735c0fa2adb", + "speech_tokenizer_sha256": "836b7b357f5ea43e889936a3709af68dfe3751881acefe4ecf0dbd30ba571258", + "dtype": "float16", + "attention": "sdpa", + "threads": 8, + "text": "Hello from the local computer.", + "speaker": "Ryan", + "max_new_tokens": 64, + "repetition_penalty_override": 1.0, + "seed": 42, + "status": "failed", + "cpu_load_s": 2.2846993000712246, + "phase": "generate", + "device_move_s": 1.2995686000213027, + "model_devices": [ + "privateuseone:1" + ], + "error_type": "UnicodeDecodeError", + "error": "'utf-8' codec can't decode byte 0xb2 in position 0: invalid start byte", + File "\\wsl.localhost\Ubuntu\home\zhout\project\edge_infer\vllm-omni-edge\benchmarks\edge_harness\experiments\probe_qwen_tts_directml.py", line 146, in + "traceback": "Traceback (most recent call last):\n File \"\\\\wsl.localhost\\Ubuntu\\home\\zhout\\project\\edge_infer\\vllm-omni-edge\\benchmarks\\edge_harness\\experiments\\probe_qwen_tts_directml.py\", line 106, in main\n wavs, sample_rate = model.generate_custom_voice(\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"C:\\Users\\zhout\\w2\\qwen_dml_venv\\Lib\\site-packages\\torch\\utils\\_contextlib.py\", line 116, in decorate_context\n return func(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^\n File \"C:\\Users\\zhout\\w2\\qwen_dml_venv\\Lib\\site-packages\\qwen_tts\\inference\\qwen3_tts_model.py\", line 829, in generate_custom_voice\n talker_codes_list, _ = self.model.generate(\n ^^^^^^^^^^^^^^^^^^^^\n File \"C:\\Users\\zhout\\w2\\qwen_dml_venv\\Lib\\site-packages\\torch\\utils\\_contextlib.py\", line 116, in decorate_context\n return func(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^\n File \"C:\\Users\\zhout\\w2\\qwen_dml_venv\\Lib\\site-packages\\qwen_tts\\core\\models\\modeling_qwen3_tts.py\", line 2272, in generate\n talker_result = self.talker.generate(\n ^^^^^^^^^^^^^^^^^^^^^\n File \"C:\\Users\\zhout\\w2\\qwen_dml_venv\\Lib\\site-packages\\torch\\utils\\_contextlib.py\", line 116, in decorate_context\n return func(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^\n File \"C:\\Users\\zhout\\w2\\qwen_dml_venv\\Lib\\site-packages\\transformers\\generation\\utils.py\", line 2564, in generate\n result = decoding_method(\n ^^^^^^^^^^^^^^^^\n File \"C:\\Users\\zhout\\w2\\qwen_dml_venv\\Lib\\site-packages\\transformers\\generation\\utils.py\", line 2838, in _sample\n input_ids = torch.cat([input_ids, next_tokens[:, None]], dim=-1)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nUnicodeDecodeError: 'utf-8' codec can't decode byte 0xb2 in position 0: invalid start byte\n" +} + main() + File "\\wsl.localhost\Ubuntu\home\zhout\project\edge_infer\vllm-omni-edge\benchmarks\edge_harness\experiments\probe_qwen_tts_directml.py", line 106, in main + wavs, sample_rate = model.generate_custom_voice( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\zhout\w2\qwen_dml_venv\Lib\site-packages\torch\utils\_contextlib.py", line 116, in decorate_context + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\zhout\w2\qwen_dml_venv\Lib\site-packages\qwen_tts\inference\qwen3_tts_model.py", line 829, in generate_custom_voice + talker_codes_list, _ = self.model.generate( + ^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\zhout\w2\qwen_dml_venv\Lib\site-packages\torch\utils\_contextlib.py", line 116, in decorate_context + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\zhout\w2\qwen_dml_venv\Lib\site-packages\qwen_tts\core\models\modeling_qwen3_tts.py", line 2272, in generate + talker_result = self.talker.generate( + ^^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\zhout\w2\qwen_dml_venv\Lib\site-packages\torch\utils\_contextlib.py", line 116, in decorate_context + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\zhout\w2\qwen_dml_venv\Lib\site-packages\transformers\generation\utils.py", line 2564, in generate + result = decoding_method( + ^^^^^^^^^^^^^^^^ + File "C:\Users\zhout\w2\qwen_dml_venv\Lib\site-packages\transformers\generation\utils.py", line 2838, in _sample + input_ids = torch.cat([input_ids, next_tokens[:, None]], dim=-1) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb2 in position 0: invalid start byte diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_directml/qwen_tts_dml_890m_rp1_trace_20260923.log b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_directml/qwen_tts_dml_890m_rp1_trace_20260923.log new file mode 100644 index 000000000..cee038500 --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_directml/qwen_tts_dml_890m_rp1_trace_20260923.log @@ -0,0 +1,86 @@ +'\\wsl.localhost\Ubuntu\home\zhout\project\edge_infer' +CMD.EXE was started with the above path as the current directory. +UNC paths are not supported. Defaulting to Windows directory. +'sox' is not recognized as an internal or external command, +operable program or batch file. +SoX could not be found! + + If you do not have SoX, proceed here: + - - - http://sox.sourceforge.net/ - - - + + If you do (or think that you should) have SoX, double-check your + path variables. + +Setting `pad_token_id` to `eos_token_id`:2150 for open-end generation. +CAT_FAILURE [('privateuseone:1', 'torch.int64', (1, 0)), ('privateuseone:1', 'torch.int64', (1, 1))] +Traceback (most recent call last): + File "\\wsl.localhost\Ubuntu\home\zhout\project\edge_infer\vllm-omni-edge\benchmarks\edge_harness\experiments\probe_qwen_tts_directml.py", line 163, in + +******** +Warning: flash-attn is not installed. Will only run the manual PyTorch version. Please install flash-attn for faster inference. +******** + +{ + "scope": "standalone real-weight Qwen3-TTS DirectML feasibility; no Omni, streaming, or all-operator placement claim", + "platform": "Windows-11-10.0.26200-SP0", + "python": "3.12.10", + "torch": "2.4.1+cpu", + "torch_directml": "unknown", + "transformers": "4.57.3", + "adapters": [ + "NVIDIA GeForce RTX 5090 Laptop GPU", + "AMD Radeon(TM) 890M Graphics" + ], + "requested_index": 1, + "target_device": "privateuseone:1", + "model_dir": "C:\\Users\\zhout\\w2\\models\\Qwen3-TTS-0.6B-85e237c", + "talker_sha256": "bc3c7e785eb961179c25450d1acff03f839e0002f2f3a5aeb67b5735c0fa2adb", + "speech_tokenizer_sha256": "836b7b357f5ea43e889936a3709af68dfe3751881acefe4ecf0dbd30ba571258", + "dtype": "float16", + "attention": "sdpa", + "threads": 8, + "text": "Hello from the local computer.", + "speaker": "Ryan", + "max_new_tokens": 64, + "repetition_penalty_override": 1.0, + "seed": 42, + "status": "failed", + "cpu_load_s": 1.9829754000529647, + "phase": "generate", + "device_move_s": 1.012216999894008, + "model_devices": [ + "privateuseone:1" + ], + "error_type": "UnicodeDecodeError", + "error": "'utf-8' codec can't decode byte 0xb2 in position 0: invalid start byte", + "traceback": "Traceback (most recent call last):\n File \"\\\\wsl.localhost\\Ubuntu\\home\\zhout\\project\\edge_infer\\vllm-omni-edge\\benchmarks\\edge_harness\\experiments\\probe_qwen_tts_directml.py\", line 123, in main\n wavs, sample_rate = model.generate_custom_voice(\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"C:\\Users\\zhout\\w2\\qwen_dml_venv\\Lib\\site-packages\\torch\\utils\\_contextlib.py\", line 116, in decorate_context\n return func(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^\n File \"C:\\Users\\zhout\\w2\\qwen_dml_venv\\Lib\\site-packages\\qwen_tts\\inference\\qwen3_tts_model.py\", line 829, in generate_custom_voice\n talker_codes_list, _ = self.model.generate(\n ^^^^^^^^^^^^^^^^^^^^\n File \"C:\\Users\\zhout\\w2\\qwen_dml_venv\\Lib\\site-packages\\torch\\utils\\_contextlib.py\", line 116, in decorate_context\n return func(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^\n File \"C:\\Users\\zhout\\w2\\qwen_dml_venv\\Lib\\site-packages\\qwen_tts\\core\\models\\modeling_qwen3_tts.py\", line 2272, in generate\n talker_result = self.talker.generate(\n ^^^^^^^^^^^^^^^^^^^^^\n File \"C:\\Users\\zhout\\w2\\qwen_dml_venv\\Lib\\site-packages\\torch\\utils\\_contextlib.py\", line 116, in decorate_context\n return func(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^\n File \"C:\\Users\\zhout\\w2\\qwen_dml_venv\\Lib\\site-packages\\transformers\\generation\\utils.py\", line 2564, in generate\n result = decoding_method(\n ^^^^^^^^^^^^^^^^\n File \"C:\\Users\\zhout\\w2\\qwen_dml_venv\\Lib\\site-packages\\transformers\\generation\\utils.py\", line 2838, in _sample\n input_ids = torch.cat([input_ids, next_tokens[:, None]], dim=-1)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"\\\\wsl.localhost\\Ubuntu\\home\\zhout\\project\\edge_infer\\vllm-omni-edge\\benchmarks\\edge_harness\\experiments\\probe_qwen_tts_directml.py\", line 108, in traced_cat\n return original_cat(tensors, *cat_args, **cat_kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nUnicodeDecodeError: 'utf-8' codec can't decode byte 0xb2 in position 0: invalid start byte\n" +} + main() + File "\\wsl.localhost\Ubuntu\home\zhout\project\edge_infer\vllm-omni-edge\benchmarks\edge_harness\experiments\probe_qwen_tts_directml.py", line 123, in main + wavs, sample_rate = model.generate_custom_voice( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\zhout\w2\qwen_dml_venv\Lib\site-packages\torch\utils\_contextlib.py", line 116, in decorate_context + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\zhout\w2\qwen_dml_venv\Lib\site-packages\qwen_tts\inference\qwen3_tts_model.py", line 829, in generate_custom_voice + talker_codes_list, _ = self.model.generate( + ^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\zhout\w2\qwen_dml_venv\Lib\site-packages\torch\utils\_contextlib.py", line 116, in decorate_context + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\zhout\w2\qwen_dml_venv\Lib\site-packages\qwen_tts\core\models\modeling_qwen3_tts.py", line 2272, in generate + talker_result = self.talker.generate( + ^^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\zhout\w2\qwen_dml_venv\Lib\site-packages\torch\utils\_contextlib.py", line 116, in decorate_context + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\zhout\w2\qwen_dml_venv\Lib\site-packages\transformers\generation\utils.py", line 2564, in generate + result = decoding_method( + ^^^^^^^^^^^^^^^^ + File "C:\Users\zhout\w2\qwen_dml_venv\Lib\site-packages\transformers\generation\utils.py", line 2838, in _sample + input_ids = torch.cat([input_ids, next_tokens[:, None]], dim=-1) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "\\wsl.localhost\Ubuntu\home\zhout\project\edge_infer\vllm-omni-edge\benchmarks\edge_harness\experiments\probe_qwen_tts_directml.py", line 108, in traced_cat + return original_cat(tensors, *cat_args, **cat_kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb2 in position 0: invalid start byte diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_directml/qwen_tts_dml_890m_workaround_20260923.json b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_directml/qwen_tts_dml_890m_workaround_20260923.json new file mode 100644 index 000000000..fc2d67b7e --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_directml/qwen_tts_dml_890m_workaround_20260923.json @@ -0,0 +1,36 @@ +{ + "scope": "standalone real-weight Qwen3-TTS DirectML feasibility; no Omni, streaming, or all-operator placement claim", + "platform": "Windows-11-10.0.26200-SP0", + "python": "3.12.10", + "torch": "2.4.1+cpu", + "torch_directml": "unknown", + "transformers": "4.57.3", + "adapters": [ + "NVIDIA GeForce RTX 5090 Laptop GPU", + "AMD Radeon(TM) 890M Graphics" + ], + "requested_index": 1, + "target_device": "privateuseone:1", + "model_dir": "C:\\Users\\zhout\\w2\\models\\Qwen3-TTS-0.6B-85e237c", + "talker_sha256": "bc3c7e785eb961179c25450d1acff03f839e0002f2f3a5aeb67b5735c0fa2adb", + "speech_tokenizer_sha256": "836b7b357f5ea43e889936a3709af68dfe3751881acefe4ecf0dbd30ba571258", + "dtype": "float16", + "attention": "sdpa", + "threads": 8, + "text": "Hello from the local computer.", + "speaker": "Ryan", + "max_new_tokens": 64, + "repetition_penalty_override": 1.0, + "workaround_empty_int64_cat": true, + "seed": 42, + "status": "failed", + "cpu_load_s": 2.1119523000670597, + "phase": "generate", + "device_move_s": 0.9917556999716908, + "model_devices": [ + "privateuseone:1" + ], + "error_type": "RuntimeError", + "error": "probability tensor contains either `inf`, `nan` or element < 0", + "traceback": "Traceback (most recent call last):\n File \"\\\\wsl.localhost\\Ubuntu\\home\\zhout\\project\\edge_infer\\vllm-omni-edge\\benchmarks\\edge_harness\\experiments\\probe_qwen_tts_directml.py\", line 142, in main\n wavs, sample_rate = model.generate_custom_voice(\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"C:\\Users\\zhout\\w2\\qwen_dml_venv\\Lib\\site-packages\\torch\\utils\\_contextlib.py\", line 116, in decorate_context\n return func(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^\n File \"C:\\Users\\zhout\\w2\\qwen_dml_venv\\Lib\\site-packages\\qwen_tts\\inference\\qwen3_tts_model.py\", line 829, in generate_custom_voice\n talker_codes_list, _ = self.model.generate(\n ^^^^^^^^^^^^^^^^^^^^\n File \"C:\\Users\\zhout\\w2\\qwen_dml_venv\\Lib\\site-packages\\torch\\utils\\_contextlib.py\", line 116, in decorate_context\n return func(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^\n File \"C:\\Users\\zhout\\w2\\qwen_dml_venv\\Lib\\site-packages\\qwen_tts\\core\\models\\modeling_qwen3_tts.py\", line 2272, in generate\n talker_result = self.talker.generate(\n ^^^^^^^^^^^^^^^^^^^^^\n File \"C:\\Users\\zhout\\w2\\qwen_dml_venv\\Lib\\site-packages\\torch\\utils\\_contextlib.py\", line 116, in decorate_context\n return func(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^\n File \"C:\\Users\\zhout\\w2\\qwen_dml_venv\\Lib\\site-packages\\transformers\\generation\\utils.py\", line 2564, in generate\n result = decoding_method(\n ^^^^^^^^^^^^^^^^\n File \"C:\\Users\\zhout\\w2\\qwen_dml_venv\\Lib\\site-packages\\transformers\\generation\\utils.py\", line 2787, in _sample\n outputs = model_forward(**model_inputs, return_dict=True)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"C:\\Users\\zhout\\w2\\qwen_dml_venv\\Lib\\site-packages\\torch\\nn\\modules\\module.py\", line 1553, in _wrapped_call_impl\n return self._call_impl(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"C:\\Users\\zhout\\w2\\qwen_dml_venv\\Lib\\site-packages\\torch\\nn\\modules\\module.py\", line 1562, in _call_impl\n return forward_call(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"C:\\Users\\zhout\\w2\\qwen_dml_venv\\Lib\\site-packages\\transformers\\utils\\generic.py\", line 918, in wrapper\n output = func(self, *args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"C:\\Users\\zhout\\w2\\qwen_dml_venv\\Lib\\site-packages\\qwen_tts\\core\\models\\modeling_qwen3_tts.py\", line 1671, in forward\n predictor_result = self.code_predictor.generate(\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"C:\\Users\\zhout\\w2\\qwen_dml_venv\\Lib\\site-packages\\torch\\utils\\_contextlib.py\", line 116, in decorate_context\n return func(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^\n File \"C:\\Users\\zhout\\w2\\qwen_dml_venv\\Lib\\site-packages\\transformers\\generation\\utils.py\", line 2564, in generate\n result = decoding_method(\n ^^^^^^^^^^^^^^^^\n File \"C:\\Users\\zhout\\w2\\qwen_dml_venv\\Lib\\site-packages\\transformers\\generation\\utils.py\", line 2829, in _sample\n next_tokens = torch.multinomial(probs, num_samples=1).squeeze(1)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nRuntimeError: probability tensor contains either `inf`, `nan` or element < 0\n" +} diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_directml/qwen_tts_dml_890m_workaround_20260923.log b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_directml/qwen_tts_dml_890m_workaround_20260923.log new file mode 100644 index 000000000..08076cd3b --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_directml/qwen_tts_dml_890m_workaround_20260923.log @@ -0,0 +1,105 @@ +'\\wsl.localhost\Ubuntu\home\zhout\project\edge_infer' +CMD.EXE was started with the above path as the current directory. +UNC paths are not supported. Defaulting to Windows directory. +'sox' is not recognized as an internal or external command, +operable program or batch file. +SoX could not be found! + + If you do not have SoX, proceed here: + - - - http://sox.sourceforge.net/ - - - + + If you do (or think that you should) have SoX, double-check your + path variables. + +Setting `pad_token_id` to `eos_token_id`:2150 for open-end generation. +EMPTY_INT64_CAT_IDENTITY +Traceback (most recent call last): + +******** +Warning: flash-attn is not installed. Will only run the manual PyTorch version. Please install flash-attn for faster inference. +******** + +{ + "scope": "standalone real-weight Qwen3-TTS DirectML feasibility; no Omni, streaming, or all-operator placement claim", + "platform": "Windows-11-10.0.26200-SP0", + "python": "3.12.10", + "torch": "2.4.1+cpu", + "torch_directml": "unknown", + "transformers": "4.57.3", + "adapters": [ + "NVIDIA GeForce RTX 5090 Laptop GPU", + "AMD Radeon(TM) 890M Graphics" + ], + "requested_index": 1, + "target_device": "privateuseone:1", + "model_dir": "C:\\Users\\zhout\\w2\\models\\Qwen3-TTS-0.6B-85e237c", + "talker_sha256": "bc3c7e785eb961179c25450d1acff03f839e0002f2f3a5aeb67b5735c0fa2adb", + "speech_tokenizer_sha256": "836b7b357f5ea43e889936a3709af68dfe3751881acefe4ecf0dbd30ba571258", + "dtype": "float16", + "attention": "sdpa", + "threads": 8, + "text": "Hello from the local computer.", + "speaker": "Ryan", + File "\\wsl.localhost\Ubuntu\home\zhout\project\edge_infer\vllm-omni-edge\benchmarks\edge_harness\experiments\probe_qwen_tts_directml.py", line 182, in + "max_new_tokens": 64, + "repetition_penalty_override": 1.0, + "workaround_empty_int64_cat": true, + "seed": 42, + "status": "failed", + "cpu_load_s": 2.1119523000670597, + "phase": "generate", + "device_move_s": 0.9917556999716908, + "model_devices": [ + "privateuseone:1" + ], + "error_type": "RuntimeError", + "error": "probability tensor contains either `inf`, `nan` or element < 0", + "traceback": "Traceback (most recent call last):\n File \"\\\\wsl.localhost\\Ubuntu\\home\\zhout\\project\\edge_infer\\vllm-omni-edge\\benchmarks\\edge_harness\\experiments\\probe_qwen_tts_directml.py\", line 142, in main\n wavs, sample_rate = model.generate_custom_voice(\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"C:\\Users\\zhout\\w2\\qwen_dml_venv\\Lib\\site-packages\\torch\\utils\\_contextlib.py\", line 116, in decorate_context\n return func(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^\n File \"C:\\Users\\zhout\\w2\\qwen_dml_venv\\Lib\\site-packages\\qwen_tts\\inference\\qwen3_tts_model.py\", line 829, in generate_custom_voice\n talker_codes_list, _ = self.model.generate(\n ^^^^^^^^^^^^^^^^^^^^\n File \"C:\\Users\\zhout\\w2\\qwen_dml_venv\\Lib\\site-packages\\torch\\utils\\_contextlib.py\", line 116, in decorate_context\n return func(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^\n File \"C:\\Users\\zhout\\w2\\qwen_dml_venv\\Lib\\site-packages\\qwen_tts\\core\\models\\modeling_qwen3_tts.py\", line 2272, in generate\n talker_result = self.talker.generate(\n ^^^^^^^^^^^^^^^^^^^^^\n File \"C:\\Users\\zhout\\w2\\qwen_dml_venv\\Lib\\site-packages\\torch\\utils\\_contextlib.py\", line 116, in decorate_context\n return func(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^\n File \"C:\\Users\\zhout\\w2\\qwen_dml_venv\\Lib\\site-packages\\transformers\\generation\\utils.py\", line 2564, in generate\n result = decoding_method(\n ^^^^^^^^^^^^^^^^\n File \"C:\\Users\\zhout\\w2\\qwen_dml_venv\\Lib\\site-packages\\transformers\\generation\\utils.py\", line 2787, in _sample\n outputs = model_forward(**model_inputs, return_dict=True)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"C:\\Users\\zhout\\w2\\qwen_dml_venv\\Lib\\site-packages\\torch\\nn\\modules\\module.py\", line 1553, in _wrapped_call_impl\n return self._call_impl(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"C:\\Users\\zhout\\w2\\qwen_dml_venv\\Lib\\site-packages\\torch\\nn\\modules\\module.py\", line 1562, in _call_impl\n return forward_call(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"C:\\Users\\zhout\\w2\\qwen_dml_venv\\Lib\\site-packages\\transformers\\utils\\generic.py\", line 918, in wrapper\n output = func(self, *args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"C:\\Users\\zhout\\w2\\qwen_dml_venv\\Lib\\site-packages\\qwen_tts\\core\\models\\modeling_qwen3_tts.py\", line 1671, in forward\n predictor_result = self.code_predictor.generate(\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"C:\\Users\\zhout\\w2\\qwen_dml_venv\\Lib\\site-packages\\torch\\utils\\_contextlib.py\", line 116, in decorate_context\n return func(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^\n File \"C:\\Users\\zhout\\w2\\qwen_dml_venv\\Lib\\site-packages\\transformers\\generation\\utils.py\", line 2564, in generate\n result = decoding_method(\n ^^^^^^^^^^^^^^^^\n File \"C:\\Users\\zhout\\w2\\qwen_dml_venv\\Lib\\site-packages\\transformers\\generation\\utils.py\", line 2829, in _sample\n next_tokens = torch.multinomial(probs, num_samples=1).squeeze(1)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nRuntimeError: probability tensor contains either `inf`, `nan` or element < 0\n" +} + main() + File "\\wsl.localhost\Ubuntu\home\zhout\project\edge_infer\vllm-omni-edge\benchmarks\edge_harness\experiments\probe_qwen_tts_directml.py", line 142, in main + wavs, sample_rate = model.generate_custom_voice( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\zhout\w2\qwen_dml_venv\Lib\site-packages\torch\utils\_contextlib.py", line 116, in decorate_context + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\zhout\w2\qwen_dml_venv\Lib\site-packages\qwen_tts\inference\qwen3_tts_model.py", line 829, in generate_custom_voice + talker_codes_list, _ = self.model.generate( + ^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\zhout\w2\qwen_dml_venv\Lib\site-packages\torch\utils\_contextlib.py", line 116, in decorate_context + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\zhout\w2\qwen_dml_venv\Lib\site-packages\qwen_tts\core\models\modeling_qwen3_tts.py", line 2272, in generate + talker_result = self.talker.generate( + ^^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\zhout\w2\qwen_dml_venv\Lib\site-packages\torch\utils\_contextlib.py", line 116, in decorate_context + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\zhout\w2\qwen_dml_venv\Lib\site-packages\transformers\generation\utils.py", line 2564, in generate + result = decoding_method( + ^^^^^^^^^^^^^^^^ + File "C:\Users\zhout\w2\qwen_dml_venv\Lib\site-packages\transformers\generation\utils.py", line 2787, in _sample + outputs = model_forward(**model_inputs, return_dict=True) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\zhout\w2\qwen_dml_venv\Lib\site-packages\torch\nn\modules\module.py", line 1553, in _wrapped_call_impl + return self._call_impl(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\zhout\w2\qwen_dml_venv\Lib\site-packages\torch\nn\modules\module.py", line 1562, in _call_impl + return forward_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\zhout\w2\qwen_dml_venv\Lib\site-packages\transformers\utils\generic.py", line 918, in wrapper + output = func(self, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\zhout\w2\qwen_dml_venv\Lib\site-packages\qwen_tts\core\models\modeling_qwen3_tts.py", line 1671, in forward + predictor_result = self.code_predictor.generate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\zhout\w2\qwen_dml_venv\Lib\site-packages\torch\utils\_contextlib.py", line 116, in decorate_context + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "C:\Users\zhout\w2\qwen_dml_venv\Lib\site-packages\transformers\generation\utils.py", line 2564, in generate + result = decoding_method( + ^^^^^^^^^^^^^^^^ + File "C:\Users\zhout\w2\qwen_dml_venv\Lib\site-packages\transformers\generation\utils.py", line 2829, in _sample + next_tokens = torch.multinomial(probs, num_samples=1).squeeze(1) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +RuntimeError: probability tensor contains either `inf`, `nan` or element < 0 diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_joint/.gitattributes b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_joint/.gitattributes new file mode 100644 index 000000000..b92f35321 --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_joint/.gitattributes @@ -0,0 +1,4 @@ +# Preserve native Windows raw records byte-for-byte. +*.json -text -eol +*.log -text -eol +*.wav binary diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_joint/.gitignore b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_joint/.gitignore new file mode 100644 index 000000000..794dd0235 --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_joint/.gitignore @@ -0,0 +1,3 @@ +# GGUF weights and runtime binaries stay in local model storage. +*.gguf +*.exe diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_joint/README.md b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_joint/README.md new file mode 100644 index 000000000..84a8bcd43 --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_joint/README.md @@ -0,0 +1,35 @@ +# Native Windows CPU + Radeon 890M Qwen3-TTS scoped whole-model path + +The 0.6B CustomVoice model completed two named English **text-to-WAV** requests in [CrispASR v0.8.35](https://github.com/CrispStrobe/CrispASR/releases/tag/v0.8.35), outside Omni. This is a **joint CPU+iGPU result**: the talker and codec were routed to Radeon 890M Vulkan, while the iterative code predictor was explicitly pinned to CPU FP32. It is not an all-Radeon pass or a CPU+iGPU+NPU pass. The [DirectML route failed quality](../qwen_tts_radeon890m_directml/README.md). Neither route establishes Omni streaming or release qualification. + +The host was Windows 11 build 26200 on Ryzen AI 9 HX 370 with Radeon 890M driver `32.0.22018.6001`; an RTX 5090 Laptop was also present. `GGML_VK_VISIBLE_DEVICES=1` exposed only the Radeon adapter, enumerated as `Vulkan0`; `-dev 1` selected the original physical adapter. The [first placement log](crisp_tts_radeon_cp_cpu_20260923.log) records `AMD Radeon(TM) 890M Graphics`, `using preferred GPU backend: Vulkan0`, `code_pred CPU-pinned (72 tensors, 432 MB, copy=f32)`, and `codec: GPU default - loading weights onto Vulkan0`. The [runtime's routing source](https://github.com/CrispStrobe/CrispASR/blob/v0.8.35/src/qwen3_tts.cpp) routes the talker off Vulkan unless `CRISPASR_QWEN3_TTS_VULKAN_NATIVE=1`; that override was set for the passing runs, and the CPU-talkback message was absent. This is placement evidence for the named runtime configuration, not a per-operator profiler trace. + +The runtime ZIP `crispasr-windows-x86_64-vulkan.zip` is 36,826,421 bytes, SHA256 `8c4f6483d3dad9ab4066f3853b48306e16e5b4010d1bf42054c81bf439166b3f`; its embedded build reports git `00c9e752` and CPU/Vulkan backends. The talker is the [Q8_0 GGUF conversion](https://huggingface.co/cstr/qwen3-tts-0.6b-customvoice-GGUF/tree/29094dcb46f19b0898616aa9aeb876aa9aa6e086), revision `29094dcb46f19b0898616aa9aeb876aa9aa6e086`, file SHA256 `5227dcbc4df7c5533341d111cc469fa491a48e722b23dd10f553181b52dff2d9` (967,980,192 bytes). The codec is the [F16 tokenizer GGUF](https://huggingface.co/cstr/qwen3-tts-tokenizer-12hz-GGUF/tree/344e279551177654762e5c7d39e217834325f222), revision `344e279551177654762e5c7d39e217834325f222`, SHA256 `70dc95dbfdd9aa5d9d406236ff771d061bf17b0cda02a72513953355606e719b` (358,453,280 bytes). The loader logged a 28-layer/1024-hidden talker, five-layer code predictor, 16 codebooks and 24 kHz mono output. These are quantized/converter artifacts, distinct from the original HF safetensors in the [CPU PyTorch record](../qwen_tts_native_cpu/README.md). The converter's source-checkpoint revision, calibration details and same-checkpoint numerical parity are not established by this record; the two ASR cases are only scoped task checks. Weights and binaries are local, not committed. + +| Workload / mode | Observed output | Timing and quality proxy | Raw record | +|---|---|---|---| +| “Hello from the local computer.”, Ryan, seed 42 | 32 frames, 2.56 s / 24 kHz mono WAV | CLI process wall 6.75 s including model load; runtime generation+codec 3.37 s. Separately pinned Whisper tiny.en transcribed the exact sentence (WER 0). | [placement/run log](crisp_tts_radeon_cp_cpu_20260923.log), [WAV](crisp_tts_radeon_cp_cpu_20260923.wav), [ASR report](crisp_tts_radeon_cp_cpu_asr_20260923.json) | +| “The blue car is parked beside the library.”, Ryan, seed 42 | 40 frames, 3.20 s / 24 kHz mono WAV | CLI process wall 7.17 s including model load; runtime generation+codec 4.03 s. Whisper tiny.en transcribed the exact sentence (WER 0). | [run log](crisp_tts_radeon_cp_cpu_second_20260923.log), [WAV](crisp_tts_radeon_cp_cpu_second_20260923.wav), [ASR report](crisp_tts_radeon_cp_cpu_second_asr_20260923.json) | +| Resident HTTP server, first sentence, seed 42 | 1 excluded warmup + 20 serial complete text-to-WAV requests; each had the same 2.56 s PCM audio | Nearest-rank client wall p50/p95 **3.310/3.345 s** (RTF 1.29/1.31). All 20 PCM SHA256 values matched; full WAV-container hashes varied. The saved profile WAV again transcribed exactly (WER 0). | [20-request profile and memory samples](crisp_tts_joint_profile20_pcm_20260923.json), [first measured WAV](crisp_tts_joint_profile20_pcm_20260923.wav), [ASR report](crisp_tts_joint_profile20_pcm_asr_20260923.json), [server log](crisp_tts_joint_server_20260923.stderr.log) | + +The server process was already loaded before the measured profile. Its 0.25 s samples during the profile observed at most 3,266,732,032 bytes working set and 4,398,071,808 bytes private, with host available RAM at least 26,836,635,648 bytes. These are **not** loading peaks, model-only unique RAM, or iGPU allocation measurements. The 20 measured requests used one repeated prompt at concurrency one; no playback stream, cancellation, broader speech-quality suite, concurrent admission, power mode or 30-minute thermal run was checked. Whisper tiny.en is an intelligibility proxy, not a perceptual or speaker-fidelity score. The measured RTF exceeds 1, so this does not meet M2's real-time playback gate. + +The safe default Vulkan CLI [fell back to CPU for the talker and codec](crisp_tts_radeon_20260923.log); its 7.20 s output must not be counted as a Radeon result. Forcing all Qwen TTS stages onto Vulkan with the [native override](crisp_tts_radeon_native_20260923.log) hit the 360-frame runaway cap without EOS, and [disabling flash attention](crisp_tts_radeon_no_fa_20260923.log) did not repair it; both output WAVs are retained but the runtime explicitly says to discard them. Pinning the code predictor to CPU FP32 yielded the two named passing outputs above. A separate [flash-attention-on diagnostic](crisp_tts_radeon_cp_cpu_fa_20260923.log) produced PCM identical to the first passing no-flash run, so the CPU predictor pin, not the flash-attention setting, was the decisive change in this case. General numerical parity and task quality remain unproven. The result should be integrated only as a bounded whole-session stage with explicit hybrid placement and memory admission, then compared with CPU and other backends on matched output and power conditions. + +Reproduce the first named CLI request in PowerShell after verifying the binary and GGUF hashes: + +```powershell +$env:GGML_VK_VISIBLE_DEVICES = '1' +$env:CRISPASR_QWEN3_TTS_VULKAN_NATIVE = '1' +$env:CRISPASR_QWEN3_TTS_CP_BACKEND = 'cpu-f32' +$bin = 'C:\Users\zhout\w2\crispasr-v0.8.35-vulkan\crispasr-windows-x86_64-vulkan\crispasr.exe' +$dir = 'C:\Users\zhout\w2\models\crisp_qwen3tts_0.6b' +& $bin --gpu-backend vulkan -dev 1 --no-flash-attn --verbose ` + --backend qwen3-tts-customvoice ` + -m "$dir\qwen3-tts-12hz-0.6b-customvoice-q8_0.gguf" ` + --codec-model "$dir\qwen3-tts-tokenizer-12hz.gguf" ` + --voice ryan --tts 'Hello from the local computer.' ` + --tts-output 'C:\Users\zhout\w2\qwen_joint.wav' -n 96 --seed 42 +``` + +For the resident profile, launch the same binary with `--server --host 127.0.0.1 --port 18175` in place of `--tts`/`--tts-output`, retaining the same environment and `--voice ryan`. Then run [profile_crisp_tts_http.py](../../../../experiments/profile_crisp_tts_http.py) with `--server-pid`, `--warmups 1`, `--repeats 20`, `--output-report` and `--output-wav`. The server uses its startup Ryan voice when the HTTP body omits `voice`; the log confirms the selected speaker. The server also auto-loaded an unrelated punctuation component during startup, before timing; this did not enter measured request wall time. Stop the server after profiling. diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_joint/crisp_tts_joint_profile20_20260923.json b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_joint/crisp_tts_joint_profile20_20260923.json new file mode 100644 index 000000000..813b63ac9 --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_joint/crisp_tts_joint_profile20_20260923.json @@ -0,0 +1,1637 @@ +{ + "scope": "complete serial HTTP text-to-WAV requests in one resident server; speech quality and placement assessed separately", + "endpoint": "http://127.0.0.1:18175/v1/audio/speech", + "text": "Hello from the local computer.", + "seed": 42, + "concurrency": 1, + "warmups": [ + { + "wall_s": 3.6790664000436664, + "sample_rate": 24000, + "frames": 61440, + "duration_s": 2.56, + "rms_pcm16_normalized": 0.07350303073970302, + "sha256": "e2c6a5512a8b85cf9ce381247ae9208b2cc3c02f0eb135dd9cc9619bd3f66c53", + "bytes": 124764 + } + ], + "measured": [ + { + "wall_s": 3.3347201000433415, + "sample_rate": 24000, + "frames": 61440, + "duration_s": 2.56, + "rms_pcm16_normalized": 0.07350303073970302, + "sha256": "e103090891d1597be8b5d17ab5f1a2140ed8161e03f6f539bd8457fb54997b57", + "bytes": 124764 + }, + { + "wall_s": 3.293467800016515, + "sample_rate": 24000, + "frames": 61440, + "duration_s": 2.56, + "rms_pcm16_normalized": 0.07350303073970302, + "sha256": "cac20ecc5073e3332a8f53337bfe003b7d2de4d4523b5be0333a20e343b888c8", + "bytes": 124764 + }, + { + "wall_s": 3.2923057000152767, + "sample_rate": 24000, + "frames": 61440, + "duration_s": 2.56, + "rms_pcm16_normalized": 0.07350303073970302, + "sha256": "3d939c02303eb648940ddf1ef73b55f3cd37c363fbdb9f94191aabc2c0d6952e", + "bytes": 124764 + }, + { + "wall_s": 3.310097199981101, + "sample_rate": 24000, + "frames": 61440, + "duration_s": 2.56, + "rms_pcm16_normalized": 0.07350303073970302, + "sha256": "2165b70ba952acea6f9c7db892bd4a58c8de7f2600821c1d6178c3c2ca5d729d", + "bytes": 124764 + }, + { + "wall_s": 3.3224514999892563, + "sample_rate": 24000, + "frames": 61440, + "duration_s": 2.56, + "rms_pcm16_normalized": 0.07350303073970302, + "sha256": "ab7e8d3bed83bb1f9aa2dbdd7b0ab31cbd63f96ed0e5e214b8238ebe54ec10a1", + "bytes": 124764 + }, + { + "wall_s": 3.306270500062965, + "sample_rate": 24000, + "frames": 61440, + "duration_s": 2.56, + "rms_pcm16_normalized": 0.07350303073970302, + "sha256": "aa14716477254e407dd7af2f393ca04013a1b3cf16bceaf72e91849e88bca11d", + "bytes": 124764 + }, + { + "wall_s": 3.3267820000182837, + "sample_rate": 24000, + "frames": 61440, + "duration_s": 2.56, + "rms_pcm16_normalized": 0.07350303073970302, + "sha256": "58bd5848912071aff3de66b18ca3a8d8bd5d3db7bbec67c593f35fdaf5b1414d", + "bytes": 124764 + }, + { + "wall_s": 3.298969900002703, + "sample_rate": 24000, + "frames": 61440, + "duration_s": 2.56, + "rms_pcm16_normalized": 0.07350303073970302, + "sha256": "649a0010d7c46b9a2cff8202d3474b9262acaaffa469c2fe4d062beb06cc2081", + "bytes": 124764 + }, + { + "wall_s": 3.3295091000618413, + "sample_rate": 24000, + "frames": 61440, + "duration_s": 2.56, + "rms_pcm16_normalized": 0.07350303073970302, + "sha256": "2b4cea16aa0578bb09b88a4602a36771206e4fd2818805957124161f1b617e5e", + "bytes": 124764 + }, + { + "wall_s": 3.316796600003727, + "sample_rate": 24000, + "frames": 61440, + "duration_s": 2.56, + "rms_pcm16_normalized": 0.07350303073970302, + "sha256": "7e54d562035b4746ce985ccd604d3ecababddb892652f097d1accd5c4d7fae81", + "bytes": 124764 + }, + { + "wall_s": 3.3100590999238193, + "sample_rate": 24000, + "frames": 61440, + "duration_s": 2.56, + "rms_pcm16_normalized": 0.07350303073970302, + "sha256": "179b0dc5300eae03944ee393479d53d66c1b1f8374898f8c7f39a3630cd63771", + "bytes": 124764 + }, + { + "wall_s": 3.302730399998836, + "sample_rate": 24000, + "frames": 61440, + "duration_s": 2.56, + "rms_pcm16_normalized": 0.07350303073970302, + "sha256": "5dc6d9f06e8305ab05cf2cbefb40d59123dd1a7c0935f7e43e8f7af4192be8a7", + "bytes": 124764 + }, + { + "wall_s": 3.3318301999242976, + "sample_rate": 24000, + "frames": 61440, + "duration_s": 2.56, + "rms_pcm16_normalized": 0.07350303073970302, + "sha256": "5dfc167a86f31a03db6e07fe417fff5f375f29299b6ba55d949de0eb59027670", + "bytes": 124764 + }, + { + "wall_s": 3.2201581000117585, + "sample_rate": 24000, + "frames": 61440, + "duration_s": 2.56, + "rms_pcm16_normalized": 0.07350303073970302, + "sha256": "0a396977329fa4d3bfb4cc5f55d4fcb5b8f227900955425fae116cd0afe68afb", + "bytes": 124764 + }, + { + "wall_s": 3.316910700057633, + "sample_rate": 24000, + "frames": 61440, + "duration_s": 2.56, + "rms_pcm16_normalized": 0.07350303073970302, + "sha256": "85ff27224e8bc3c725403f82fac677472aec5312f10e7302ed833ae3e89e312d", + "bytes": 124764 + }, + { + "wall_s": 3.3100097000133246, + "sample_rate": 24000, + "frames": 61440, + "duration_s": 2.56, + "rms_pcm16_normalized": 0.07350303073970302, + "sha256": "39e5830d7cd663de72f4e047b8007ef1a8660162f1dc2b9a313cdf2304133be1", + "bytes": 124764 + }, + { + "wall_s": 3.3356197000248358, + "sample_rate": 24000, + "frames": 61440, + "duration_s": 2.56, + "rms_pcm16_normalized": 0.07350303073970302, + "sha256": "cc2235b444905592de71f68681f1324708489cdf3c15568bf413dc4c2eee7de0", + "bytes": 124764 + }, + { + "wall_s": 3.300931900041178, + "sample_rate": 24000, + "frames": 61440, + "duration_s": 2.56, + "rms_pcm16_normalized": 0.07350303073970302, + "sha256": "205f94da437cf7a73a41db8c98729c47d1ace7672854221e4415fa4b10a61701", + "bytes": 124764 + }, + { + "wall_s": 3.30747420003172, + "sample_rate": 24000, + "frames": 61440, + "duration_s": 2.56, + "rms_pcm16_normalized": 0.07350303073970302, + "sha256": "281f4d232008d7a4038c51b42e2f1ee3e92374af2d2cca23e0d6a74c0f87b463", + "bytes": 124764 + }, + { + "wall_s": 3.3287771999603137, + "sample_rate": 24000, + "frames": 61440, + "duration_s": 2.56, + "rms_pcm16_normalized": 0.07350303073970302, + "sha256": "108a554db2069e2a1fff93b129b80e8c0b20ad6d3fd05aeff590528b0ed1f797", + "bytes": 124764 + } + ], + "nearest_rank_p50_wall_s": 3.3100590999238193, + "nearest_rank_p95_wall_s": 3.3347201000433415, + "all_same_wav_sha256": false, + "server_pid": 59628, + "memory_samples": [ + { + "unix": 1790164155.2007165, + "working_set_bytes": 2748018688, + "private_bytes": 3670786048, + "host_available_bytes": 27457634304 + }, + { + "unix": 1790164155.4739187, + "working_set_bytes": 2748035072, + "private_bytes": 3670802432, + "host_available_bytes": 27450707968 + }, + { + "unix": 1790164155.7743623, + "working_set_bytes": 2748153856, + "private_bytes": 3671724032, + "host_available_bytes": 27410255872 + }, + { + "unix": 1790164156.069949, + "working_set_bytes": 2748166144, + "private_bytes": 3671724032, + "host_available_bytes": 27407450112 + }, + { + "unix": 1790164156.3696125, + "working_set_bytes": 2748174336, + "private_bytes": 3671724032, + "host_available_bytes": 27410550784 + }, + { + "unix": 1790164156.6651816, + "working_set_bytes": 2748174336, + "private_bytes": 3671724032, + "host_available_bytes": 27412258816 + }, + { + "unix": 1790164156.9575057, + "working_set_bytes": 2748174336, + "private_bytes": 3671724032, + "host_available_bytes": 27411636224 + }, + { + "unix": 1790164157.2393131, + "working_set_bytes": 2748174336, + "private_bytes": 3671724032, + "host_available_bytes": 27406606336 + }, + { + "unix": 1790164157.522908, + "working_set_bytes": 2748174336, + "private_bytes": 3671724032, + "host_available_bytes": 27411214336 + }, + { + "unix": 1790164157.807551, + "working_set_bytes": 2748174336, + "private_bytes": 3671724032, + "host_available_bytes": 27413180416 + }, + { + "unix": 1790164158.088108, + "working_set_bytes": 2748174336, + "private_bytes": 3671724032, + "host_available_bytes": 27420618752 + }, + { + "unix": 1790164158.3677576, + "working_set_bytes": 2748174336, + "private_bytes": 3671724032, + "host_available_bytes": 27426185216 + }, + { + "unix": 1790164158.6493344, + "working_set_bytes": 2748174336, + "private_bytes": 3671724032, + "host_available_bytes": 27426504704 + }, + { + "unix": 1790164158.9266214, + "working_set_bytes": 3000512512, + "private_bytes": 3924692992, + "host_available_bytes": 27174141952 + }, + { + "unix": 1790164159.2129197, + "working_set_bytes": 3000737792, + "private_bytes": 3925430272, + "host_available_bytes": 27171352576 + }, + { + "unix": 1790164159.5122492, + "working_set_bytes": 3000750080, + "private_bytes": 3925442560, + "host_available_bytes": 27163119616 + }, + { + "unix": 1790164159.8098469, + "working_set_bytes": 3000758272, + "private_bytes": 3925454848, + "host_available_bytes": 27159740416 + }, + { + "unix": 1790164160.1060774, + "working_set_bytes": 3000758272, + "private_bytes": 3925467136, + "host_available_bytes": 27161608192 + }, + { + "unix": 1790164160.401832, + "working_set_bytes": 3000758272, + "private_bytes": 3925479424, + "host_available_bytes": 27160195072 + }, + { + "unix": 1790164160.691925, + "working_set_bytes": 3000758272, + "private_bytes": 3925491712, + "host_available_bytes": 27161300992 + }, + { + "unix": 1790164160.9844885, + "working_set_bytes": 3000758272, + "private_bytes": 3925504000, + "host_available_bytes": 27157409792 + }, + { + "unix": 1790164161.269579, + "working_set_bytes": 3000758272, + "private_bytes": 3925516288, + "host_available_bytes": 27157528576 + }, + { + "unix": 1790164161.56699, + "working_set_bytes": 3000758272, + "private_bytes": 3925528576, + "host_available_bytes": 27159412736 + }, + { + "unix": 1790164161.8570797, + "working_set_bytes": 3000758272, + "private_bytes": 3925385216, + "host_available_bytes": 27163934720 + }, + { + "unix": 1790164162.1534743, + "working_set_bytes": 3252621312, + "private_bytes": 4383059968, + "host_available_bytes": 26911956992 + }, + { + "unix": 1790164162.4406312, + "working_set_bytes": 3253166080, + "private_bytes": 4178870272, + "host_available_bytes": 26911522816 + }, + { + "unix": 1790164162.7256935, + "working_set_bytes": 3253166080, + "private_bytes": 4178870272, + "host_available_bytes": 26911449088 + }, + { + "unix": 1790164163.0107403, + "working_set_bytes": 3253178368, + "private_bytes": 4178870272, + "host_available_bytes": 26913669120 + }, + { + "unix": 1790164163.3050466, + "working_set_bytes": 3253182464, + "private_bytes": 4178870272, + "host_available_bytes": 26912718848 + }, + { + "unix": 1790164163.5933292, + "working_set_bytes": 3253182464, + "private_bytes": 4178870272, + "host_available_bytes": 26911195136 + }, + { + "unix": 1790164163.8794248, + "working_set_bytes": 3253182464, + "private_bytes": 4178870272, + "host_available_bytes": 26915680256 + }, + { + "unix": 1790164164.1755917, + "working_set_bytes": 3253182464, + "private_bytes": 4178870272, + "host_available_bytes": 26916225024 + }, + { + "unix": 1790164164.4623196, + "working_set_bytes": 3253182464, + "private_bytes": 4178870272, + "host_available_bytes": 26915889152 + }, + { + "unix": 1790164164.7609785, + "working_set_bytes": 3253182464, + "private_bytes": 4178870272, + "host_available_bytes": 26916286464 + }, + { + "unix": 1790164165.0432773, + "working_set_bytes": 3001372672, + "private_bytes": 3926568960, + "host_available_bytes": 27167145984 + }, + { + "unix": 1790164165.3213863, + "working_set_bytes": 3001376768, + "private_bytes": 3926147072, + "host_available_bytes": 26908471296 + }, + { + "unix": 1790164165.613151, + "working_set_bytes": 3254038528, + "private_bytes": 4179881984, + "host_available_bytes": 26879336448 + }, + { + "unix": 1790164165.908826, + "working_set_bytes": 3254050816, + "private_bytes": 4179881984, + "host_available_bytes": 26855149568 + }, + { + "unix": 1790164166.2075691, + "working_set_bytes": 3254059008, + "private_bytes": 4179881984, + "host_available_bytes": 26849370112 + }, + { + "unix": 1790164166.5157046, + "working_set_bytes": 3254059008, + "private_bytes": 4179881984, + "host_available_bytes": 26836168704 + }, + { + "unix": 1790164166.80805, + "working_set_bytes": 3254059008, + "private_bytes": 4179881984, + "host_available_bytes": 26847895552 + }, + { + "unix": 1790164167.1086195, + "working_set_bytes": 3254059008, + "private_bytes": 4179881984, + "host_available_bytes": 26848845824 + }, + { + "unix": 1790164167.4058251, + "working_set_bytes": 3254059008, + "private_bytes": 4179881984, + "host_available_bytes": 26849251328 + }, + { + "unix": 1790164167.6919212, + "working_set_bytes": 3254059008, + "private_bytes": 4179881984, + "host_available_bytes": 26849603584 + }, + { + "unix": 1790164167.9890947, + "working_set_bytes": 3254059008, + "private_bytes": 4179881984, + "host_available_bytes": 26851278848 + }, + { + "unix": 1790164168.275178, + "working_set_bytes": 3254059008, + "private_bytes": 4179881984, + "host_available_bytes": 26852364288 + }, + { + "unix": 1790164168.5717483, + "working_set_bytes": 3002249216, + "private_bytes": 3927580672, + "host_available_bytes": 27103518720 + }, + { + "unix": 1790164168.8687406, + "working_set_bytes": 3254571008, + "private_bytes": 4180348928, + "host_available_bytes": 26851368960 + }, + { + "unix": 1790164169.1660392, + "working_set_bytes": 3254677504, + "private_bytes": 4180475904, + "host_available_bytes": 26877865984 + }, + { + "unix": 1790164169.4621286, + "working_set_bytes": 3254681600, + "private_bytes": 4180475904, + "host_available_bytes": 26875760640 + }, + { + "unix": 1790164169.7480805, + "working_set_bytes": 3254685696, + "private_bytes": 4180475904, + "host_available_bytes": 26876510208 + }, + { + "unix": 1790164170.03665, + "working_set_bytes": 3254685696, + "private_bytes": 4180475904, + "host_available_bytes": 26877063168 + }, + { + "unix": 1790164170.3357434, + "working_set_bytes": 3254685696, + "private_bytes": 4180475904, + "host_available_bytes": 26875150336 + }, + { + "unix": 1790164170.6313012, + "working_set_bytes": 3254685696, + "private_bytes": 4180475904, + "host_available_bytes": 26878054400 + }, + { + "unix": 1790164170.917646, + "working_set_bytes": 3254685696, + "private_bytes": 4180475904, + "host_available_bytes": 26879377408 + }, + { + "unix": 1790164171.2157319, + "working_set_bytes": 3254685696, + "private_bytes": 4180475904, + "host_available_bytes": 26880925696 + }, + { + "unix": 1790164171.5019863, + "working_set_bytes": 3254685696, + "private_bytes": 4180475904, + "host_available_bytes": 26875121664 + }, + { + "unix": 1790164171.7971766, + "working_set_bytes": 3002875904, + "private_bytes": 3928170496, + "host_available_bytes": 27122491392 + }, + { + "unix": 1790164172.105808, + "working_set_bytes": 3254722560, + "private_bytes": 4385398784, + "host_available_bytes": 26872467456 + }, + { + "unix": 1790164172.3931065, + "working_set_bytes": 3255463936, + "private_bytes": 4181282816, + "host_available_bytes": 26876452864 + }, + { + "unix": 1790164172.69376, + "working_set_bytes": 3255472128, + "private_bytes": 4181282816, + "host_available_bytes": 26875043840 + }, + { + "unix": 1790164172.9867046, + "working_set_bytes": 3255472128, + "private_bytes": 4181282816, + "host_available_bytes": 26874265600 + }, + { + "unix": 1790164173.2817845, + "working_set_bytes": 3255472128, + "private_bytes": 4181282816, + "host_available_bytes": 26873942016 + }, + { + "unix": 1790164173.5653422, + "working_set_bytes": 3255472128, + "private_bytes": 4181282816, + "host_available_bytes": 26874966016 + }, + { + "unix": 1790164173.8602233, + "working_set_bytes": 3255472128, + "private_bytes": 4181282816, + "host_available_bytes": 26892615680 + }, + { + "unix": 1790164174.1588812, + "working_set_bytes": 3255472128, + "private_bytes": 4181282816, + "host_available_bytes": 26891120640 + }, + { + "unix": 1790164174.464963, + "working_set_bytes": 3255472128, + "private_bytes": 4181282816, + "host_available_bytes": 26883493888 + }, + { + "unix": 1790164174.7493167, + "working_set_bytes": 3255472128, + "private_bytes": 4181282816, + "host_available_bytes": 26890297344 + }, + { + "unix": 1790164175.0445783, + "working_set_bytes": 3003662336, + "private_bytes": 3928981504, + "host_available_bytes": 27146641408 + }, + { + "unix": 1790164175.348653, + "working_set_bytes": 3255508992, + "private_bytes": 4386213888, + "host_available_bytes": 26898735104 + }, + { + "unix": 1790164175.640906, + "working_set_bytes": 3256258560, + "private_bytes": 4182102016, + "host_available_bytes": 26903457792 + }, + { + "unix": 1790164175.9254766, + "working_set_bytes": 3256266752, + "private_bytes": 4182102016, + "host_available_bytes": 26902216704 + }, + { + "unix": 1790164176.2240233, + "working_set_bytes": 3256274944, + "private_bytes": 4182102016, + "host_available_bytes": 26902228992 + }, + { + "unix": 1790164176.523335, + "working_set_bytes": 3256274944, + "private_bytes": 4182102016, + "host_available_bytes": 26910674944 + }, + { + "unix": 1790164176.816969, + "working_set_bytes": 3256274944, + "private_bytes": 4182102016, + "host_available_bytes": 26908839936 + }, + { + "unix": 1790164177.1055264, + "working_set_bytes": 3256274944, + "private_bytes": 4182102016, + "host_available_bytes": 26908889088 + }, + { + "unix": 1790164177.4006171, + "working_set_bytes": 3256274944, + "private_bytes": 4182102016, + "host_available_bytes": 26909069312 + }, + { + "unix": 1790164177.6942067, + "working_set_bytes": 3256274944, + "private_bytes": 4182102016, + "host_available_bytes": 26903687168 + }, + { + "unix": 1790164177.9892654, + "working_set_bytes": 3256274944, + "private_bytes": 4182102016, + "host_available_bytes": 26902798336 + }, + { + "unix": 1790164178.2873588, + "working_set_bytes": 3004465152, + "private_bytes": 3929800704, + "host_available_bytes": 27153940480 + }, + { + "unix": 1790164178.591872, + "working_set_bytes": 3256307712, + "private_bytes": 4387028992, + "host_available_bytes": 26899644416 + }, + { + "unix": 1790164178.8831663, + "working_set_bytes": 3256832000, + "private_bytes": 4182663168, + "host_available_bytes": 26898464768 + }, + { + "unix": 1790164179.166566, + "working_set_bytes": 3256832000, + "private_bytes": 4182663168, + "host_available_bytes": 26898518016 + }, + { + "unix": 1790164179.4682329, + "working_set_bytes": 3256832000, + "private_bytes": 4182663168, + "host_available_bytes": 26899628032 + }, + { + "unix": 1790164179.7693071, + "working_set_bytes": 3256836096, + "private_bytes": 4182663168, + "host_available_bytes": 26900234240 + }, + { + "unix": 1790164180.0628624, + "working_set_bytes": 3256836096, + "private_bytes": 4182663168, + "host_available_bytes": 26898898944 + }, + { + "unix": 1790164180.360196, + "working_set_bytes": 3256836096, + "private_bytes": 4182663168, + "host_available_bytes": 26899038208 + }, + { + "unix": 1790164180.6527755, + "working_set_bytes": 3256836096, + "private_bytes": 4182663168, + "host_available_bytes": 26897526784 + }, + { + "unix": 1790164180.945177, + "working_set_bytes": 3256836096, + "private_bytes": 4182663168, + "host_available_bytes": 26899312640 + }, + { + "unix": 1790164181.2432532, + "working_set_bytes": 3256836096, + "private_bytes": 4182663168, + "host_available_bytes": 26901757952 + }, + { + "unix": 1790164181.5263078, + "working_set_bytes": 3256836096, + "private_bytes": 4182663168, + "host_available_bytes": 26933673984 + }, + { + "unix": 1790164181.8077853, + "working_set_bytes": 3005026304, + "private_bytes": 3929935872, + "host_available_bytes": 27148124160 + }, + { + "unix": 1790164182.087953, + "working_set_bytes": 3257331712, + "private_bytes": 4182736896, + "host_available_bytes": 26896633856 + }, + { + "unix": 1790164182.3746583, + "working_set_bytes": 3257602048, + "private_bytes": 4183474176, + "host_available_bytes": 26895425536 + }, + { + "unix": 1790164182.674753, + "working_set_bytes": 3257606144, + "private_bytes": 4183474176, + "host_available_bytes": 26896605184 + }, + { + "unix": 1790164182.9733756, + "working_set_bytes": 3257610240, + "private_bytes": 4183474176, + "host_available_bytes": 26895585280 + }, + { + "unix": 1790164183.2724218, + "working_set_bytes": 3257610240, + "private_bytes": 4183474176, + "host_available_bytes": 26896637952 + }, + { + "unix": 1790164183.5679877, + "working_set_bytes": 3257610240, + "private_bytes": 4183474176, + "host_available_bytes": 26895941632 + }, + { + "unix": 1790164183.8672478, + "working_set_bytes": 3257610240, + "private_bytes": 4183474176, + "host_available_bytes": 26896134144 + }, + { + "unix": 1790164184.1508224, + "working_set_bytes": 3257610240, + "private_bytes": 4183474176, + "host_available_bytes": 26897108992 + }, + { + "unix": 1790164184.4495454, + "working_set_bytes": 3257610240, + "private_bytes": 4183474176, + "host_available_bytes": 26897543168 + }, + { + "unix": 1790164184.734112, + "working_set_bytes": 3257610240, + "private_bytes": 4183474176, + "host_available_bytes": 26896564224 + }, + { + "unix": 1790164185.0326772, + "working_set_bytes": 3005800448, + "private_bytes": 3931172864, + "host_available_bytes": 27145973760 + }, + { + "unix": 1790164185.3410692, + "working_set_bytes": 3257647104, + "private_bytes": 4388405248, + "host_available_bytes": 26890444800 + }, + { + "unix": 1790164185.6401036, + "working_set_bytes": 3258290176, + "private_bytes": 4184289280, + "host_available_bytes": 26886397952 + }, + { + "unix": 1790164185.9380786, + "working_set_bytes": 3258290176, + "private_bytes": 4184289280, + "host_available_bytes": 26892128256 + }, + { + "unix": 1790164186.2326686, + "working_set_bytes": 3258290176, + "private_bytes": 4184289280, + "host_available_bytes": 26890797056 + }, + { + "unix": 1790164186.5192301, + "working_set_bytes": 3258290176, + "private_bytes": 4184289280, + "host_available_bytes": 26890362880 + }, + { + "unix": 1790164186.8197203, + "working_set_bytes": 3258290176, + "private_bytes": 4184289280, + "host_available_bytes": 26894213120 + }, + { + "unix": 1790164187.1171184, + "working_set_bytes": 3258290176, + "private_bytes": 4184289280, + "host_available_bytes": 26891653120 + }, + { + "unix": 1790164187.4161124, + "working_set_bytes": 3258290176, + "private_bytes": 4184289280, + "host_available_bytes": 26887929856 + }, + { + "unix": 1790164187.7135482, + "working_set_bytes": 3258290176, + "private_bytes": 4184289280, + "host_available_bytes": 26874327040 + }, + { + "unix": 1790164188.0115876, + "working_set_bytes": 3258290176, + "private_bytes": 4184289280, + "host_available_bytes": 26872655872 + }, + { + "unix": 1790164188.302682, + "working_set_bytes": 3006480384, + "private_bytes": 3931987968, + "host_available_bytes": 27123494912 + }, + { + "unix": 1790164188.6114671, + "working_set_bytes": 3258335232, + "private_bytes": 4389220352, + "host_available_bytes": 26870599680 + }, + { + "unix": 1790164188.899916, + "working_set_bytes": 3258982400, + "private_bytes": 4184915968, + "host_available_bytes": 26878078976 + }, + { + "unix": 1790164189.200405, + "working_set_bytes": 3258990592, + "private_bytes": 4184915968, + "host_available_bytes": 26876895232 + }, + { + "unix": 1790164189.4996092, + "working_set_bytes": 3258990592, + "private_bytes": 4184915968, + "host_available_bytes": 26877333504 + }, + { + "unix": 1790164189.7842011, + "working_set_bytes": 3258990592, + "private_bytes": 4184915968, + "host_available_bytes": 26877497344 + }, + { + "unix": 1790164190.081583, + "working_set_bytes": 3258990592, + "private_bytes": 4184915968, + "host_available_bytes": 26879557632 + }, + { + "unix": 1790164190.3694348, + "working_set_bytes": 3258990592, + "private_bytes": 4184915968, + "host_available_bytes": 26876465152 + }, + { + "unix": 1790164190.6619895, + "working_set_bytes": 3258990592, + "private_bytes": 4184915968, + "host_available_bytes": 26854662144 + }, + { + "unix": 1790164190.9665024, + "working_set_bytes": 3258990592, + "private_bytes": 4184915968, + "host_available_bytes": 26852798464 + }, + { + "unix": 1790164191.2653666, + "working_set_bytes": 3258990592, + "private_bytes": 4184915968, + "host_available_bytes": 26852454400 + }, + { + "unix": 1790164191.5630324, + "working_set_bytes": 3007180800, + "private_bytes": 3932614656, + "host_available_bytes": 27102539776 + }, + { + "unix": 1790164191.8563046, + "working_set_bytes": 3079643136, + "private_bytes": 4390273024, + "host_available_bytes": 26849939456 + }, + { + "unix": 1790164192.1435592, + "working_set_bytes": 3259715584, + "private_bytes": 4185919488, + "host_available_bytes": 26840961024 + }, + { + "unix": 1790164192.4381163, + "working_set_bytes": 3259768832, + "private_bytes": 4185919488, + "host_available_bytes": 26839453696 + }, + { + "unix": 1790164192.7225635, + "working_set_bytes": 3259772928, + "private_bytes": 4185919488, + "host_available_bytes": 26844336128 + }, + { + "unix": 1790164193.0251276, + "working_set_bytes": 3259772928, + "private_bytes": 4185919488, + "host_available_bytes": 26844839936 + }, + { + "unix": 1790164193.3226054, + "working_set_bytes": 3259772928, + "private_bytes": 4185919488, + "host_available_bytes": 26845536256 + }, + { + "unix": 1790164193.6201622, + "working_set_bytes": 3259772928, + "private_bytes": 4185919488, + "host_available_bytes": 26847670272 + }, + { + "unix": 1790164193.92027, + "working_set_bytes": 3259772928, + "private_bytes": 4185919488, + "host_available_bytes": 26848571392 + }, + { + "unix": 1790164194.2193508, + "working_set_bytes": 3259772928, + "private_bytes": 4185919488, + "host_available_bytes": 26850062336 + }, + { + "unix": 1790164194.5169249, + "working_set_bytes": 3259772928, + "private_bytes": 4185919488, + "host_available_bytes": 26849857536 + }, + { + "unix": 1790164194.8146455, + "working_set_bytes": 3007963136, + "private_bytes": 3933618176, + "host_available_bytes": 27101802496 + }, + { + "unix": 1790164195.1049554, + "working_set_bytes": 3007963136, + "private_bytes": 3933454336, + "host_available_bytes": 27092410368 + }, + { + "unix": 1790164195.404299, + "working_set_bytes": 3260211200, + "private_bytes": 4186275840, + "host_available_bytes": 26838200320 + }, + { + "unix": 1790164195.6975598, + "working_set_bytes": 3260272640, + "private_bytes": 4186972160, + "host_available_bytes": 26845757440 + }, + { + "unix": 1790164195.9963455, + "working_set_bytes": 3260272640, + "private_bytes": 4186972160, + "host_available_bytes": 26861461504 + }, + { + "unix": 1790164196.2913575, + "working_set_bytes": 3260276736, + "private_bytes": 4186972160, + "host_available_bytes": 26864627712 + }, + { + "unix": 1790164196.5889425, + "working_set_bytes": 3260276736, + "private_bytes": 4186972160, + "host_available_bytes": 26864787456 + }, + { + "unix": 1790164196.8857348, + "working_set_bytes": 3260276736, + "private_bytes": 4186972160, + "host_available_bytes": 26864840704 + }, + { + "unix": 1790164197.170828, + "working_set_bytes": 3260276736, + "private_bytes": 4186972160, + "host_available_bytes": 26864754688 + }, + { + "unix": 1790164197.4600306, + "working_set_bytes": 3260276736, + "private_bytes": 4186972160, + "host_available_bytes": 26865332224 + }, + { + "unix": 1790164197.7559915, + "working_set_bytes": 3260276736, + "private_bytes": 4186972160, + "host_available_bytes": 26887778304 + }, + { + "unix": 1790164198.0473177, + "working_set_bytes": 3008466944, + "private_bytes": 3934670848, + "host_available_bytes": 27116494848 + }, + { + "unix": 1790164198.3449557, + "working_set_bytes": 3008466944, + "private_bytes": 3934670848, + "host_available_bytes": 27119779840 + }, + { + "unix": 1790164198.6516414, + "working_set_bytes": 3260313600, + "private_bytes": 4392329216, + "host_available_bytes": 26866454528 + }, + { + "unix": 1790164198.9419482, + "working_set_bytes": 3261100032, + "private_bytes": 4187783168, + "host_available_bytes": 26865897472 + }, + { + "unix": 1790164199.2355494, + "working_set_bytes": 3261104128, + "private_bytes": 4187783168, + "host_available_bytes": 26870648832 + }, + { + "unix": 1790164199.5212922, + "working_set_bytes": 3261108224, + "private_bytes": 4187783168, + "host_available_bytes": 26872541184 + }, + { + "unix": 1790164199.8165672, + "working_set_bytes": 3261108224, + "private_bytes": 4187783168, + "host_available_bytes": 26872786944 + }, + { + "unix": 1790164200.1131237, + "working_set_bytes": 3261108224, + "private_bytes": 4187783168, + "host_available_bytes": 26868195328 + }, + { + "unix": 1790164200.419913, + "working_set_bytes": 3261108224, + "private_bytes": 4187783168, + "host_available_bytes": 26850516992 + }, + { + "unix": 1790164200.7110033, + "working_set_bytes": 3261108224, + "private_bytes": 4187783168, + "host_available_bytes": 26852098048 + }, + { + "unix": 1790164200.9965556, + "working_set_bytes": 3261108224, + "private_bytes": 4187783168, + "host_available_bytes": 26851856384 + }, + { + "unix": 1790164201.29485, + "working_set_bytes": 3261108224, + "private_bytes": 4187783168, + "host_available_bytes": 26858090496 + }, + { + "unix": 1790164201.5994208, + "working_set_bytes": 3009298432, + "private_bytes": 3934892032, + "host_available_bytes": 27115380736 + }, + { + "unix": 1790164201.913284, + "working_set_bytes": 3261145088, + "private_bytes": 4392124416, + "host_available_bytes": 26853085184 + }, + { + "unix": 1790164202.21137, + "working_set_bytes": 3261677568, + "private_bytes": 4187762688, + "host_available_bytes": 26863230976 + }, + { + "unix": 1790164202.5109313, + "working_set_bytes": 3261677568, + "private_bytes": 4187762688, + "host_available_bytes": 26869157888 + }, + { + "unix": 1790164202.8170009, + "working_set_bytes": 3261677568, + "private_bytes": 4187762688, + "host_available_bytes": 26842673152 + }, + { + "unix": 1790164203.1072242, + "working_set_bytes": 3261677568, + "private_bytes": 4187762688, + "host_available_bytes": 26824740864 + }, + { + "unix": 1790164203.409177, + "working_set_bytes": 3261677568, + "private_bytes": 4187762688, + "host_available_bytes": 26804260864 + }, + { + "unix": 1790164203.7036502, + "working_set_bytes": 3261640704, + "private_bytes": 4187684864, + "host_available_bytes": 26845577216 + }, + { + "unix": 1790164203.9962342, + "working_set_bytes": 3261640704, + "private_bytes": 4187684864, + "host_available_bytes": 26838032384 + }, + { + "unix": 1790164204.298309, + "working_set_bytes": 3261640704, + "private_bytes": 4187684864, + "host_available_bytes": 26844925952 + }, + { + "unix": 1790164204.5978622, + "working_set_bytes": 3261640704, + "private_bytes": 4187684864, + "host_available_bytes": 26847002624 + }, + { + "unix": 1790164204.8925953, + "working_set_bytes": 3009830912, + "private_bytes": 3935383552, + "host_available_bytes": 27097911296 + }, + { + "unix": 1790164205.1939714, + "working_set_bytes": 3261673472, + "private_bytes": 4392611840, + "host_available_bytes": 26837565440 + }, + { + "unix": 1790164205.4959152, + "working_set_bytes": 3262291968, + "private_bytes": 4188487680, + "host_available_bytes": 26836135936 + }, + { + "unix": 1790164205.7897353, + "working_set_bytes": 3262296064, + "private_bytes": 4188487680, + "host_available_bytes": 26838700032 + }, + { + "unix": 1790164206.0773234, + "working_set_bytes": 3262296064, + "private_bytes": 4188487680, + "host_available_bytes": 26838532096 + }, + { + "unix": 1790164206.3718004, + "working_set_bytes": 3262296064, + "private_bytes": 4188487680, + "host_available_bytes": 26852040704 + }, + { + "unix": 1790164206.6578882, + "working_set_bytes": 3262296064, + "private_bytes": 4188487680, + "host_available_bytes": 26868178944 + }, + { + "unix": 1790164206.9545627, + "working_set_bytes": 3262296064, + "private_bytes": 4188487680, + "host_available_bytes": 26871275520 + }, + { + "unix": 1790164207.256006, + "working_set_bytes": 3262296064, + "private_bytes": 4188487680, + "host_available_bytes": 26868809728 + }, + { + "unix": 1790164207.5535648, + "working_set_bytes": 3262296064, + "private_bytes": 4188487680, + "host_available_bytes": 26869424128 + }, + { + "unix": 1790164207.8532534, + "working_set_bytes": 3262296064, + "private_bytes": 4188487680, + "host_available_bytes": 26868576256 + }, + { + "unix": 1790164208.1548307, + "working_set_bytes": 3010486272, + "private_bytes": 3936186368, + "host_available_bytes": 27122692096 + }, + { + "unix": 1790164208.463549, + "working_set_bytes": 3262332928, + "private_bytes": 4393418752, + "host_available_bytes": 26866970624 + }, + { + "unix": 1790164208.761801, + "working_set_bytes": 3262742528, + "private_bytes": 4189061120, + "host_available_bytes": 26867396608 + }, + { + "unix": 1790164209.0579462, + "working_set_bytes": 3262746624, + "private_bytes": 4189061120, + "host_available_bytes": 26857283584 + }, + { + "unix": 1790164209.3580465, + "working_set_bytes": 3262750720, + "private_bytes": 4189061120, + "host_available_bytes": 26856071168 + }, + { + "unix": 1790164209.6606345, + "working_set_bytes": 3262750720, + "private_bytes": 4189061120, + "host_available_bytes": 26848534528 + }, + { + "unix": 1790164209.9580052, + "working_set_bytes": 3262750720, + "private_bytes": 4189061120, + "host_available_bytes": 26848612352 + }, + { + "unix": 1790164210.255957, + "working_set_bytes": 3262750720, + "private_bytes": 4189061120, + "host_available_bytes": 26846269440 + }, + { + "unix": 1790164210.559903, + "working_set_bytes": 3262750720, + "private_bytes": 4189061120, + "host_available_bytes": 26683379712 + }, + { + "unix": 1790164210.8582022, + "working_set_bytes": 3262750720, + "private_bytes": 4189061120, + "host_available_bytes": 26668068864 + }, + { + "unix": 1790164211.1572835, + "working_set_bytes": 3262750720, + "private_bytes": 4189061120, + "host_available_bytes": 26699890688 + }, + { + "unix": 1790164211.4499547, + "working_set_bytes": 3010940928, + "private_bytes": 3936759808, + "host_available_bytes": 26968109056 + }, + { + "unix": 1790164211.7471557, + "working_set_bytes": 3262783488, + "private_bytes": 4393988096, + "host_available_bytes": 26734899200 + }, + { + "unix": 1790164212.0401313, + "working_set_bytes": 3263467520, + "private_bytes": 4189622272, + "host_available_bytes": 26750828544 + }, + { + "unix": 1790164212.336844, + "working_set_bytes": 3263467520, + "private_bytes": 4189622272, + "host_available_bytes": 26750500864 + }, + { + "unix": 1790164212.634155, + "working_set_bytes": 3263467520, + "private_bytes": 4189622272, + "host_available_bytes": 26753687552 + }, + { + "unix": 1790164212.927565, + "working_set_bytes": 3263471616, + "private_bytes": 4189622272, + "host_available_bytes": 26755018752 + }, + { + "unix": 1790164213.2294302, + "working_set_bytes": 3263471616, + "private_bytes": 4189622272, + "host_available_bytes": 26757271552 + }, + { + "unix": 1790164213.5310009, + "working_set_bytes": 3263471616, + "private_bytes": 4189622272, + "host_available_bytes": 26758766592 + }, + { + "unix": 1790164213.8322227, + "working_set_bytes": 3263471616, + "private_bytes": 4189622272, + "host_available_bytes": 26741071872 + }, + { + "unix": 1790164214.1217985, + "working_set_bytes": 3263471616, + "private_bytes": 4189622272, + "host_available_bytes": 26764800000 + }, + { + "unix": 1790164214.4226844, + "working_set_bytes": 3263471616, + "private_bytes": 4189622272, + "host_available_bytes": 26766307328 + }, + { + "unix": 1790164214.718448, + "working_set_bytes": 3011661824, + "private_bytes": 3937316864, + "host_available_bytes": 27018264576 + }, + { + "unix": 1790164215.0223331, + "working_set_bytes": 3263508480, + "private_bytes": 4394553344, + "host_available_bytes": 26768515072 + }, + { + "unix": 1790164215.320881, + "working_set_bytes": 3264139264, + "private_bytes": 4190400512, + "host_available_bytes": 26770051072 + }, + { + "unix": 1790164215.6163785, + "working_set_bytes": 3264151552, + "private_bytes": 4190400512, + "host_available_bytes": 26785775616 + }, + { + "unix": 1790164215.9145553, + "working_set_bytes": 3264151552, + "private_bytes": 4190400512, + "host_available_bytes": 26788569088 + }, + { + "unix": 1790164216.215932, + "working_set_bytes": 3264151552, + "private_bytes": 4190400512, + "host_available_bytes": 26798137344 + }, + { + "unix": 1790164216.51131, + "working_set_bytes": 3264151552, + "private_bytes": 4190400512, + "host_available_bytes": 26819788800 + }, + { + "unix": 1790164216.8079972, + "working_set_bytes": 3264151552, + "private_bytes": 4190400512, + "host_available_bytes": 26847539200 + }, + { + "unix": 1790164217.1068788, + "working_set_bytes": 3264151552, + "private_bytes": 4190400512, + "host_available_bytes": 26846195712 + }, + { + "unix": 1790164217.4042327, + "working_set_bytes": 3264151552, + "private_bytes": 4190400512, + "host_available_bytes": 26872979456 + }, + { + "unix": 1790164217.694387, + "working_set_bytes": 3264151552, + "private_bytes": 4190400512, + "host_available_bytes": 26870525952 + }, + { + "unix": 1790164217.9853399, + "working_set_bytes": 3012341760, + "private_bytes": 3938095104, + "host_available_bytes": 27123314688 + }, + { + "unix": 1790164218.271425, + "working_set_bytes": 3012341760, + "private_bytes": 3937669120, + "host_available_bytes": 27125010432 + }, + { + "unix": 1790164218.570393, + "working_set_bytes": 3264843776, + "private_bytes": 4191145984, + "host_available_bytes": 26872578048 + }, + { + "unix": 1790164218.8660347, + "working_set_bytes": 3264851968, + "private_bytes": 4191145984, + "host_available_bytes": 26871664640 + }, + { + "unix": 1790164219.165653, + "working_set_bytes": 3264851968, + "private_bytes": 4191145984, + "host_available_bytes": 26876604416 + }, + { + "unix": 1790164219.468735, + "working_set_bytes": 3264851968, + "private_bytes": 4191145984, + "host_available_bytes": 26875666432 + }, + { + "unix": 1790164219.7663872, + "working_set_bytes": 3264851968, + "private_bytes": 4191145984, + "host_available_bytes": 26876080128 + }, + { + "unix": 1790164220.065944, + "working_set_bytes": 3264851968, + "private_bytes": 4191145984, + "host_available_bytes": 26875473920 + }, + { + "unix": 1790164220.3630006, + "working_set_bytes": 3264851968, + "private_bytes": 4191145984, + "host_available_bytes": 26885906432 + }, + { + "unix": 1790164220.648055, + "working_set_bytes": 3264851968, + "private_bytes": 4191145984, + "host_available_bytes": 26887860224 + }, + { + "unix": 1790164220.9475534, + "working_set_bytes": 3264851968, + "private_bytes": 4191145984, + "host_available_bytes": 26886729728 + }, + { + "unix": 1790164221.2366571, + "working_set_bytes": 3264851968, + "private_bytes": 4191145984, + "host_available_bytes": 27138928640 + }, + { + "unix": 1790164221.5258431, + "working_set_bytes": 3013042176, + "private_bytes": 3938418688, + "host_available_bytes": 27141533696 + }, + { + "unix": 1790164221.8120153, + "working_set_bytes": 3264942080, + "private_bytes": 4396072960, + "host_available_bytes": 26881691648 + }, + { + "unix": 1790164222.1077144, + "working_set_bytes": 3265413120, + "private_bytes": 4191711232, + "host_available_bytes": 26885218304 + }, + { + "unix": 1790164222.4107978, + "working_set_bytes": 3265413120, + "private_bytes": 4191711232, + "host_available_bytes": 26885996544 + }, + { + "unix": 1790164222.7151887, + "working_set_bytes": 3265413120, + "private_bytes": 4191711232, + "host_available_bytes": 26886070272 + }, + { + "unix": 1790164223.007941, + "working_set_bytes": 3265413120, + "private_bytes": 4191711232, + "host_available_bytes": 26898444288 + }, + { + "unix": 1790164223.30454, + "working_set_bytes": 3265413120, + "private_bytes": 4191711232, + "host_available_bytes": 26897727488 + }, + { + "unix": 1790164223.6031268, + "working_set_bytes": 3265413120, + "private_bytes": 4191711232, + "host_available_bytes": 26898608128 + }, + { + "unix": 1790164223.9002073, + "working_set_bytes": 3265413120, + "private_bytes": 4191711232, + "host_available_bytes": 26898186240 + }, + { + "unix": 1790164224.198756, + "working_set_bytes": 3265413120, + "private_bytes": 4191711232, + "host_available_bytes": 26899087360 + }, + { + "unix": 1790164224.4895422, + "working_set_bytes": 3265413120, + "private_bytes": 4191711232, + "host_available_bytes": 26932203520 + }, + { + "unix": 1790164224.7883165, + "working_set_bytes": 3013603328, + "private_bytes": 3939409920, + "host_available_bytes": 27150921728 + }, + { + "unix": 1790164225.0963442, + "working_set_bytes": 3265462272, + "private_bytes": 4396638208, + "host_available_bytes": 26898870272 + } + ], + "sampled_max_working_set_bytes": 3265462272, + "sampled_max_private_bytes": 4396638208, + "sampled_min_host_available_bytes": 26668068864 +} diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_joint/crisp_tts_joint_profile20_20260923.log b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_joint/crisp_tts_joint_profile20_20260923.log new file mode 100644 index 000000000..49646a752 --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_joint/crisp_tts_joint_profile20_20260923.log @@ -0,0 +1,14 @@ +{ + "scope": "complete serial HTTP text-to-WAV requests in one resident server; speech quality and placement assessed separately", + "endpoint": "http://127.0.0.1:18175/v1/audio/speech", + "text": "Hello from the local computer.", + "seed": 42, + "concurrency": 1, + "nearest_rank_p50_wall_s": 3.3100590999238193, + "nearest_rank_p95_wall_s": 3.3347201000433415, + "all_same_wav_sha256": false, + "server_pid": 59628, + "sampled_max_working_set_bytes": 3265462272, + "sampled_max_private_bytes": 4396638208, + "sampled_min_host_available_bytes": 26668068864 +} diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_joint/crisp_tts_joint_profile20_20260923.wav b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_joint/crisp_tts_joint_profile20_20260923.wav new file mode 100644 index 000000000..d4483ff97 Binary files /dev/null and b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_joint/crisp_tts_joint_profile20_20260923.wav differ diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_joint/crisp_tts_joint_profile20_pcm_20260923.json b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_joint/crisp_tts_joint_profile20_pcm_20260923.json new file mode 100644 index 000000000..e4fa63397 --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_joint/crisp_tts_joint_profile20_pcm_20260923.json @@ -0,0 +1,1653 @@ +{ + "scope": "complete serial HTTP text-to-WAV requests in one resident server; speech quality and placement assessed separately", + "endpoint": "http://127.0.0.1:18175/v1/audio/speech", + "text": "Hello from the local computer.", + "seed": 42, + "concurrency": 1, + "warmups": [ + { + "wall_s": 3.4573198999278247, + "sample_rate": 24000, + "frames": 61440, + "duration_s": 2.56, + "rms_pcm16_normalized": 0.07350303073970302, + "pcm_sha256": "57f60228e2b456f6dfefc7e49df862c7bff6ba7cf39231ef1824f615948a1539", + "sha256": "4c28650ddc931fa80db18159775d45fef80e34237bd57bf4081b5a4bf765caf0", + "bytes": 124764 + } + ], + "measured": [ + { + "wall_s": 3.2777653000084683, + "sample_rate": 24000, + "frames": 61440, + "duration_s": 2.56, + "rms_pcm16_normalized": 0.07350303073970302, + "pcm_sha256": "57f60228e2b456f6dfefc7e49df862c7bff6ba7cf39231ef1824f615948a1539", + "sha256": "d000699e97685fc0041ec1e374d31879f32a1e84fe8aa8b57fc0c3436e4d32ce", + "bytes": 124764 + }, + { + "wall_s": 3.321639999980107, + "sample_rate": 24000, + "frames": 61440, + "duration_s": 2.56, + "rms_pcm16_normalized": 0.07350303073970302, + "pcm_sha256": "57f60228e2b456f6dfefc7e49df862c7bff6ba7cf39231ef1824f615948a1539", + "sha256": "752cbf594c2167c07fc64badff95f1cee3ba6983bfb271fc3839f06ba5a256ff", + "bytes": 124764 + }, + { + "wall_s": 3.2925455999793485, + "sample_rate": 24000, + "frames": 61440, + "duration_s": 2.56, + "rms_pcm16_normalized": 0.07350303073970302, + "pcm_sha256": "57f60228e2b456f6dfefc7e49df862c7bff6ba7cf39231ef1824f615948a1539", + "sha256": "8a053aae42f7bf47f5e1ce7198e08bdc5c21a44c6ead876521eb4255b924f32d", + "bytes": 124764 + }, + { + "wall_s": 3.307073300005868, + "sample_rate": 24000, + "frames": 61440, + "duration_s": 2.56, + "rms_pcm16_normalized": 0.07350303073970302, + "pcm_sha256": "57f60228e2b456f6dfefc7e49df862c7bff6ba7cf39231ef1824f615948a1539", + "sha256": "fdf4a8d959cdb0882f56bc0cb71946cd97ae1e986648eedcf6bce1517576ad07", + "bytes": 124764 + }, + { + "wall_s": 3.309194999979809, + "sample_rate": 24000, + "frames": 61440, + "duration_s": 2.56, + "rms_pcm16_normalized": 0.07350303073970302, + "pcm_sha256": "57f60228e2b456f6dfefc7e49df862c7bff6ba7cf39231ef1824f615948a1539", + "sha256": "f50406ba5ab8c2de2e63c563b96c4d1daa87a868e0008218d324db066293a47d", + "bytes": 124764 + }, + { + "wall_s": 3.3085114000132307, + "sample_rate": 24000, + "frames": 61440, + "duration_s": 2.56, + "rms_pcm16_normalized": 0.07350303073970302, + "pcm_sha256": "57f60228e2b456f6dfefc7e49df862c7bff6ba7cf39231ef1824f615948a1539", + "sha256": "60e931f7bc7a8839462f464347be5b1f6ee5777057c41ad9911592020fd99cc8", + "bytes": 124764 + }, + { + "wall_s": 3.320007700007409, + "sample_rate": 24000, + "frames": 61440, + "duration_s": 2.56, + "rms_pcm16_normalized": 0.07350303073970302, + "pcm_sha256": "57f60228e2b456f6dfefc7e49df862c7bff6ba7cf39231ef1824f615948a1539", + "sha256": "d4e3ead0ba32f235b571fffc4ffea7a01119a5291268d65b7a4285fc4a8c1dc1", + "bytes": 124764 + }, + { + "wall_s": 3.309862600057386, + "sample_rate": 24000, + "frames": 61440, + "duration_s": 2.56, + "rms_pcm16_normalized": 0.07350303073970302, + "pcm_sha256": "57f60228e2b456f6dfefc7e49df862c7bff6ba7cf39231ef1824f615948a1539", + "sha256": "93cab8e4e45829aa0dee7503d8eae954a66b5815a88a46d281cc0b9c907fd4d6", + "bytes": 124764 + }, + { + "wall_s": 3.3151813000440598, + "sample_rate": 24000, + "frames": 61440, + "duration_s": 2.56, + "rms_pcm16_normalized": 0.07350303073970302, + "pcm_sha256": "57f60228e2b456f6dfefc7e49df862c7bff6ba7cf39231ef1824f615948a1539", + "sha256": "da73870a5520aa8a8158bbc943b0117d2f45267dfe184afb673d411faf76f8a7", + "bytes": 124764 + }, + { + "wall_s": 3.2956395000219345, + "sample_rate": 24000, + "frames": 61440, + "duration_s": 2.56, + "rms_pcm16_normalized": 0.07350303073970302, + "pcm_sha256": "57f60228e2b456f6dfefc7e49df862c7bff6ba7cf39231ef1824f615948a1539", + "sha256": "52cdf0950aa812e16a04e90b24254c8fd04a5168bab19bb01046731e81e8d730", + "bytes": 124764 + }, + { + "wall_s": 3.2834451000671834, + "sample_rate": 24000, + "frames": 61440, + "duration_s": 2.56, + "rms_pcm16_normalized": 0.07350303073970302, + "pcm_sha256": "57f60228e2b456f6dfefc7e49df862c7bff6ba7cf39231ef1824f615948a1539", + "sha256": "0f236cde6a99b94854b70cfab9e6f02e988b665cb80d0d7ad7de9c66ad1bd1df", + "bytes": 124764 + }, + { + "wall_s": 3.3127033000346273, + "sample_rate": 24000, + "frames": 61440, + "duration_s": 2.56, + "rms_pcm16_normalized": 0.07350303073970302, + "pcm_sha256": "57f60228e2b456f6dfefc7e49df862c7bff6ba7cf39231ef1824f615948a1539", + "sha256": "8fd21a83dc9c19b1828297d3ec277f5649b3aa327f84b0fe38b41bd9e82a8848", + "bytes": 124764 + }, + { + "wall_s": 3.3113853000104427, + "sample_rate": 24000, + "frames": 61440, + "duration_s": 2.56, + "rms_pcm16_normalized": 0.07350303073970302, + "pcm_sha256": "57f60228e2b456f6dfefc7e49df862c7bff6ba7cf39231ef1824f615948a1539", + "sha256": "3795f2516a68eea49e23b207f12808df63266f34e3a7c20f1bc03e469eb7db7b", + "bytes": 124764 + }, + { + "wall_s": 3.301852200063877, + "sample_rate": 24000, + "frames": 61440, + "duration_s": 2.56, + "rms_pcm16_normalized": 0.07350303073970302, + "pcm_sha256": "57f60228e2b456f6dfefc7e49df862c7bff6ba7cf39231ef1824f615948a1539", + "sha256": "abc085a8cbf52e17324dce93e2809693e0e9feadc15249fb0b5384380c32d2f6", + "bytes": 124764 + }, + { + "wall_s": 3.345391200040467, + "sample_rate": 24000, + "frames": 61440, + "duration_s": 2.56, + "rms_pcm16_normalized": 0.07350303073970302, + "pcm_sha256": "57f60228e2b456f6dfefc7e49df862c7bff6ba7cf39231ef1824f615948a1539", + "sha256": "d1db81764ea606585114139ebe2f13f552b9887d2fc18a8953c95cf20fd1022e", + "bytes": 124764 + }, + { + "wall_s": 3.3892542999237776, + "sample_rate": 24000, + "frames": 61440, + "duration_s": 2.56, + "rms_pcm16_normalized": 0.07350303073970302, + "pcm_sha256": "57f60228e2b456f6dfefc7e49df862c7bff6ba7cf39231ef1824f615948a1539", + "sha256": "17d432ec82a527e0994b156cfbea81ce51cb62496529630f8b3f11a8c7a5ee1a", + "bytes": 124764 + }, + { + "wall_s": 3.2983461999101564, + "sample_rate": 24000, + "frames": 61440, + "duration_s": 2.56, + "rms_pcm16_normalized": 0.07350303073970302, + "pcm_sha256": "57f60228e2b456f6dfefc7e49df862c7bff6ba7cf39231ef1824f615948a1539", + "sha256": "86e4a472c0f57c318c8faaccd9d54ba07ab5f46b597a1bcda686836e5cbd3485", + "bytes": 124764 + }, + { + "wall_s": 3.3246727000223473, + "sample_rate": 24000, + "frames": 61440, + "duration_s": 2.56, + "rms_pcm16_normalized": 0.07350303073970302, + "pcm_sha256": "57f60228e2b456f6dfefc7e49df862c7bff6ba7cf39231ef1824f615948a1539", + "sha256": "fed6fc7dd9d8d983b646ed251a2ce28e7d183475705f77a044057d338bef572b", + "bytes": 124764 + }, + { + "wall_s": 3.3290337999351323, + "sample_rate": 24000, + "frames": 61440, + "duration_s": 2.56, + "rms_pcm16_normalized": 0.07350303073970302, + "pcm_sha256": "57f60228e2b456f6dfefc7e49df862c7bff6ba7cf39231ef1824f615948a1539", + "sha256": "25d7a8d2f2ec3fdbe187161662d8690916c2de91eba21f6f276936c4a3e4b759", + "bytes": 124764 + }, + { + "wall_s": 3.314606700092554, + "sample_rate": 24000, + "frames": 61440, + "duration_s": 2.56, + "rms_pcm16_normalized": 0.07350303073970302, + "pcm_sha256": "57f60228e2b456f6dfefc7e49df862c7bff6ba7cf39231ef1824f615948a1539", + "sha256": "033758749e907b5a5c6aaa8768b2ea62bfc54784dac471cba2b3af96c128ec05", + "bytes": 124764 + } + ], + "nearest_rank_p50_wall_s": 3.309862600057386, + "nearest_rank_p95_wall_s": 3.345391200040467, + "all_same_wav_sha256": false, + "all_same_pcm_sha256": true, + "server_pid": 59628, + "memory_samples": [ + { + "unix": 1790164260.1633775, + "working_set_bytes": 2762280960, + "private_bytes": 3685810176, + "host_available_bytes": 27349901312 + }, + { + "unix": 1790164260.4521034, + "working_set_bytes": 2762448896, + "private_bytes": 3686735872, + "host_available_bytes": 27348959232 + }, + { + "unix": 1790164260.7418158, + "working_set_bytes": 2762465280, + "private_bytes": 3686735872, + "host_available_bytes": 27351412736 + }, + { + "unix": 1790164261.030587, + "working_set_bytes": 2762465280, + "private_bytes": 3686735872, + "host_available_bytes": 27358679040 + }, + { + "unix": 1790164261.321467, + "working_set_bytes": 2762465280, + "private_bytes": 3686735872, + "host_available_bytes": 27362123776 + }, + { + "unix": 1790164261.6172125, + "working_set_bytes": 2762465280, + "private_bytes": 3686735872, + "host_available_bytes": 27355586560 + }, + { + "unix": 1790164261.9024324, + "working_set_bytes": 2762465280, + "private_bytes": 3686735872, + "host_available_bytes": 27358330880 + }, + { + "unix": 1790164262.2045703, + "working_set_bytes": 2762465280, + "private_bytes": 3686735872, + "host_available_bytes": 27356872704 + }, + { + "unix": 1790164262.5059385, + "working_set_bytes": 2762465280, + "private_bytes": 3686735872, + "host_available_bytes": 27358593024 + }, + { + "unix": 1790164262.8059783, + "working_set_bytes": 2762465280, + "private_bytes": 3686735872, + "host_available_bytes": 27367981056 + }, + { + "unix": 1790164263.094729, + "working_set_bytes": 2762465280, + "private_bytes": 3686735872, + "host_available_bytes": 27385131008 + }, + { + "unix": 1790164263.3791575, + "working_set_bytes": 2762465280, + "private_bytes": 3686735872, + "host_available_bytes": 27384156160 + }, + { + "unix": 1790164263.6643317, + "working_set_bytes": 3014819840, + "private_bytes": 3940216832, + "host_available_bytes": 27132096512 + }, + { + "unix": 1790164263.9523532, + "working_set_bytes": 3014819840, + "private_bytes": 3940216832, + "host_available_bytes": 27137560576 + }, + { + "unix": 1790164264.2561054, + "working_set_bytes": 3014819840, + "private_bytes": 3940216832, + "host_available_bytes": 27137478656 + }, + { + "unix": 1790164264.552165, + "working_set_bytes": 3014823936, + "private_bytes": 3940216832, + "host_available_bytes": 27135623168 + }, + { + "unix": 1790164264.8358078, + "working_set_bytes": 3014823936, + "private_bytes": 3940216832, + "host_available_bytes": 27134455808 + }, + { + "unix": 1790164265.1315029, + "working_set_bytes": 3014823936, + "private_bytes": 3940216832, + "host_available_bytes": 27135000576 + }, + { + "unix": 1790164265.4294856, + "working_set_bytes": 3014823936, + "private_bytes": 3940216832, + "host_available_bytes": 27135610880 + }, + { + "unix": 1790164265.7290068, + "working_set_bytes": 3014823936, + "private_bytes": 3940216832, + "host_available_bytes": 27143094272 + }, + { + "unix": 1790164266.0278184, + "working_set_bytes": 3014823936, + "private_bytes": 3940216832, + "host_available_bytes": 27152044032 + }, + { + "unix": 1790164266.3104432, + "working_set_bytes": 3014823936, + "private_bytes": 3940216832, + "host_available_bytes": 27152576512 + }, + { + "unix": 1790164266.5959451, + "working_set_bytes": 3014823936, + "private_bytes": 3940229120, + "host_available_bytes": 27152158720 + }, + { + "unix": 1790164266.8918262, + "working_set_bytes": 3266732032, + "private_bytes": 4397727744, + "host_available_bytes": 26896027648 + }, + { + "unix": 1790164267.181834, + "working_set_bytes": 3266699264, + "private_bytes": 4192825344, + "host_available_bytes": 26898804736 + }, + { + "unix": 1790164267.46722, + "working_set_bytes": 3266699264, + "private_bytes": 4192825344, + "host_available_bytes": 26897965056 + }, + { + "unix": 1790164267.7669055, + "working_set_bytes": 3266699264, + "private_bytes": 4192825344, + "host_available_bytes": 26897850368 + }, + { + "unix": 1790164268.067848, + "working_set_bytes": 3266699264, + "private_bytes": 4192825344, + "host_available_bytes": 26898325504 + }, + { + "unix": 1790164268.3670757, + "working_set_bytes": 3266699264, + "private_bytes": 4192825344, + "host_available_bytes": 26897403904 + }, + { + "unix": 1790164268.6647072, + "working_set_bytes": 3266699264, + "private_bytes": 4192825344, + "host_available_bytes": 26897018880 + }, + { + "unix": 1790164268.9639874, + "working_set_bytes": 3266699264, + "private_bytes": 4192825344, + "host_available_bytes": 26895040512 + }, + { + "unix": 1790164269.2653422, + "working_set_bytes": 3266699264, + "private_bytes": 4192825344, + "host_available_bytes": 26896818176 + }, + { + "unix": 1790164269.567234, + "working_set_bytes": 3266699264, + "private_bytes": 4192825344, + "host_available_bytes": 26892902400 + }, + { + "unix": 1790164269.8636012, + "working_set_bytes": 3014889472, + "private_bytes": 3940519936, + "host_available_bytes": 27144290304 + }, + { + "unix": 1790164270.173339, + "working_set_bytes": 3266732032, + "private_bytes": 4397953024, + "host_available_bytes": 26892570624 + }, + { + "unix": 1790164270.4616861, + "working_set_bytes": 3266678784, + "private_bytes": 4192567296, + "host_available_bytes": 26891739136 + }, + { + "unix": 1790164270.7599673, + "working_set_bytes": 3266658304, + "private_bytes": 4192530432, + "host_available_bytes": 26892292096 + }, + { + "unix": 1790164271.0444767, + "working_set_bytes": 3266658304, + "private_bytes": 4192530432, + "host_available_bytes": 26893602816 + }, + { + "unix": 1790164271.3295574, + "working_set_bytes": 3266658304, + "private_bytes": 4192530432, + "host_available_bytes": 26894639104 + }, + { + "unix": 1790164271.6301134, + "working_set_bytes": 3266658304, + "private_bytes": 4192530432, + "host_available_bytes": 26896183296 + }, + { + "unix": 1790164271.9241855, + "working_set_bytes": 3266658304, + "private_bytes": 4192530432, + "host_available_bytes": 26901086208 + }, + { + "unix": 1790164272.2214725, + "working_set_bytes": 3266658304, + "private_bytes": 4192530432, + "host_available_bytes": 26900475904 + }, + { + "unix": 1790164272.508643, + "working_set_bytes": 3266658304, + "private_bytes": 4192530432, + "host_available_bytes": 26901237760 + }, + { + "unix": 1790164272.8037148, + "working_set_bytes": 3266658304, + "private_bytes": 4192530432, + "host_available_bytes": 26902102016 + }, + { + "unix": 1790164273.0882752, + "working_set_bytes": 3014848512, + "private_bytes": 3940868096, + "host_available_bytes": 27154190336 + }, + { + "unix": 1790164273.3829734, + "working_set_bytes": 3266691072, + "private_bytes": 4398063616, + "host_available_bytes": 26900189184 + }, + { + "unix": 1790164273.671331, + "working_set_bytes": 3266658304, + "private_bytes": 4192710656, + "host_available_bytes": 26898509824 + }, + { + "unix": 1790164273.9569838, + "working_set_bytes": 3266658304, + "private_bytes": 4192710656, + "host_available_bytes": 26898477056 + }, + { + "unix": 1790164274.2530763, + "working_set_bytes": 3266658304, + "private_bytes": 4192710656, + "host_available_bytes": 26901704704 + }, + { + "unix": 1790164274.5513246, + "working_set_bytes": 3266658304, + "private_bytes": 4192710656, + "host_available_bytes": 26905247744 + }, + { + "unix": 1790164274.8504546, + "working_set_bytes": 3266658304, + "private_bytes": 4192710656, + "host_available_bytes": 26903150592 + }, + { + "unix": 1790164275.141021, + "working_set_bytes": 3266658304, + "private_bytes": 4192710656, + "host_available_bytes": 26901082112 + }, + { + "unix": 1790164275.438133, + "working_set_bytes": 3266658304, + "private_bytes": 4192710656, + "host_available_bytes": 26902360064 + }, + { + "unix": 1790164275.7391646, + "working_set_bytes": 3266658304, + "private_bytes": 4192710656, + "host_available_bytes": 26902441984 + }, + { + "unix": 1790164276.0332294, + "working_set_bytes": 3266658304, + "private_bytes": 4192710656, + "host_available_bytes": 26902556672 + }, + { + "unix": 1790164276.3322139, + "working_set_bytes": 3266658304, + "private_bytes": 4192710656, + "host_available_bytes": 27154726912 + }, + { + "unix": 1790164276.623012, + "working_set_bytes": 3014848512, + "private_bytes": 3940409344, + "host_available_bytes": 27128070144 + }, + { + "unix": 1790164276.9076598, + "working_set_bytes": 3266658304, + "private_bytes": 4192714752, + "host_available_bytes": 26902261760 + }, + { + "unix": 1790164277.201945, + "working_set_bytes": 3266658304, + "private_bytes": 4192714752, + "host_available_bytes": 26901917696 + }, + { + "unix": 1790164277.5014281, + "working_set_bytes": 3266658304, + "private_bytes": 4192714752, + "host_available_bytes": 26903482368 + }, + { + "unix": 1790164277.8038802, + "working_set_bytes": 3266658304, + "private_bytes": 4192714752, + "host_available_bytes": 26909061120 + }, + { + "unix": 1790164278.1004627, + "working_set_bytes": 3266658304, + "private_bytes": 4192714752, + "host_available_bytes": 26937028608 + }, + { + "unix": 1790164278.4045482, + "working_set_bytes": 3266658304, + "private_bytes": 4192714752, + "host_available_bytes": 26939994112 + }, + { + "unix": 1790164278.7011285, + "working_set_bytes": 3266658304, + "private_bytes": 4192714752, + "host_available_bytes": 26939916288 + }, + { + "unix": 1790164279.0012157, + "working_set_bytes": 3266658304, + "private_bytes": 4192714752, + "host_available_bytes": 26939371520 + }, + { + "unix": 1790164279.3037431, + "working_set_bytes": 3266658304, + "private_bytes": 4192714752, + "host_available_bytes": 26940387328 + }, + { + "unix": 1790164279.6019676, + "working_set_bytes": 3266658304, + "private_bytes": 4192714752, + "host_available_bytes": 26942160896 + }, + { + "unix": 1790164279.8957796, + "working_set_bytes": 3014848512, + "private_bytes": 3940413440, + "host_available_bytes": 27192721408 + }, + { + "unix": 1790164280.1932032, + "working_set_bytes": 3266658304, + "private_bytes": 4192714752, + "host_available_bytes": 26939912192 + }, + { + "unix": 1790164280.487285, + "working_set_bytes": 3266658304, + "private_bytes": 4192714752, + "host_available_bytes": 26937036800 + }, + { + "unix": 1790164280.7834504, + "working_set_bytes": 3266658304, + "private_bytes": 4192714752, + "host_available_bytes": 26946736128 + }, + { + "unix": 1790164281.0818567, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26946740224 + }, + { + "unix": 1790164281.3819363, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26947047424 + }, + { + "unix": 1790164281.6805043, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26948300800 + }, + { + "unix": 1790164281.9839954, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26924077056 + }, + { + "unix": 1790164282.2800593, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26904260608 + }, + { + "unix": 1790164282.57618, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26907791360 + }, + { + "unix": 1790164282.8752623, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26919395328 + }, + { + "unix": 1790164283.167882, + "working_set_bytes": 3014852608, + "private_bytes": 3940413440, + "host_available_bytes": 27175608320 + }, + { + "unix": 1790164283.4570103, + "working_set_bytes": 3266695168, + "private_bytes": 4398067712, + "host_available_bytes": 26924544000 + }, + { + "unix": 1790164283.7603526, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26913566720 + }, + { + "unix": 1790164284.0532277, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26909347840 + }, + { + "unix": 1790164284.350112, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26910633984 + }, + { + "unix": 1790164284.6495252, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26910916608 + }, + { + "unix": 1790164284.9447403, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26916319232 + }, + { + "unix": 1790164285.2455373, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26922643456 + }, + { + "unix": 1790164285.542626, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26922246144 + }, + { + "unix": 1790164285.8342013, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26892681216 + }, + { + "unix": 1790164286.1327631, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26902376448 + }, + { + "unix": 1790164286.4306955, + "working_set_bytes": 3014852608, + "private_bytes": 3940413440, + "host_available_bytes": 27155898368 + }, + { + "unix": 1790164286.7391558, + "working_set_bytes": 3266695168, + "private_bytes": 4398067712, + "host_available_bytes": 26903744512 + }, + { + "unix": 1790164287.0362337, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26895167488 + }, + { + "unix": 1790164287.3279972, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26879700992 + }, + { + "unix": 1790164287.6139405, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26879737856 + }, + { + "unix": 1790164287.9131608, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26880557056 + }, + { + "unix": 1790164288.2117605, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26882170880 + }, + { + "unix": 1790164288.498833, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26883248128 + }, + { + "unix": 1790164288.7936296, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26883084288 + }, + { + "unix": 1790164289.093189, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26882830336 + }, + { + "unix": 1790164289.3899498, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26882252800 + }, + { + "unix": 1790164289.6883836, + "working_set_bytes": 3014852608, + "private_bytes": 3940413440, + "host_available_bytes": 27135234048 + }, + { + "unix": 1790164289.9995298, + "working_set_bytes": 3266695168, + "private_bytes": 4398067712, + "host_available_bytes": 26872270848 + }, + { + "unix": 1790164290.2854774, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26874241024 + }, + { + "unix": 1790164290.5845735, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26873413632 + }, + { + "unix": 1790164290.87087, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26874355712 + }, + { + "unix": 1790164291.1600146, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26874212352 + }, + { + "unix": 1790164291.4576647, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26876751872 + }, + { + "unix": 1790164291.7575366, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26875850752 + }, + { + "unix": 1790164292.052683, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26875977728 + }, + { + "unix": 1790164292.351663, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26875260928 + }, + { + "unix": 1790164292.6496177, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26876592128 + }, + { + "unix": 1790164292.9372895, + "working_set_bytes": 3014852608, + "private_bytes": 3940413440, + "host_available_bytes": 27128938496 + }, + { + "unix": 1790164293.22253, + "working_set_bytes": 3014852608, + "private_bytes": 3940413440, + "host_available_bytes": 26875981824 + }, + { + "unix": 1790164293.525635, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26874085376 + }, + { + "unix": 1790164293.8247185, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26878795776 + }, + { + "unix": 1790164294.1220987, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26876182528 + }, + { + "unix": 1790164294.4089854, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26875998208 + }, + { + "unix": 1790164294.7075424, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26876166144 + }, + { + "unix": 1790164295.002986, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26876366848 + }, + { + "unix": 1790164295.301617, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26877644800 + }, + { + "unix": 1790164295.5971959, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26876268544 + }, + { + "unix": 1790164295.893902, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26876211200 + }, + { + "unix": 1790164296.190745, + "working_set_bytes": 3014852608, + "private_bytes": 3940413440, + "host_available_bytes": 27127881728 + }, + { + "unix": 1790164296.490866, + "working_set_bytes": 3014852608, + "private_bytes": 3940413440, + "host_available_bytes": 27126267904 + }, + { + "unix": 1790164296.7833643, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26873659392 + }, + { + "unix": 1790164297.0819314, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26873966592 + }, + { + "unix": 1790164297.3827057, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26872852480 + }, + { + "unix": 1790164297.678268, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26871996416 + }, + { + "unix": 1790164297.9819314, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26872266752 + }, + { + "unix": 1790164298.280824, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26869362688 + }, + { + "unix": 1790164298.5803795, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26867994624 + }, + { + "unix": 1790164298.8755693, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26870452224 + }, + { + "unix": 1790164299.1743248, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26870075392 + }, + { + "unix": 1790164299.4733942, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26869825536 + }, + { + "unix": 1790164299.7702298, + "working_set_bytes": 3014852608, + "private_bytes": 3940413440, + "host_available_bytes": 27121442816 + }, + { + "unix": 1790164300.072798, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26865053696 + }, + { + "unix": 1790164300.3648942, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26866188288 + }, + { + "unix": 1790164300.6634345, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26870865920 + }, + { + "unix": 1790164300.9581394, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26872020992 + }, + { + "unix": 1790164301.2576973, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26874339328 + }, + { + "unix": 1790164301.555405, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26874232832 + }, + { + "unix": 1790164301.8501782, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26874077184 + }, + { + "unix": 1790164302.1497395, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26875338752 + }, + { + "unix": 1790164302.444023, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26875617280 + }, + { + "unix": 1790164302.7425447, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26875752448 + }, + { + "unix": 1790164303.0366356, + "working_set_bytes": 3014852608, + "private_bytes": 3940413440, + "host_available_bytes": 27128967168 + }, + { + "unix": 1790164303.3181522, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26876481536 + }, + { + "unix": 1790164303.6053424, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26876141568 + }, + { + "unix": 1790164303.9044602, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26875256832 + }, + { + "unix": 1790164304.2067435, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26865012736 + }, + { + "unix": 1790164304.4985583, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26861641728 + }, + { + "unix": 1790164304.7996597, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26859106304 + }, + { + "unix": 1790164305.0968695, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26859036672 + }, + { + "unix": 1790164305.3948412, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26862878720 + }, + { + "unix": 1790164305.6785824, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26861744128 + }, + { + "unix": 1790164305.9786844, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26863755264 + }, + { + "unix": 1790164306.2712715, + "working_set_bytes": 3014852608, + "private_bytes": 3940413440, + "host_available_bytes": 27118465024 + }, + { + "unix": 1790164306.5798483, + "working_set_bytes": 3266695168, + "private_bytes": 4398067712, + "host_available_bytes": 26866089984 + }, + { + "unix": 1790164306.8782818, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26866335744 + }, + { + "unix": 1790164307.1728404, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26866409472 + }, + { + "unix": 1790164307.458373, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26868187136 + }, + { + "unix": 1790164307.7516778, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26883153920 + }, + { + "unix": 1790164308.0417519, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26883215360 + }, + { + "unix": 1790164308.3414028, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26882666496 + }, + { + "unix": 1790164308.6439734, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26884149248 + }, + { + "unix": 1790164308.9410667, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26882527232 + }, + { + "unix": 1790164309.2348619, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26882662400 + }, + { + "unix": 1790164309.5287204, + "working_set_bytes": 3014852608, + "private_bytes": 3940413440, + "host_available_bytes": 27135553536 + }, + { + "unix": 1790164309.823053, + "working_set_bytes": 3266695168, + "private_bytes": 4398071808, + "host_available_bytes": 26882863104 + }, + { + "unix": 1790164310.1141963, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26883276800 + }, + { + "unix": 1790164310.4134262, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26882162688 + }, + { + "unix": 1790164310.7157066, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26884669440 + }, + { + "unix": 1790164311.0132048, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26895155200 + }, + { + "unix": 1790164311.309498, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26896322560 + }, + { + "unix": 1790164311.5936146, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26896379904 + }, + { + "unix": 1790164311.8910456, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26895958016 + }, + { + "unix": 1790164312.1776094, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26896343040 + }, + { + "unix": 1790164312.4620059, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26893180928 + }, + { + "unix": 1790164312.7497158, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 27142844416 + }, + { + "unix": 1790164313.045906, + "working_set_bytes": 3014852608, + "private_bytes": 3940413440, + "host_available_bytes": 27141709824 + }, + { + "unix": 1790164313.3378751, + "working_set_bytes": 3266662400, + "private_bytes": 4192718848, + "host_available_bytes": 26889519104 + }, + { + "unix": 1790164313.6311939, + "working_set_bytes": 3266662400, + "private_bytes": 4192718848, + "host_available_bytes": 26888323072 + }, + { + "unix": 1790164313.930607, + "working_set_bytes": 3266662400, + "private_bytes": 4192718848, + "host_available_bytes": 26889302016 + }, + { + "unix": 1790164314.2303278, + "working_set_bytes": 3266662400, + "private_bytes": 4192718848, + "host_available_bytes": 26888204288 + }, + { + "unix": 1790164314.5272064, + "working_set_bytes": 3266662400, + "private_bytes": 4192718848, + "host_available_bytes": 26888564736 + }, + { + "unix": 1790164314.8264344, + "working_set_bytes": 3266662400, + "private_bytes": 4192718848, + "host_available_bytes": 26887942144 + }, + { + "unix": 1790164315.1271918, + "working_set_bytes": 3266662400, + "private_bytes": 4192718848, + "host_available_bytes": 26890616832 + }, + { + "unix": 1790164315.4261017, + "working_set_bytes": 3266662400, + "private_bytes": 4192718848, + "host_available_bytes": 26891296768 + }, + { + "unix": 1790164315.7111707, + "working_set_bytes": 3266662400, + "private_bytes": 4192718848, + "host_available_bytes": 26897563648 + }, + { + "unix": 1790164315.9955306, + "working_set_bytes": 3266662400, + "private_bytes": 4192718848, + "host_available_bytes": 26898333696 + }, + { + "unix": 1790164316.2929215, + "working_set_bytes": 3014852608, + "private_bytes": 3940413440, + "host_available_bytes": 27154386944 + }, + { + "unix": 1790164316.5906913, + "working_set_bytes": 3266695168, + "private_bytes": 4398067712, + "host_available_bytes": 26900684800 + }, + { + "unix": 1790164316.881507, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26901319680 + }, + { + "unix": 1790164317.1833627, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26900262912 + }, + { + "unix": 1790164317.4786093, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26899697664 + }, + { + "unix": 1790164317.7768962, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26899652608 + }, + { + "unix": 1790164318.0767007, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26899726336 + }, + { + "unix": 1790164318.370592, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26896707584 + }, + { + "unix": 1790164318.6554368, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26893340672 + }, + { + "unix": 1790164318.959883, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26893959168 + }, + { + "unix": 1790164319.256578, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26893508608 + }, + { + "unix": 1790164319.5522335, + "working_set_bytes": 3014852608, + "private_bytes": 3940413440, + "host_available_bytes": 27111718912 + }, + { + "unix": 1790164319.8487132, + "working_set_bytes": 3266695168, + "private_bytes": 4398067712, + "host_available_bytes": 26836635648 + }, + { + "unix": 1790164320.1373677, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26863730688 + }, + { + "unix": 1790164320.4352937, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26866163712 + }, + { + "unix": 1790164320.7385771, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26868146176 + }, + { + "unix": 1790164321.0368862, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26877472768 + }, + { + "unix": 1790164321.3397386, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26887901184 + }, + { + "unix": 1790164321.6379929, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26890035200 + }, + { + "unix": 1790164321.9373558, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26889707520 + }, + { + "unix": 1790164322.2373528, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26887569408 + }, + { + "unix": 1790164322.5355527, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26887155712 + }, + { + "unix": 1790164322.8368642, + "working_set_bytes": 3266662400, + "private_bytes": 4192714752, + "host_available_bytes": 26888392704 + }, + { + "unix": 1790164323.1297703, + "working_set_bytes": 3072688128, + "private_bytes": 4398067712, + "host_available_bytes": 26889707520 + }, + { + "unix": 1790164323.418487, + "working_set_bytes": 3266662400, + "private_bytes": 4192718848, + "host_available_bytes": 26890575872 + }, + { + "unix": 1790164323.7061396, + "working_set_bytes": 3266662400, + "private_bytes": 4192718848, + "host_available_bytes": 26888613888 + }, + { + "unix": 1790164324.0052707, + "working_set_bytes": 3266662400, + "private_bytes": 4192718848, + "host_available_bytes": 26885550080 + }, + { + "unix": 1790164324.3055284, + "working_set_bytes": 3266662400, + "private_bytes": 4192718848, + "host_available_bytes": 26882392064 + }, + { + "unix": 1790164324.6052485, + "working_set_bytes": 3266662400, + "private_bytes": 4192718848, + "host_available_bytes": 26882158592 + }, + { + "unix": 1790164324.899499, + "working_set_bytes": 3266662400, + "private_bytes": 4192718848, + "host_available_bytes": 26882129920 + }, + { + "unix": 1790164325.19722, + "working_set_bytes": 3266662400, + "private_bytes": 4192718848, + "host_available_bytes": 26880053248 + }, + { + "unix": 1790164325.495595, + "working_set_bytes": 3266662400, + "private_bytes": 4192718848, + "host_available_bytes": 26880917504 + }, + { + "unix": 1790164325.779309, + "working_set_bytes": 3266662400, + "private_bytes": 4192718848, + "host_available_bytes": 26881904640 + }, + { + "unix": 1790164326.064008, + "working_set_bytes": 3014852608, + "private_bytes": 3940413440, + "host_available_bytes": 27134525440 + }, + { + "unix": 1790164326.3478198, + "working_set_bytes": 3014852608, + "private_bytes": 3940413440, + "host_available_bytes": 27134734336 + }, + { + "unix": 1790164326.643007, + "working_set_bytes": 3266695168, + "private_bytes": 4398071808, + "host_available_bytes": 26880782336 + }, + { + "unix": 1790164326.9321074, + "working_set_bytes": 3266662400, + "private_bytes": 4192718848, + "host_available_bytes": 26880299008 + }, + { + "unix": 1790164327.2366252, + "working_set_bytes": 3266662400, + "private_bytes": 4192718848, + "host_available_bytes": 26880770048 + }, + { + "unix": 1790164327.5361228, + "working_set_bytes": 3266662400, + "private_bytes": 4192718848, + "host_available_bytes": 26878693376 + }, + { + "unix": 1790164327.8332157, + "working_set_bytes": 3266662400, + "private_bytes": 4192718848, + "host_available_bytes": 26876264448 + }, + { + "unix": 1790164328.1357725, + "working_set_bytes": 3266662400, + "private_bytes": 4192718848, + "host_available_bytes": 26881732608 + }, + { + "unix": 1790164328.4328554, + "working_set_bytes": 3266662400, + "private_bytes": 4192718848, + "host_available_bytes": 26881454080 + }, + { + "unix": 1790164328.730186, + "working_set_bytes": 3266662400, + "private_bytes": 4192718848, + "host_available_bytes": 26879496192 + }, + { + "unix": 1790164329.0265858, + "working_set_bytes": 3266662400, + "private_bytes": 4192718848, + "host_available_bytes": 26881163264 + }, + { + "unix": 1790164329.3238034, + "working_set_bytes": 3266662400, + "private_bytes": 4192718848, + "host_available_bytes": 26881679360 + }, + { + "unix": 1790164329.609378, + "working_set_bytes": 3014852608, + "private_bytes": 3940413440, + "host_available_bytes": 27123625984 + }, + { + "unix": 1790164329.9244952, + "working_set_bytes": 3266695168, + "private_bytes": 4398067712, + "host_available_bytes": 26872631296 + } + ], + "sampled_max_working_set_bytes": 3266732032, + "sampled_max_private_bytes": 4398071808, + "sampled_min_host_available_bytes": 26836635648 +} diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_joint/crisp_tts_joint_profile20_pcm_20260923.log b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_joint/crisp_tts_joint_profile20_pcm_20260923.log new file mode 100644 index 000000000..8ee75d338 --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_joint/crisp_tts_joint_profile20_pcm_20260923.log @@ -0,0 +1,15 @@ +{ + "scope": "complete serial HTTP text-to-WAV requests in one resident server; speech quality and placement assessed separately", + "endpoint": "http://127.0.0.1:18175/v1/audio/speech", + "text": "Hello from the local computer.", + "seed": 42, + "concurrency": 1, + "nearest_rank_p50_wall_s": 3.309862600057386, + "nearest_rank_p95_wall_s": 3.345391200040467, + "all_same_wav_sha256": false, + "all_same_pcm_sha256": true, + "server_pid": 59628, + "sampled_max_working_set_bytes": 3266732032, + "sampled_max_private_bytes": 4398071808, + "sampled_min_host_available_bytes": 26836635648 +} diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_joint/crisp_tts_joint_profile20_pcm_20260923.wav b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_joint/crisp_tts_joint_profile20_pcm_20260923.wav new file mode 100644 index 000000000..08e1df1ad Binary files /dev/null and b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_joint/crisp_tts_joint_profile20_pcm_20260923.wav differ diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_joint/crisp_tts_joint_profile20_pcm_asr_20260923.json b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_joint/crisp_tts_joint_profile20_pcm_asr_20260923.json new file mode 100644 index 000000000..e42b37ee0 --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_joint/crisp_tts_joint_profile20_pcm_asr_20260923.json @@ -0,0 +1,16 @@ +{ + "scope": "local Whisper tiny.en ASR proxy for generated speech; no perceptual quality claim", + "asr_model": "openai/whisper-tiny.en", + "asr_revision": "87c7102498dcde7456f24cfd30239ca606ed9063", + "asr_weights_sha256": "db59695928ded6043adaef491a53ef4e12da9611184d77c53baa691a60b958ad", + "transformers": "4.57.3", + "torch": "2.4.1+cpu", + "wav_sha256": "d000699e97685fc0041ec1e374d31879f32a1e84fe8aa8b57fc0c3436e4d32ce", + "input_sample_rate": 24000, + "input_duration_s": 2.56, + "reference_text": "Hello from the local computer.", + "transcript": "Hello from the local computer.", + "word_error_rate": 0.0, + "asr_load_s": 0.8723513999721035, + "asr_inference_s": 0.8797434000298381 +} diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_joint/crisp_tts_joint_profile20_pcm_asr_20260923.log b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_joint/crisp_tts_joint_profile20_pcm_asr_20260923.log new file mode 100644 index 000000000..0225d48f2 --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_joint/crisp_tts_joint_profile20_pcm_asr_20260923.log @@ -0,0 +1,17 @@ +Using custom `forced_decoder_ids` from the (generation) config. This is deprecated in favor of the `task` and `language` flags/config options. +{ + "scope": "local Whisper tiny.en ASR proxy for generated speech; no perceptual quality claim", + "asr_model": "openai/whisper-tiny.en", + "asr_revision": "87c7102498dcde7456f24cfd30239ca606ed9063", + "asr_weights_sha256": "db59695928ded6043adaef491a53ef4e12da9611184d77c53baa691a60b958ad", + "transformers": "4.57.3", + "torch": "2.4.1+cpu", + "wav_sha256": "d000699e97685fc0041ec1e374d31879f32a1e84fe8aa8b57fc0c3436e4d32ce", + "input_sample_rate": 24000, + "input_duration_s": 2.56, + "reference_text": "Hello from the local computer.", + "transcript": "Hello from the local computer.", + "word_error_rate": 0.0, + "asr_load_s": 0.8723513999721035, + "asr_inference_s": 0.8797434000298381 +} diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_joint/crisp_tts_joint_server_20260923.stderr.log b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_joint/crisp_tts_joint_server_20260923.stderr.log new file mode 100644 index 000000000..427620e43 --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_joint/crisp_tts_joint_server_20260923.stderr.log @@ -0,0 +1,214 @@ +crispasr 0.8.35 (git 00c9e752, Release) [backends: cpu,vulkan] +ggml_vulkan: Found 1 Vulkan devices: +ggml_vulkan: 0 = AMD Radeon(TM) 890M Graphics (AMD proprietary driver) | uma: 1 | fp16: 1 | bf16: 1 | fp4: 0 | warp size: 64 | shared memory: 32768 | int dot: 1 | matrix cores: KHR_coopmat +cpu-isa: OK — built for AVX2/FMA/F16C/BMI2/AVX; host CPU supports the build's ISA baseline +crispasr_init_gpu_backend: using preferred GPU backend: Vulkan0 +qwen3_tts: code_pred CPU-pinned (72 tensors, 432 MB, copy=f32) +qwen3_tts: kv cache 448 MiB (head_dim=128 max_ctx=4096 n_kv=8 n_layers=28) +qwen3_tts: loaded C:\Users\zhout\w2\models\crisp_qwen3tts_0.6b\qwen3-tts-12hz-0.6b-customvoice-q8_0.gguf (talker 28L/1024 code_pred 5L vocab 3072) +qwen3_tts: codec: GPU default - loading weights onto Vulkan0 +qwen3_tts: codec loaded from 'C:\Users\zhout\w2\models\crisp_qwen3tts_0.6b\qwen3-tts-tokenizer-12hz.gguf' (8L d=512/1024 rvq=16) +qwen3_tts: codec encoder loaded (SEANet+xfmr+RVQ) +crispasr[qwen3-tts]: codec loaded from 'C:\Users\zhout\w2\models\crisp_qwen3tts_0.6b\qwen3-tts-tokenizer-12hz.gguf' +crispasr-server: warmup completed in 0 ms +crispasr-server: backend 'qwen3-tts-customvoice' loaded, model 'C:\Users\zhout\w2\models\crisp_qwen3tts_0.6b\qwen3-tts-12hz-0.6b-customvoice-q8_0.gguf' +crispasr-server: auto-enabling punctuation restoration for backend 'qwen3-tts' +crispasr[punc]: downloading https://huggingface.co/cstr/fireredpunc-GGUF/resolve/main/fireredpunc-q4_k.gguf +crispasr: downloading via WinHTTP... +fireredpunc: 12L, d=768, ffn=3072, heads=12, vocab=21128, labels=5 +crispasr_init_gpu_backend: using preferred GPU backend: Vulkan0 +crispasr-server: loaded punctuation model 'C:\Users\zhout/.cache/crispasr/fireredpunc-q4_k.gguf' + +crispasr-server: listening on 127.0.0.1:18175 + POST /inference — upload audio (native JSON) + POST /v1/audio/transcriptions — OpenAI-compatible API + POST /v1/audio/speech — TTS (OpenAI-compatible) + POST /load — hot-swap model + GET /health — server status + GET /backends — list backends + GET /v1/models — model info + GET /v1/voices — list voices in --voice-dir + /voices, /v1/audio/voices — aliases (llama-swap compat) + POST /v1/voices — upload voice file (multipart) + DELETE /v1/voices/:name — delete voice file +crispasr-server: warning: --voice-dir not set; /v1/voices will return empty and /v1/audio/speech will reject requests with a 'voice' field + +crispasr: warning: 'qwen3-tts-customvoice' does not record whether its preset voice belongs to a real person, so no spoken AI + disclosure was added. If the voice is that of an identifiable individual, the output is a + deep fake under EU AI Act Art. 3(60) and you carry the Art. 50(4) duty to disclose it. + Pass --speaker-identity real_person to have CrispASR prepend the disclosure, or + --speaker-identity synthetic to silence this. +qwen3_tts: selected CustomVoice speaker 'ryan' (spk_id=3061) +crispasr[qwen3-tts]: CustomVoice speaker = 'ryan' (available: aiden, dylan, eric, ono_anna, ryan, serena, sohee, uncle_fu, vivian) +qwen3_tts[customvoice]: prefill role=3 + bridge=5 + text=7 + final=1 = T=16 trailing=1 +qwen3_tts: produced 32 frames × 16 codebooks = 512 codes +qwen3_tts: perf — codes=3069 ms codec=207 ms total=3276 ms audio=2.6 s rtf=1.280 +crispasr-server: synthesized 2.6s audio in 3.55s (RTF=1.39) voice='' speed=1.00 format=wav model='' chunks=1 sr=24000Hz +qwen3_tts[customvoice]: prefill role=3 + bridge=5 + text=7 + final=1 = T=16 trailing=1 +qwen3_tts: produced 32 frames × 16 codebooks = 512 codes +qwen3_tts: perf — codes=3430 ms codec=205 ms total=3635 ms audio=2.6 s rtf=1.420 +crispasr-server: synthesized 2.6s audio in 3.64s (RTF=1.42) voice='' speed=1.00 format=wav model='' chunks=1 sr=24000Hz +qwen3_tts[customvoice]: prefill role=3 + bridge=5 + text=7 + final=1 = T=16 trailing=1 +qwen3_tts: produced 32 frames × 16 codebooks = 512 codes +qwen3_tts: perf — codes=3077 ms codec=204 ms total=3282 ms audio=2.6 s rtf=1.282 +crispasr-server: synthesized 2.6s audio in 3.28s (RTF=1.28) voice='' speed=1.00 format=wav model='' chunks=1 sr=24000Hz +qwen3_tts[customvoice]: prefill role=3 + bridge=5 + text=7 + final=1 = T=16 trailing=1 +qwen3_tts: produced 32 frames × 16 codebooks = 512 codes +qwen3_tts: perf — codes=3079 ms codec=204 ms total=3283 ms audio=2.6 s rtf=1.283 +crispasr-server: synthesized 2.6s audio in 3.29s (RTF=1.28) voice='' speed=1.00 format=wav model='' chunks=1 sr=24000Hz +qwen3_tts[customvoice]: prefill role=3 + bridge=5 + text=7 + final=1 = T=16 trailing=1 +qwen3_tts: produced 32 frames × 16 codebooks = 512 codes +qwen3_tts: perf — codes=3078 ms codec=205 ms total=3283 ms audio=2.6 s rtf=1.282 +crispasr-server: synthesized 2.6s audio in 3.28s (RTF=1.28) voice='' speed=1.00 format=wav model='' chunks=1 sr=24000Hz +qwen3_tts[customvoice]: prefill role=3 + bridge=5 + text=7 + final=1 = T=16 trailing=1 +qwen3_tts: produced 32 frames × 16 codebooks = 512 codes +qwen3_tts: perf — codes=3090 ms codec=210 ms total=3300 ms audio=2.6 s rtf=1.289 +crispasr-server: synthesized 2.6s audio in 3.30s (RTF=1.29) voice='' speed=1.00 format=wav model='' chunks=1 sr=24000Hz +qwen3_tts[customvoice]: prefill role=3 + bridge=5 + text=7 + final=1 = T=16 trailing=1 +qwen3_tts: produced 32 frames × 16 codebooks = 512 codes +qwen3_tts: perf — codes=3099 ms codec=204 ms total=3303 ms audio=2.6 s rtf=1.290 +crispasr-server: synthesized 2.6s audio in 3.30s (RTF=1.29) voice='' speed=1.00 format=wav model='' chunks=1 sr=24000Hz +qwen3_tts[customvoice]: prefill role=3 + bridge=5 + text=7 + final=1 = T=16 trailing=1 +qwen3_tts: produced 32 frames × 16 codebooks = 512 codes +qwen3_tts: perf — codes=3086 ms codec=208 ms total=3294 ms audio=2.6 s rtf=1.287 +crispasr-server: synthesized 2.6s audio in 3.30s (RTF=1.29) voice='' speed=1.00 format=wav model='' chunks=1 sr=24000Hz +qwen3_tts[customvoice]: prefill role=3 + bridge=5 + text=7 + final=1 = T=16 trailing=1 +qwen3_tts: produced 32 frames × 16 codebooks = 512 codes +qwen3_tts: perf — codes=3070 ms codec=206 ms total=3276 ms audio=2.6 s rtf=1.280 +crispasr-server: synthesized 2.6s audio in 3.29s (RTF=1.28) voice='' speed=1.00 format=wav model='' chunks=1 sr=24000Hz +qwen3_tts[customvoice]: prefill role=3 + bridge=5 + text=7 + final=1 = T=16 trailing=1 +qwen3_tts: produced 32 frames × 16 codebooks = 512 codes +qwen3_tts: perf — codes=3069 ms codec=204 ms total=3273 ms audio=2.6 s rtf=1.279 +crispasr-server: synthesized 2.6s audio in 3.27s (RTF=1.28) voice='' speed=1.00 format=wav model='' chunks=1 sr=24000Hz +qwen3_tts[customvoice]: prefill role=3 + bridge=5 + text=7 + final=1 = T=16 trailing=1 +qwen3_tts: produced 32 frames × 16 codebooks = 512 codes +qwen3_tts: perf — codes=3100 ms codec=205 ms total=3305 ms audio=2.6 s rtf=1.291 +crispasr-server: synthesized 2.6s audio in 3.31s (RTF=1.29) voice='' speed=1.00 format=wav model='' chunks=1 sr=24000Hz +qwen3_tts[customvoice]: prefill role=3 + bridge=5 + text=7 + final=1 = T=16 trailing=1 +qwen3_tts: produced 32 frames × 16 codebooks = 512 codes +qwen3_tts: perf — codes=3083 ms codec=209 ms total=3292 ms audio=2.6 s rtf=1.286 +crispasr-server: synthesized 2.6s audio in 3.29s (RTF=1.29) voice='' speed=1.00 format=wav model='' chunks=1 sr=24000Hz +qwen3_tts[customvoice]: prefill role=3 + bridge=5 + text=7 + final=1 = T=16 trailing=1 +qwen3_tts: produced 32 frames × 16 codebooks = 512 codes +qwen3_tts: perf — codes=3072 ms codec=226 ms total=3299 ms audio=2.6 s rtf=1.289 +crispasr-server: synthesized 2.6s audio in 3.30s (RTF=1.29) voice='' speed=1.00 format=wav model='' chunks=1 sr=24000Hz +qwen3_tts[customvoice]: prefill role=3 + bridge=5 + text=7 + final=1 = T=16 trailing=1 +qwen3_tts: produced 32 frames × 16 codebooks = 512 codes +qwen3_tts: perf — codes=3083 ms codec=209 ms total=3293 ms audio=2.6 s rtf=1.286 +crispasr-server: synthesized 2.6s audio in 3.29s (RTF=1.29) voice='' speed=1.00 format=wav model='' chunks=1 sr=24000Hz +qwen3_tts[customvoice]: prefill role=3 + bridge=5 + text=7 + final=1 = T=16 trailing=1 +qwen3_tts: produced 32 frames × 16 codebooks = 512 codes +qwen3_tts: perf — codes=3086 ms codec=215 ms total=3301 ms audio=2.6 s rtf=1.289 +crispasr-server: synthesized 2.6s audio in 3.30s (RTF=1.29) voice='' speed=1.00 format=wav model='' chunks=1 sr=24000Hz +qwen3_tts[customvoice]: prefill role=3 + bridge=5 + text=7 + final=1 = T=16 trailing=1 +qwen3_tts: produced 32 frames × 16 codebooks = 512 codes +qwen3_tts: perf — codes=2997 ms codec=211 ms total=3209 ms audio=2.6 s rtf=1.253 +crispasr-server: synthesized 2.6s audio in 3.21s (RTF=1.25) voice='' speed=1.00 format=wav model='' chunks=1 sr=24000Hz +qwen3_tts[customvoice]: prefill role=3 + bridge=5 + text=7 + final=1 = T=16 trailing=1 +qwen3_tts: produced 32 frames × 16 codebooks = 512 codes +qwen3_tts: perf — codes=3086 ms codec=209 ms total=3294 ms audio=2.6 s rtf=1.287 +crispasr-server: synthesized 2.6s audio in 3.30s (RTF=1.29) voice='' speed=1.00 format=wav model='' chunks=1 sr=24000Hz +qwen3_tts[customvoice]: prefill role=3 + bridge=5 + text=7 + final=1 = T=16 trailing=1 +qwen3_tts: produced 32 frames × 16 codebooks = 512 codes +qwen3_tts: perf — codes=3089 ms codec=209 ms total=3298 ms audio=2.6 s rtf=1.288 +crispasr-server: synthesized 2.6s audio in 3.30s (RTF=1.29) voice='' speed=1.00 format=wav model='' chunks=1 sr=24000Hz +qwen3_tts[customvoice]: prefill role=3 + bridge=5 + text=7 + final=1 = T=16 trailing=1 +qwen3_tts: produced 32 frames × 16 codebooks = 512 codes +qwen3_tts: perf — codes=3105 ms codec=212 ms total=3317 ms audio=2.6 s rtf=1.296 +crispasr-server: synthesized 2.6s audio in 3.33s (RTF=1.30) voice='' speed=1.00 format=wav model='' chunks=1 sr=24000Hz +qwen3_tts[customvoice]: prefill role=3 + bridge=5 + text=7 + final=1 = T=16 trailing=1 +qwen3_tts: produced 32 frames × 16 codebooks = 512 codes +qwen3_tts: perf — codes=3088 ms codec=203 ms total=3291 ms audio=2.6 s rtf=1.285 +crispasr-server: synthesized 2.6s audio in 3.29s (RTF=1.29) voice='' speed=1.00 format=wav model='' chunks=1 sr=24000Hz +qwen3_tts[customvoice]: prefill role=3 + bridge=5 + text=7 + final=1 = T=16 trailing=1 +qwen3_tts: produced 32 frames × 16 codebooks = 512 codes +qwen3_tts: perf — codes=3079 ms codec=207 ms total=3286 ms audio=2.6 s rtf=1.284 +crispasr-server: synthesized 2.6s audio in 3.29s (RTF=1.28) voice='' speed=1.00 format=wav model='' chunks=1 sr=24000Hz +qwen3_tts[customvoice]: prefill role=3 + bridge=5 + text=7 + final=1 = T=16 trailing=1 +qwen3_tts: produced 32 frames × 16 codebooks = 512 codes +qwen3_tts: perf — codes=3092 ms codec=205 ms total=3297 ms audio=2.6 s rtf=1.288 +crispasr-server: synthesized 2.6s audio in 3.30s (RTF=1.29) voice='' speed=1.00 format=wav model='' chunks=1 sr=24000Hz +qwen3_tts[customvoice]: prefill role=3 + bridge=5 + text=7 + final=1 = T=16 trailing=1 +qwen3_tts: produced 32 frames × 16 codebooks = 512 codes +qwen3_tts: perf — codes=3209 ms codec=203 ms total=3412 ms audio=2.6 s rtf=1.333 +crispasr-server: synthesized 2.6s audio in 3.41s (RTF=1.33) voice='' speed=1.00 format=wav model='' chunks=1 sr=24000Hz +qwen3_tts[customvoice]: prefill role=3 + bridge=5 + text=7 + final=1 = T=16 trailing=1 +qwen3_tts: produced 32 frames × 16 codebooks = 512 codes +qwen3_tts: perf — codes=3061 ms codec=206 ms total=3267 ms audio=2.6 s rtf=1.276 +crispasr-server: synthesized 2.6s audio in 3.27s (RTF=1.28) voice='' speed=1.00 format=wav model='' chunks=1 sr=24000Hz +qwen3_tts[customvoice]: prefill role=3 + bridge=5 + text=7 + final=1 = T=16 trailing=1 +qwen3_tts: produced 32 frames × 16 codebooks = 512 codes +qwen3_tts: perf — codes=3106 ms codec=206 ms total=3312 ms audio=2.6 s rtf=1.294 +crispasr-server: synthesized 2.6s audio in 3.31s (RTF=1.29) voice='' speed=1.00 format=wav model='' chunks=1 sr=24000Hz +qwen3_tts[customvoice]: prefill role=3 + bridge=5 + text=7 + final=1 = T=16 trailing=1 +qwen3_tts: produced 32 frames × 16 codebooks = 512 codes +qwen3_tts: perf — codes=3075 ms codec=207 ms total=3282 ms audio=2.6 s rtf=1.282 +crispasr-server: synthesized 2.6s audio in 3.29s (RTF=1.28) voice='' speed=1.00 format=wav model='' chunks=1 sr=24000Hz +qwen3_tts[customvoice]: prefill role=3 + bridge=5 + text=7 + final=1 = T=16 trailing=1 +qwen3_tts: produced 32 frames × 16 codebooks = 512 codes +qwen3_tts: perf — codes=3093 ms codec=205 ms total=3298 ms audio=2.6 s rtf=1.288 +crispasr-server: synthesized 2.6s audio in 3.30s (RTF=1.29) voice='' speed=1.00 format=wav model='' chunks=1 sr=24000Hz +qwen3_tts[customvoice]: prefill role=3 + bridge=5 + text=7 + final=1 = T=16 trailing=1 +qwen3_tts: produced 32 frames × 16 codebooks = 512 codes +qwen3_tts: perf — codes=3097 ms codec=203 ms total=3300 ms audio=2.6 s rtf=1.289 +crispasr-server: synthesized 2.6s audio in 3.30s (RTF=1.29) voice='' speed=1.00 format=wav model='' chunks=1 sr=24000Hz +qwen3_tts[customvoice]: prefill role=3 + bridge=5 + text=7 + final=1 = T=16 trailing=1 +qwen3_tts: produced 32 frames × 16 codebooks = 512 codes +qwen3_tts: perf — codes=3079 ms codec=204 ms total=3283 ms audio=2.6 s rtf=1.282 +crispasr-server: synthesized 2.6s audio in 3.28s (RTF=1.28) voice='' speed=1.00 format=wav model='' chunks=1 sr=24000Hz +qwen3_tts[customvoice]: prefill role=3 + bridge=5 + text=7 + final=1 = T=16 trailing=1 +qwen3_tts: produced 32 frames × 16 codebooks = 512 codes +qwen3_tts: perf — codes=3079 ms codec=209 ms total=3288 ms audio=2.6 s rtf=1.284 +crispasr-server: synthesized 2.6s audio in 3.29s (RTF=1.29) voice='' speed=1.00 format=wav model='' chunks=1 sr=24000Hz +qwen3_tts[customvoice]: prefill role=3 + bridge=5 + text=7 + final=1 = T=16 trailing=1 +qwen3_tts: produced 32 frames × 16 codebooks = 512 codes +qwen3_tts: perf — codes=3073 ms codec=207 ms total=3279 ms audio=2.6 s rtf=1.281 +crispasr-server: synthesized 2.6s audio in 3.28s (RTF=1.28) voice='' speed=1.00 format=wav model='' chunks=1 sr=24000Hz +qwen3_tts[customvoice]: prefill role=3 + bridge=5 + text=7 + final=1 = T=16 trailing=1 +qwen3_tts: produced 32 frames × 16 codebooks = 512 codes +qwen3_tts: perf — codes=3091 ms codec=205 ms total=3296 ms audio=2.6 s rtf=1.287 +crispasr-server: synthesized 2.6s audio in 3.30s (RTF=1.29) voice='' speed=1.00 format=wav model='' chunks=1 sr=24000Hz +qwen3_tts[customvoice]: prefill role=3 + bridge=5 + text=7 + final=1 = T=16 trailing=1 +qwen3_tts: produced 32 frames × 16 codebooks = 512 codes +qwen3_tts: perf — codes=3082 ms codec=203 ms total=3284 ms audio=2.6 s rtf=1.283 +crispasr-server: synthesized 2.6s audio in 3.29s (RTF=1.28) voice='' speed=1.00 format=wav model='' chunks=1 sr=24000Hz +qwen3_tts[customvoice]: prefill role=3 + bridge=5 + text=7 + final=1 = T=16 trailing=1 +qwen3_tts: produced 32 frames × 16 codebooks = 512 codes +qwen3_tts: perf — codes=3066 ms codec=207 ms total=3273 ms audio=2.6 s rtf=1.279 +crispasr-server: synthesized 2.6s audio in 3.28s (RTF=1.28) voice='' speed=1.00 format=wav model='' chunks=1 sr=24000Hz +qwen3_tts[customvoice]: prefill role=3 + bridge=5 + text=7 + final=1 = T=16 trailing=1 +qwen3_tts: produced 32 frames × 16 codebooks = 512 codes +qwen3_tts: perf — codes=3074 ms codec=203 ms total=3277 ms audio=2.6 s rtf=1.280 +crispasr-server: synthesized 2.6s audio in 3.28s (RTF=1.28) voice='' speed=1.00 format=wav model='' chunks=1 sr=24000Hz +qwen3_tts[customvoice]: prefill role=3 + bridge=5 + text=7 + final=1 = T=16 trailing=1 +qwen3_tts: produced 32 frames × 16 codebooks = 512 codes +qwen3_tts: perf — codes=3069 ms codec=218 ms total=3287 ms audio=2.6 s rtf=1.284 +crispasr-server: synthesized 2.6s audio in 3.29s (RTF=1.29) voice='' speed=1.00 format=wav model='' chunks=1 sr=24000Hz +qwen3_tts[customvoice]: prefill role=3 + bridge=5 + text=7 + final=1 = T=16 trailing=1 +qwen3_tts: produced 32 frames × 16 codebooks = 512 codes +qwen3_tts: perf — codes=3086 ms codec=205 ms total=3292 ms audio=2.6 s rtf=1.286 +crispasr-server: synthesized 2.6s audio in 3.29s (RTF=1.29) voice='' speed=1.00 format=wav model='' chunks=1 sr=24000Hz +qwen3_tts[customvoice]: prefill role=3 + bridge=5 + text=7 + final=1 = T=16 trailing=1 +qwen3_tts: produced 32 frames × 16 codebooks = 512 codes +qwen3_tts: perf — codes=3107 ms codec=204 ms total=3312 ms audio=2.6 s rtf=1.294 +crispasr-server: synthesized 2.6s audio in 3.31s (RTF=1.29) voice='' speed=1.00 format=wav model='' chunks=1 sr=24000Hz +qwen3_tts[customvoice]: prefill role=3 + bridge=5 + text=7 + final=1 = T=16 trailing=1 +qwen3_tts: produced 32 frames × 16 codebooks = 512 codes +qwen3_tts: perf — codes=3113 ms codec=211 ms total=3324 ms audio=2.6 s rtf=1.299 +crispasr-server: synthesized 2.6s audio in 3.34s (RTF=1.30) voice='' speed=1.00 format=wav model='' chunks=1 sr=24000Hz +qwen3_tts[customvoice]: prefill role=3 + bridge=5 + text=7 + final=1 = T=16 trailing=1 +qwen3_tts: produced 32 frames × 16 codebooks = 512 codes +qwen3_tts: perf — codes=3075 ms codec=213 ms total=3289 ms audio=2.6 s rtf=1.285 +crispasr-server: synthesized 2.6s audio in 3.29s (RTF=1.29) voice='' speed=1.00 format=wav model='' chunks=1 sr=24000Hz +qwen3_tts[customvoice]: prefill role=3 + bridge=5 + text=7 + final=1 = T=16 trailing=1 +qwen3_tts: produced 32 frames × 16 codebooks = 512 codes +qwen3_tts: perf — codes=3110 ms codec=205 ms total=3315 ms audio=2.6 s rtf=1.295 +crispasr-server: synthesized 2.6s audio in 3.32s (RTF=1.30) voice='' speed=1.00 format=wav model='' chunks=1 sr=24000Hz +qwen3_tts[customvoice]: prefill role=3 + bridge=5 + text=7 + final=1 = T=16 trailing=1 +qwen3_tts: produced 32 frames × 16 codebooks = 512 codes +qwen3_tts: perf — codes=3101 ms codec=207 ms total=3307 ms audio=2.6 s rtf=1.292 +crispasr-server: synthesized 2.6s audio in 3.31s (RTF=1.29) voice='' speed=1.00 format=wav model='' chunks=1 sr=24000Hz +qwen3_tts[customvoice]: prefill role=3 + bridge=5 + text=7 + final=1 = T=16 trailing=1 +qwen3_tts: produced 32 frames × 16 codebooks = 512 codes +qwen3_tts: perf — codes=3087 ms codec=216 ms total=3303 ms audio=2.6 s rtf=1.290 +crispasr-server: synthesized 2.6s audio in 3.31s (RTF=1.29) voice='' speed=1.00 format=wav model='' chunks=1 sr=24000Hz diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_joint/crisp_tts_joint_server_first_20260923.wav b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_joint/crisp_tts_joint_server_first_20260923.wav new file mode 100644 index 000000000..a61c35bfd Binary files /dev/null and b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_joint/crisp_tts_joint_server_first_20260923.wav differ diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_joint/crisp_tts_radeon_20260923.log b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_joint/crisp_tts_radeon_20260923.log new file mode 100644 index 000000000..28ed3b2c4 --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_joint/crisp_tts_radeon_20260923.log @@ -0,0 +1,69 @@ +crispasr 0.8.35 (git 00c9e752, Release) [backends: cpu,vulkan] +=== build info === + version : 0.8.35 + git sha : 00c9e752 + git date : 2026-09-21T20:44:31Z + git subject : release-_bump_VERSION_to_0.8.35 + build date : 2026-09-21T21:04:24Z + build type : Release + compiler : msvc 1951 + os : windows + arch : x86_64 + ggml backends : cpu,vulkan + +=== runtime env === + PATH = C:\Users\zhout\.cache\codex-runtimes\codex-primary-runtime\dependencies\native\powershell;C:\Users\zhout\.codex\tmp\arg0\codex-arg05Acw4D;C:\Users\zhout\.cache\codex-runtimes\codex-primary-runtime\dependencies\native\libheif\libheif\bin;C:\Users\zhout\.cache\codex-runtimes\codex-primary-runtime\dependencies\native\jxrlib\jxrlib\bin;C:\Users\zhout\.cache\codex-runtimes\codex-primary-runtime\dependencies\native\poppler\Library\bin;C:\Users\zhout\.cache\codex-runtimes\codex-primary-runtime\dependencies\bin\override;C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.4\bin\x64;C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.4\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\NVIDIA Corporation\NVIDIA App\NvDLISR;C:\Windows\System32\WindowsPowerShell\v1.0;C:\Program Files\Git\cmd;C:\Program Files\NVIDIA Corporation\Nsight Compute 2026.3.0\;C:\Users\zhout\.cargo\bin;C:\Users\zhout\AppData\Local\Programs\Python\Python312\Scripts\;C:\Users\zhout\AppData\Local\Programs\Python\Python312\;C:\Users\zhout\AppData\Local\Programs\Python\Launcher\;c:\Users\zhout\AppData\Local\Programs\cursor\resources\app\codeBin;C:\Users\zhout\.cache\codex-runtimes\codex-primary-runtime\dependencies\native\powershell;C:\Users\zhout\AppData\Local\Microsoft\WindowsApps;C:\Users\zhout\AppData\Local\Programs\cursor\resources\app\bin;C:\Users\zhout\.cache\codex-runtimes\codex-primary-runtime\dependencies\bin\fallback;C:\Users\zhout\.cache\codex-runtimes\codex-primary-runtime\dependencies\node\bin;C:\Users\zhout\.cache\codex-runtimes\codex-primary-runtime\dependencies\native\git\cmd;C:\Program Files\WindowsApps\OpenAI.Codex_26.917.6896.0_x64__2p2nqsd0c76g0\app\resources + LD_LIBRARY_PATH = (unset) + LIBRARY_PATH = (unset) + CUDA_HOME = (unset) + CUDA_PATH = C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.4 + CUDA_VISIBLE_DEVICES = 1 + NVIDIA_VISIBLE_DEVICES = (unset) + NVIDIA_DRIVER_CAPABILITIES = (unset) + GGML_CUDA_DEBUG = 1 + GGML_VK_VISIBLE_DEVICES = 1 + GGML_VK_PIPELINE_CACHE_DEBUG = 1 + CRISPASR_USE_CUDA_COMPAT = (unset) + CRISPASR_BACKEND = (unset) + CRISPASR_CACHE_DIR = (unset) + +=== ggml backends + devices === +ggml_vulkan: Found 1 Vulkan devices: +ggml_vulkan: 0 = AMD Radeon(TM) 890M Graphics (AMD proprietary driver) | uma: 1 | fp16: 1 | bf16: 1 | fp4: 0 | warp size: 64 | shared memory: 32768 | int dot: 1 | matrix cores: KHR_coopmat + registered backends: 2 + [0] Vulkan (devices: 1) + [1] CPU (devices: 1) + registered devices : 2 + [0] igpu name=Vulkan0 desc=AMD Radeon(TM) 890M Graphics mem=46080/48505 MiB id=? + [1] cpu name=CPU desc=AMD Ryzen AI 9 HX 370 w/ Radeon 890M mem=28341/64633 MiB id=? + +crispasr[verbose]: model arg = 'C:\Users\zhout\w2\models\crisp_qwen3tts_0.6b\qwen3-tts-12hz-0.6b-customvoice-q8_0.gguf' +crispasr[verbose]: backend arg = 'qwen3-tts-customvoice' +crispasr[verbose]: use_gpu = true +crispasr[verbose]: gpu_backend = 'vulkan' +crispasr[verbose]: gpu_device = 1 +crispasr[verbose]: cache_dir override = '(default)' +crispasr[verbose]: auto_download = false +crispasr[verbose]: n_threads = 4 +crispasr[verbose]: flash_attn = true +crispasr[verbose]: resolved model = 'C:\Users\zhout\w2\models\crisp_qwen3tts_0.6b\qwen3-tts-12hz-0.6b-customvoice-q8_0.gguf' +crispasr_init_gpu_backend: using preferred GPU backend: Vulkan0 +qwen3_tts: Vulkan backend detected — running talker on CPU (#304 Vulkan miscompute; set CRISPASR_QWEN3_TTS_VULKAN_NATIVE=1 to override) +qwen3_tts: kv cache 448 MiB (head_dim=128 max_ctx=4096 n_kv=8 n_layers=28) +qwen3_tts: loaded C:\Users\zhout\w2\models\crisp_qwen3tts_0.6b\qwen3-tts-12hz-0.6b-customvoice-q8_0.gguf (talker 28L/1024 code_pred 5L vocab 3072) +qwen3_tts: codec: CPU default - loading weights onto CPU +qwen3_tts: codec loaded from 'C:\Users\zhout\w2\models\crisp_qwen3tts_0.6b\qwen3-tts-tokenizer-12hz.gguf' (8L d=512/1024 rvq=16) +qwen3_tts: codec encoder loaded (SEANet+xfmr+RVQ) +crispasr[qwen3-tts]: codec loaded from 'C:\Users\zhout\w2\models\crisp_qwen3tts_0.6b\qwen3-tts-tokenizer-12hz.gguf' +crispasr[verbose]: backend 'qwen3-tts-customvoice' initialised OK +crispasr: warning: 'qwen3-tts-customvoice' does not record whether its preset voice belongs to a real person, so no spoken AI + disclosure was added. If the voice is that of an identifiable individual, the output is a + deep fake under EU AI Act Art. 3(60) and you carry the Art. 50(4) duty to disclose it. + Pass --speaker-identity real_person to have CrispASR prepend the disclosure, or + --speaker-identity synthetic to silence this. +qwen3_tts: selected CustomVoice speaker 'ryan' (spk_id=3061) +crispasr[qwen3-tts]: CustomVoice speaker = 'ryan' (available: aiden, dylan, eric, ono_anna, ryan, serena, sohee, uncle_fu, vivian) +qwen3_tts[customvoice]: prefill role=3 + bridge=5 + text=7 + final=1 = T=16 trailing=1 +qwen3_tts: produced 90 frames × 16 codebooks = 1440 codes +qwen3_tts: perf — codes=3475 ms codec=3329 ms total=6804 ms audio=7.2 s rtf=0.945 +crispasr: TTS output written to 'C:\Users\zhout\w2\crisp_tts_radeon_20260923.wav' (172800 samples @ 24000 Hz, 7.20 sec) diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_joint/crisp_tts_radeon_20260923.wav b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_joint/crisp_tts_radeon_20260923.wav new file mode 100644 index 000000000..3fe915545 Binary files /dev/null and b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_joint/crisp_tts_radeon_20260923.wav differ diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_joint/crisp_tts_radeon_cp_cpu_20260923.log b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_joint/crisp_tts_radeon_cp_cpu_20260923.log new file mode 100644 index 000000000..b3de420ea --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_joint/crisp_tts_radeon_cp_cpu_20260923.log @@ -0,0 +1,69 @@ +crispasr 0.8.35 (git 00c9e752, Release) [backends: cpu,vulkan] +=== build info === + version : 0.8.35 + git sha : 00c9e752 + git date : 2026-09-21T20:44:31Z + git subject : release-_bump_VERSION_to_0.8.35 + build date : 2026-09-21T21:04:24Z + build type : Release + compiler : msvc 1951 + os : windows + arch : x86_64 + ggml backends : cpu,vulkan + +=== runtime env === + PATH = C:\Users\zhout\.cache\codex-runtimes\codex-primary-runtime\dependencies\native\powershell;C:\Users\zhout\.codex\tmp\arg0\codex-arg05Acw4D;C:\Users\zhout\.cache\codex-runtimes\codex-primary-runtime\dependencies\native\libheif\libheif\bin;C:\Users\zhout\.cache\codex-runtimes\codex-primary-runtime\dependencies\native\jxrlib\jxrlib\bin;C:\Users\zhout\.cache\codex-runtimes\codex-primary-runtime\dependencies\native\poppler\Library\bin;C:\Users\zhout\.cache\codex-runtimes\codex-primary-runtime\dependencies\bin\override;C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.4\bin\x64;C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.4\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\NVIDIA Corporation\NVIDIA App\NvDLISR;C:\Windows\System32\WindowsPowerShell\v1.0;C:\Program Files\Git\cmd;C:\Program Files\NVIDIA Corporation\Nsight Compute 2026.3.0\;C:\Users\zhout\.cargo\bin;C:\Users\zhout\AppData\Local\Programs\Python\Python312\Scripts\;C:\Users\zhout\AppData\Local\Programs\Python\Python312\;C:\Users\zhout\AppData\Local\Programs\Python\Launcher\;c:\Users\zhout\AppData\Local\Programs\cursor\resources\app\codeBin;C:\Users\zhout\.cache\codex-runtimes\codex-primary-runtime\dependencies\native\powershell;C:\Users\zhout\AppData\Local\Microsoft\WindowsApps;C:\Users\zhout\AppData\Local\Programs\cursor\resources\app\bin;C:\Users\zhout\.cache\codex-runtimes\codex-primary-runtime\dependencies\bin\fallback;C:\Users\zhout\.cache\codex-runtimes\codex-primary-runtime\dependencies\node\bin;C:\Users\zhout\.cache\codex-runtimes\codex-primary-runtime\dependencies\native\git\cmd;C:\Program Files\WindowsApps\OpenAI.Codex_26.917.6896.0_x64__2p2nqsd0c76g0\app\resources + LD_LIBRARY_PATH = (unset) + LIBRARY_PATH = (unset) + CUDA_HOME = (unset) + CUDA_PATH = C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.4 + CUDA_VISIBLE_DEVICES = 1 + NVIDIA_VISIBLE_DEVICES = (unset) + NVIDIA_DRIVER_CAPABILITIES = (unset) + GGML_CUDA_DEBUG = 1 + GGML_VK_VISIBLE_DEVICES = 1 + GGML_VK_PIPELINE_CACHE_DEBUG = 1 + CRISPASR_USE_CUDA_COMPAT = (unset) + CRISPASR_BACKEND = (unset) + CRISPASR_CACHE_DIR = (unset) + +=== ggml backends + devices === +ggml_vulkan: Found 1 Vulkan devices: +ggml_vulkan: 0 = AMD Radeon(TM) 890M Graphics (AMD proprietary driver) | uma: 1 | fp16: 1 | bf16: 1 | fp4: 0 | warp size: 64 | shared memory: 32768 | int dot: 1 | matrix cores: KHR_coopmat + registered backends: 2 + [0] Vulkan (devices: 1) + [1] CPU (devices: 1) + registered devices : 2 + [0] igpu name=Vulkan0 desc=AMD Radeon(TM) 890M Graphics mem=46080/48505 MiB id=? + [1] cpu name=CPU desc=AMD Ryzen AI 9 HX 370 w/ Radeon 890M mem=28721/64633 MiB id=? + +crispasr[verbose]: model arg = 'C:\Users\zhout\w2\models\crisp_qwen3tts_0.6b\qwen3-tts-12hz-0.6b-customvoice-q8_0.gguf' +crispasr[verbose]: backend arg = 'qwen3-tts-customvoice' +crispasr[verbose]: use_gpu = true +crispasr[verbose]: gpu_backend = 'vulkan' +crispasr[verbose]: gpu_device = 1 +crispasr[verbose]: cache_dir override = '(default)' +crispasr[verbose]: auto_download = false +crispasr[verbose]: n_threads = 4 +crispasr[verbose]: flash_attn = false +crispasr[verbose]: resolved model = 'C:\Users\zhout\w2\models\crisp_qwen3tts_0.6b\qwen3-tts-12hz-0.6b-customvoice-q8_0.gguf' +crispasr_init_gpu_backend: using preferred GPU backend: Vulkan0 +qwen3_tts: code_pred CPU-pinned (72 tensors, 432 MB, copy=f32) +qwen3_tts: kv cache 448 MiB (head_dim=128 max_ctx=4096 n_kv=8 n_layers=28) +qwen3_tts: loaded C:\Users\zhout\w2\models\crisp_qwen3tts_0.6b\qwen3-tts-12hz-0.6b-customvoice-q8_0.gguf (talker 28L/1024 code_pred 5L vocab 3072) +qwen3_tts: codec: GPU default - loading weights onto Vulkan0 +qwen3_tts: codec loaded from 'C:\Users\zhout\w2\models\crisp_qwen3tts_0.6b\qwen3-tts-tokenizer-12hz.gguf' (8L d=512/1024 rvq=16) +qwen3_tts: codec encoder loaded (SEANet+xfmr+RVQ) +crispasr[qwen3-tts]: codec loaded from 'C:\Users\zhout\w2\models\crisp_qwen3tts_0.6b\qwen3-tts-tokenizer-12hz.gguf' +crispasr[verbose]: backend 'qwen3-tts-customvoice' initialised OK +crispasr: warning: 'qwen3-tts-customvoice' does not record whether its preset voice belongs to a real person, so no spoken AI + disclosure was added. If the voice is that of an identifiable individual, the output is a + deep fake under EU AI Act Art. 3(60) and you carry the Art. 50(4) duty to disclose it. + Pass --speaker-identity real_person to have CrispASR prepend the disclosure, or + --speaker-identity synthetic to silence this. +qwen3_tts: selected CustomVoice speaker 'ryan' (spk_id=3061) +crispasr[qwen3-tts]: CustomVoice speaker = 'ryan' (available: aiden, dylan, eric, ono_anna, ryan, serena, sohee, uncle_fu, vivian) +qwen3_tts[customvoice]: prefill role=3 + bridge=5 + text=7 + final=1 = T=16 trailing=1 +qwen3_tts: produced 32 frames × 16 codebooks = 512 codes +qwen3_tts: perf — codes=3023 ms codec=345 ms total=3369 ms audio=2.6 s rtf=1.316 +crispasr: TTS output written to 'C:\Users\zhout\w2\crisp_tts_radeon_cp_cpu_20260923.wav' (61440 samples @ 24000 Hz, 2.56 sec) diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_joint/crisp_tts_radeon_cp_cpu_20260923.wav b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_joint/crisp_tts_radeon_cp_cpu_20260923.wav new file mode 100644 index 000000000..bb0347248 Binary files /dev/null and b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_joint/crisp_tts_radeon_cp_cpu_20260923.wav differ diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_joint/crisp_tts_radeon_cp_cpu_asr_20260923.json b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_joint/crisp_tts_radeon_cp_cpu_asr_20260923.json new file mode 100644 index 000000000..61fd79747 --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_joint/crisp_tts_radeon_cp_cpu_asr_20260923.json @@ -0,0 +1,16 @@ +{ + "scope": "local Whisper tiny.en ASR proxy for generated speech; no perceptual quality claim", + "asr_model": "openai/whisper-tiny.en", + "asr_revision": "87c7102498dcde7456f24cfd30239ca606ed9063", + "asr_weights_sha256": "db59695928ded6043adaef491a53ef4e12da9611184d77c53baa691a60b958ad", + "transformers": "4.57.3", + "torch": "2.4.1+cpu", + "wav_sha256": "95253f7aab1b5721733395a229d09f96e7d6fff67ca9166554d5d88104a52016", + "input_sample_rate": 24000, + "input_duration_s": 2.56, + "reference_text": "Hello from the local computer.", + "transcript": "Hello from the local computer.", + "word_error_rate": 0.0, + "asr_load_s": 0.8987498000496998, + "asr_inference_s": 0.8767790000420064 +} diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_joint/crisp_tts_radeon_cp_cpu_asr_20260923.log b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_joint/crisp_tts_radeon_cp_cpu_asr_20260923.log new file mode 100644 index 000000000..a229ed944 --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_joint/crisp_tts_radeon_cp_cpu_asr_20260923.log @@ -0,0 +1,17 @@ +Using custom `forced_decoder_ids` from the (generation) config. This is deprecated in favor of the `task` and `language` flags/config options. +{ + "scope": "local Whisper tiny.en ASR proxy for generated speech; no perceptual quality claim", + "asr_model": "openai/whisper-tiny.en", + "asr_revision": "87c7102498dcde7456f24cfd30239ca606ed9063", + "asr_weights_sha256": "db59695928ded6043adaef491a53ef4e12da9611184d77c53baa691a60b958ad", + "transformers": "4.57.3", + "torch": "2.4.1+cpu", + "wav_sha256": "95253f7aab1b5721733395a229d09f96e7d6fff67ca9166554d5d88104a52016", + "input_sample_rate": 24000, + "input_duration_s": 2.56, + "reference_text": "Hello from the local computer.", + "transcript": "Hello from the local computer.", + "word_error_rate": 0.0, + "asr_load_s": 0.8987498000496998, + "asr_inference_s": 0.8767790000420064 +} diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_joint/crisp_tts_radeon_cp_cpu_fa_20260923.log b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_joint/crisp_tts_radeon_cp_cpu_fa_20260923.log new file mode 100644 index 000000000..2d505fb95 --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_joint/crisp_tts_radeon_cp_cpu_fa_20260923.log @@ -0,0 +1,69 @@ +crispasr 0.8.35 (git 00c9e752, Release) [backends: cpu,vulkan] +=== build info === + version : 0.8.35 + git sha : 00c9e752 + git date : 2026-09-21T20:44:31Z + git subject : release-_bump_VERSION_to_0.8.35 + build date : 2026-09-21T21:04:24Z + build type : Release + compiler : msvc 1951 + os : windows + arch : x86_64 + ggml backends : cpu,vulkan + +=== runtime env === + PATH = C:\Users\zhout\.cache\codex-runtimes\codex-primary-runtime\dependencies\native\powershell;C:\Users\zhout\.codex\tmp\arg0\codex-arg05Acw4D;C:\Users\zhout\.cache\codex-runtimes\codex-primary-runtime\dependencies\native\libheif\libheif\bin;C:\Users\zhout\.cache\codex-runtimes\codex-primary-runtime\dependencies\native\jxrlib\jxrlib\bin;C:\Users\zhout\.cache\codex-runtimes\codex-primary-runtime\dependencies\native\poppler\Library\bin;C:\Users\zhout\.cache\codex-runtimes\codex-primary-runtime\dependencies\bin\override;C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.4\bin\x64;C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.4\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\NVIDIA Corporation\NVIDIA App\NvDLISR;C:\Windows\System32\WindowsPowerShell\v1.0;C:\Program Files\Git\cmd;C:\Program Files\NVIDIA Corporation\Nsight Compute 2026.3.0\;C:\Users\zhout\.cargo\bin;C:\Users\zhout\AppData\Local\Programs\Python\Python312\Scripts\;C:\Users\zhout\AppData\Local\Programs\Python\Python312\;C:\Users\zhout\AppData\Local\Programs\Python\Launcher\;c:\Users\zhout\AppData\Local\Programs\cursor\resources\app\codeBin;C:\Users\zhout\.cache\codex-runtimes\codex-primary-runtime\dependencies\native\powershell;C:\Users\zhout\AppData\Local\Microsoft\WindowsApps;C:\Users\zhout\AppData\Local\Programs\cursor\resources\app\bin;C:\Users\zhout\.cache\codex-runtimes\codex-primary-runtime\dependencies\bin\fallback;C:\Users\zhout\.cache\codex-runtimes\codex-primary-runtime\dependencies\node\bin;C:\Users\zhout\.cache\codex-runtimes\codex-primary-runtime\dependencies\native\git\cmd;C:\Program Files\WindowsApps\OpenAI.Codex_26.917.6896.0_x64__2p2nqsd0c76g0\app\resources + LD_LIBRARY_PATH = (unset) + LIBRARY_PATH = (unset) + CUDA_HOME = (unset) + CUDA_PATH = C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.4 + CUDA_VISIBLE_DEVICES = 1 + NVIDIA_VISIBLE_DEVICES = (unset) + NVIDIA_DRIVER_CAPABILITIES = (unset) + GGML_CUDA_DEBUG = 1 + GGML_VK_VISIBLE_DEVICES = 1 + GGML_VK_PIPELINE_CACHE_DEBUG = 1 + CRISPASR_USE_CUDA_COMPAT = (unset) + CRISPASR_BACKEND = (unset) + CRISPASR_CACHE_DIR = (unset) + +=== ggml backends + devices === +ggml_vulkan: Found 1 Vulkan devices: +ggml_vulkan: 0 = AMD Radeon(TM) 890M Graphics (AMD proprietary driver) | uma: 1 | fp16: 1 | bf16: 1 | fp4: 0 | warp size: 64 | shared memory: 32768 | int dot: 1 | matrix cores: KHR_coopmat + registered backends: 2 + [0] Vulkan (devices: 1) + [1] CPU (devices: 1) + registered devices : 2 + [0] igpu name=Vulkan0 desc=AMD Radeon(TM) 890M Graphics mem=46080/48505 MiB id=? + [1] cpu name=CPU desc=AMD Ryzen AI 9 HX 370 w/ Radeon 890M mem=28654/64633 MiB id=? + +crispasr[verbose]: model arg = 'C:\Users\zhout\w2\models\crisp_qwen3tts_0.6b\qwen3-tts-12hz-0.6b-customvoice-q8_0.gguf' +crispasr[verbose]: backend arg = 'qwen3-tts-customvoice' +crispasr[verbose]: use_gpu = true +crispasr[verbose]: gpu_backend = 'vulkan' +crispasr[verbose]: gpu_device = 1 +crispasr[verbose]: cache_dir override = '(default)' +crispasr[verbose]: auto_download = false +crispasr[verbose]: n_threads = 4 +crispasr[verbose]: flash_attn = true +crispasr[verbose]: resolved model = 'C:\Users\zhout\w2\models\crisp_qwen3tts_0.6b\qwen3-tts-12hz-0.6b-customvoice-q8_0.gguf' +crispasr_init_gpu_backend: using preferred GPU backend: Vulkan0 +qwen3_tts: code_pred CPU-pinned (72 tensors, 432 MB, copy=f32) +qwen3_tts: kv cache 448 MiB (head_dim=128 max_ctx=4096 n_kv=8 n_layers=28) +qwen3_tts: loaded C:\Users\zhout\w2\models\crisp_qwen3tts_0.6b\qwen3-tts-12hz-0.6b-customvoice-q8_0.gguf (talker 28L/1024 code_pred 5L vocab 3072) +qwen3_tts: codec: GPU default - loading weights onto Vulkan0 +qwen3_tts: codec loaded from 'C:\Users\zhout\w2\models\crisp_qwen3tts_0.6b\qwen3-tts-tokenizer-12hz.gguf' (8L d=512/1024 rvq=16) +qwen3_tts: codec encoder loaded (SEANet+xfmr+RVQ) +crispasr[qwen3-tts]: codec loaded from 'C:\Users\zhout\w2\models\crisp_qwen3tts_0.6b\qwen3-tts-tokenizer-12hz.gguf' +crispasr[verbose]: backend 'qwen3-tts-customvoice' initialised OK +crispasr: warning: 'qwen3-tts-customvoice' does not record whether its preset voice belongs to a real person, so no spoken AI + disclosure was added. If the voice is that of an identifiable individual, the output is a + deep fake under EU AI Act Art. 3(60) and you carry the Art. 50(4) duty to disclose it. + Pass --speaker-identity real_person to have CrispASR prepend the disclosure, or + --speaker-identity synthetic to silence this. +qwen3_tts: selected CustomVoice speaker 'ryan' (spk_id=3061) +crispasr[qwen3-tts]: CustomVoice speaker = 'ryan' (available: aiden, dylan, eric, ono_anna, ryan, serena, sohee, uncle_fu, vivian) +qwen3_tts[customvoice]: prefill role=3 + bridge=5 + text=7 + final=1 = T=16 trailing=1 +qwen3_tts: produced 32 frames × 16 codebooks = 512 codes +qwen3_tts: perf — codes=3042 ms codec=209 ms total=3251 ms audio=2.6 s rtf=1.270 +crispasr: TTS output written to 'C:\Users\zhout\w2\crisp_tts_radeon_cp_cpu_fa_20260923.wav' (61440 samples @ 24000 Hz, 2.56 sec) diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_joint/crisp_tts_radeon_cp_cpu_fa_20260923.wav b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_joint/crisp_tts_radeon_cp_cpu_fa_20260923.wav new file mode 100644 index 000000000..3f662e745 Binary files /dev/null and b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_joint/crisp_tts_radeon_cp_cpu_fa_20260923.wav differ diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_joint/crisp_tts_radeon_cp_cpu_second_20260923.log b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_joint/crisp_tts_radeon_cp_cpu_second_20260923.log new file mode 100644 index 000000000..0ce8bcf08 --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_joint/crisp_tts_radeon_cp_cpu_second_20260923.log @@ -0,0 +1,69 @@ +crispasr 0.8.35 (git 00c9e752, Release) [backends: cpu,vulkan] +=== build info === + version : 0.8.35 + git sha : 00c9e752 + git date : 2026-09-21T20:44:31Z + git subject : release-_bump_VERSION_to_0.8.35 + build date : 2026-09-21T21:04:24Z + build type : Release + compiler : msvc 1951 + os : windows + arch : x86_64 + ggml backends : cpu,vulkan + +=== runtime env === + PATH = C:\Users\zhout\.cache\codex-runtimes\codex-primary-runtime\dependencies\native\powershell;C:\Users\zhout\.codex\tmp\arg0\codex-arg05Acw4D;C:\Users\zhout\.cache\codex-runtimes\codex-primary-runtime\dependencies\native\libheif\libheif\bin;C:\Users\zhout\.cache\codex-runtimes\codex-primary-runtime\dependencies\native\jxrlib\jxrlib\bin;C:\Users\zhout\.cache\codex-runtimes\codex-primary-runtime\dependencies\native\poppler\Library\bin;C:\Users\zhout\.cache\codex-runtimes\codex-primary-runtime\dependencies\bin\override;C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.4\bin\x64;C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.4\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\NVIDIA Corporation\NVIDIA App\NvDLISR;C:\Windows\System32\WindowsPowerShell\v1.0;C:\Program Files\Git\cmd;C:\Program Files\NVIDIA Corporation\Nsight Compute 2026.3.0\;C:\Users\zhout\.cargo\bin;C:\Users\zhout\AppData\Local\Programs\Python\Python312\Scripts\;C:\Users\zhout\AppData\Local\Programs\Python\Python312\;C:\Users\zhout\AppData\Local\Programs\Python\Launcher\;c:\Users\zhout\AppData\Local\Programs\cursor\resources\app\codeBin;C:\Users\zhout\.cache\codex-runtimes\codex-primary-runtime\dependencies\native\powershell;C:\Users\zhout\AppData\Local\Microsoft\WindowsApps;C:\Users\zhout\AppData\Local\Programs\cursor\resources\app\bin;C:\Users\zhout\.cache\codex-runtimes\codex-primary-runtime\dependencies\bin\fallback;C:\Users\zhout\.cache\codex-runtimes\codex-primary-runtime\dependencies\node\bin;C:\Users\zhout\.cache\codex-runtimes\codex-primary-runtime\dependencies\native\git\cmd;C:\Program Files\WindowsApps\OpenAI.Codex_26.917.6896.0_x64__2p2nqsd0c76g0\app\resources + LD_LIBRARY_PATH = (unset) + LIBRARY_PATH = (unset) + CUDA_HOME = (unset) + CUDA_PATH = C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.4 + CUDA_VISIBLE_DEVICES = 1 + NVIDIA_VISIBLE_DEVICES = (unset) + NVIDIA_DRIVER_CAPABILITIES = (unset) + GGML_CUDA_DEBUG = 1 + GGML_VK_VISIBLE_DEVICES = 1 + GGML_VK_PIPELINE_CACHE_DEBUG = 1 + CRISPASR_USE_CUDA_COMPAT = (unset) + CRISPASR_BACKEND = (unset) + CRISPASR_CACHE_DIR = (unset) + +=== ggml backends + devices === +ggml_vulkan: Found 1 Vulkan devices: +ggml_vulkan: 0 = AMD Radeon(TM) 890M Graphics (AMD proprietary driver) | uma: 1 | fp16: 1 | bf16: 1 | fp4: 0 | warp size: 64 | shared memory: 32768 | int dot: 1 | matrix cores: KHR_coopmat + registered backends: 2 + [0] Vulkan (devices: 1) + [1] CPU (devices: 1) + registered devices : 2 + [0] igpu name=Vulkan0 desc=AMD Radeon(TM) 890M Graphics mem=46080/48505 MiB id=? + [1] cpu name=CPU desc=AMD Ryzen AI 9 HX 370 w/ Radeon 890M mem=28779/64633 MiB id=? + +crispasr[verbose]: model arg = 'C:\Users\zhout\w2\models\crisp_qwen3tts_0.6b\qwen3-tts-12hz-0.6b-customvoice-q8_0.gguf' +crispasr[verbose]: backend arg = 'qwen3-tts-customvoice' +crispasr[verbose]: use_gpu = true +crispasr[verbose]: gpu_backend = 'vulkan' +crispasr[verbose]: gpu_device = 1 +crispasr[verbose]: cache_dir override = '(default)' +crispasr[verbose]: auto_download = false +crispasr[verbose]: n_threads = 4 +crispasr[verbose]: flash_attn = false +crispasr[verbose]: resolved model = 'C:\Users\zhout\w2\models\crisp_qwen3tts_0.6b\qwen3-tts-12hz-0.6b-customvoice-q8_0.gguf' +crispasr_init_gpu_backend: using preferred GPU backend: Vulkan0 +qwen3_tts: code_pred CPU-pinned (72 tensors, 432 MB, copy=f32) +qwen3_tts: kv cache 448 MiB (head_dim=128 max_ctx=4096 n_kv=8 n_layers=28) +qwen3_tts: loaded C:\Users\zhout\w2\models\crisp_qwen3tts_0.6b\qwen3-tts-12hz-0.6b-customvoice-q8_0.gguf (talker 28L/1024 code_pred 5L vocab 3072) +qwen3_tts: codec: GPU default - loading weights onto Vulkan0 +qwen3_tts: codec loaded from 'C:\Users\zhout\w2\models\crisp_qwen3tts_0.6b\qwen3-tts-tokenizer-12hz.gguf' (8L d=512/1024 rvq=16) +qwen3_tts: codec encoder loaded (SEANet+xfmr+RVQ) +crispasr[qwen3-tts]: codec loaded from 'C:\Users\zhout\w2\models\crisp_qwen3tts_0.6b\qwen3-tts-tokenizer-12hz.gguf' +crispasr[verbose]: backend 'qwen3-tts-customvoice' initialised OK +crispasr: warning: 'qwen3-tts-customvoice' does not record whether its preset voice belongs to a real person, so no spoken AI + disclosure was added. If the voice is that of an identifiable individual, the output is a + deep fake under EU AI Act Art. 3(60) and you carry the Art. 50(4) duty to disclose it. + Pass --speaker-identity real_person to have CrispASR prepend the disclosure, or + --speaker-identity synthetic to silence this. +qwen3_tts: selected CustomVoice speaker 'ryan' (spk_id=3061) +crispasr[qwen3-tts]: CustomVoice speaker = 'ryan' (available: aiden, dylan, eric, ono_anna, ryan, serena, sohee, uncle_fu, vivian) +qwen3_tts[customvoice]: prefill role=3 + bridge=5 + text=10 + final=1 = T=19 trailing=1 +qwen3_tts: produced 40 frames × 16 codebooks = 640 codes +qwen3_tts: perf — codes=3766 ms codec=264 ms total=4030 ms audio=3.2 s rtf=1.259 +crispasr: TTS output written to 'C:\Users\zhout\w2\crisp_tts_radeon_cp_cpu_second_20260923.wav' (76800 samples @ 24000 Hz, 3.20 sec) diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_joint/crisp_tts_radeon_cp_cpu_second_20260923.wav b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_joint/crisp_tts_radeon_cp_cpu_second_20260923.wav new file mode 100644 index 000000000..9148606f3 Binary files /dev/null and b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_joint/crisp_tts_radeon_cp_cpu_second_20260923.wav differ diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_joint/crisp_tts_radeon_cp_cpu_second_asr_20260923.json b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_joint/crisp_tts_radeon_cp_cpu_second_asr_20260923.json new file mode 100644 index 000000000..6eb1915e2 --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_joint/crisp_tts_radeon_cp_cpu_second_asr_20260923.json @@ -0,0 +1,16 @@ +{ + "scope": "local Whisper tiny.en ASR proxy for generated speech; no perceptual quality claim", + "asr_model": "openai/whisper-tiny.en", + "asr_revision": "87c7102498dcde7456f24cfd30239ca606ed9063", + "asr_weights_sha256": "db59695928ded6043adaef491a53ef4e12da9611184d77c53baa691a60b958ad", + "transformers": "4.57.3", + "torch": "2.4.1+cpu", + "wav_sha256": "448552ea17e6afe9a97e3458e85cde942ec5cdfe4a028fd36ab10e79b3aab5e8", + "input_sample_rate": 24000, + "input_duration_s": 3.2, + "reference_text": "The blue car is parked beside the library.", + "transcript": "The blue car is parked beside the library.", + "word_error_rate": 0.0, + "asr_load_s": 1.034827800001949, + "asr_inference_s": 0.910699600004591 +} diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_joint/crisp_tts_radeon_cp_cpu_second_asr_20260923.log b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_joint/crisp_tts_radeon_cp_cpu_second_asr_20260923.log new file mode 100644 index 000000000..341a86b8c --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_joint/crisp_tts_radeon_cp_cpu_second_asr_20260923.log @@ -0,0 +1,17 @@ +Using custom `forced_decoder_ids` from the (generation) config. This is deprecated in favor of the `task` and `language` flags/config options. +{ + "scope": "local Whisper tiny.en ASR proxy for generated speech; no perceptual quality claim", + "asr_model": "openai/whisper-tiny.en", + "asr_revision": "87c7102498dcde7456f24cfd30239ca606ed9063", + "asr_weights_sha256": "db59695928ded6043adaef491a53ef4e12da9611184d77c53baa691a60b958ad", + "transformers": "4.57.3", + "torch": "2.4.1+cpu", + "wav_sha256": "448552ea17e6afe9a97e3458e85cde942ec5cdfe4a028fd36ab10e79b3aab5e8", + "input_sample_rate": 24000, + "input_duration_s": 3.2, + "reference_text": "The blue car is parked beside the library.", + "transcript": "The blue car is parked beside the library.", + "word_error_rate": 0.0, + "asr_load_s": 1.034827800001949, + "asr_inference_s": 0.910699600004591 +} diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_joint/crisp_tts_radeon_native_20260923.log b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_joint/crisp_tts_radeon_native_20260923.log new file mode 100644 index 000000000..beb7da379 --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_joint/crisp_tts_radeon_native_20260923.log @@ -0,0 +1,71 @@ +crispasr 0.8.35 (git 00c9e752, Release) [backends: cpu,vulkan] +=== build info === + version : 0.8.35 + git sha : 00c9e752 + git date : 2026-09-21T20:44:31Z + git subject : release-_bump_VERSION_to_0.8.35 + build date : 2026-09-21T21:04:24Z + build type : Release + compiler : msvc 1951 + os : windows + arch : x86_64 + ggml backends : cpu,vulkan + +=== runtime env === + PATH = C:\Users\zhout\.cache\codex-runtimes\codex-primary-runtime\dependencies\native\powershell;C:\Users\zhout\.codex\tmp\arg0\codex-arg05Acw4D;C:\Users\zhout\.cache\codex-runtimes\codex-primary-runtime\dependencies\native\libheif\libheif\bin;C:\Users\zhout\.cache\codex-runtimes\codex-primary-runtime\dependencies\native\jxrlib\jxrlib\bin;C:\Users\zhout\.cache\codex-runtimes\codex-primary-runtime\dependencies\native\poppler\Library\bin;C:\Users\zhout\.cache\codex-runtimes\codex-primary-runtime\dependencies\bin\override;C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.4\bin\x64;C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.4\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\NVIDIA Corporation\NVIDIA App\NvDLISR;C:\Windows\System32\WindowsPowerShell\v1.0;C:\Program Files\Git\cmd;C:\Program Files\NVIDIA Corporation\Nsight Compute 2026.3.0\;C:\Users\zhout\.cargo\bin;C:\Users\zhout\AppData\Local\Programs\Python\Python312\Scripts\;C:\Users\zhout\AppData\Local\Programs\Python\Python312\;C:\Users\zhout\AppData\Local\Programs\Python\Launcher\;c:\Users\zhout\AppData\Local\Programs\cursor\resources\app\codeBin;C:\Users\zhout\.cache\codex-runtimes\codex-primary-runtime\dependencies\native\powershell;C:\Users\zhout\AppData\Local\Microsoft\WindowsApps;C:\Users\zhout\AppData\Local\Programs\cursor\resources\app\bin;C:\Users\zhout\.cache\codex-runtimes\codex-primary-runtime\dependencies\bin\fallback;C:\Users\zhout\.cache\codex-runtimes\codex-primary-runtime\dependencies\node\bin;C:\Users\zhout\.cache\codex-runtimes\codex-primary-runtime\dependencies\native\git\cmd;C:\Program Files\WindowsApps\OpenAI.Codex_26.917.6896.0_x64__2p2nqsd0c76g0\app\resources + LD_LIBRARY_PATH = (unset) + LIBRARY_PATH = (unset) + CUDA_HOME = (unset) + CUDA_PATH = C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.4 + CUDA_VISIBLE_DEVICES = 1 + NVIDIA_VISIBLE_DEVICES = (unset) + NVIDIA_DRIVER_CAPABILITIES = (unset) + GGML_CUDA_DEBUG = 1 + GGML_VK_VISIBLE_DEVICES = 1 + GGML_VK_PIPELINE_CACHE_DEBUG = 1 + CRISPASR_USE_CUDA_COMPAT = (unset) + CRISPASR_BACKEND = (unset) + CRISPASR_CACHE_DIR = (unset) + +=== ggml backends + devices === +ggml_vulkan: Found 1 Vulkan devices: +ggml_vulkan: 0 = AMD Radeon(TM) 890M Graphics (AMD proprietary driver) | uma: 1 | fp16: 1 | bf16: 1 | fp4: 0 | warp size: 64 | shared memory: 32768 | int dot: 1 | matrix cores: KHR_coopmat + registered backends: 2 + [0] Vulkan (devices: 1) + [1] CPU (devices: 1) + registered devices : 2 + [0] igpu name=Vulkan0 desc=AMD Radeon(TM) 890M Graphics mem=46080/48505 MiB id=? + [1] cpu name=CPU desc=AMD Ryzen AI 9 HX 370 w/ Radeon 890M mem=28522/64633 MiB id=? + +crispasr[verbose]: model arg = 'C:\Users\zhout\w2\models\crisp_qwen3tts_0.6b\qwen3-tts-12hz-0.6b-customvoice-q8_0.gguf' +crispasr[verbose]: backend arg = 'qwen3-tts-customvoice' +crispasr[verbose]: use_gpu = true +crispasr[verbose]: gpu_backend = 'vulkan' +crispasr[verbose]: gpu_device = 1 +crispasr[verbose]: cache_dir override = '(default)' +crispasr[verbose]: auto_download = false +crispasr[verbose]: n_threads = 4 +crispasr[verbose]: flash_attn = true +crispasr[verbose]: resolved model = 'C:\Users\zhout\w2\models\crisp_qwen3tts_0.6b\qwen3-tts-12hz-0.6b-customvoice-q8_0.gguf' +crispasr_init_gpu_backend: using preferred GPU backend: Vulkan0 +qwen3_tts: kv cache 448 MiB (head_dim=128 max_ctx=4096 n_kv=8 n_layers=28) +qwen3_tts: loaded C:\Users\zhout\w2\models\crisp_qwen3tts_0.6b\qwen3-tts-12hz-0.6b-customvoice-q8_0.gguf (talker 28L/1024 code_pred 5L vocab 3072) +qwen3_tts: codec: GPU default - loading weights onto Vulkan0 +qwen3_tts: codec loaded from 'C:\Users\zhout\w2\models\crisp_qwen3tts_0.6b\qwen3-tts-tokenizer-12hz.gguf' (8L d=512/1024 rvq=16) +qwen3_tts: codec encoder loaded (SEANet+xfmr+RVQ) +crispasr[qwen3-tts]: codec loaded from 'C:\Users\zhout\w2\models\crisp_qwen3tts_0.6b\qwen3-tts-tokenizer-12hz.gguf' +crispasr[verbose]: backend 'qwen3-tts-customvoice' initialised OK +crispasr: warning: 'qwen3-tts-customvoice' does not record whether its preset voice belongs to a real person, so no spoken AI + disclosure was added. If the voice is that of an identifiable individual, the output is a + deep fake under EU AI Act Art. 3(60) and you carry the Art. 50(4) duty to disclose it. + Pass --speaker-identity real_person to have CrispASR prepend the disclosure, or + --speaker-identity synthetic to silence this. +qwen3_tts: selected CustomVoice speaker 'ryan' (spk_id=3061) +crispasr[qwen3-tts]: CustomVoice speaker = 'ryan' (available: aiden, dylan, eric, ono_anna, ryan, serena, sohee, uncle_fu, vivian) +qwen3_tts[customvoice]: prefill role=3 + bridge=5 + text=7 + final=1 = T=16 trailing=1 +qwen3_tts: cp_direct active (persistent sched-free code_pred graphs) +qwen3_tts: ERROR: talker hit the text-proportional frame cap (360 frames for 30 input codepoints, 28.8 s of audio) without emitting EOS. The output is a runaway and should be discarded. If this reproduces on GPU but not with --gpu-backend cpu, that is expected backend arithmetic amplified by the decode loop, not a miscompute — see issue #337. Raise CRISPASR_QWEN3_TTS_MAX_FRAMES if the text genuinely needs more. +qwen3_tts: produced 360 frames × 16 codebooks = 5760 codes +qwen3_tts: codec: chunked decode T=360 chunk=150 ctx=128 +qwen3_tts: perf — codes=19841 ms codec=10534 ms total=30374 ms audio=28.8 s rtf=1.055 +crispasr: TTS output written to 'C:\Users\zhout\w2\crisp_tts_radeon_native_20260923.wav' (691200 samples @ 24000 Hz, 28.80 sec) diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_joint/crisp_tts_radeon_native_20260923.wav b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_joint/crisp_tts_radeon_native_20260923.wav new file mode 100644 index 000000000..c32f81ac4 Binary files /dev/null and b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_joint/crisp_tts_radeon_native_20260923.wav differ diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_joint/crisp_tts_radeon_no_fa_20260923.log b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_joint/crisp_tts_radeon_no_fa_20260923.log new file mode 100644 index 000000000..8451152e0 --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_joint/crisp_tts_radeon_no_fa_20260923.log @@ -0,0 +1,71 @@ +crispasr 0.8.35 (git 00c9e752, Release) [backends: cpu,vulkan] +=== build info === + version : 0.8.35 + git sha : 00c9e752 + git date : 2026-09-21T20:44:31Z + git subject : release-_bump_VERSION_to_0.8.35 + build date : 2026-09-21T21:04:24Z + build type : Release + compiler : msvc 1951 + os : windows + arch : x86_64 + ggml backends : cpu,vulkan + +=== runtime env === + PATH = C:\Users\zhout\.cache\codex-runtimes\codex-primary-runtime\dependencies\native\powershell;C:\Users\zhout\.codex\tmp\arg0\codex-arg05Acw4D;C:\Users\zhout\.cache\codex-runtimes\codex-primary-runtime\dependencies\native\libheif\libheif\bin;C:\Users\zhout\.cache\codex-runtimes\codex-primary-runtime\dependencies\native\jxrlib\jxrlib\bin;C:\Users\zhout\.cache\codex-runtimes\codex-primary-runtime\dependencies\native\poppler\Library\bin;C:\Users\zhout\.cache\codex-runtimes\codex-primary-runtime\dependencies\bin\override;C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.4\bin\x64;C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.4\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\NVIDIA Corporation\NVIDIA App\NvDLISR;C:\Windows\System32\WindowsPowerShell\v1.0;C:\Program Files\Git\cmd;C:\Program Files\NVIDIA Corporation\Nsight Compute 2026.3.0\;C:\Users\zhout\.cargo\bin;C:\Users\zhout\AppData\Local\Programs\Python\Python312\Scripts\;C:\Users\zhout\AppData\Local\Programs\Python\Python312\;C:\Users\zhout\AppData\Local\Programs\Python\Launcher\;c:\Users\zhout\AppData\Local\Programs\cursor\resources\app\codeBin;C:\Users\zhout\.cache\codex-runtimes\codex-primary-runtime\dependencies\native\powershell;C:\Users\zhout\AppData\Local\Microsoft\WindowsApps;C:\Users\zhout\AppData\Local\Programs\cursor\resources\app\bin;C:\Users\zhout\.cache\codex-runtimes\codex-primary-runtime\dependencies\bin\fallback;C:\Users\zhout\.cache\codex-runtimes\codex-primary-runtime\dependencies\node\bin;C:\Users\zhout\.cache\codex-runtimes\codex-primary-runtime\dependencies\native\git\cmd;C:\Program Files\WindowsApps\OpenAI.Codex_26.917.6896.0_x64__2p2nqsd0c76g0\app\resources + LD_LIBRARY_PATH = (unset) + LIBRARY_PATH = (unset) + CUDA_HOME = (unset) + CUDA_PATH = C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.4 + CUDA_VISIBLE_DEVICES = 1 + NVIDIA_VISIBLE_DEVICES = (unset) + NVIDIA_DRIVER_CAPABILITIES = (unset) + GGML_CUDA_DEBUG = 1 + GGML_VK_VISIBLE_DEVICES = 1 + GGML_VK_PIPELINE_CACHE_DEBUG = 1 + CRISPASR_USE_CUDA_COMPAT = (unset) + CRISPASR_BACKEND = (unset) + CRISPASR_CACHE_DIR = (unset) + +=== ggml backends + devices === +ggml_vulkan: Found 1 Vulkan devices: +ggml_vulkan: 0 = AMD Radeon(TM) 890M Graphics (AMD proprietary driver) | uma: 1 | fp16: 1 | bf16: 1 | fp4: 0 | warp size: 64 | shared memory: 32768 | int dot: 1 | matrix cores: KHR_coopmat + registered backends: 2 + [0] Vulkan (devices: 1) + [1] CPU (devices: 1) + registered devices : 2 + [0] igpu name=Vulkan0 desc=AMD Radeon(TM) 890M Graphics mem=46080/48505 MiB id=? + [1] cpu name=CPU desc=AMD Ryzen AI 9 HX 370 w/ Radeon 890M mem=28665/64633 MiB id=? + +crispasr[verbose]: model arg = 'C:\Users\zhout\w2\models\crisp_qwen3tts_0.6b\qwen3-tts-12hz-0.6b-customvoice-q8_0.gguf' +crispasr[verbose]: backend arg = 'qwen3-tts-customvoice' +crispasr[verbose]: use_gpu = true +crispasr[verbose]: gpu_backend = 'vulkan' +crispasr[verbose]: gpu_device = 1 +crispasr[verbose]: cache_dir override = '(default)' +crispasr[verbose]: auto_download = false +crispasr[verbose]: n_threads = 4 +crispasr[verbose]: flash_attn = false +crispasr[verbose]: resolved model = 'C:\Users\zhout\w2\models\crisp_qwen3tts_0.6b\qwen3-tts-12hz-0.6b-customvoice-q8_0.gguf' +crispasr_init_gpu_backend: using preferred GPU backend: Vulkan0 +qwen3_tts: kv cache 448 MiB (head_dim=128 max_ctx=4096 n_kv=8 n_layers=28) +qwen3_tts: loaded C:\Users\zhout\w2\models\crisp_qwen3tts_0.6b\qwen3-tts-12hz-0.6b-customvoice-q8_0.gguf (talker 28L/1024 code_pred 5L vocab 3072) +qwen3_tts: codec: GPU default - loading weights onto Vulkan0 +qwen3_tts: codec loaded from 'C:\Users\zhout\w2\models\crisp_qwen3tts_0.6b\qwen3-tts-tokenizer-12hz.gguf' (8L d=512/1024 rvq=16) +qwen3_tts: codec encoder loaded (SEANet+xfmr+RVQ) +crispasr[qwen3-tts]: codec loaded from 'C:\Users\zhout\w2\models\crisp_qwen3tts_0.6b\qwen3-tts-tokenizer-12hz.gguf' +crispasr[verbose]: backend 'qwen3-tts-customvoice' initialised OK +crispasr: warning: 'qwen3-tts-customvoice' does not record whether its preset voice belongs to a real person, so no spoken AI + disclosure was added. If the voice is that of an identifiable individual, the output is a + deep fake under EU AI Act Art. 3(60) and you carry the Art. 50(4) duty to disclose it. + Pass --speaker-identity real_person to have CrispASR prepend the disclosure, or + --speaker-identity synthetic to silence this. +qwen3_tts: selected CustomVoice speaker 'ryan' (spk_id=3061) +crispasr[qwen3-tts]: CustomVoice speaker = 'ryan' (available: aiden, dylan, eric, ono_anna, ryan, serena, sohee, uncle_fu, vivian) +qwen3_tts[customvoice]: prefill role=3 + bridge=5 + text=7 + final=1 = T=16 trailing=1 +qwen3_tts: cp_direct active (persistent sched-free code_pred graphs) +qwen3_tts: ERROR: talker hit the text-proportional frame cap (360 frames for 30 input codepoints, 28.8 s of audio) without emitting EOS. The output is a runaway and should be discarded. If this reproduces on GPU but not with --gpu-backend cpu, that is expected backend arithmetic amplified by the decode loop, not a miscompute — see issue #337. Raise CRISPASR_QWEN3_TTS_MAX_FRAMES if the text genuinely needs more. +qwen3_tts: produced 360 frames × 16 codebooks = 5760 codes +qwen3_tts: codec: chunked decode T=360 chunk=150 ctx=128 +qwen3_tts: perf — codes=13797 ms codec=5107 ms total=18904 ms audio=28.8 s rtf=0.656 +crispasr: TTS output written to 'C:\Users\zhout\w2\crisp_tts_radeon_no_fa_20260923.wav' (691200 samples @ 24000 Hz, 28.80 sec) diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_joint/crisp_tts_radeon_no_fa_20260923.wav b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_joint/crisp_tts_radeon_no_fa_20260923.wav new file mode 100644 index 000000000..9d1b0dc9b Binary files /dev/null and b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_joint/crisp_tts_radeon_no_fa_20260923.wav differ 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 86ebed80f..ff7e32fc9 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 @@ -1,6 +1,6 @@ # E2E check and profiling -All 60 pairings have a disposition. The timing tables below remain the 2026-09-22 measurements. The configuration matrix and affected per-cell reasons incorporate the [2026-09-23 scoped recovery runs](../../../e2e_recovery_20260923/README.md) and [WSL CPU/native Windows expansion](../../../e2e_expansion_20260923/README.md). The expansion adds separate 20-request serial MiniCPM-o text-to-speech profiles on WSL CPU and native Windows GPU, a Spark output-head component profile on the HX370 AMD NPU, complete Spark text-request profiles through standalone llama.cpp on native Windows CPU and Radeon 890M, and a standalone Qwen3-TTS text-to-WAV profile on native Windows CPU. Profiling completion does not imply full release qualification or Omni integration. +All 60 pairings have a disposition. The timing tables below remain the 2026-09-22 measurements. The configuration matrix and affected per-cell reasons incorporate the [2026-09-23 scoped recovery runs](../../../e2e_recovery_20260923/README.md) and [WSL CPU/native Windows expansion](../../../e2e_expansion_20260923/README.md). The expansion adds separate 20-request serial MiniCPM-o text-to-speech profiles on WSL CPU and native Windows GPU, a Spark output-head component profile on the HX370 AMD NPU, complete Spark text-request profiles through standalone llama.cpp on native Windows CPU and Radeon 890M, a standalone Qwen3-TTS text-to-WAV profile on native Windows CPU, and a separate hybrid CPU+Radeon 890M Qwen3-TTS profile. Profiling completion does not imply full release qualification or Omni integration. ## Configuration × model @@ -12,7 +12,7 @@ NOT E2E means no complete device/model workload was verified. “Scoped E2E” i | PC HX370: CPU / native Windows | scoped E2E: standalone Spark text | scoped E2E: standalone text → WAV | NOT E2E | NOT E2E | synthetic policy pass | | PC HX370 + RTX 5090 Laptop / WSL | profile completed | profile completed | scoped E2E: text + image | scoped E2E: text/image/audio → speech | synthetic policy pass | | PC HX370 + RTX 5090 Laptop / Windows | profile completed | profile completed | NOT E2E | scoped E2E: text/image/audio → speech | synthetic policy pass | -| PC HX370 + Radeon 890M / Windows worker | scoped E2E: standalone Spark text | NOT E2E | NOT E2E | NOT E2E | NOT E2E | +| PC HX370 + Radeon 890M / Windows worker | scoped E2E: standalone Spark text | scoped E2E: Radeon talker/codec + CPU predictor | NOT E2E | NOT E2E | NOT E2E | | 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 | NOT E2E | NOT E2E | NOT E2E | NOT E2E | @@ -46,7 +46,7 @@ NOT E2E means no complete device/model workload was verified. “Scoped E2E” i | PC HX370 + RTX 5090 Laptop / Windows | MiniCPM-o 4.5 | SCOPED_E2E | The verified checkpoint completed native Windows three-stage BF16 text, one synthetic image, and one synthetic audio input to text+speech in separate constrained plans with 5 GiB thinker host offload and explicit 2,048/512-token limits. Text and all 32 thinker token IDs matched WSL CUDA; a 5.2 s WAV was nonzero. The red-square image produced the same description and 27 thinker token IDs as WSL plus a nonzero 5.2 s WAV in 17.15 s. The 2 s/440 Hz tone produced the same whistling description and nine IDs as WSL plus a nonzero 2.16 s WAV in 8.26 s. The initial text run needed 900/600 s startup limits after a 300 s timeout; a separate 1-warmup/20-measured serial text run had request wall p50 18.38 s/p95 18.73 s, with sampled host available RAM as low as 0.78 GB and pagefile use up to 11.17 GB. These synthetic inputs do not establish general image/audio or speech quality. | Check real image/audio suites, video input, speech intelligibility/alignment, concurrency, interruption, loading-peak admission and sustained thermal/power behavior before broader qualification; [native evidence](../../../e2e_expansion_20260923/README.md). | | PC HX370 + RTX 5090 Laptop / Windows | InternVLA-A1 | SYNTHETIC_POLICY_PASS | The Place_Markpen checkpoint strict-loaded from a UNC path and produced finite `[1, 50, 32]` actions on synthetic zero observations/noise. Policy/output CUDA placement was checked; one native forward took 1.12 s, with 6.68 GB peak allocated. Relative L2 difference from WSL CUDA was 0.83% (no task tolerance). | Validate real observations/reference actions, units/timestamps, memory and repeated latency before task qualification; [native evidence](../../../e2e_expansion_20260923/README.md). | | PC HX370 + Radeon 890M / Windows worker | Spark-X2.5 | SCOPED_E2E_STANDALONE | The same real Spark-X2.5-1.7B Q4_K_M GGUF completed text prefill/decode via llama.cpp Vulkan1 on Radeon 890M; the placement log assigns Spark layers to Vulkan1, not the installed RTX 5090. It returned `Paris` and `1511` on the named short/2,463-token inventory inputs. One warmup plus 20 uncached serial inventory requests were 20/20 correct, p50/p95 wall 2.18/2.20 s. Closing a stream after its first content delta was followed by a correct new request. This is outside Omni and has only a post-profile process-memory snapshot, no loading peak, device-memory attribution or sustained power/thermal check. | Add a bounded llama.cpp whole-model stage to Omni, then verify placement, state, memory admission, token quality, cancellation and full-request benefit against CPU; [standalone backend evidence](../../../e2e_expansion_20260923/evidence/spark_radeon890m_llamacpp/README.md). | -| PC HX370 + Radeon 890M / Windows worker | Qwen3-TTS 0.6B CustomVoice | NOT_E2E_PROFILEABLE | No placement- and quality-verified whole-model graph bundle/stateful adapter for this model on this AMD route. Small backend graphs do not establish model support. | Supply and validate the missing matching artifact/backend, then run the complete specified workload. | +| PC HX370 + Radeon 890M / Windows worker | Qwen3-TTS 0.6B CustomVoice | SCOPED_E2E_STANDALONE_HYBRID | The Q8_0 CustomVoice GGUF and F16 codec GGUF completed two named text-to-WAV requests in standalone CrispASR on native Windows with Vulkan0 placed on Radeon 890M for the talker/codec and the 432 MB code predictor explicitly pinned to CPU FP32. Whisper tiny.en transcribed both sentences exactly (WER 0 as an intelligibility proxy). One warmup plus 20 serial resident-server requests for one repeated prompt had nearest-rank client wall p50/p95 3.310/3.345 s for identical 2.56 s PCM (RTF 1.29/1.31). The default Vulkan configuration actually fell back to CPU; forcing all stages to Vulkan ran away to the 360-frame cap. A separate DirectML route failed waveform quality. No Omni binding, playable streaming, loading peak, broad quality or sustained power/thermal run was verified. | Bind the whole hybrid session with explicit CPU+iGPU placement/admission and cancellation; validate quality, real-time playback and full-chain benefit before broader qualification; [joint backend evidence](../../../e2e_expansion_20260923/evidence/qwen_tts_radeon890m_joint/README.md), [failed DirectML route](../../../e2e_expansion_20260923/evidence/qwen_tts_radeon890m_directml/README.md). | | PC HX370 + Radeon 890M / Windows worker | Qwen3.8-27B | NOT_E2E_PROFILEABLE | FP32 448x448 vision tower: DirectML 85/113 nodes; normalized max error 9.095e-06 versus torch CPU. Historical component path, not full 27B or current graph-stage image-to-text integration. | Recover the hashed tower bundle and qualify its current Omni graph handoff with the language stage. | | PC HX370 + Radeon 890M / Windows worker | MiniCPM-o 4.5 | NOT_E2E_PROFILEABLE | No placement- and quality-verified whole-model graph bundle/stateful adapter for this model on this AMD route. Small backend graphs do not establish model support. | Supply and validate the missing matching artifact/backend, then run the complete specified workload. | | PC HX370 + Radeon 890M / Windows worker | InternVLA-A1 | NOT_E2E_PROFILEABLE | No placement- and quality-verified whole-model graph bundle/stateful adapter for this model on this AMD route. Small backend graphs do not establish model support. | Supply and validate the missing matching artifact/backend, then run the complete specified workload. | diff --git a/docs/design/omni_edge_backends.md b/docs/design/omni_edge_backends.md index 068ff6191..7238a0094 100644 --- a/docs/design/omni_edge_backends.md +++ b/docs/design/omni_edge_backends.md @@ -108,6 +108,7 @@ Model support is specific to the following pairings: | Spark-X2.5-1.7B INT8 | CPU execution; no NVIDIA dependency | Native Windows | Model path not yet qualified; CPU Add graph success is not text-model support. | | Qwen3-TTS-12Hz-0.6B CustomVoice | CPU + RTX 5090 Laptop GPU; both stages on GPU | WSL / vLLM CUDA | Current branch: real-weight audio streaming completes; playback stalls and remaining M2 gates stay open. | | Qwen3-TTS-12Hz-0.6B CustomVoice | CPU + RTX 5090 Laptop GPU; both stages on GPU | Native Windows / vLLM CUDA | Current branch: real-weight audio streaming completes; playback stalls and remaining M2 gates stay open. | +| Qwen3-TTS-12Hz-0.6B CustomVoice, Q8_0 GGUF talker + F16 codec | CPU + Radeon 890M iGPU; code predictor on CPU FP32, talker/codec on Radeon | Native Windows / standalone CrispASR Vulkan | Two named text-to-WAV requests and a 20-request serial resident profile passed; [placement and quality evidence](../../benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_joint/README.md). Still outside Omni, slower than real time and unqualified for streaming or sustained use. | | Qwen3.8-27B vision tower, FP32 ONNX | CPU + Radeon 890M iGPU | Windows / ORT DirectML | Historical component validation only; not the complete 27B model or a newly qualified graph-stage vision-to-language pipeline. | | Qwen3.8-27B vision tower, tested A16W8 exports | CPU + AMD NPU | Windows / ORT VitisAI | Tested whole-tower artifacts were rejected by NPU partitioning. This does not rule out other exports or smaller components. | | Qwen3.8-27B complete multimodal pipeline | CPU/iGPU/NPU, with optional discrete GPU | Target-specific | Fresh public Omni startup fails pipeline resolution on Windows/WSL; earlier bare-vLLM short-text loading is separate and not multimodal validation. | diff --git a/docs/design/omni_edge_e2e_roadmap.md b/docs/design/omni_edge_e2e_roadmap.md index 111ad62f3..17d21d055 100644 --- a/docs/design/omni_edge_e2e_roadmap.md +++ b/docs/design/omni_edge_e2e_roadmap.md @@ -56,6 +56,17 @@ documents the isolated Transformers 4.57.3 dependency and short process-memory trace. Omni CPU stage binding, playable streaming, loading-peak admission and sustained power/thermal tests remain M2 work. +A separate native Windows CPU+Radeon 890M Qwen3-TTS route now completes two +named text-to-WAV requests in standalone CrispASR using a Q8_0 talker, F16 +codec, Vulkan talker/codec and CPU FP32 code predictor. Whisper tiny.en returned +both reference sentences exactly; one warmup and 20 serial resident-server +requests measured p50/p95 3.310/3.345 s for 2.56 s of audio. The +[placement and failed-route record](../../benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/qwen_tts_radeon890m_joint/README.md) +shows that default Vulkan silently becomes CPU for this backend, all-Vulkan +generation ran away, and DirectML did not pass quality. The explicit hybrid +route remains outside Omni and slower than real time. Its CPU+iGPU evidence +does not advance the NPU joint-execution row or mobile M2 gate. + ## Architecture and prerequisites Keep Omni's PipelineConfig, StageRuntime, StageClient, orchestration and admission