diff --git a/benchmarks/edge_harness/experiments/compare_minicpm_cpp_prompted.py b/benchmarks/edge_harness/experiments/compare_minicpm_cpp_prompted.py new file mode 100644 index 000000000..666bfa84c --- /dev/null +++ b/benchmarks/edge_harness/experiments/compare_minicpm_cpp_prompted.py @@ -0,0 +1,86 @@ +#!/usr/bin/env python3 +"""Verify the same prompted MiniCPM-o request across CPU and Radeon runs.""" + +from __future__ import annotations + +import argparse +import json +import re +from pathlib import Path + + +def read_json(path: Path) -> dict: + return json.loads(path.read_text(encoding="utf-8")) + + +def language_tokens(path: Path) -> list[int]: + matches = re.findall(r"LLM->TTS:.*?token_ids=\[([^]]+)\]", path.read_text( + encoding="utf-8", errors="replace" + )) + if len(matches) != 1: + raise RuntimeError(f"expected exactly one logged text chunk: {path}") + return [int(value) for value in matches[0].split()] + + +def main() -> None: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--cpu-dir", type=Path, required=True) + parser.add_argument("--radeon-dir", type=Path, required=True) + parser.add_argument("--output", type=Path, required=True) + args = parser.parse_args() + cpu, gpu = (read_json(path / "full_report.json") for path in + (args.cpu_dir, args.radeon_dir)) + if (cpu["expected_placement"], gpu["expected_placement"]) != ( + "cpu", "radeon-hybrid" + ): + raise RuntimeError("incorrect device placement") + if any(item["status"] != "scoped_complete_path_pass" for item in (cpu, gpu)): + raise RuntimeError("one complete path failed") + for key in ("artifacts", "model_revision", "input_image_sha256", + "input_audio_sha256", "response_text"): + if cpu[key] != gpu[key]: + raise RuntimeError(f"cross-device mismatch: {key}") + cpu_tokens = language_tokens(args.cpu_dir / "full.stdout.log") + gpu_tokens = language_tokens(args.radeon_dir / "full.stdout.log") + if cpu_tokens != gpu_tokens: + raise RuntimeError("language token IDs differ") + input_asr = read_json(args.radeon_dir / "input_asr.json") + cpu_asr = read_json(args.cpu_dir / "output_asr.json") + gpu_asr = read_json(args.radeon_dir / "output_asr.json") + if input_asr["word_error_rate"] != 0 or any( + item["word_error_rate"] != 0 for item in (cpu_asr, gpu_asr) + ): + raise RuntimeError("input or output speech failed the ASR proxy") + if cpu["response_text"] != "The square in the image is red.": + raise RuntimeError("visual question was not answered correctly") + report = { + "scope": "one synthetic spoken visual question; standalone CPU vs Radeon hybrid", + "status": "scoped_prompted_path_pass", + "checkpoint_revision": cpu["model_revision"], + "same_artifact_set": True, + "same_input_image_audio": True, + "spoken_input": input_asr["reference_text"], + "input_asr_wer": input_asr["word_error_rate"], + "response_text": cpu["response_text"], + "language_token_ids": cpu_tokens, + "cpu": { + "cold_wall_s": cpu["sampled_process_profile"]["wall_s"], + "audio_duration_s": cpu["audio_duration_s"], + "pcm_sha256": cpu["pcm_sha256"], + "output_asr_wer": cpu_asr["word_error_rate"], + }, + "radeon_hybrid": { + "cold_wall_s": gpu["sampled_process_profile"]["wall_s"], + "audio_duration_s": gpu["audio_duration_s"], + "pcm_sha256": gpu["pcm_sha256"], + "output_asr_wer": gpu_asr["word_error_rate"], + }, + "quality_limit": "one synthetic red square and one spoken question", + } + args.output.parent.mkdir(parents=True, exist_ok=True) + args.output.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/verify_minicpm_cpp_output.py b/benchmarks/edge_harness/experiments/verify_minicpm_cpp_output.py index 4e66d547a..c1cd811df 100644 --- a/benchmarks/edge_harness/experiments/verify_minicpm_cpp_output.py +++ b/benchmarks/edge_harness/experiments/verify_minicpm_cpp_output.py @@ -52,6 +52,9 @@ def main() -> None: parser.add_argument("--merged-wav", type=Path, required=True) parser.add_argument("--report", type=Path, required=True) parser.add_argument("--platform-label", default="WSL CPU") + parser.add_argument( + "--expected-placement", choices=("cpu", "radeon-hybrid"), default="cpu" + ) parser.add_argument("--process-profile", type=Path) args = parser.parse_args() @@ -59,15 +62,27 @@ def main() -> None: log = args.run_log.read_text(encoding="utf-8", errors="replace") required_log = ( "Media type: 2 (omni: audio+vision)", - "GPU layers: 0", "Token2Wav device: cpu", - "vision_ctx: vision using CPU backend", "Token2Wav: initialized successfully", "stream_prefill(index=1): processing user audio:", "stream_prefill(index=1): user audio embedding:", "stream_prefill: prefilled 1 vision chunks", ) - missing_log = [item for item in required_log if item not in log] + placement_log = { + "cpu": ( + "GPU layers: 0", + "vision_ctx: vision using CPU backend", + ), + "radeon-hybrid": ( + "GPU layers: 99", + "using device Vulkan0 (AMD Radeon(TM) 890M Graphics)", + "offloaded 37/37 layers to GPU", + "vision_ctx: vision using Vulkan0 backend", + "TTS model: loading with n_gpu_layers=0", + "Token2Wav: non-CUDA backend, vocoder using CPU", + ), + }[args.expected_placement] + missing_log = [item for item in required_log + placement_log if item not in log] if missing_log: raise RuntimeError(f"missing complete-path/placement evidence: {missing_log}") process_profile = None @@ -138,6 +153,7 @@ def main() -> None: report = { "scope": f"standalone MiniCPM-o 4.5 GGUF audio+image input to text+speech on {args.platform_label}", "status": "scoped_complete_path_pass", + "expected_placement": args.expected_placement, "quality": "synthetic red-square/tone response not established as semantically correct", "model_revision": args.model_revision, "artifacts": artifacts, diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/README.md b/benchmarks/edge_harness/results/e2e_expansion_20260923/README.md index 80e33493a..ca87e7f6b 100644 --- a/benchmarks/edge_harness/results/e2e_expansion_20260923/README.md +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/README.md @@ -1,6 +1,6 @@ # 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. A separate pinned GGUF route ran one **combined** image+audio to text+speech request on WSL CPU and native Windows CPU; these C++ runs are standalone, with unqualified input-grounded quality. 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. The latter now also run as bounded whole-session Omni stages, with public AsyncOmni requests checked separately. Qwen3-TTS has separate 20-request standalone and bounded Omni whole-session text-to-WAV profiles on native Windows CPU; the CPU+Radeon 890M hybrid route likewise has standalone and Omni profiles. None is a sustained or full-modality profile. 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), [standalone CPU/Radeon whole-model record](evidence/spark_radeon890m_llamacpp/README.md), [Omni CPU/Radeon whole-session record](evidence/spark_omni_llamacpp/README.md), [standalone CPU Qwen TTS record](evidence/qwen_tts_native_cpu/README.md), [Omni CPU Qwen TTS record](evidence/qwen_tts_omni_cpu/README.md), [standalone joint CPU+Radeon TTS record](evidence/qwen_tts_radeon890m_joint/README.md), and [Omni joint TTS record](evidence/qwen_tts_omni_hybrid/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. A separate pinned GGUF route ran combined image+audio to text+speech requests on WSL CPU, native Windows CPU and native Windows Radeon 890M+CPU. The two Windows routes answered one spoken red-square question correctly with matching language token IDs; these C++ runs remain standalone, with broader input-grounded quality unqualified. 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. The latter now also run as bounded whole-session Omni stages, with public AsyncOmni requests checked separately. Qwen3-TTS has separate 20-request standalone and bounded Omni whole-session text-to-WAV profiles on native Windows CPU; the CPU+Radeon 890M hybrid route likewise has standalone and Omni profiles. None is a sustained or full-modality profile. 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), [standalone CPU/Radeon whole-model record](evidence/spark_radeon890m_llamacpp/README.md), [Omni CPU/Radeon whole-session record](evidence/spark_omni_llamacpp/README.md), [standalone CPU Qwen TTS record](evidence/qwen_tts_native_cpu/README.md), [Omni CPU Qwen TTS record](evidence/qwen_tts_omni_cpu/README.md), [standalone joint CPU+Radeon TTS record](evidence/qwen_tts_radeon890m_joint/README.md), and [Omni joint TTS record](evidence/qwen_tts_omni_hybrid/README.md) pin their respective artifacts. No model, precision or context was silently substituted. | Device / model | Verified depth | Observed output and time | Remaining gate | |---|---|---|---| @@ -18,6 +18,9 @@ This extends the [60-cell device × model matrix](../e2e_profiling_20260922/evid | WSL CPU / MiniCPM-o 4.5, same revision | Scoped three-stage **audio**-to-text+speech path (P for one synthetic clip) | For the 2 s, 440 Hz tone, answered “A loud and high pitched beep” and produced a nonzero 2.16 s WAV. Startup 101.22 s; one request 17.30 s. Text and token IDs differed from WSL GPU. | Real-audio and transcription suites, speech meaning, repeated latency, memory admission and clean shutdown. | | WSL CPU / MiniCPM-o 4.5, separate pinned Q4_K_M/F16 GGUF set | Standalone C++ whole-chain **combined synthetic image+audio** input to text+speech (P for this request; not an Omni stage or a semantic-quality pass) | The vision and audio encoders, language model, TTS and CPU Token2Wav ran in one process. One cold 40.70 s run returned generic text and ten nonempty 24 kHz chunks, assembled into a 9.24 s WAV; peak RSS from `/usr/bin/time` was 13,369,604 KiB (~12.75 GiB). Whisper tiny ASR gave 9.30% script-normalized character error against the generated text as an intelligibility proxy. The text did not describe the red square or tone. | Compare task quality against a prompted input/reference, fix upstream WAV merge naming, bind Omni placement, repeat latency, cancellation and sustained use; [C++ raw evidence](evidence/minicpmo_cpp_cpu/README.md). | | Native Windows HX370 CPU / MiniCPM-o 4.5, same pinned Q4_K_M/F16 GGUF set | Standalone C++ whole-chain **combined synthetic image+audio** input to text+speech (P for this request; outside Omni) | The corrected x86-64-v3 build and bounded audio wait completed a cold run in 137.34 s, with 50 nonempty 24 kHz WAV chunks/49.16 s and sampled peak RSS/private bytes 13.10/13.31 GB. Whisper tiny ASR gave 13.59% script-normalized character error against the generated text. The response was generic and input-grounded quality remains unqualified. The first generic cross-build exited 0 with only 15 chunks and no completion flag, preserved as a failed attempt. | Bind an Omni whole-session stage and admission/state contract, prompt and qualify image/audio quality, fix live WAV merge/streaming, repeat latency, cancellation and sustained thermal behavior; [complete raw evidence](evidence/minicpmo_cpp_windows_cpu/README.md), [failed run](evidence/minicpmo_cpp_windows_cpu_attempt1/README.md). | +| Native Windows HX370 CPU / MiniCPM-o 4.5, same GGUF set; spoken visual question | Standalone combined JPEG+speech → text+speech (P for one prompted synthetic input) | The 16 kHz user speech independently transcribed as “What color is the square in the image?” (WER 0). CPU returned the correct “The square in the image is red.” with the same eight language token IDs as the Radeon hybrid; three nonzero 24 kHz WAV chunks made 2.32 s of speech, independently transcribed exactly (WER 0). One cold request took 24.66 s; maximum sampled RSS 13.11 GB. Waveform PCM differed from Radeon. | Omni whole-session binding and admission, real multimodal quality, playable stream, repeated latency and sustained power/thermal behavior; [prompted CPU raw evidence](evidence/minicpmo_cpp_windows_cpu_prompted/README.md), [cross-device check](evidence/minicpmo_cpp_radeon890m_prompted/cpu_radeon_parity.json). | +| Native Windows HX370 Radeon 890M+CPU / MiniCPM-o 4.5, same GGUF set; tone fixture | Standalone combined JPEG+tone → text+speech with Radeon language/vision and CPU vocoder (P for this unprompted input) | With only Radeon visible to Vulkan, logs show 37/37 language layers and vision on Vulkan0; TTS weights 0/21 GPU layers and CPU Token2Wav. One cold 113.43 s run yielded generic text and 42 nonzero 24 kHz WAV chunks/41.96 s, with sampled RSS 15.57 GB. The fixture lacked a spoken question, so this does not establish grounded quality. | See the prompted run below; Omni binding, live merge/streaming, loading/shared-RAM peak, repeated requests and sustained behavior remain open; [raw hybrid evidence](evidence/minicpmo_cpp_radeon890m/README.md). | +| Native Windows HX370 Radeon 890M+CPU / MiniCPM-o 4.5, same GGUF set; spoken visual question | Standalone combined JPEG+speech → text+speech with placement verified (P for one prompted synthetic input) | Spoken input ASR WER 0; the model answered “The square in the image is red.” with the same eight language token IDs as CPU. Three nonzero 24 kHz WAV chunks made 2.56 s of speech, output ASR WER 0. One cold process took 18.63 s, sampled RSS 15.57 GB. It is not an all-Radeon, NPU or Omni run. | Real image/audio suites, Omni admission/state/cancel binding, playable streaming, loading peak, repeated/concurrent latency and sustained thermal/power behavior; [prompted hybrid evidence](evidence/minicpmo_cpp_radeon890m_prompted/README.md). | | Native Windows RTX 5090 Laptop / MiniCPM-o 4.5, same revision | Scoped complete three-stage text-to-text+speech path (P for this input only) | Coherent text with the same 32 thinker token IDs as WSL CUDA, and a nonzero 5.2 s mono 24 kHz WAV. First engine startup 297.20 s and request 78.75 s, including first-use graph/JIT work; separate 1-warmup/20-measured serial run: startup 239.05 s, request wall p50 18.38 s/p95 18.73 s. | Speech intelligibility/alignment, real image/audio quality, video input, concurrency, interruption, loading peak and sustained behavior. | | WSL RTX 5090 Laptop / MiniCPM-o 4.5, same revision | Scoped three-stage **image**-to-text+speech path (P for one synthetic image) | For a 448×448 red square on white, returned the correct visual description and a nonzero 5.2 s WAV. Engine startup 101.96 s; one request 17.49 s. | Broader visual quality, real images, audio/video inputs, speech intelligibility, repeated latency and cleanup reliability. | | WSL RTX 5090 Laptop / MiniCPM-o 4.5, same revision | Scoped three-stage **audio**-to-text+speech path (P for one synthetic clip) | For a 2 s, 440 Hz tone at 16 kHz, answered “A loud whistling sound” and produced a nonzero 2.16 s WAV. Engine startup 105.94 s; one request 7.78 s. | Speech transcription/real audio quality, video input, speech intelligibility, repeated latency and shared-memory cleanup. | diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/README.md b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/README.md new file mode 100644 index 000000000..52395e3a5 --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/README.md @@ -0,0 +1,25 @@ +# MiniCPM-o 4.5 on native Windows Radeon 890M + CPU + +The Ryzen AI 9 HX 370/Radeon 890M completed a **standalone scoped full request** with the pinned ten-file Q4_K_M/F16 [MiniCPM-o GGUF set](https://huggingface.co/openbmb/MiniCPM-o-4_5-gguf/tree/db25077c33951fe163b42986fba0132e279872a2). One synthetic red-square JPEG plus 2 s/440 Hz tone traversed vision, audio, language, TTS and vocoder to text and speech. A second [spoken visual question](../minicpmo_cpp_radeon890m_prompted/README.md) returned the correct answer, “The square in the image is red.” The corresponding [native Windows CPU request](../minicpmo_cpp_windows_cpu_prompted/README.md) produced identical language token IDs. This is a CPU+iGPU hybrid, outside Omni StageRuntime/StagePool; it is not an all-Radeon or AMD NPU result. + +The C++ source is [tc-mb/llama.cpp-omni](https://github.com/tc-mb/llama.cpp-omni/tree/5202b7b2f4d11f50b9f996161e7a2f8b8571b890) at `5202b7b2f4d11f50b9f996161e7a2f8b8571b890`, with the [CPU selection, Windows and bounded-completion patch](../minicpmo_cpp_cpu/llama_cpp_omni_cpu.patch). It was cross-built from Ubuntu with MinGW-w64 GCC 13-posix, x86-64-v3, Vulkan headers 1.4.341, glslc 2026.1-1, CMake/Ninja Release, and `GGML_CUDA=OFF`, `GGML_VULKAN=ON`, `GGML_OPENMP=OFF`. The initial build failed because pointing the Windows compiler at all of `/usr/include` picked up Linux `stdint.h`; [the failed log](build_failed_linux_include.log) is retained. Restricting the include path to Vulkan headers alone succeeded; see [configure](configure.log) and [build](build_success.log) logs. The Windows Vulkan loader was linked from `vulkan-1.dll` with the native driver. The exact executable and all ten Windows GGUF hashes are in the [report](full_report.json); weights and binaries remain outside Git. + +The host was Windows 11 build 26200. [Vulkan enumeration](vulkaninfo_summary.log) lists RTX 5090 as GPU0 and Radeon 890M (driver `25.20.18.06 (LLPC)`) as GPU1. The run set `GGML_VK_VISIBLE_DEVICES=1`, making Radeon the only visible Vulkan device. The [runtime log](full.combined.log) then named `Vulkan0 (AMD Radeon(TM) 890M Graphics)`, offloaded all 37/37 language layers to it, placed vision on Vulkan0, and recorded CPU Token2Wav/vocoder. TTS weights used 0/21 offloaded layers, although a Vulkan compute buffer was logged; the audio encoder was CPU. The log is the placement evidence, not just requested flags. + +| One cold combined tone+image request | Observation | +|---|---| +| Input path | Index 0 supplied reference/system audio; index 1 encoded the [JPEG](fixture_0001.jpg) and [16 kHz tone](fixture_0001.wav). The verifier checked both in the log. | +| Output | Nonempty [text](response_text.txt) and a completion marker; 42 contiguous, nonzero mono 24 kHz PCM16 [WAV chunks](round_000/tts_wav/) totaling 41.96 s. The [merged WAV](full_merged.wav) preserves their PCM exactly. The generic response to a tone and square without an explicit question is not a grounded-quality result. | +| Time and memory | 113.43 s cold process wall; 15.57 GB sampled maximum RSS and 15.45 GB sampled maximum private bytes at 100 ms intervals. These are one-run observations, not p50/p95, guaranteed loading peaks or sustained thermal results. [Process profile](full.profile.json). | +| Speech proxy | Local pinned `openai/whisper-tiny` on CPU transcribed the Mandarin output with 8.79% character error against the model's own text after OpenCC script normalization. This does not measure whether the text answered the input. [ASR report](speech_asr_proxy.json). | + +The verifier checked the pinned artifacts, exact logged placement, index-1 image+audio prefill, completion marker, contiguous WAV sequence, audio format/bounds and nonempty text. The upstream optional WAV merger still looks for the wrong chunk names and runs before vocoder completion; [the verifier](../../../../experiments/verify_minicpm_cpp_output.py) joined original PCM afterward. The correctly prompted result provides a stronger one-case quality check, but real image/audio suites, video, playable streaming, Omni admission/state/cancellation, repeated latency, shared-RAM/GPU loading peak and sustained power/thermal behavior remain open. + +Reproduce after applying the patch and obtaining the pinned GGUF set. Cross-configure with `-DCMAKE_SYSTEM_NAME=Windows -DCMAKE_SYSTEM_PROCESSOR=x86_64`, MinGW-w64 `gcc-posix/g++-posix`, `-DCMAKE_C_FLAGS=-march=x86-64-v3 -DCMAKE_CXX_FLAGS=-march=x86-64-v3`, `-DGGML_VULKAN=ON`, `-DVulkan_INCLUDE_DIR=/path/to/isolated/vulkan-headers`, `-DVulkan_LIBRARY=/path/to/vulkan-1.dll` and `-DVulkan_GLSLC_EXECUTABLE=/usr/bin/glslc`. Build `llama-omni-cli`, then on native Windows: + +```powershell +$env:GGML_VK_VISIBLE_DEVICES = '1' +llama-omni-cli.exe -m C:\path\to\MiniCPM-o-4_5-Q4_K_M.gguf ` + -ngl 99 -c 2048 --omni --t2w-device cpu --t2w-wait-seconds 900 ` + --ref-audio C:\path\to\default_ref_audio.wav --test C:\path\to\fixture_ 2 +``` diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/build_failed_linux_include.log b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/build_failed_linux_include.log new file mode 100644 index 000000000..29bb7d12c --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/build_failed_linux_include.log @@ -0,0 +1,320 @@ +[0/2] Re-checking globbed directories... +[1/323] Creating directories for 'vulkan-shaders-gen' +[2/323] No download step for 'vulkan-shaders-gen' +[3/323] No update step for 'vulkan-shaders-gen' +[4/323] No patch step for 'vulkan-shaders-gen' +[5/323] Building CXX object ggml/src/CMakeFiles/ggml-base.dir/ggml-threading.cpp.obj +[6/323] Building C object ggml/src/CMakeFiles/ggml-base.dir/ggml-alloc.c.obj +[7/323] Building CXX object ggml/src/CMakeFiles/ggml-base.dir/ggml.cpp.obj +[8/323] Building CXX object ggml/src/CMakeFiles/ggml-base.dir/ggml-opt.cpp.obj +[9/323] Building C object ggml/src/CMakeFiles/ggml-cpu.dir/ggml-cpu/ggml-cpu.c.obj +[10/323] Building CXX object ggml/src/CMakeFiles/ggml-cpu.dir/ggml-cpu/hbm.cpp.obj +[11/323] Building CXX object ggml/src/CMakeFiles/ggml-base.dir/ggml-backend.cpp.obj +[12/323] Building CXX object ggml/src/CMakeFiles/ggml-cpu.dir/ggml-cpu/ggml-cpu.cpp.obj +[13/323] Building C object ggml/src/CMakeFiles/ggml-base.dir/ggml.c.obj +[14/323] Building CXX object ggml/src/CMakeFiles/ggml-cpu.dir/ggml-cpu/traits.cpp.obj +[15/323] Building CXX object ggml/src/CMakeFiles/ggml-cpu.dir/ggml-cpu/amx/amx.cpp.obj +[16/323] Performing configure step for 'vulkan-shaders-gen' +-- The C compiler identification is GNU 15.2.0 +-- The CXX compiler identification is GNU 15.2.0 +-- Detecting C compiler ABI info +-- Detecting C compiler ABI info - done +-- Check for working C compiler: /usr/bin/gcc - skipped +-- Detecting C compile features +-- Detecting C compile features - done +-- Detecting CXX compiler ABI info +-- Detecting CXX compiler ABI info - done +-- Check for working CXX compiler: /usr/bin/g++ - skipped +-- Detecting CXX compile features +-- Detecting CXX compile features - done +-- Performing Test CMAKE_HAVE_LIBC_PTHREAD +-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success +-- Found Threads: TRUE +-- Enabling coopmat glslc support +-- Enabling coopmat2 glslc support +-- Enabling dot glslc support +-- Enabling bfloat16 glslc support +-- Configuring done (2.6s) +-- Generating done (0.0s) +-- Build files have been written to: /home/zhout/project/edge_infer/llama.cpp-omni/build-win64-vulkan/ggml/src/ggml-vulkan/vulkan-shaders-gen-prefix/src/vulkan-shaders-gen-build +[17/323] Building C object ggml/src/CMakeFiles/ggml-cpu.dir/ggml-cpu/quants.c.obj +[18/323] Building CXX object ggml/src/CMakeFiles/ggml-cpu.dir/ggml-cpu/amx/mmq.cpp.obj +[19/323] Building CXX object ggml/src/CMakeFiles/ggml-cpu.dir/ggml-cpu/vec.cpp.obj +[20/323] Building CXX object ggml/src/CMakeFiles/ggml-base.dir/gguf.cpp.obj +[21/323] Building CXX object ggml/src/CMakeFiles/ggml-cpu.dir/ggml-cpu/repack.cpp.obj +[22/323] Building CXX object ggml/src/CMakeFiles/ggml-cpu.dir/ggml-cpu/binary-ops.cpp.obj +[23/323] Building CXX object common/CMakeFiles/build_info.dir/build-info.cpp.obj +[24/323] Building CXX object ggml/src/CMakeFiles/ggml-cpu.dir/ggml-cpu/unary-ops.cpp.obj +[25/323] Building C object ggml/src/CMakeFiles/ggml-cpu.dir/ggml-cpu/arch/x86/quants.c.obj +[26/323] Building C object ggml/src/CMakeFiles/ggml-base.dir/ggml-quants.c.obj +/home/zhout/project/edge_infer/llama.cpp-omni/ggml/src/ggml-quants.c: In function ‘validate_float’: +/home/zhout/project/edge_infer/llama.cpp-omni/ggml/src/ggml-quants.c:5004:76: warning: unknown conversion type character ‘z’ in format [-Wformat=] + 5004 | fprintf(stderr, "ggml_validate_row_data: found inf value at block %zu\n", i); + | ^ +/home/zhout/project/edge_infer/llama.cpp-omni/ggml/src/ggml-quants.c:5004:25: warning: too many arguments for format [-Wformat-extra-args] + 5004 | fprintf(stderr, "ggml_validate_row_data: found inf value at block %zu\n", i); + | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/ggml/src/ggml-quants.c:5009:76: warning: unknown conversion type character ‘z’ in format [-Wformat=] + 5009 | fprintf(stderr, "ggml_validate_row_data: found nan value at block %zu\n", i); + | ^ +/home/zhout/project/edge_infer/llama.cpp-omni/ggml/src/ggml-quants.c:5009:25: warning: too many arguments for format [-Wformat-extra-args] + 5009 | fprintf(stderr, "ggml_validate_row_data: found nan value at block %zu\n", i); + | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/ggml/src/ggml-quants.c: In function ‘validate_fp16’: +/home/zhout/project/edge_infer/llama.cpp-omni/ggml/src/ggml-quants.c:5026:76: warning: unknown conversion type character ‘z’ in format [-Wformat=] + 5026 | fprintf(stderr, "ggml_validate_row_data: found inf value at block %zu\n", i); + | ^ +/home/zhout/project/edge_infer/llama.cpp-omni/ggml/src/ggml-quants.c:5026:25: warning: too many arguments for format [-Wformat-extra-args] + 5026 | fprintf(stderr, "ggml_validate_row_data: found inf value at block %zu\n", i); + | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/ggml/src/ggml-quants.c:5031:76: warning: unknown conversion type character ‘z’ in format [-Wformat=] + 5031 | fprintf(stderr, "ggml_validate_row_data: found nan value at block %zu\n", i); + | ^ +/home/zhout/project/edge_infer/llama.cpp-omni/ggml/src/ggml-quants.c:5031:25: warning: too many arguments for format [-Wformat-extra-args] + 5031 | fprintf(stderr, "ggml_validate_row_data: found nan value at block %zu\n", i); + | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/ggml/src/ggml-quants.c: In function ‘validate_e_e8m0’: +/home/zhout/project/edge_infer/llama.cpp-omni/ggml/src/ggml-quants.c:5040:85: warning: unknown conversion type character ‘z’ in format [-Wformat=] + 5040 | fprintf(stderr, "ggml_validate_row_data: found invalid e value %d at block %zu\n", e, i); + | ^ +/home/zhout/project/edge_infer/llama.cpp-omni/ggml/src/ggml-quants.c:5040:25: warning: too many arguments for format [-Wformat-extra-args] + 5040 | fprintf(stderr, "ggml_validate_row_data: found invalid e value %d at block %zu\n", e, i); + | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/ggml/src/ggml-quants.c: In function ‘ggml_validate_row_data’: +/home/zhout/project/edge_infer/llama.cpp-omni/ggml/src/ggml-quants.c:5088:44: warning: unknown conversion type character ‘z’ in format [-Wformat=] + 5088 | fprintf(stderr, "%s: invalid size %zu for type %s (type size = %zu)\n", __func__, nbytes, ggml_type_name(type), ggml_type_size(type)); + | ^ +/home/zhout/project/edge_infer/llama.cpp-omni/ggml/src/ggml-quants.c:5088:57: warning: format ‘%s’ expects argument of type ‘char *’, but argument 4 has type ‘size_t’ {aka ‘long long unsigned int’} [-Wformat=] + 5088 | fprintf(stderr, "%s: invalid size %zu for type %s (type size = %zu)\n", __func__, nbytes, ggml_type_name(type), ggml_type_size(type)); + | ~^ ~~~~~~ + | | | + | char * size_t {aka long long unsigned int} + | %lld +/home/zhout/project/edge_infer/llama.cpp-omni/ggml/src/ggml-quants.c:5088:73: warning: unknown conversion type character ‘z’ in format [-Wformat=] + 5088 | fprintf(stderr, "%s: invalid size %zu for type %s (type size = %zu)\n", __func__, nbytes, ggml_type_name(type), ggml_type_size(type)); + | ^ +/home/zhout/project/edge_infer/llama.cpp-omni/ggml/src/ggml-quants.c:5088:25: warning: too many arguments for format [-Wformat-extra-args] + 5088 | fprintf(stderr, "%s: invalid size %zu for type %s (type size = %zu)\n", __func__, nbytes, ggml_type_name(type), ggml_type_size(type)); + | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/ggml/src/ggml-quants.c:5105:67: warning: unknown conversion type character ‘z’ in format [-Wformat=] + 5105 | fprintf(stderr, "%s: found %d NaNs in row of %zu BF16 values\n", __func__, nans, nb); + | ^ +/home/zhout/project/edge_infer/llama.cpp-omni/ggml/src/ggml-quants.c:5105:37: warning: too many arguments for format [-Wformat-extra-args] + 5105 | fprintf(stderr, "%s: found %d NaNs in row of %zu BF16 values\n", __func__, nans, nb); + | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/ggml/src/ggml-quants.c:5109:73: warning: unknown conversion type character ‘z’ in format [-Wformat=] + 5109 | fprintf(stderr, "%s: found %d infinities in row of %zu BF16 values\n", __func__, infs, nb); + | ^ +/home/zhout/project/edge_infer/llama.cpp-omni/ggml/src/ggml-quants.c:5109:37: warning: too many arguments for format [-Wformat-extra-args] + 5109 | fprintf(stderr, "%s: found %d infinities in row of %zu BF16 values\n", __func__, infs, nb); + | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +[27/323] Linking CXX static library ggml/src/ggml-base.a +[28/323] Building CXX object ggml/src/CMakeFiles/ggml-cpu.dir/ggml-cpu/arch/x86/repack.cpp.obj +[29/323] Building CXX object ggml/src/CMakeFiles/ggml-cpu.dir/ggml-cpu/llamafile/sgemm.cpp.obj +[30/323] Building CXX object ggml/src/CMakeFiles/ggml-cpu.dir/ggml-cpu/ops.cpp.obj +[31/323] Linking CXX static library ggml/src/ggml-cpu.a +[32/323] Performing build step for 'vulkan-shaders-gen' +[1/2] Building CXX object CMakeFiles/vulkan-shaders-gen.dir/vulkan-shaders-gen.cpp.o +[2/2] Linking CXX executable /home/zhout/project/edge_infer/llama.cpp-omni/build-win64-vulkan/bin/vulkan-shaders-gen +[33/323] Performing install step for 'vulkan-shaders-gen' +-- Installing: /home/zhout/project/edge_infer/llama.cpp-omni/build-win64-vulkan/Release/./vulkan-shaders-gen +[34/323] Completed 'vulkan-shaders-gen' +[35/323] Generate vulkan shaders header +[36/323] Generate vulkan shaders for argmax.comp +[37/323] Generate vulkan shaders for concat.comp +[38/323] Generate vulkan shaders for argsort.comp +[39/323] Generate vulkan shaders for acc.comp +[40/323] Generate vulkan shaders for add_id.comp +[41/323] Generate vulkan shaders for clamp.comp +[42/323] Generate vulkan shaders for contig_copy.comp +[43/323] Generate vulkan shaders for conv2d_dw.comp +[44/323] Generate vulkan shaders for cos.comp +[45/323] Generate vulkan shaders for conv_transpose_1d.comp +[46/323] Generate vulkan shaders for add.comp +[47/323] Generate vulkan shaders for copy.comp +[48/323] Generate vulkan shaders for conv2d_mm.comp +[49/323] Generate vulkan shaders for copy_from_quant.comp +[50/323] Generate vulkan shaders for count_equal.comp +[51/323] Generate vulkan shaders for dequant_f32.comp +[52/323] Generate vulkan shaders for dequant_iq1_m.comp +[53/323] Generate vulkan shaders for dequant_iq1_s.comp +[54/323] Generate vulkan shaders for dequant_iq2_s.comp +[55/323] Generate vulkan shaders for dequant_iq2_xs.comp +[56/323] Generate vulkan shaders for dequant_iq2_xxs.comp +[57/323] Generate vulkan shaders for dequant_iq3_xxs.comp +[58/323] Generate vulkan shaders for dequant_iq3_s.comp +[59/323] Generate vulkan shaders for dequant_mxfp4.comp +[60/323] Generate vulkan shaders for dequant_iq4_nl.comp +[61/323] Generate vulkan shaders for dequant_q2_k.comp +[62/323] Generate vulkan shaders for dequant_iq4_xs.comp +[63/323] Generate vulkan shaders for copy_to_quant.comp +[64/323] Generate vulkan shaders for dequant_q3_k.comp +[65/323] Generate vulkan shaders for dequant_q4_0.comp +[66/323] Generate vulkan shaders for dequant_q4_1.comp +[67/323] Generate vulkan shaders for dequant_q4_k.comp +[68/323] Generate vulkan shaders for dequant_q5_0.comp +[69/323] Generate vulkan shaders for dequant_q8_0.comp +[70/323] Generate vulkan shaders for dequant_q5_1.comp +[71/323] Generate vulkan shaders for dequant_q5_k.comp +[72/323] Generate vulkan shaders for dequant_q6_k.comp +[73/323] Generate vulkan shaders for diag_mask_inf.comp +[74/323] Generate vulkan shaders for exp.comp +[75/323] Generate vulkan shaders for div.comp +[76/323] Generate vulkan shaders for geglu.comp +[77/323] Generate vulkan shaders for flash_attn_split_k_reduce.comp +[78/323] Generate vulkan shaders for flash_attn_cm1.comp +[79/323] Generate vulkan shaders for geglu_erf.comp +[80/323] Generate vulkan shaders for geglu_quick.comp +[81/323] Generate vulkan shaders for flash_attn.comp +[82/323] Generate vulkan shaders for gelu.comp +[83/323] Generate vulkan shaders for gelu_erf.comp +[84/323] Generate vulkan shaders for gelu_quick.comp +[85/323] Generate vulkan shaders for group_norm.comp +[86/323] Generate vulkan shaders for get_rows.comp +[87/323] Generate vulkan shaders for hardsigmoid.comp +[88/323] Generate vulkan shaders for hardswish.comp +[89/323] Generate vulkan shaders for l2_norm.comp +[90/323] Generate vulkan shaders for im2col.comp +[91/323] Generate vulkan shaders for im2col_3d.comp +[92/323] Generate vulkan shaders for leaky_relu.comp +[93/323] Generate vulkan shaders for mul_mat_split_k_reduce.comp +[94/323] Generate vulkan shaders for flash_attn_cm2.comp +[95/323] Generate vulkan shaders for get_rows_quant.comp +[96/323] Generate vulkan shaders for mul.comp +[97/323] Generate vulkan shaders for mul_mat_vec_iq1_m.comp +[98/323] Generate vulkan shaders for mul_mat_vec_nc.comp +[99/323] Generate vulkan shaders for mul_mat_vec_iq1_s.comp +[100/323] Generate vulkan shaders for mul_mat_vec_iq2_xxs.comp +[101/323] Generate vulkan shaders for mul_mat_vec_iq2_s.comp +[102/323] Generate vulkan shaders for mul_mat_vec_iq2_xs.comp +[103/323] Generate vulkan shaders for mul_mat_vec_iq3_xxs.comp +[104/323] Generate vulkan shaders for mul_mat_vec_iq3_s.comp +[105/323] Generate vulkan shaders for mul_mat_vec_p021.comp +[106/323] Generate vulkan shaders for mul_mat_vec_q4_k.comp +[107/323] Generate vulkan shaders for mul_mat_vec_q5_k.comp +[108/323] Generate vulkan shaders for mul_mat_vec_q2_k.comp +[109/323] Generate vulkan shaders for mul_mat_vec_q3_k.comp +[110/323] Generate vulkan shaders for mul_mat_vec_q6_k.comp +[111/323] Generate vulkan shaders for mul_mat_vecq.comp +[112/323] Generate vulkan shaders for opt_step_adamw.comp +[113/323] Generate vulkan shaders for multi_add.comp +[114/323] Generate vulkan shaders for opt_step_sgd.comp +[115/323] Generate vulkan shaders for norm.comp +[116/323] Generate vulkan shaders for mul_mmq.comp +[117/323] Generate vulkan shaders for pad.comp +[118/323] Generate vulkan shaders for pool2d.comp +[119/323] Generate vulkan shaders for reglu.comp +[120/323] Generate vulkan shaders for relu.comp +[121/323] Generate vulkan shaders for repeat.comp +[122/323] Generate vulkan shaders for quantize_q8_1.comp +[123/323] Generate vulkan shaders for mul_mat_vec.comp +[124/323] Generate vulkan shaders for repeat_back.comp +[125/323] Generate vulkan shaders for rms_norm_back.comp +[126/323] Generate vulkan shaders for rms_norm_partials.comp +[127/323] Generate vulkan shaders for roll.comp +[128/323] Generate vulkan shaders for rope_multi.comp +[129/323] Generate vulkan shaders for rope_neox.comp +[130/323] Generate vulkan shaders for rope_norm.comp +[131/323] Generate vulkan shaders for rms_norm.comp +[132/323] Generate vulkan shaders for rope_vision.comp +[133/323] Generate vulkan shaders for scale.comp +[134/323] Generate vulkan shaders for silu.comp +[135/323] Generate vulkan shaders for silu_back.comp +[136/323] Generate vulkan shaders for sigmoid.comp +[137/323] Generate vulkan shaders for sin.comp +[138/323] Generate vulkan shaders for soft_max_back.comp +[139/323] Generate vulkan shaders for sqrt.comp +[140/323] Generate vulkan shaders for square.comp +[141/323] Generate vulkan shaders for sum_rows.comp +[142/323] Generate vulkan shaders for sub.comp +[143/323] Generate vulkan shaders for tanh.comp +[144/323] Generate vulkan shaders for swiglu_oai.comp +[145/323] Generate vulkan shaders for swiglu.comp +[146/323] Generate vulkan shaders for timestep_embedding.comp +[147/323] Generate vulkan shaders for upscale.comp +[148/323] Generate vulkan shaders for soft_max.comp +[149/323] Generate vulkan shaders for wkv6.comp +[150/323] Generate vulkan shaders for wkv7.comp +[151/323] Generate vulkan shaders for mul_mm_cm2.comp +[152/323] Generate vulkan shaders for mul_mm.comp +[153/323] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/clamp.comp.cpp.obj +FAILED: [code=1] ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/clamp.comp.cpp.obj +/usr/bin/x86_64-w64-mingw32-g++-posix -DGGML_SCHED_MAX_COPIES=4 -DGGML_VULKAN_BFLOAT16_GLSLC_SUPPORT -DGGML_VULKAN_COOPMAT2_GLSLC_SUPPORT -DGGML_VULKAN_COOPMAT_GLSLC_SUPPORT -DGGML_VULKAN_INTEGER_DOT_GLSLC_SUPPORT -D_CRT_SECURE_NO_WARNINGS -D_WIN32_WINNT=0xA00 -D_XOPEN_SOURCE=600 -I/home/zhout/project/edge_infer/llama.cpp-omni/ggml/src/ggml-vulkan/.. -I/home/zhout/project/edge_infer/llama.cpp-omni/build-win64-vulkan/ggml/src/ggml-vulkan -I/home/zhout/project/edge_infer/llama.cpp-omni/ggml/src/../include -isystem /usr/include -march=x86-64-v3 -O3 -DNDEBUG -std=gnu++17 -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi -MD -MT ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/clamp.comp.cpp.obj -MF ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/clamp.comp.cpp.obj.d -o ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/clamp.comp.cpp.obj -c /home/zhout/project/edge_infer/llama.cpp-omni/build-win64-vulkan/ggml/src/ggml-vulkan/clamp.comp.cpp +In file included from /usr/lib/gcc/x86_64-w64-mingw32/13-posix/include/c++/cstdint:45, + from /home/zhout/project/edge_infer/llama.cpp-omni/build-win64-vulkan/ggml/src/ggml-vulkan/ggml-vulkan-shaders.hpp:1, + from /home/zhout/project/edge_infer/llama.cpp-omni/build-win64-vulkan/ggml/src/ggml-vulkan/clamp.comp.cpp:1: +/usr/include/stdint.h:26:10: fatal error: bits/libc-header-start.h: No such file or directory + 26 | #include + | ^~~~~~~~~~~~~~~~~~~~~~~~~~ +compilation terminated. +[154/323] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/argsort.comp.cpp.obj +FAILED: [code=1] ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/argsort.comp.cpp.obj +/usr/bin/x86_64-w64-mingw32-g++-posix -DGGML_SCHED_MAX_COPIES=4 -DGGML_VULKAN_BFLOAT16_GLSLC_SUPPORT -DGGML_VULKAN_COOPMAT2_GLSLC_SUPPORT -DGGML_VULKAN_COOPMAT_GLSLC_SUPPORT -DGGML_VULKAN_INTEGER_DOT_GLSLC_SUPPORT -D_CRT_SECURE_NO_WARNINGS -D_WIN32_WINNT=0xA00 -D_XOPEN_SOURCE=600 -I/home/zhout/project/edge_infer/llama.cpp-omni/ggml/src/ggml-vulkan/.. -I/home/zhout/project/edge_infer/llama.cpp-omni/build-win64-vulkan/ggml/src/ggml-vulkan -I/home/zhout/project/edge_infer/llama.cpp-omni/ggml/src/../include -isystem /usr/include -march=x86-64-v3 -O3 -DNDEBUG -std=gnu++17 -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi -MD -MT ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/argsort.comp.cpp.obj -MF ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/argsort.comp.cpp.obj.d -o ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/argsort.comp.cpp.obj -c /home/zhout/project/edge_infer/llama.cpp-omni/build-win64-vulkan/ggml/src/ggml-vulkan/argsort.comp.cpp +In file included from /usr/lib/gcc/x86_64-w64-mingw32/13-posix/include/c++/cstdint:45, + from /home/zhout/project/edge_infer/llama.cpp-omni/build-win64-vulkan/ggml/src/ggml-vulkan/ggml-vulkan-shaders.hpp:1, + from /home/zhout/project/edge_infer/llama.cpp-omni/build-win64-vulkan/ggml/src/ggml-vulkan/argsort.comp.cpp:1: +/usr/include/stdint.h:26:10: fatal error: bits/libc-header-start.h: No such file or directory + 26 | #include + | ^~~~~~~~~~~~~~~~~~~~~~~~~~ +compilation terminated. +[155/323] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/acc.comp.cpp.obj +FAILED: [code=1] ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/acc.comp.cpp.obj +/usr/bin/x86_64-w64-mingw32-g++-posix -DGGML_SCHED_MAX_COPIES=4 -DGGML_VULKAN_BFLOAT16_GLSLC_SUPPORT -DGGML_VULKAN_COOPMAT2_GLSLC_SUPPORT -DGGML_VULKAN_COOPMAT_GLSLC_SUPPORT -DGGML_VULKAN_INTEGER_DOT_GLSLC_SUPPORT -D_CRT_SECURE_NO_WARNINGS -D_WIN32_WINNT=0xA00 -D_XOPEN_SOURCE=600 -I/home/zhout/project/edge_infer/llama.cpp-omni/ggml/src/ggml-vulkan/.. -I/home/zhout/project/edge_infer/llama.cpp-omni/build-win64-vulkan/ggml/src/ggml-vulkan -I/home/zhout/project/edge_infer/llama.cpp-omni/ggml/src/../include -isystem /usr/include -march=x86-64-v3 -O3 -DNDEBUG -std=gnu++17 -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi -MD -MT ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/acc.comp.cpp.obj -MF ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/acc.comp.cpp.obj.d -o ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/acc.comp.cpp.obj -c /home/zhout/project/edge_infer/llama.cpp-omni/build-win64-vulkan/ggml/src/ggml-vulkan/acc.comp.cpp +In file included from /usr/lib/gcc/x86_64-w64-mingw32/13-posix/include/c++/cstdint:45, + from /home/zhout/project/edge_infer/llama.cpp-omni/build-win64-vulkan/ggml/src/ggml-vulkan/ggml-vulkan-shaders.hpp:1, + from /home/zhout/project/edge_infer/llama.cpp-omni/build-win64-vulkan/ggml/src/ggml-vulkan/acc.comp.cpp:1: +/usr/include/stdint.h:26:10: fatal error: bits/libc-header-start.h: No such file or directory + 26 | #include + | ^~~~~~~~~~~~~~~~~~~~~~~~~~ +compilation terminated. +[156/323] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/add.comp.cpp.obj +FAILED: [code=1] ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/add.comp.cpp.obj +/usr/bin/x86_64-w64-mingw32-g++-posix -DGGML_SCHED_MAX_COPIES=4 -DGGML_VULKAN_BFLOAT16_GLSLC_SUPPORT -DGGML_VULKAN_COOPMAT2_GLSLC_SUPPORT -DGGML_VULKAN_COOPMAT_GLSLC_SUPPORT -DGGML_VULKAN_INTEGER_DOT_GLSLC_SUPPORT -D_CRT_SECURE_NO_WARNINGS -D_WIN32_WINNT=0xA00 -D_XOPEN_SOURCE=600 -I/home/zhout/project/edge_infer/llama.cpp-omni/ggml/src/ggml-vulkan/.. -I/home/zhout/project/edge_infer/llama.cpp-omni/build-win64-vulkan/ggml/src/ggml-vulkan -I/home/zhout/project/edge_infer/llama.cpp-omni/ggml/src/../include -isystem /usr/include -march=x86-64-v3 -O3 -DNDEBUG -std=gnu++17 -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi -MD -MT ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/add.comp.cpp.obj -MF ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/add.comp.cpp.obj.d -o ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/add.comp.cpp.obj -c /home/zhout/project/edge_infer/llama.cpp-omni/build-win64-vulkan/ggml/src/ggml-vulkan/add.comp.cpp +In file included from /usr/lib/gcc/x86_64-w64-mingw32/13-posix/include/c++/cstdint:45, + from /home/zhout/project/edge_infer/llama.cpp-omni/build-win64-vulkan/ggml/src/ggml-vulkan/ggml-vulkan-shaders.hpp:1, + from /home/zhout/project/edge_infer/llama.cpp-omni/build-win64-vulkan/ggml/src/ggml-vulkan/add.comp.cpp:1: +/usr/include/stdint.h:26:10: fatal error: bits/libc-header-start.h: No such file or directory + 26 | #include + | ^~~~~~~~~~~~~~~~~~~~~~~~~~ +compilation terminated. +[157/323] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/add_id.comp.cpp.obj +FAILED: [code=1] ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/add_id.comp.cpp.obj +/usr/bin/x86_64-w64-mingw32-g++-posix -DGGML_SCHED_MAX_COPIES=4 -DGGML_VULKAN_BFLOAT16_GLSLC_SUPPORT -DGGML_VULKAN_COOPMAT2_GLSLC_SUPPORT -DGGML_VULKAN_COOPMAT_GLSLC_SUPPORT -DGGML_VULKAN_INTEGER_DOT_GLSLC_SUPPORT -D_CRT_SECURE_NO_WARNINGS -D_WIN32_WINNT=0xA00 -D_XOPEN_SOURCE=600 -I/home/zhout/project/edge_infer/llama.cpp-omni/ggml/src/ggml-vulkan/.. -I/home/zhout/project/edge_infer/llama.cpp-omni/build-win64-vulkan/ggml/src/ggml-vulkan -I/home/zhout/project/edge_infer/llama.cpp-omni/ggml/src/../include -isystem /usr/include -march=x86-64-v3 -O3 -DNDEBUG -std=gnu++17 -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi -MD -MT ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/add_id.comp.cpp.obj -MF ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/add_id.comp.cpp.obj.d -o ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/add_id.comp.cpp.obj -c /home/zhout/project/edge_infer/llama.cpp-omni/build-win64-vulkan/ggml/src/ggml-vulkan/add_id.comp.cpp +In file included from /usr/lib/gcc/x86_64-w64-mingw32/13-posix/include/c++/cstdint:45, + from /home/zhout/project/edge_infer/llama.cpp-omni/build-win64-vulkan/ggml/src/ggml-vulkan/ggml-vulkan-shaders.hpp:1, + from /home/zhout/project/edge_infer/llama.cpp-omni/build-win64-vulkan/ggml/src/ggml-vulkan/add_id.comp.cpp:1: +/usr/include/stdint.h:26:10: fatal error: bits/libc-header-start.h: No such file or directory + 26 | #include + | ^~~~~~~~~~~~~~~~~~~~~~~~~~ +compilation terminated. +[158/323] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/argmax.comp.cpp.obj +FAILED: [code=1] ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/argmax.comp.cpp.obj +/usr/bin/x86_64-w64-mingw32-g++-posix -DGGML_SCHED_MAX_COPIES=4 -DGGML_VULKAN_BFLOAT16_GLSLC_SUPPORT -DGGML_VULKAN_COOPMAT2_GLSLC_SUPPORT -DGGML_VULKAN_COOPMAT_GLSLC_SUPPORT -DGGML_VULKAN_INTEGER_DOT_GLSLC_SUPPORT -D_CRT_SECURE_NO_WARNINGS -D_WIN32_WINNT=0xA00 -D_XOPEN_SOURCE=600 -I/home/zhout/project/edge_infer/llama.cpp-omni/ggml/src/ggml-vulkan/.. -I/home/zhout/project/edge_infer/llama.cpp-omni/build-win64-vulkan/ggml/src/ggml-vulkan -I/home/zhout/project/edge_infer/llama.cpp-omni/ggml/src/../include -isystem /usr/include -march=x86-64-v3 -O3 -DNDEBUG -std=gnu++17 -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi -MD -MT ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/argmax.comp.cpp.obj -MF ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/argmax.comp.cpp.obj.d -o ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/argmax.comp.cpp.obj -c /home/zhout/project/edge_infer/llama.cpp-omni/build-win64-vulkan/ggml/src/ggml-vulkan/argmax.comp.cpp +In file included from /usr/lib/gcc/x86_64-w64-mingw32/13-posix/include/c++/cstdint:45, + from /home/zhout/project/edge_infer/llama.cpp-omni/build-win64-vulkan/ggml/src/ggml-vulkan/ggml-vulkan-shaders.hpp:1, + from /home/zhout/project/edge_infer/llama.cpp-omni/build-win64-vulkan/ggml/src/ggml-vulkan/argmax.comp.cpp:1: +/usr/include/stdint.h:26:10: fatal error: bits/libc-header-start.h: No such file or directory + 26 | #include + | ^~~~~~~~~~~~~~~~~~~~~~~~~~ +compilation terminated. +[159/323] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/ggml-vulkan.cpp.obj +FAILED: [code=1] ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/ggml-vulkan.cpp.obj +/usr/bin/x86_64-w64-mingw32-g++-posix -DGGML_SCHED_MAX_COPIES=4 -DGGML_VULKAN_BFLOAT16_GLSLC_SUPPORT -DGGML_VULKAN_COOPMAT2_GLSLC_SUPPORT -DGGML_VULKAN_COOPMAT_GLSLC_SUPPORT -DGGML_VULKAN_INTEGER_DOT_GLSLC_SUPPORT -D_CRT_SECURE_NO_WARNINGS -D_WIN32_WINNT=0xA00 -D_XOPEN_SOURCE=600 -I/home/zhout/project/edge_infer/llama.cpp-omni/ggml/src/ggml-vulkan/.. -I/home/zhout/project/edge_infer/llama.cpp-omni/build-win64-vulkan/ggml/src/ggml-vulkan -I/home/zhout/project/edge_infer/llama.cpp-omni/ggml/src/../include -isystem /usr/include -march=x86-64-v3 -O3 -DNDEBUG -std=gnu++17 -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi -MD -MT ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/ggml-vulkan.cpp.obj -MF ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/ggml-vulkan.cpp.obj.d -o ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/ggml-vulkan.cpp.obj -c /home/zhout/project/edge_infer/llama.cpp-omni/ggml/src/ggml-vulkan/ggml-vulkan.cpp +In file included from /home/zhout/project/edge_infer/llama.cpp-omni/ggml/src/../include/ggml.h:209, + from /home/zhout/project/edge_infer/llama.cpp-omni/ggml/src/../include/ggml-vulkan.h:3, + from /home/zhout/project/edge_infer/llama.cpp-omni/ggml/src/ggml-vulkan/ggml-vulkan.cpp:1: +/usr/include/stdint.h:26:10: fatal error: bits/libc-header-start.h: No such file or directory + 26 | #include + | ^~~~~~~~~~~~~~~~~~~~~~~~~~ +compilation terminated. +[160/323] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/concat.comp.cpp.obj +FAILED: [code=1] ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/concat.comp.cpp.obj +/usr/bin/x86_64-w64-mingw32-g++-posix -DGGML_SCHED_MAX_COPIES=4 -DGGML_VULKAN_BFLOAT16_GLSLC_SUPPORT -DGGML_VULKAN_COOPMAT2_GLSLC_SUPPORT -DGGML_VULKAN_COOPMAT_GLSLC_SUPPORT -DGGML_VULKAN_INTEGER_DOT_GLSLC_SUPPORT -D_CRT_SECURE_NO_WARNINGS -D_WIN32_WINNT=0xA00 -D_XOPEN_SOURCE=600 -I/home/zhout/project/edge_infer/llama.cpp-omni/ggml/src/ggml-vulkan/.. -I/home/zhout/project/edge_infer/llama.cpp-omni/build-win64-vulkan/ggml/src/ggml-vulkan -I/home/zhout/project/edge_infer/llama.cpp-omni/ggml/src/../include -isystem /usr/include -march=x86-64-v3 -O3 -DNDEBUG -std=gnu++17 -Wmissing-declarations -Wmissing-noreturn -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-array-bounds -Wextra-semi -MD -MT ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/concat.comp.cpp.obj -MF ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/concat.comp.cpp.obj.d -o ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/concat.comp.cpp.obj -c /home/zhout/project/edge_infer/llama.cpp-omni/build-win64-vulkan/ggml/src/ggml-vulkan/concat.comp.cpp +In file included from /usr/lib/gcc/x86_64-w64-mingw32/13-posix/include/c++/cstdint:45, + from /home/zhout/project/edge_infer/llama.cpp-omni/build-win64-vulkan/ggml/src/ggml-vulkan/ggml-vulkan-shaders.hpp:1, + from /home/zhout/project/edge_infer/llama.cpp-omni/build-win64-vulkan/ggml/src/ggml-vulkan/concat.comp.cpp:1: +/usr/include/stdint.h:26:10: fatal error: bits/libc-header-start.h: No such file or directory + 26 | #include + | ^~~~~~~~~~~~~~~~~~~~~~~~~~ +compilation terminated. +ninja: build stopped: subcommand failed. diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/build_success.log b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/build_success.log new file mode 100644 index 000000000..a1a3e70ae --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/build_success.log @@ -0,0 +1,930 @@ +[0/2] Re-checking globbed directories... +[1/174] Performing build step for 'vulkan-shaders-gen' +ninja: no work to do. +[2/174] Performing install step for 'vulkan-shaders-gen' +-- Up-to-date: /home/zhout/project/edge_infer/llama.cpp-omni/build-win64-vulkan/Release/./vulkan-shaders-gen +[3/174] Completed 'vulkan-shaders-gen' +[4/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/clamp.comp.cpp.obj +[5/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/concat.comp.cpp.obj +[6/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/add_id.comp.cpp.obj +[7/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/argmax.comp.cpp.obj +[8/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/acc.comp.cpp.obj +[9/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/argsort.comp.cpp.obj +[10/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/conv_transpose_1d.comp.cpp.obj +[11/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/contig_copy.comp.cpp.obj +[12/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/conv2d_dw.comp.cpp.obj +[13/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/copy.comp.cpp.obj +[14/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/cos.comp.cpp.obj +[15/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/dequant_f32.comp.cpp.obj +[16/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/count_equal.comp.cpp.obj +[17/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/copy_from_quant.comp.cpp.obj +[18/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/dequant_iq1_m.comp.cpp.obj +[19/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/dequant_iq1_s.comp.cpp.obj +[20/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/dequant_iq2_xs.comp.cpp.obj +[21/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/dequant_iq2_s.comp.cpp.obj +[22/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/add.comp.cpp.obj +[23/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/conv2d_mm.comp.cpp.obj +[24/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/dequant_iq2_xxs.comp.cpp.obj +[25/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/dequant_iq3_xxs.comp.cpp.obj +[26/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/dequant_iq3_s.comp.cpp.obj +[27/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/dequant_iq4_nl.comp.cpp.obj +[28/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/dequant_iq4_xs.comp.cpp.obj +[29/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/dequant_mxfp4.comp.cpp.obj +[30/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/dequant_q4_0.comp.cpp.obj +[31/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/dequant_q2_k.comp.cpp.obj +[32/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/dequant_q3_k.comp.cpp.obj +[33/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/dequant_q4_1.comp.cpp.obj +[34/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/dequant_q4_k.comp.cpp.obj +[35/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/dequant_q5_0.comp.cpp.obj +[36/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/dequant_q6_k.comp.cpp.obj +[37/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/dequant_q5_1.comp.cpp.obj +[38/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/dequant_q5_k.comp.cpp.obj +[39/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/dequant_q8_0.comp.cpp.obj +[40/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/diag_mask_inf.comp.cpp.obj +[41/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/exp.comp.cpp.obj +[42/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/flash_attn_split_k_reduce.comp.cpp.obj +[43/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/geglu.comp.cpp.obj +[44/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/geglu_erf.comp.cpp.obj +[45/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/div.comp.cpp.obj +[46/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/geglu_quick.comp.cpp.obj +[47/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/gelu.comp.cpp.obj +[48/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/gelu_erf.comp.cpp.obj +[49/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/gelu_quick.comp.cpp.obj +[50/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/flash_attn.comp.cpp.obj +[51/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/group_norm.comp.cpp.obj +[52/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/get_rows.comp.cpp.obj +[53/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/hardsigmoid.comp.cpp.obj +[54/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/flash_attn_cm1.comp.cpp.obj +[55/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/hardswish.comp.cpp.obj +[56/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/im2col.comp.cpp.obj +[57/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/l2_norm.comp.cpp.obj +[58/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/leaky_relu.comp.cpp.obj +[59/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/im2col_3d.comp.cpp.obj +[60/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/mul_mat_split_k_reduce.comp.cpp.obj +[61/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/mul.comp.cpp.obj +[62/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/copy_to_quant.comp.cpp.obj +[63/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/mul_mat_vec_iq1_m.comp.cpp.obj +[64/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/mul_mat_vec_iq1_s.comp.cpp.obj +[65/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/get_rows_quant.comp.cpp.obj +[66/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/mul_mat_vec_iq2_xs.comp.cpp.obj +[67/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/mul_mat_vec_nc.comp.cpp.obj +[68/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/mul_mat_vec_iq2_s.comp.cpp.obj +[69/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/mul_mat_vec_iq2_xxs.comp.cpp.obj +[70/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/mul_mat_vec_p021.comp.cpp.obj +[71/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/mul_mat_vec_iq3_xxs.comp.cpp.obj +[72/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/mul_mat_vec_iq3_s.comp.cpp.obj +[73/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/mul_mat_vec_q4_k.comp.cpp.obj +[74/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/mul_mat_vec_q5_k.comp.cpp.obj +[75/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/mul_mat_vec_q2_k.comp.cpp.obj +[76/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/mul_mat_vec_q6_k.comp.cpp.obj +[77/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/mul_mat_vec_q3_k.comp.cpp.obj +[78/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/multi_add.comp.cpp.obj +[79/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/norm.comp.cpp.obj +[80/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/opt_step_adamw.comp.cpp.obj +[81/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/opt_step_sgd.comp.cpp.obj +[82/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/flash_attn_cm2.comp.cpp.obj +[83/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/pad.comp.cpp.obj +[84/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/mul_mat_vecq.comp.cpp.obj +[85/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/pool2d.comp.cpp.obj +[86/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/mul_mmq.comp.cpp.obj +[87/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/quantize_q8_1.comp.cpp.obj +[88/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/reglu.comp.cpp.obj +[89/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/relu.comp.cpp.obj +[90/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/repeat.comp.cpp.obj +[91/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/repeat_back.comp.cpp.obj +[92/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/rms_norm_back.comp.cpp.obj +[93/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/rms_norm_partials.comp.cpp.obj +[94/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/roll.comp.cpp.obj +[95/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/rms_norm.comp.cpp.obj +[96/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/rope_multi.comp.cpp.obj +[97/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/rope_neox.comp.cpp.obj +[98/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/rope_norm.comp.cpp.obj +[99/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/rope_vision.comp.cpp.obj +[100/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/scale.comp.cpp.obj +[101/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/sigmoid.comp.cpp.obj +[102/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/sin.comp.cpp.obj +[103/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/silu_back.comp.cpp.obj +[104/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/silu.comp.cpp.obj +[105/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/sqrt.comp.cpp.obj +[106/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/soft_max_back.comp.cpp.obj +[107/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/square.comp.cpp.obj +[108/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/sum_rows.comp.cpp.obj +[109/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/swiglu.comp.cpp.obj +[110/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/swiglu_oai.comp.cpp.obj +[111/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/tanh.comp.cpp.obj +[112/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/soft_max.comp.cpp.obj +[113/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/sub.comp.cpp.obj +[114/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/timestep_embedding.comp.cpp.obj +[115/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/upscale.comp.cpp.obj +[116/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/wkv7.comp.cpp.obj +[117/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/wkv6.comp.cpp.obj +[118/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/mul_mat_vec.comp.cpp.obj +[119/174] Building CXX object src/CMakeFiles/llama.dir/llama.cpp.obj +[120/174] Building CXX object src/CMakeFiles/llama.dir/llama-adapter.cpp.obj +[121/174] Building CXX object src/CMakeFiles/llama.dir/llama-arch.cpp.obj +[122/174] Building CXX object src/CMakeFiles/llama.dir/llama-cparams.cpp.obj +[123/174] Building CXX object ggml/src/CMakeFiles/ggml.dir/ggml-backend-reg.cpp.obj +[124/174] Building CXX object src/CMakeFiles/llama.dir/llama-batch.cpp.obj +[125/174] Building CXX object src/CMakeFiles/llama.dir/llama-hparams.cpp.obj +[126/174] Building CXX object src/CMakeFiles/llama.dir/llama-chat.cpp.obj +[127/174] Building CXX object src/CMakeFiles/llama.dir/llama-io.cpp.obj +[128/174] Building CXX object src/CMakeFiles/llama.dir/llama-impl.cpp.obj +[129/174] Building CXX object src/CMakeFiles/llama.dir/llama-graph.cpp.obj +[130/174] Building CXX object src/CMakeFiles/llama.dir/llama-kv-cache-iswa.cpp.obj +[131/174] Building CXX object src/CMakeFiles/llama.dir/llama-memory.cpp.obj +[132/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/mul_mm_cm2.comp.cpp.obj +[133/174] Building CXX object src/CMakeFiles/llama.dir/llama-context.cpp.obj +[134/174] Building CXX object src/CMakeFiles/llama.dir/llama-memory-hybrid.cpp.obj +[135/174] Building CXX object src/CMakeFiles/llama.dir/llama-mmap.cpp.obj +[136/174] Building CXX object src/CMakeFiles/llama.dir/llama-memory-recurrent.cpp.obj +[137/174] Building CXX object src/CMakeFiles/llama.dir/llama-model-saver.cpp.obj +[138/174] Building CXX object src/CMakeFiles/llama.dir/llama-kv-cache.cpp.obj +[139/174] Building CXX object src/CMakeFiles/llama.dir/llama-grammar.cpp.obj +[140/174] Building CXX object src/CMakeFiles/llama.dir/unicode-data.cpp.obj +[141/174] Building CXX object src/CMakeFiles/llama.dir/llama-model-loader.cpp.obj +[142/174] Building CXX object src/CMakeFiles/llama.dir/llama-quant.cpp.obj +[143/174] Building CXX object src/CMakeFiles/llama.dir/llama-vocab.cpp.obj +[144/174] Building CXX object src/CMakeFiles/llama.dir/llama-sampling.cpp.obj +[145/174] Building CXX object common/CMakeFiles/common.dir/chat-parser.cpp.obj +[146/174] Building CXX object src/CMakeFiles/llama.dir/unicode.cpp.obj +[147/174] Building CXX object common/CMakeFiles/common.dir/console.cpp.obj +[148/174] Building CXX object common/CMakeFiles/common.dir/common.cpp.obj +[149/174] Building CXX object common/CMakeFiles/common.dir/llguidance.cpp.obj +[150/174] Building CXX object common/CMakeFiles/common.dir/log.cpp.obj +[151/174] Building CXX object common/CMakeFiles/common.dir/ngram-cache.cpp.obj +[152/174] Building CXX object common/CMakeFiles/common.dir/json-partial.cpp.obj +[153/174] Building CXX object src/CMakeFiles/llama.dir/llama-model.cpp.obj +[154/174] Building CXX object common/CMakeFiles/common.dir/speculative.cpp.obj +[155/174] Building CXX object common/CMakeFiles/common.dir/sampling.cpp.obj +[156/174] Building CXX object common/CMakeFiles/common.dir/json-schema-to-grammar.cpp.obj +[157/174] Building CXX object common/CMakeFiles/common.dir/regex-partial.cpp.obj +[158/174] Building CXX object tools/omni/CMakeFiles/omni.dir/vision.cpp.obj +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/vision.cpp: In function ‘bool vision_image_batch_encode(vision_ctx*, int, const vision_image_f32_batch*, float*)’: +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/vision.cpp:1882:15: warning: unused variable ‘n_pos’ [-Wunused-variable] + 1882 | const int n_pos = num_patches; + | ^~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/vision.cpp: At global scope: +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/vision.cpp:2056:6: warning: no previous declaration for ‘void vision_set_max_slice_nums(vision_ctx*, int)’ [-Wmissing-declarations] + 2056 | void vision_set_max_slice_nums(struct vision_ctx * ctx, int max_slice_nums) { + | ^~~~~~~~~~~~~~~~~~~~~~~~~ +[159/174] Building CXX object tools/omni/CMakeFiles/omni.dir/token2wav/token2wav.cpp.obj +[160/174] Building CXX object tools/omni/CMakeFiles/llama-omni-cli.dir/omni-cli.cpp.obj +In file included from /home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni-cli.cpp:5: +/home/zhout/project/edge_infer/llama.cpp-omni/common/./log.h:89: warning: "LOG_TMPL" redefined + 89 | #define LOG_TMPL(level, verbosity, ...) \ + | +In file included from /home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni-cli.cpp:1: +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni-impl.h:174: note: this is the location of the previous definition + 174 | #define LOG_TMPL(level, ...) \ + | +/home/zhout/project/edge_infer/llama.cpp-omni/common/./log.h:99: warning: "LOG_INF" redefined + 99 | #define LOG_INF(...) LOG_TMPL(GGML_LOG_LEVEL_INFO, 0, __VA_ARGS__) + | +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni-impl.h:180: note: this is the location of the previous definition + 180 | #define LOG_INF(...) LOG_TMPL(GGML_LOG_LEVEL_INFO, __VA_ARGS__) + | +/home/zhout/project/edge_infer/llama.cpp-omni/common/./log.h:100: warning: "LOG_WRN" redefined + 100 | #define LOG_WRN(...) LOG_TMPL(GGML_LOG_LEVEL_WARN, 0, __VA_ARGS__) + | +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni-impl.h:181: note: this is the location of the previous definition + 181 | #define LOG_WRN(...) LOG_TMPL(GGML_LOG_LEVEL_WARN, __VA_ARGS__) + | +/home/zhout/project/edge_infer/llama.cpp-omni/common/./log.h:101: warning: "LOG_ERR" redefined + 101 | #define LOG_ERR(...) LOG_TMPL(GGML_LOG_LEVEL_ERROR, 0, __VA_ARGS__) + | +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni-impl.h:182: note: this is the location of the previous definition + 182 | #define LOG_ERR(...) LOG_TMPL(GGML_LOG_LEVEL_ERROR, __VA_ARGS__) + | +/home/zhout/project/edge_infer/llama.cpp-omni/common/./log.h:102: warning: "LOG_DBG" redefined + 102 | #define LOG_DBG(...) LOG_TMPL(GGML_LOG_LEVEL_DEBUG, LOG_DEFAULT_DEBUG, __VA_ARGS__) + | +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni-impl.h:183: note: this is the location of the previous definition + 183 | #define LOG_DBG(...) LOG_TMPL(GGML_LOG_LEVEL_DEBUG, __VA_ARGS__) + | +/home/zhout/project/edge_infer/llama.cpp-omni/common/./log.h:103: warning: "LOG_CNT" redefined + 103 | #define LOG_CNT(...) LOG_TMPL(GGML_LOG_LEVEL_CONT, 0, __VA_ARGS__) + | +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni-impl.h:184: note: this is the location of the previous definition + 184 | #define LOG_CNT(...) LOG_TMPL(GGML_LOG_LEVEL_CONT, __VA_ARGS__) + | +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni-cli.cpp:161:6: warning: no previous declaration for ‘void test_case(omni_context*, common_params&, std::string, int)’ [-Wmissing-declarations] + 161 | void test_case(struct omni_context *ctx_omni, common_params& params, std::string data_path_prefix, int cnt){ + | ^~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni-cli.cpp: In function ‘void test_case(omni_context*, common_params&, std::string, int)’: +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni-cli.cpp:161:62: warning: unused parameter ‘params’ [-Wunused-parameter] + 161 | void test_case(struct omni_context *ctx_omni, common_params& params, std::string data_path_prefix, int cnt){ + | ~~~~~~~~~~~~~~~^~~~~~ +[161/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/mul_mm.comp.cpp.obj +[162/174] Building CXX object tools/omni/CMakeFiles/omni.dir/token2wav/token2wav-impl.cpp.obj +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/token2wav/token2wav-impl.cpp: In function ‘ggml_tensor* omni::flow::{anonymous}::flow_build_l2_normalize_cb(ggml_context*, ggml_tensor*, float)’: +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/token2wav/token2wav-impl.cpp:76:19: warning: unused variable ‘C’ [-Wunused-variable] + 76 | const int64_t C = x_cb->ne[0]; + | ^ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/token2wav/token2wav-impl.cpp:77:19: warning: unused variable ‘B’ [-Wunused-variable] + 77 | const int64_t B = x_cb->ne[1]; + | ^ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/token2wav/token2wav-impl.cpp: In function ‘ggml_tensor* omni::flow_matching::{anonymous}::fm_attn_mul_mat_checked(ggml_context*, ggml_tensor*, ggml_tensor*, const char*)’: +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/token2wav/token2wav-impl.cpp:349:106: warning: unused parameter ‘label’ [-Wunused-parameter] + 349 | ggml_tensor * fm_attn_mul_mat_checked(ggml_context * ctx, ggml_tensor * a, ggml_tensor * b, const char * label) { + | ~~~~~~~~~~~~~^~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/token2wav/token2wav-impl.cpp: In member function ‘ggml_tensor* omni::flow_matching::fmAttention::build_forward_graph(ggml_context*, ggml_tensor*, ggml_tensor*) const’: +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/token2wav/token2wav-impl.cpp:410:19: warning: unused variable ‘C’ [-Wunused-variable] + 410 | const int64_t C = x->ne[0]; + | ^ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/token2wav/token2wav-impl.cpp: In member function ‘ggml_tensor* omni::flow_matching::fmAttention::build_forward_chunk_graph(ggml_context*, ggml_tensor*, ggml_tensor*, ggml_tensor*, ggml_tensor**) const’: +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/token2wav/token2wav-impl.cpp:451:19: warning: unused variable ‘C’ [-Wunused-variable] + 451 | const int64_t C = x->ne[0]; + | ^ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/token2wav/token2wav-impl.cpp: In static member function ‘static ggml_tensor* omni::flow_matching::fmCausalConditionalCFM::deterministic_noise(ggml_context*, int64_t, int64_t, int64_t, float, int64_t)’: +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/token2wav/token2wav-impl.cpp:573:74: warning: unused parameter ‘offset_ct’ [-Wunused-parameter] + 573 | int64_t offset_ct) { + | ~~~~~~~~~~~~~~~^~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/token2wav/token2wav-impl.cpp: In member function ‘ggml_tensor* omni::flow_matching::fmCausalConditionalCFM::build_forward_graph(ggml_context*, ggml_tensor*, ggml_tensor*, ggml_tensor*, ggml_tensor*, int, float) const’: +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/token2wav/token2wav-impl.cpp:636:27: warning: unused variable ‘B_spk’ [-Wunused-variable] + 636 | const int64_t B_spk = spks->ne[1]; + | ^~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/token2wav/token2wav-impl.cpp:640:27: warning: unused variable ‘one’ [-Wunused-variable] + 640 | const int64_t one = spks->ne[1]; + | ^~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/token2wav/token2wav-impl.cpp:641:27: warning: unused variable ‘B_spk’ [-Wunused-variable] + 641 | const int64_t B_spk = spks->ne[2]; + | ^~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/token2wav/token2wav-impl.cpp: In member function ‘ggml_tensor* omni::flow_matching::fmCausalConditionalCFM::build_forward_chunk_graph(ggml_context*, ggml_tensor*, ggml_tensor*, ggml_tensor*, int, float, const omni::flow_matching::fmCFMCache*, omni::flow_matching::fmCFMCache*) const’: +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/token2wav/token2wav-impl.cpp:716:23: warning: unused variable ‘n_time_in’ [-Wunused-variable] + 716 | const int64_t n_time_in = att_cache_packed->ne[2] / (int64_t) (H * depth); + | ^~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/token2wav/token2wav-impl.cpp:720:23: warning: unused variable ‘n_time_in’ [-Wunused-variable] + 720 | const int64_t n_time_in = cnn_cache_packed->ne[2] / (int64_t) depth; + | ^~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/token2wav/token2wav-impl.cpp:739:27: warning: unused variable ‘B_spk’ [-Wunused-variable] + 739 | const int64_t B_spk = spks->ne[1]; + | ^~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/token2wav/token2wav-impl.cpp:743:27: warning: unused variable ‘one’ [-Wunused-variable] + 743 | const int64_t one = spks->ne[1]; + | ^~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/token2wav/token2wav-impl.cpp:744:27: warning: unused variable ‘B_spk’ [-Wunused-variable] + 744 | const int64_t B_spk = spks->ne[2]; + | ^~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/token2wav/token2wav-impl.cpp: In member function ‘ggml_tensor* omni::flow_matching::fmCausalConv1d::build_forward_graph(ggml_context*, ggml_tensor*) const’: +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/token2wav/token2wav-impl.cpp:898:19: warning: unused variable ‘Cin’ [-Wunused-variable] + 898 | const int64_t Cin = x->ne[0]; + | ^~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/token2wav/token2wav-impl.cpp:901:19: warning: unused variable ‘Cin_w’ [-Wunused-variable] + 901 | const int64_t Cin_w = weight_->ne[1]; + | ^~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/token2wav/token2wav-impl.cpp: In member function ‘ggml_tensor* omni::flow_matching::fmCausalConv1d::build_forward_chunk_graph(ggml_context*, ggml_tensor*, ggml_tensor*, ggml_tensor**) const’: +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/token2wav/token2wav-impl.cpp:938:19: warning: unused variable ‘K’ [-Wunused-variable] + 938 | const int64_t K = weight_->ne[0]; + | ^ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/token2wav/token2wav-impl.cpp:939:19: warning: unused variable ‘Cin_w’ [-Wunused-variable] + 939 | const int64_t Cin_w = weight_->ne[1]; + | ^~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/token2wav/token2wav-impl.cpp: In member function ‘ggml_tensor* omni::flow_matching::fmDiT::build_blocks_forward_graph(ggml_context*, ggml_tensor*, ggml_tensor*, ggml_tensor*) const’: +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/token2wav/token2wav-impl.cpp:1247:19: warning: unused variable ‘T’ [-Wunused-variable] + 1247 | const int64_t T = x->ne[1]; + | ^ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/token2wav/token2wav-impl.cpp: In member function ‘ggml_tensor* omni::flow_matching::fmDiT::build_blocks_forward_chunk_graph(ggml_context*, ggml_tensor*, ggml_tensor*, ggml_tensor*, const std::vector&, const std::vector&, std::vector&, std::vector&) const’: +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/token2wav/token2wav-impl.cpp:1296:19: warning: unused variable ‘T’ [-Wunused-variable] + 1296 | const int64_t T = x->ne[1]; + | ^ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/token2wav/token2wav-impl.cpp: In member function ‘bool omni::flow_matching::fmFlowMatchingModelLoaderGGUF::load_from_file(const std::string&, ggml_backend_t)’: +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/token2wav/token2wav-impl.cpp:1699:23: warning: the address of ‘ggml_tensor::name’ will never be NULL [-Waddress] + 1699 | if (!t || !t->name) { + | ~~~^~~~ +In file included from /home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/token2wav/token2wav-impl.h:5, + from /home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/token2wav/token2wav-impl.cpp:3: +/home/zhout/project/edge_infer/llama.cpp-omni/ggml/src/../include/ggml.h:653:14: note: ‘ggml_tensor::name’ declared here + 653 | char name[GGML_MAX_NAME]; + | ^~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/token2wav/token2wav-impl.cpp: In function ‘ggml_backend* omni::flow_matching::{anonymous}::fm_loader_init_backend_gpu_idx(int, std::string&)’: +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/token2wav/token2wav-impl.cpp:1903:51: warning: unused parameter ‘gpu_idx’ [-Wunused-parameter] + 1903 | ggml_backend_t fm_loader_init_backend_gpu_idx(int gpu_idx, std::string & backend_name_out) { + | ~~~~^~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/token2wav/token2wav-impl.cpp: In static member function ‘static void omni::flow_matching::fmFlowMatchingGGUFModelLoader::fill_noise_ctb(std::vector&, int64_t, int64_t, int64_t, float, int64_t)’: +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/token2wav/token2wav-impl.cpp:2029:73: warning: unused parameter ‘offset_ct’ [-Wunused-parameter] + 2029 | int64_t offset_ct) { + | ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/token2wav/token2wav-impl.cpp: In function ‘ggml_backend* omni::upsample_encoder_v2::{anonymous}::ue_loader_init_backend_gpu_idx(int, std::string&)’: +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/token2wav/token2wav-impl.cpp:2882:51: warning: unused parameter ‘gpu_idx’ [-Wunused-parameter] + 2882 | ggml_backend_t ue_loader_init_backend_gpu_idx(int gpu_idx, std::string & backend_name_out) { + | ~~~~^~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/token2wav/token2wav-impl.cpp: In function ‘ggml_tensor* omni::upsample_encoder_v2::{anonymous}::ue_mha_mul_mat_checked(ggml_context*, ggml_tensor*, ggml_tensor*, const char*)’: +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/token2wav/token2wav-impl.cpp:3318:105: warning: unused parameter ‘label’ [-Wunused-parameter] + 3318 | ggml_tensor * ue_mha_mul_mat_checked(ggml_context * ctx, ggml_tensor * a, ggml_tensor * b, const char * label) { + | ~~~~~~~~~~~~~^~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/token2wav/token2wav-impl.cpp: In member function ‘void omni::upsample_encoder_v2::ueMultiHeadedAttention::build_forward_qkv(ggml_context*, ggml_tensor*, ggml_tensor*, ggml_tensor*, ggml_tensor**, ggml_tensor**, ggml_tensor**) const’: +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/token2wav/token2wav-impl.cpp:3418:19: warning: unused variable ‘Cq’ [-Wunused-variable] + 3418 | const int64_t Cq = query_ctb->ne[0]; + | ^~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/token2wav/token2wav-impl.cpp:3419:19: warning: unused variable ‘Bk’ [-Wunused-variable] + 3419 | const int64_t Bk = key_ctb->ne[2]; + | ^~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/token2wav/token2wav-impl.cpp:3421:19: warning: unused variable ‘Ck’ [-Wunused-variable] + 3421 | const int64_t Ck = key_ctb->ne[0]; + | ^~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/token2wav/token2wav-impl.cpp:3422:19: warning: unused variable ‘Bv’ [-Wunused-variable] + 3422 | const int64_t Bv = value_ctb->ne[2]; + | ^~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/token2wav/token2wav-impl.cpp:3423:19: warning: unused variable ‘Tv’ [-Wunused-variable] + 3423 | const int64_t Tv = value_ctb->ne[1]; + | ^~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/token2wav/token2wav-impl.cpp:3424:19: warning: unused variable ‘Cv’ [-Wunused-variable] + 3424 | const int64_t Cv = value_ctb->ne[0]; + | ^~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/token2wav/token2wav-impl.cpp: In member function ‘ggml_tensor* omni::upsample_encoder_v2::ueMultiHeadedAttention::build_forward_graph(ggml_context*, ggml_tensor*, ggml_tensor*, ggml_tensor*, ggml_tensor*, ggml_tensor*, ggml_tensor*, ggml_tensor**) const’: +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/token2wav/token2wav-impl.cpp:3494:19: warning: unused variable ‘C’ [-Wunused-variable] + 3494 | const int64_t C = query_ctb->ne[0]; + | ^ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/token2wav/token2wav-impl.cpp:3501:19: warning: variable ‘t_cache’ set but not used [-Wunused-but-set-variable] + 3501 | int64_t t_cache = 0; + | ^~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/token2wav/token2wav-impl.cpp: In member function ‘ggml_tensor* omni::upsample_encoder_v2::uePositionwiseFeedForward::build_forward_graph(ggml_context*, ggml_tensor*) const’: +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/token2wav/token2wav-impl.cpp:3553:19: warning: unused variable ‘C’ [-Wunused-variable] + 3553 | const int64_t C = xs_ctb->ne[0]; + | ^ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/token2wav/token2wav-impl.cpp: In function ‘ggml_tensor* omni::upsample_encoder_v2::{anonymous}::ue_prelook_build_conv1d_f32_ctb(ggml_context*, ggml_tensor*, ggml_tensor*, ggml_tensor*)’: +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/token2wav/token2wav-impl.cpp:3602:19: warning: unused variable ‘Cin’ [-Wunused-variable] + 3602 | const int64_t Cin = x_ctb->ne[0]; + | ^~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/token2wav/token2wav-impl.cpp:3604:19: warning: unused variable ‘K’ [-Wunused-variable] + 3604 | const int64_t K = w_kic_oc->ne[0]; + | ^ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/token2wav/token2wav-impl.cpp:3605:19: warning: unused variable ‘Cinw’ [-Wunused-variable] + 3605 | const int64_t Cinw = w_kic_oc->ne[1]; + | ^~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/token2wav/token2wav-impl.cpp: In member function ‘ggml_tensor* omni::upsample_encoder_v2::uePreLookaheadLayer::build_forward_graph(ggml_context*, ggml_tensor*) const’: +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/token2wav/token2wav-impl.cpp:3653:19: warning: unused variable ‘T’ [-Wunused-variable] + 3653 | const int64_t T = inputs_ctb->ne[1]; + | ^ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/token2wav/token2wav-impl.cpp:3655:19: warning: unused variable ‘K1’ [-Wunused-variable] + 3655 | const int64_t K1 = conv1_weight_->ne[0]; + | ^~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/token2wav/token2wav-impl.cpp:3662:19: warning: unused variable ‘K2’ [-Wunused-variable] + 3662 | const int64_t K2 = conv2_weight_->ne[0]; + | ^~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/token2wav/token2wav-impl.cpp: In member function ‘ggml_tensor* omni::upsample_encoder_v2::uePreLookaheadLayer::build_forward_chunk_graph(ggml_context*, ggml_tensor*, ggml_tensor*, ggml_tensor**) const’: +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/token2wav/token2wav-impl.cpp:3682:19: warning: unused variable ‘dt’ [-Wunused-variable] + 3682 | const int64_t dt = inputs_ctb->ne[1]; + | ^~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/token2wav/token2wav-impl.cpp:3684:19: warning: unused variable ‘K1’ [-Wunused-variable] + 3684 | const int64_t K1 = conv1_weight_->ne[0]; + | ^~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/token2wav/token2wav-impl.cpp: In function ‘ggml_tensor* omni::upsample_encoder_v2::{anonymous}::ue_rel_mha_mul_mat_checked(ggml_context*, ggml_tensor*, ggml_tensor*, const char*)’: +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/token2wav/token2wav-impl.cpp:3791:109: warning: unused parameter ‘label’ [-Wunused-parameter] + 3791 | ggml_tensor * ue_rel_mha_mul_mat_checked(ggml_context * ctx, ggml_tensor * a, ggml_tensor * b, const char * label) { + | ~~~~~~~~~~~~~^~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/token2wav/token2wav-impl.cpp: In member function ‘ggml_tensor* omni::upsample_encoder_v2::ueRelPositionMultiHeadedAttention::build_forward_graph(ggml_context*, ggml_tensor*, ggml_tensor*, ggml_tensor*, ggml_tensor*, ggml_tensor*, ggml_tensor*, ggml_tensor**) const’: +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/token2wav/token2wav-impl.cpp:3859:19: warning: variable ‘t_cache’ set but not used [-Wunused-but-set-variable] + 3859 | int64_t t_cache = 0; + | ^~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/token2wav/token2wav-impl.cpp: In function ‘ggml_tensor* omni::upsample_encoder_v2::{anonymous}::ue_up1d_build_conv1d_f32_ctb(ggml_context*, ggml_tensor*, ggml_tensor*, ggml_tensor*)’: +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/token2wav/token2wav-impl.cpp:4015:19: warning: unused variable ‘Cin’ [-Wunused-variable] + 4015 | const int64_t Cin = x_ctb->ne[0]; + | ^~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/token2wav/token2wav-impl.cpp:4017:19: warning: unused variable ‘K’ [-Wunused-variable] + 4017 | const int64_t K = w_kic_oc->ne[0]; + | ^ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/token2wav/token2wav-impl.cpp:4018:19: warning: unused variable ‘Cinw’ [-Wunused-variable] + 4018 | const int64_t Cinw = w_kic_oc->ne[1]; + | ^~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/token2wav/token2wav-impl.cpp: In member function ‘ggml_tensor* omni::upsample_encoder_v2::ueUpsample1D::build_forward_graph(ggml_context*, ggml_tensor*) const’: +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/token2wav/token2wav-impl.cpp:4062:19: warning: unused variable ‘K’ [-Wunused-variable] + 4062 | const int64_t K = conv_weight_->ne[0]; + | ^ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/token2wav/token2wav-impl.cpp: In member function ‘ggml_tensor* omni::upsample_encoder_v2::ueUpsample1D::build_forward_chunk_graph(ggml_context*, ggml_tensor*, ggml_tensor*, ggml_tensor**) const’: +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/token2wav/token2wav-impl.cpp:4083:19: warning: unused variable ‘K’ [-Wunused-variable] + 4083 | const int64_t K = conv_weight_->ne[0]; + | ^ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/token2wav/token2wav-impl.cpp: In member function ‘ggml_tensor* omni::upsample_encoder_v2::ueUpsampleConformerEncoderV2::build_forward_chunk_graph(ggml_context*, ggml_tensor*, bool, ggml_tensor*, ggml_tensor*, ggml_tensor**, ggml_tensor**) const’: +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/token2wav/token2wav-impl.cpp:4362:19: warning: variable ‘Tk1’ set but not used [-Wunused-but-set-variable] + 4362 | int64_t Tk1 = 0; + | ^~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/token2wav/token2wav-impl.cpp:4400:19: warning: variable ‘Tk2’ set but not used [-Wunused-but-set-variable] + 4400 | int64_t Tk2 = 0; + | ^~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/token2wav/token2wav-impl.cpp: In member function ‘bool omni::vocoder::hifigan2::hg2_gguf_model_loader::hg_gguf_model_loader_load_from_file(const std::string&, ggml_backend_t)’: +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/token2wav/token2wav-impl.cpp:4851:23: warning: the address of ‘ggml_tensor::name’ will never be NULL [-Waddress] + 4851 | if (!t || !t->name) { + | ~~~^~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/ggml/src/../include/ggml.h:653:14: note: ‘ggml_tensor::name’ declared here + 653 | char name[GGML_MAX_NAME]; + | ^~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/token2wav/token2wav-impl.cpp: In function ‘ggml_tensor* omni::vocoder::hifigan2::hg_istft16_repeat_checked(ggml_context*, ggml_tensor*, ggml_tensor*, const char*)’: +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/token2wav/token2wav-impl.cpp:5292:64: warning: unused parameter ‘what’ [-Wunused-parameter] + 5292 | const char * what) { + | ~~~~~~~~~~~~~~~^~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/token2wav/token2wav-impl.cpp: In member function ‘bool omni::flow::flowExtraModelLoaderGGUF::load_from_file(const std::string&, ggml_backend_t)’: +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/token2wav/token2wav-impl.cpp:6806:23: warning: the address of ‘ggml_tensor::name’ will never be NULL [-Waddress] + 6806 | if (!t || !t->name) { + | ~~~^~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/ggml/src/../include/ggml.h:653:14: note: ‘ggml_tensor::name’ declared here + 653 | char name[GGML_MAX_NAME]; + | ^~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/token2wav/token2wav-impl.cpp: In function ‘void omni::flow::{anonymous}::runner_fill_noise_ctb(std::vector&, int64_t, int64_t, int64_t, float, int64_t)’: +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/token2wav/token2wav-impl.cpp:7083:42: warning: unused parameter ‘offset_ct’ [-Wunused-parameter] + 7083 | int64_t offset_ct) { + | ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/token2wav/token2wav-impl.cpp: In static member function ‘static ggml_tensor* omni::flow_matching::fmModulateUtils::build_modulate(ggml_context*, ggml_tensor*, ggml_tensor*, ggml_tensor*)’: +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/token2wav/token2wav-impl.cpp:2421:15: warning: infinite recursion detected [-Winfinite-recursion] + 2421 | ggml_tensor * fmModulateUtils::build_modulate(ggml_context * ctx, + | ^~~~~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/token2wav/token2wav-impl.cpp:2425:26: note: recursive call + 2425 | return build_modulate(ctx, x, shift, scale); + | ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/token2wav/token2wav-impl.cpp:2421:15: warning: function might be candidate for attribute ‘noreturn’ [-Wsuggest-attribute=noreturn] + 2421 | ggml_tensor * fmModulateUtils::build_modulate(ggml_context * ctx, + | ^~~~~~~~~~~~~~~ +[163/174] Building CXX object common/CMakeFiles/common.dir/arg.cpp.obj +[164/174] Building CXX object tools/omni/CMakeFiles/omni.dir/omni.cpp.obj +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp: In function ‘bool omni_eval_embed(llama_context*, const omni_embed*, int, int*)’: +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp:291:31: warning: ‘int32_t llama_n_embd(const llama_model*)’ is deprecated: use llama_model_n_embd instead [-Wdeprecated-declarations] + 291 | int n_embd = llama_n_embd(llama_get_model(ctx_llama)); + | ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ +In file included from /home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.h:2, + from /home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp:4: +/home/zhout/project/edge_infer/llama.cpp-omni/src/../include/llama.h:469:34: note: declared here + 469 | DEPRECATED(LLAMA_API int32_t llama_n_embd (const struct llama_model * model), "use llama_model_n_embd instead"); + | ^~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/src/../include/llama.h:29:36: note: in definition of macro ‘DEPRECATED’ + 29 | # define DEPRECATED(func, hint) func __attribute__((deprecated(hint))) + | ^~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp: In function ‘bool prefill_with_emb(omni_context*, common_params*, float*, int, int, int*)’: +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp:319:31: warning: ‘int32_t llama_n_embd(const llama_model*)’ is deprecated: use llama_model_n_embd instead [-Wdeprecated-declarations] + 319 | int n_embd = llama_n_embd(llama_get_model(ctx_omni->ctx_llama)); + | ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/src/../include/llama.h:469:34: note: declared here + 469 | DEPRECATED(LLAMA_API int32_t llama_n_embd (const struct llama_model * model), "use llama_model_n_embd instead"); + | ^~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/src/../include/llama.h:29:36: note: in definition of macro ‘DEPRECATED’ + 29 | # define DEPRECATED(func, hint) func __attribute__((deprecated(hint))) + | ^~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp: In function ‘bool prefill_emb_with_hidden(omni_context*, common_params*, float*, int, int, int*, float*&)’: +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp:353:30: warning: ‘int32_t llama_n_embd(const llama_model*)’ is deprecated: use llama_model_n_embd instead [-Wdeprecated-declarations] + 353 | int n_embd = llama_n_embd(llama_get_model(ctx_omni->ctx_llama)); + | ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/src/../include/llama.h:469:34: note: declared here + 469 | DEPRECATED(LLAMA_API int32_t llama_n_embd (const struct llama_model * model), "use llama_model_n_embd instead"); + | ^~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/src/../include/llama.h:29:36: note: in definition of macro ‘DEPRECATED’ + 29 | # define DEPRECATED(func, hint) func __attribute__((deprecated(hint))) + | ^~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp: At global scope: +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp:518:6: warning: no previous declaration for ‘bool vision_image_load_from_bytes(const unsigned char*, size_t, vision_image_u8*)’ [-Wmissing-declarations] + 518 | bool vision_image_load_from_bytes(const unsigned char * bytes, size_t bytes_length, struct vision_image_u8 * img) { + | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp:579:6: warning: no previous declaration for ‘bool omni_image_embed_make_chunks_with_filename(vision_ctx*, int, std::string, std::vector >&)’ [-Wmissing-declarations] + 579 | bool omni_image_embed_make_chunks_with_filename(struct vision_ctx * ctx_vision, int n_threads, + | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp:608:6: warning: no previous declaration for ‘bool audition_read_binary_file(const char*, std::vector*)’ [-Wmissing-declarations] + 608 | bool audition_read_binary_file(const char * fname, std::vector * buf_res) { + | ^~~~~~~~~~~~~~~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp:629:21: warning: no previous declaration for ‘omni_embed* omni_audio_embed_make_with_bytes(audition_ctx*, int, audition_audio_u8*)’ [-Wmissing-declarations] + 629 | struct omni_embed * omni_audio_embed_make_with_bytes(audition_ctx * ctx_audio, int n_threads, audition_audio_u8 * audio) { + | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp: In function ‘bool eval_tokens_with_hidden(omni_context*, common_params*, std::vector, int, int*, float*&)’: +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp:930:36: warning: ‘int32_t llama_n_embd(const llama_model*)’ is deprecated: use llama_model_n_embd instead [-Wdeprecated-declarations] + 930 | const int n_embd = llama_n_embd(llama_get_model(ctx_omni->ctx_llama)); + | ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/src/../include/llama.h:469:34: note: declared here + 469 | DEPRECATED(LLAMA_API int32_t llama_n_embd (const struct llama_model * model), "use llama_model_n_embd instead"); + | ^~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/src/../include/llama.h:29:36: note: in definition of macro ‘DEPRECATED’ + 29 | # define DEPRECATED(func, hint) func __attribute__((deprecated(hint))) + | ^~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp: In function ‘bool load_tts_weights_from_gguf(omni_context*, const char*)’: +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp:1761:18: warning: variable ‘need_transpose’ set but not used [-Wunused-but-set-variable] + 1761 | bool need_transpose = false; + | ^~~~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp:1810:21: warning: unused variable ‘total_elements’ [-Wunused-variable] + 1810 | int64_t total_elements = expected_hidden_size * expected_num_audio_tokens; + | ^~~~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp: In function ‘bool eval_tokens_tts(omni_context*, common_params*, std::vector, int, int*)’: +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp:2087:75: warning: unused parameter ‘params’ [-Wunused-parameter] + 2087 | static bool eval_tokens_tts(struct omni_context* ctx_omni, common_params* params, std::vector tokens, int n_batch, int * n_past_tts) { + | ~~~~~~~~~~~~~~~^~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp: In function ‘bool prefill_with_emb_tts(omni_context*, common_params*, float*, int, int, int*)’: +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp:2167:30: warning: ‘int32_t llama_n_embd(const llama_model*)’ is deprecated: use llama_model_n_embd instead [-Wdeprecated-declarations] + 2167 | int n_embd = llama_n_embd(llama_get_model(ctx_omni->ctx_tts_llama)); + | ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/src/../include/llama.h:469:34: note: declared here + 469 | DEPRECATED(LLAMA_API int32_t llama_n_embd (const struct llama_model * model), "use llama_model_n_embd instead"); + | ^~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/src/../include/llama.h:29:36: note: in definition of macro ‘DEPRECATED’ + 29 | # define DEPRECATED(func, hint) func __attribute__((deprecated(hint))) + | ^~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp:2152:73: warning: unused parameter ‘params’ [-Wunused-parameter] + 2152 | bool prefill_with_emb_tts(struct omni_context* ctx_omni, common_params* params, float* embed, int n_pos, int n_batch, int* n_past_tts) { + | ~~~~~~~~~~~~~~~^~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp: In function ‘llama_token sample_tts_token_simplex(common_sampler*, omni_context*, common_params*, int*, const std::vector*, int, bool, bool)’: +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp:2561:17: warning: unused variable ‘logits_debug_dir’ [-Wunused-variable] + 2561 | const char* logits_debug_dir = getenv("TTS_LOGITS_DEBUG_DIR"); + | ^~~~~~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp: At global scope: +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp:2762:13: warning: no previous declaration for ‘llama_token sample_tts_token(common_sampler*, omni_context*, common_params*, int*, const std::vector*, const std::vector*, int, bool, bool)’ [-Wmissing-declarations] + 2762 | llama_token sample_tts_token(struct common_sampler * smpl, struct omni_context * ctx_omni, common_params* params, int * n_past_tts, const std::vector * all_generated_tokens, const std::vector * chunk_generated_tokens, int token_index_in_chunk, bool force_no_eos, bool is_final_text_chunk = false) { + | ^~~~~~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp: In function ‘llama_token sample_tts_token(common_sampler*, omni_context*, common_params*, int*, const std::vector*, const std::vector*, int, bool, bool)’: +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp:2860:39: warning: ‘int32_t llama_n_embd(const llama_model*)’ is deprecated: use llama_model_n_embd instead [-Wdeprecated-declarations] + 2860 | int hidden_size = llama_n_embd(llama_get_model(ctx_omni->ctx_tts_llama)); + | ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/src/../include/llama.h:469:34: note: declared here + 469 | DEPRECATED(LLAMA_API int32_t llama_n_embd (const struct llama_model * model), "use llama_model_n_embd instead"); + | ^~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/src/../include/llama.h:29:36: note: in definition of macro ‘DEPRECATED’ + 29 | # define DEPRECATED(func, hint) func __attribute__((deprecated(hint))) + | ^~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp:2894:9: warning: unused variable ‘eos_relative_idx’ [-Wunused-variable] + 2894 | int eos_relative_idx = num_audio_tokens - 1; // EOS token relative index: 6561 + | ^~~~~~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp:2972:11: warning: unused variable ‘tau_r’ [-Wunused-variable] + 2972 | float tau_r = 0.1f; // TTSSamplingParams.tau_r = 0.1 + | ^~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp: In function ‘llama_model* llama_init(common_params*, std::string)’: +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp:3525:53: warning: ‘llama_model* llama_load_model_from_file(const char*, llama_model_params)’ is deprecated: use llama_model_load_from_file instead [-Wdeprecated-declarations] + 3525 | llama_model * model = llama_load_model_from_file(model_path.c_str(), model_params); + | ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/src/../include/llama.h:413:47: note: declared here + 413 | DEPRECATED(LLAMA_API struct llama_model * llama_load_model_from_file( + | ^~~~~~~~~~~~~~~~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/src/../include/llama.h:29:36: note: in definition of macro ‘DEPRECATED’ + 29 | # define DEPRECATED(func, hint) func __attribute__((deprecated(hint))) + | ^~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp: In function ‘llama_model* llama_init_tts(common_params*, std::string, int)’: +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp:3546:53: warning: ‘llama_model* llama_load_model_from_file(const char*, llama_model_params)’ is deprecated: use llama_model_load_from_file instead [-Wdeprecated-declarations] + 3546 | llama_model * model = llama_load_model_from_file(model_path.c_str(), model_params); + | ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/src/../include/llama.h:413:47: note: declared here + 413 | DEPRECATED(LLAMA_API struct llama_model * llama_load_model_from_file( + | ^~~~~~~~~~~~~~~~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/src/../include/llama.h:29:36: note: in definition of macro ‘DEPRECATED’ + 29 | # define DEPRECATED(func, hint) func __attribute__((deprecated(hint))) + | ^~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp: In function ‘omni_context* omni_init(common_params*, int, bool, std::string, int, const std::string&, bool, llama_model*, llama_context*, const std::string&)’: +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp:3649:49: warning: ‘llama_context* llama_new_context_with_model(llama_model*, llama_context_params)’ is deprecated: use llama_init_from_model instead [-Wdeprecated-declarations] + 3649 | ctx_llama = llama_new_context_with_model(model, ctx_params); + | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/src/../include/llama.h:445:49: note: declared here + 445 | DEPRECATED(LLAMA_API struct llama_context * llama_new_context_with_model( + | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/src/../include/llama.h:29:36: note: in definition of macro ‘DEPRECATED’ + 29 | # define DEPRECATED(func, hint) func __attribute__((deprecated(hint))) + | ^~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp:3671:29: warning: ‘void llama_free_model(llama_model*)’ is deprecated: use llama_model_free instead [-Wdeprecated-declarations] + 3671 | llama_free_model(model); + | ~~~~~~~~~~~~~~~~^~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/src/../include/llama.h:436:31: note: declared here + 436 | DEPRECATED(LLAMA_API void llama_free_model(struct llama_model * model), + | ^~~~~~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/src/../include/llama.h:29:36: note: in definition of macro ‘DEPRECATED’ + 29 | # define DEPRECATED(func, hint) func __attribute__((deprecated(hint))) + | ^~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp:3684:69: warning: ‘llama_context* llama_new_context_with_model(llama_model*, llama_context_params)’ is deprecated: use llama_init_from_model instead [-Wdeprecated-declarations] + 3684 | llama_context * ctx_tts_llama = llama_new_context_with_model(tts_model, tts_ctx_params); + | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/src/../include/llama.h:445:49: note: declared here + 445 | DEPRECATED(LLAMA_API struct llama_context * llama_new_context_with_model( + | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/src/../include/llama.h:29:36: note: in definition of macro ‘DEPRECATED’ + 29 | # define DEPRECATED(func, hint) func __attribute__((deprecated(hint))) + | ^~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp:3687:29: warning: ‘void llama_free_model(llama_model*)’ is deprecated: use llama_model_free instead [-Wdeprecated-declarations] + 3687 | llama_free_model(tts_model); + | ~~~~~~~~~~~~~~~~^~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/src/../include/llama.h:436:31: note: declared here + 436 | DEPRECATED(LLAMA_API void llama_free_model(struct llama_model * model), + | ^~~~~~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/src/../include/llama.h:29:36: note: in definition of macro ‘DEPRECATED’ + 29 | # define DEPRECATED(func, hint) func __attribute__((deprecated(hint))) + | ^~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp:3690:29: warning: ‘void llama_free_model(llama_model*)’ is deprecated: use llama_model_free instead [-Wdeprecated-declarations] + 3690 | llama_free_model(model); + | ~~~~~~~~~~~~~~~~^~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/src/../include/llama.h:436:31: note: declared here + 436 | DEPRECATED(LLAMA_API void llama_free_model(struct llama_model * model), + | ^~~~~~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/src/../include/llama.h:29:36: note: in definition of macro ‘DEPRECATED’ + 29 | # define DEPRECATED(func, hint) func __attribute__((deprecated(hint))) + | ^~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp:3720:29: warning: ‘void llama_free_model(llama_model*)’ is deprecated: use llama_model_free instead [-Wdeprecated-declarations] + 3720 | llama_free_model(tts_model); + | ~~~~~~~~~~~~~~~~^~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/src/../include/llama.h:436:31: note: declared here + 436 | DEPRECATED(LLAMA_API void llama_free_model(struct llama_model * model), + | ^~~~~~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/src/../include/llama.h:29:36: note: in definition of macro ‘DEPRECATED’ + 29 | # define DEPRECATED(func, hint) func __attribute__((deprecated(hint))) + | ^~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp:3723:29: warning: ‘void llama_free_model(llama_model*)’ is deprecated: use llama_model_free instead [-Wdeprecated-declarations] + 3723 | llama_free_model(model); + | ~~~~~~~~~~~~~~~~^~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/src/../include/llama.h:436:31: note: declared here + 436 | DEPRECATED(LLAMA_API void llama_free_model(struct llama_model * model), + | ^~~~~~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/src/../include/llama.h:29:36: note: in definition of macro ‘DEPRECATED’ + 29 | # define DEPRECATED(func, hint) func __attribute__((deprecated(hint))) + | ^~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp:3748:29: warning: ‘void llama_free_model(llama_model*)’ is deprecated: use llama_model_free instead [-Wdeprecated-declarations] + 3748 | llama_free_model(ctx_omni->model_tts); + | ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/src/../include/llama.h:436:31: note: declared here + 436 | DEPRECATED(LLAMA_API void llama_free_model(struct llama_model * model), + | ^~~~~~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/src/../include/llama.h:29:36: note: in definition of macro ‘DEPRECATED’ + 29 | # define DEPRECATED(func, hint) func __attribute__((deprecated(hint))) + | ^~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp:3752:25: warning: ‘void llama_free_model(llama_model*)’ is deprecated: use llama_model_free instead [-Wdeprecated-declarations] + 3752 | llama_free_model(model); + | ~~~~~~~~~~~~~~~~^~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/src/../include/llama.h:436:31: note: declared here + 436 | DEPRECATED(LLAMA_API void llama_free_model(struct llama_model * model), + | ^~~~~~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/src/../include/llama.h:29:36: note: in definition of macro ‘DEPRECATED’ + 29 | # define DEPRECATED(func, hint) func __attribute__((deprecated(hint))) + | ^~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp:3764:29: warning: ‘void llama_free_model(llama_model*)’ is deprecated: use llama_model_free instead [-Wdeprecated-declarations] + 3764 | llama_free_model(ctx_omni->model_tts); + | ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/src/../include/llama.h:436:31: note: declared here + 436 | DEPRECATED(LLAMA_API void llama_free_model(struct llama_model * model), + | ^~~~~~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/src/../include/llama.h:29:36: note: in definition of macro ‘DEPRECATED’ + 29 | # define DEPRECATED(func, hint) func __attribute__((deprecated(hint))) + | ^~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp:3768:25: warning: ‘void llama_free_model(llama_model*)’ is deprecated: use llama_model_free instead [-Wdeprecated-declarations] + 3768 | llama_free_model(model); + | ~~~~~~~~~~~~~~~~^~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/src/../include/llama.h:436:31: note: declared here + 436 | DEPRECATED(LLAMA_API void llama_free_model(struct llama_model * model), + | ^~~~~~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/src/../include/llama.h:29:36: note: in definition of macro ‘DEPRECATED’ + 29 | # define DEPRECATED(func, hint) func __attribute__((deprecated(hint))) + | ^~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp: In function ‘void omni_free(omni_context*)’: +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp:4165:5: warning: possible problem detected in invocation of ‘operator delete’ [-Wdelete-incomplete] + 4165 | delete ctx_omni->ctx_vision; + | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp:4165:22: warning: invalid use of incomplete type ‘struct vision_ctx’ + 4165 | delete ctx_omni->ctx_vision; + | ~~~~~~~~~~^~~~~~~~~~ +In file included from /home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni-impl.h:5, + from /home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp:1: +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/vision.h:10:8: note: forward declaration of ‘struct vision_ctx’ + 10 | struct vision_ctx; + | ^~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp:4165:5: note: neither the destructor nor the class-specific ‘operator delete’ will be called, even if they are declared when the class is defined + 4165 | delete ctx_omni->ctx_vision; + | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp:4170:25: warning: ‘void llama_free_model(llama_model*)’ is deprecated: use llama_model_free instead [-Wdeprecated-declarations] + 4170 | llama_free_model(ctx_omni->model_tts); + | ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/src/../include/llama.h:436:31: note: declared here + 436 | DEPRECATED(LLAMA_API void llama_free_model(struct llama_model * model), + | ^~~~~~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/src/../include/llama.h:29:36: note: in definition of macro ‘DEPRECATED’ + 29 | # define DEPRECATED(func, hint) func __attribute__((deprecated(hint))) + | ^~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp:4225:25: warning: ‘void llama_free_model(llama_model*)’ is deprecated: use llama_model_free instead [-Wdeprecated-declarations] + 4225 | llama_free_model(ctx_omni->model); + | ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/src/../include/llama.h:436:31: note: declared here + 436 | DEPRECATED(LLAMA_API void llama_free_model(struct llama_model * model), + | ^~~~~~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/src/../include/llama.h:29:36: note: in definition of macro ‘DEPRECATED’ + 29 | # define DEPRECATED(func, hint) func __attribute__((deprecated(hint))) + | ^~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp:4230:5: warning: possible problem detected in invocation of ‘operator delete’ [-Wdelete-incomplete] + 4230 | delete ctx_omni->audio_input_manager; + | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp:4230:22: warning: invalid use of incomplete type ‘class AudioInputManager’ + 4230 | delete ctx_omni->audio_input_manager; + | ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.h:267:11: note: forward declaration of ‘class AudioInputManager’ + 267 | class AudioInputManager * audio_input_manager = NULL; + | ^~~~~~~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp:4230:5: note: neither the destructor nor the class-specific ‘operator delete’ will be called, even if they are declared when the class is defined + 4230 | delete ctx_omni->audio_input_manager; + | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp: At global scope: +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp:4255:6: warning: no previous declaration for ‘void omni_set_language(omni_context*, const std::string&)’ [-Wmissing-declarations] + 4255 | void omni_set_language(struct omni_context * ctx_omni, const std::string & lang) { + | ^~~~~~~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp: In function ‘void process_audio(omni_context*, omni_embed*, common_params*, bool)’: +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp:4295:116: warning: unused parameter ‘save_spk_emb’ [-Wunused-parameter] + 4295 | static void process_audio(struct omni_context * ctx_omni, struct omni_embed * embeds, common_params * params, bool save_spk_emb=false) { + | ~~~~~^~~~~~~~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp: At global scope: +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp:4301:6: warning: no previous declaration for ‘void eval_prefix(omni_context*, common_params*)’ [-Wmissing-declarations] + 4301 | void eval_prefix(struct omni_context* ctx_omni, common_params* params){ + | ^~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp:4307:6: warning: no previous declaration for ‘void eval_prefix_with_hidden(omni_context*, common_params*, float*&)’ [-Wmissing-declarations] + 4307 | void eval_prefix_with_hidden(struct omni_context* ctx_omni, common_params* params, float *& hidden_states){ + | ^~~~~~~~~~~~~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp:4329:6: warning: no previous declaration for ‘void llm_thread_func(omni_context*, common_params*)’ [-Wmissing-declarations] + 4329 | void llm_thread_func(omni_context* ctx_omni, common_params* params){ + | ^~~~~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp: In function ‘void llm_thread_func(omni_context*, common_params*)’: +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp:4332:41: warning: ‘int32_t llama_n_embd(const llama_model*)’ is deprecated: use llama_model_n_embd instead [-Wdeprecated-declarations] + 4332 | const int hidden_size = llama_n_embd(llama_get_model(ctx_omni->ctx_llama)); + | ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/src/../include/llama.h:469:34: note: declared here + 469 | DEPRECATED(LLAMA_API int32_t llama_n_embd (const struct llama_model * model), "use llama_model_n_embd instead"); + | ^~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/src/../include/llama.h:29:36: note: in definition of macro ‘DEPRECATED’ + 29 | # define DEPRECATED(func, hint) func __attribute__((deprecated(hint))) + | ^~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp: In function ‘void play_wav_file(const std::string&)’: +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp:5361:46: warning: unused parameter ‘wav_file_path’ [-Wunused-parameter] + 5361 | static void play_wav_file(const std::string& wav_file_path) { + | ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp: At global scope: +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp:5606:6: warning: no previous declaration for ‘void tts_thread_func_duplex(omni_context*, common_params*)’ [-Wmissing-declarations] + 5606 | void tts_thread_func_duplex(struct omni_context * ctx_omni, common_params *params) { + | ^~~~~~~~~~~~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp: In function ‘void tts_thread_func_duplex(omni_context*, common_params*)’: +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp:5942:48: warning: ‘int32_t llama_n_embd(const llama_model*)’ is deprecated: use llama_model_n_embd instead [-Wdeprecated-declarations] + 5942 | const int tts_n_embd = llama_n_embd(llama_get_model(ctx_omni->ctx_tts_llama)); + | ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/src/../include/llama.h:469:34: note: declared here + 469 | DEPRECATED(LLAMA_API int32_t llama_n_embd (const struct llama_model * model), "use llama_model_n_embd instead"); + | ^~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/src/../include/llama.h:29:36: note: in definition of macro ‘DEPRECATED’ + 29 | # define DEPRECATED(func, hint) func __attribute__((deprecated(hint))) + | ^~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp:5931:17: warning: unused variable ‘n_tokens_orig’ [-Wunused-variable] + 5931 | int n_tokens_orig = (int)(current_chunk_hidden_states.size() / current_chunk_n_embd); + | ^~~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp:6163:52: warning: ‘int32_t llama_n_embd(const llama_model*)’ is deprecated: use llama_model_n_embd instead [-Wdeprecated-declarations] + 6163 | const int tts_n_embd = llama_n_embd(llama_get_model(ctx_omni->ctx_tts_llama)); + | ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/src/../include/llama.h:469:34: note: declared here + 469 | DEPRECATED(LLAMA_API int32_t llama_n_embd (const struct llama_model * model), "use llama_model_n_embd instead"); + | ^~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/src/../include/llama.h:29:36: note: in definition of macro ‘DEPRECATED’ + 29 | # define DEPRECATED(func, hint) func __attribute__((deprecated(hint))) + | ^~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp:5608:9: warning: variable ‘tts_n_past’ set but not used [-Wunused-but-set-variable] + 5608 | int tts_n_past = 0; + | ^~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp:5612:10: warning: variable ‘tts_finish’ set but not used [-Wunused-but-set-variable] + 5612 | bool tts_finish = false; + | ^~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp:5640:15: warning: unused variable ‘audio_eos_token_id’ [-Wunused-variable] + 5640 | const int audio_eos_token_id = audio_bos_token_id + 6561; + | ^~~~~~~~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp:5641:15: warning: unused variable ‘text_eos_token_id’ [-Wunused-variable] + 5641 | const int text_eos_token_id = 151692; + | ^~~~~~~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp:5642:15: warning: unused variable ‘num_audio_tokens’ [-Wunused-variable] + 5642 | const int num_audio_tokens = 6562; + | ^~~~~~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp: At global scope: +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp:6224:6: warning: no previous declaration for ‘void tts_thread_func(omni_context*, common_params*)’ [-Wmissing-declarations] + 6224 | void tts_thread_func(struct omni_context * ctx_omni, common_params *params) { + | ^~~~~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp: In function ‘void tts_thread_func(omni_context*, common_params*)’: +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp:6694:48: warning: ‘int32_t llama_n_embd(const llama_model*)’ is deprecated: use llama_model_n_embd instead [-Wdeprecated-declarations] + 6694 | const int tts_n_embd = llama_n_embd(llama_get_model(ctx_omni->ctx_tts_llama)); + | ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/src/../include/llama.h:469:34: note: declared here + 469 | DEPRECATED(LLAMA_API int32_t llama_n_embd (const struct llama_model * model), "use llama_model_n_embd instead"); + | ^~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/src/../include/llama.h:29:36: note: in definition of macro ‘DEPRECATED’ + 29 | # define DEPRECATED(func, hint) func __attribute__((deprecated(hint))) + | ^~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp:6881:37: warning: unused variable ‘llm_emb_check’ [-Wunused-variable] + 6881 | float * llm_emb_check = llm_embeds.data() + 0 * tts_n_embd; + | ^~~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp:6882:37: warning: unused variable ‘proj_hidden_check’ [-Wunused-variable] + 6882 | float * proj_hidden_check = projected_hidden.data() + 0 * tts_n_embd; + | ^~~~~~~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp:6883:37: warning: unused variable ‘merged_check’ [-Wunused-variable] + 6883 | float * merged_check = merged_embeddings.data() + 0 * tts_n_embd; + | ^~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp:6986:18: warning: unused variable ‘is_final_chunk’ [-Wunused-variable] + 6986 | bool is_final_chunk = llm_finish; + | ^~~~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp:6987:18: warning: variable ‘tts_success’ set but not used [-Wunused-but-set-variable] + 6987 | bool tts_success = false; + | ^~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp:6226:9: warning: variable ‘tts_n_past’ set but not used [-Wunused-but-set-variable] + 6226 | int tts_n_past = 0; // TTS model's n_past counter + | ^~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp:6230:10: warning: variable ‘tts_finish’ set but not used [-Wunused-but-set-variable] + 6230 | bool tts_finish = false; + | ^~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp:6239:17: warning: unused variable ‘info’ [-Wunused-variable] + 6239 | struct stat info; + | ^~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp:6305:15: warning: unused variable ‘audio_eos_token_id’ [-Wunused-variable] + 6305 | const int audio_eos_token_id = audio_bos_token_id + 6561; // 158248 + | ^~~~~~~~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp:6306:15: warning: unused variable ‘text_eos_token_id’ [-Wunused-variable] + 6306 | const int text_eos_token_id = 151692; // 用于文本结束检测 + | ^~~~~~~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp:6307:15: warning: unused variable ‘spk_emb_token_id’ [-Wunused-variable] + 6307 | const int spk_emb_token_id = 21143; + | ^~~~~~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp:6308:15: warning: unused variable ‘num_audio_tokens’ [-Wunused-variable] + 6308 | const int num_audio_tokens = 6562; + | ^~~~~~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp:6309:15: warning: unused variable ‘max_audio_tokens’ [-Wunused-variable] + 6309 | const int max_audio_tokens = 1000; // Maximum audio tokens to generate per text chunk + | ^~~~~~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp: At global scope: +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp:8144:6: warning: no previous declaration for ‘void t2w_thread_func_python(omni_context*, common_params*)’ [-Wmissing-declarations] + 8144 | void t2w_thread_func_python(struct omni_context * ctx_omni, common_params *params) { + | ^~~~~~~~~~~~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp: In function ‘void t2w_thread_func_python(omni_context*, common_params*)’: +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp:8178:15: warning: unused variable ‘sample_rate’ [-Wunused-variable] + 8178 | const int sample_rate = 24000; // Python Token2Wav 输出采样率 + | ^~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp:8144:76: warning: unused parameter ‘params’ [-Wunused-parameter] + 8144 | void t2w_thread_func_python(struct omni_context * ctx_omni, common_params *params) { + | ~~~~~~~~~~~~~~~^~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp: At global scope: +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp:8415:6: warning: no previous declaration for ‘void t2w_thread_func_cpp(omni_context*, common_params*)’ [-Wmissing-declarations] + 8415 | void t2w_thread_func_cpp(struct omni_context * ctx_omni, common_params *params) { + | ^~~~~~~~~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp: In function ‘void t2w_thread_func_cpp(omni_context*, common_params*)’: +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp:8673:20: warning: unused variable ‘buffer_before_slide’ [-Wunused-variable] + 8673 | size_t buffer_before_slide = token_buffer.size(); + | ^~~~~~~~~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp:8558:16: warning: unused variable ‘buffer_before’ [-Wunused-variable] + 8558 | size_t buffer_before = token_buffer.size(); + | ^~~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp:8415:73: warning: unused parameter ‘params’ [-Wunused-parameter] + 8415 | void t2w_thread_func_cpp(struct omni_context * ctx_omni, common_params *params) { + | ~~~~~~~~~~~~~~~^~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp: At global scope: +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp:8763:6: warning: no previous declaration for ‘void t2w_thread_func(omni_context*, common_params*)’ [-Wmissing-declarations] + 8763 | void t2w_thread_func(struct omni_context * ctx_omni, common_params *params) { + | ^~~~~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp: In function ‘bool stream_prefill(omni_context*, std::string, std::string, int, int, std::string)’: +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp:8823:41: warning: ‘int32_t llama_n_embd(const llama_model*)’ is deprecated: use llama_model_n_embd instead [-Wdeprecated-declarations] + 8823 | const int hidden_size = llama_n_embd(llama_get_model(ctx_omni->ctx_llama)); + | ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/src/../include/llama.h:469:34: note: declared here + 469 | DEPRECATED(LLAMA_API int32_t llama_n_embd (const struct llama_model * model), "use llama_model_n_embd instead"); + | ^~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/src/../include/llama.h:29:36: note: in definition of macro ‘DEPRECATED’ + 29 | # define DEPRECATED(func, hint) func __attribute__((deprecated(hint))) + | ^~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp:9037:49: warning: ‘int32_t llama_n_embd(const llama_model*)’ is deprecated: use llama_model_n_embd instead [-Wdeprecated-declarations] + 9037 | const int hidden_size = llama_n_embd(llama_get_model(ctx_omni->ctx_llama)); + | ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/src/../include/llama.h:469:34: note: declared here + 469 | DEPRECATED(LLAMA_API int32_t llama_n_embd (const struct llama_model * model), "use llama_model_n_embd instead"); + | ^~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/src/../include/llama.h:29:36: note: in definition of macro ‘DEPRECATED’ + 29 | # define DEPRECATED(func, hint) func __attribute__((deprecated(hint))) + | ^~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp: In lambda function: +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp:9085:107: warning: comparison of integer expressions of different signedness: ‘std::queue::size_type’ {aka ‘long long unsigned int’} and ‘int’ [-Wsign-compare] + 9085 | ctx_omni->llm_thread_info->cv.wait(lock, [&] { return ctx_omni->llm_thread_info->queue.size() < ctx_omni->llm_thread_info->MAX_QUEUE_SIZE; }); + | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp: In function ‘bool stream_decode(omni_context*, std::string, int)’: +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp:9355:38: warning: ‘int32_t llama_n_embd(const llama_model*)’ is deprecated: use llama_model_n_embd instead [-Wdeprecated-declarations] + 9355 | int llm_n_embd = llama_n_embd(llama_get_model(ctx_omni->ctx_llama)); + | ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/src/../include/llama.h:469:34: note: declared here + 469 | DEPRECATED(LLAMA_API int32_t llama_n_embd (const struct llama_model * model), "use llama_model_n_embd instead"); + | ^~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/src/../include/llama.h:29:36: note: in definition of macro ‘DEPRECATED’ + 29 | # define DEPRECATED(func, hint) func __attribute__((deprecated(hint))) + | ^~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp: In lambda function: +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp:9650:111: warning: comparison of integer expressions of different signedness: ‘std::queue::size_type’ {aka ‘long long unsigned int’} and ‘const int’ [-Wsign-compare] + 9650 | ctx_omni->tts_thread_info->cv.wait(lock, [&] { return ctx_omni->tts_thread_info->queue.size() < ctx_omni->tts_thread_info->MAX_QUEUE_SIZE; }); + | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp: In function ‘bool stream_decode(omni_context*, std::string, int)’: +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp:9613:22: warning: unused variable ‘llm_elapsed_ms’ [-Wunused-variable] + 9613 | auto llm_elapsed_ms = std::chrono::duration_cast( + | ^~~~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/omni.cpp:9321:9: warning: unused variable ‘chunk_idx’ [-Wunused-variable] + 9321 | int chunk_idx = 0; + | ^~~~~~~~~ +[165/174] Building CXX object common/CMakeFiles/common.dir/chat.cpp.obj +[166/174] Building CXX object tools/omni/CMakeFiles/omni.dir/audition.cpp.obj +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/audition.cpp: In function ‘bool audition_audio_batch_encode(audition_ctx*, int, const audition_audio_f32_batch*, float*)’: +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/audition.cpp:1438:15: warning: unused variable ‘n_pos’ [-Wunused-variable] + 1438 | const int n_pos = num_patches + (model.class_embedding ? 1 : 0); + | ^~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/audition.cpp:1439:15: warning: unused variable ‘pos_w’ [-Wunused-variable] + 1439 | const int pos_w = image_size_width / patch_size; + | ^~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/audition.cpp:1440:15: warning: unused variable ‘pos_h’ [-Wunused-variable] + 1440 | const int pos_h = image_size_height / patch_size; + | ^~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/audition.cpp:1442:16: warning: unused variable ‘use_window_attn’ [-Wunused-variable] + 1442 | const bool use_window_attn = hparams.n_wa_pattern > 0; // for qwen2.5vl + | ^~~~~~~~~~~~~~~ +/home/zhout/project/edge_infer/llama.cpp-omni/tools/omni/audition.cpp:1462:10: warning: variable ‘set_input_i32’ set but not used [-Wunused-but-set-variable] + 1462 | auto set_input_i32 = [&get_inp_tensor](const char * name, std::vector & values) { + | ^~~~~~~~~~~~~ +[167/174] Building CXX object ggml/src/ggml-vulkan/CMakeFiles/ggml-vulkan.dir/ggml-vulkan.cpp.obj +[168/174] Linking CXX static library ggml/src/ggml-vulkan/ggml-vulkan.a +[169/174] Linking CXX static library ggml/src/ggml.a +[170/174] Linking CXX static library src/libllama.a +[171/174] Linking CXX static library common/libcommon.a +[172/174] Linking CXX static library tools/omni/libomni.a +[173/174] Linking CXX executable bin/llama-omni-cli.exe diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/configure.log b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/configure.log new file mode 100644 index 000000000..f43546d88 --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/configure.log @@ -0,0 +1,22 @@ +CMAKE_BUILD_TYPE=Release +-- Setting GGML_NATIVE_DEFAULT to OFF +-- Warning: ccache not found - consider installing it for faster compilation or disable this warning with GGML_CCACHE=OFF +-- CMAKE_SYSTEM_PROCESSOR: x86_64 +-- GGML_SYSTEM_ARCH: x86 +-- Including CPU backend +-- x86 detected +-- Adding CPU backend variant ggml-cpu: +-- Found Vulkan: /mnt/c/Windows/System32/vulkan-1.dll (found version "1.4.341") found components: glslc missing components: glslangValidator +-- Vulkan found +-- GL_KHR_cooperative_matrix supported by glslc +-- GL_NV_cooperative_matrix2 supported by glslc +-- GL_EXT_integer_dot_product supported by glslc +-- GL_EXT_bfloat16 supported by glslc +-- Host compiler: /usr/bin/gcc /usr/bin/g++ +-- vulkan-shaders-gen toolchain file: /home/zhout/project/edge_infer/llama.cpp-omni/build-win64-vulkan/host-toolchain.cmake +-- Including Vulkan backend +-- ggml version: 0.9.4 +-- ggml commit: 5202b7b +-- Configuring done (1.3s) +-- Generating done (0.3s) +-- Build files have been written to: /home/zhout/project/edge_infer/llama.cpp-omni/build-win64-vulkan diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/fixture_0000.wav b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/fixture_0000.wav new file mode 100644 index 000000000..76b27ff0b Binary files /dev/null and b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/fixture_0000.wav differ diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/fixture_0001.jpg b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/fixture_0001.jpg new file mode 100644 index 000000000..63bf0ffd6 Binary files /dev/null and b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/fixture_0001.jpg differ diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/fixture_0001.wav b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/fixture_0001.wav new file mode 100644 index 000000000..76b27ff0b Binary files /dev/null and b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/fixture_0001.wav differ diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/full.combined.log b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/full.combined.log new file mode 100644 index 000000000..7ba3cf6cd --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/full.combined.log @@ -0,0 +1,918 @@ +=== Model Paths === + Base dir: C:\Users\zhout\w2\models\MiniCPM-o-4_5-gguf + LLM: C:\Users\zhout\w2\models\MiniCPM-o-4_5-gguf\MiniCPM-o-4_5-Q4_K_M.gguf [OK] + Vision: C:\Users\zhout\w2\models\MiniCPM-o-4_5-gguf/vision/MiniCPM-o-4_5-vision-F16.gguf [OK] + Audio: C:\Users\zhout\w2\models\MiniCPM-o-4_5-gguf/audio/MiniCPM-o-4_5-audio-F16.gguf [OK] + TTS: C:\Users\zhout\w2\models\MiniCPM-o-4_5-gguf/tts/MiniCPM-o-4_5-tts-F16.gguf [OK] + Projector: C:\Users\zhout\w2\models\MiniCPM-o-4_5-gguf/tts/MiniCPM-o-4_5-projector-F16.gguf [OK] +=================== +=== Initializing Omni Context === + Media type: 2 (omni: audio+vision) + TTS enabled: yes + Context size: 2048 + GPU layers: 99 + Token2Wav device: cpu + Vision backend: metal + TTS bin dir: C:\Users\zhout\w2\models\MiniCPM-o-4_5-gguf/tts + Ref audio: C:\Users\zhout\w2\minicpmo_cpp_radeon\default_ref_audio.wav +22:28:06.598 === omni_init start +22:28:06.598 media_type = 2, duplex_mode = 0, base_output_dir = ./tools/omni/output +22:28:06.598 === omni_init: loading new LLM model +22:28:09.715 === omni_init: loading TTS model +22:28:09.715 TTS model: loading with n_gpu_layers=0 +22:28:10.056 TTS sampler: temp=0.80, top_p=0.85, top_k=25, rep_penalty=1.05 +22:28:10.056 TTS: loading weights from GGUF (emb_code, emb_text, projector_semantic, head_code)... +22:28:10.564 TTS: head_code shape: dim0=6562, dim1=768, will transpose to [6562, 768] +22:28:10.573 TTS: head_code loaded, verifying first few values: +22:28:10.573 head_code_weight[0] = 0.01361084 (expect ~0.01385498) +22:28:10.573 head_code_weight[1] = -0.01660156 (expect ~-0.01647949) +22:28:10.573 head_code_weight[768] = 0.04101562 (this is weight[1, 0], expect ~0.04150391) +22:28:10.668 TTS: weights loaded successfully +22:28:10.668 Projector: loading from C:\Users\zhout\w2\models\MiniCPM-o-4_5-gguf/tts/MiniCPM-o-4_5-projector-F16.gguf +22:28:10.677 Projector: loaded successfully +22:28:10.677 === omni_init: loading APM model +22:28:10.953 APM: init from C:\Users\zhout\w2\models\MiniCPM-o-4_5-gguf/audio/MiniCPM-o-4_5-audio-F16.gguf +22:28:11.918 Token2Wav: found models in C:\Users\zhout\w2\models\MiniCPM-o-4_5-gguf/token2wav-gguf +22:28:11.919 Token2Wav: all model files found, initializing session... +22:28:11.919 Token2Wav: non-CUDA backend, vocoder using CPU for better performance +22:28:11.919 Token2Wav: using prompt_cache from C:\Users\zhout\w2\models\MiniCPM-o-4_5-gguf/token2wav-gguf/prompt_cache.gguf +22:28:12.286 Token2Wav: initialized successfully +22:28:12.286 Python T2W: script_dir=./tools/omni/pyt2w, model_dir=./tools/omni/pyt2w/token2wav +22:28:12.286 Token2Wav: 使用 C++ 实现 +22:28:12.286 === omni_init success: ctx_llama = 00000220286afaa0 +=== Running test case === + Audio prefix: C:\Users\zhout\w2\minicpmo_cpp_radeon\fixture_ + Count: 2 +22:28:12.286 stream_prefill: n_past = 0 + voice_clone_prompt = <|im_start|>system +模仿音频样本的音色并生成新的内容。 +<|audio_start|> + assistant_prompt = <|audio_end|>你的任务是用这种声音模式来当一个助手。请认真、高质量地回复用户的问题。请用高自然度的方式和用户聊天。<|im_end|> +<|im_start|>user + +22:28:12.286 system prompt ref_audio: C:\Users\zhout\w2\minicpmo_cpp_radeon\fixture_0000.wav +22:28:13.326 system prompt ref_audio embedding: n_pos=20 +22:28:13.997 🔒 n_keep 设置为 72 (system prompt tokens),这部分永远不会被滑动窗口删除 +22:28:13.997 stream_prefill(index=0): system prompt 初始化完成,ref_audio 已在其中 prefill +22:28:13.997 [SW] system_prompt registered: preserve_length=72 (will be protected from sliding) +22:28:13.997 n_past = 72 +22:28:13.997 + +c++ finish stream_prefill(index=0). n_past=72, n_keep=72, n_ctx=2048 + +prefill 0 (audio) : 1.71101 s +22:28:16.166 stream_prefill(index=1): processing user audio: C:\Users\zhout\w2\minicpmo_cpp_radeon\fixture_0001.wav +22:28:16.335 stream_prefill(index=1): user audio embedding: n_pos=20 +22:28:16.627 + +c++ finish stream_prefill(index=1). n_past=161, n_keep=72, n_ctx=2048 + +prefill 1 (audio+vision) : 2.62999 s +22:28:16.627 📍 stream_decode 开始: n_past=161, n_keep=72, n_ctx=2048, duplex_mode=0 +22:28:16.627 stream_decode: create tts thread (simplex mode) +22:28:16.627 stream_decode: create t2w thread +22:28:16.627 wait prefill done +22:28:16.628 📍 [单工TTS] 添加 assistant prompt: "<|im_end|> +<|im_start|>assistant + + + + +<|tts_bos|>", n_past=161 +22:28:16.628 T2W thread (C++) started +22:28:16.631 TTS: 创建单工模式输出目录: ./tools/omni/output/round_000 +22:28:16.632 TTS thread started +22:28:16.783 📍 [单工TTS] assistant prompt 完成, n_past=171 +22:28:16.784 LLM decode: max_tgt_len = 2048, n_predict = -1, n_ctx = 2048 +22:28:17.359 LLM->TTS: text='你知道吗,有时候啊,我也会想啊', n_tokens=10, hidden_size=40960, n_embd=4096, token_ids=[107733 101037 3837 104854 103924 3837 35946 103977 99172 103924] +22:28:17.359 TTS<-LLM: chunk_idx=0, text='你知道吗,有时候啊,我也会想啊', n_tokens=10, hidden_size=40960, token_ids=[107733 101037 3837 104854 103924 3837 35946 103977 99172 103924] +22:28:17.359 TTS: after queue pop - speek_done=0, llm_finish=0, llm_text.empty=0, token_ids.size=10 +22:28:17.359 TTS: before empty check - response.empty=0, response='你知道吗,有时候啊,我也会想啊', llm_finish=0 +22:28:17.359 TTS: DEBUG before has_llm_data - token_ids.size=10, hidden_states.size=40960, n_embd=4096 +22:28:17.359 TTS: has_llm_data=1, token_ids=10, hidden_states=40960, n_embd=4096, llm_finish=0 +22:28:17.360 TTS: n_tokens_orig=10, n_tokens_filtered=10 (filtered 0 special tokens) +22:28:17.402 TTS: saved merged embeddings (text) to ./tools/omni/output/round_000/llm_debug/chunk_0/merged_embeddings.txt +22:28:17.402 TTS Simplex: generating audio tokens for chunk 0 (n_tokens=10, tts_n_embd=768) +22:28:17.402 TTS Simplex: 在 prefill 前添加 audio_bos (chunk_idx=0, new_size=11) +22:28:17.402 TTS Simplex: first chunk - cleared KV cache +22:28:17.402 TTS Simplex: first chunk - cleared tts_all_generated_tokens and tts_token_buffer +22:28:17.479 TTS Simplex: prefill completed, n_past_tts=11 +22:28:17.479 TTS Simplex: sampler created +22:28:17.479 TTS simplex: is_audio_bos=true (first audio token) +22:28:17.524 TTS Simplex Phase1: token 1/500: rel_id=1571 +22:28:17.545 TTS Simplex Phase1: token 2/500: rel_id=6486 +22:28:17.564 TTS Simplex Phase1: token 3/500: rel_id=4299 +22:28:17.583 TTS Simplex Phase1: token 4/500: rel_id=4299 +22:28:17.603 TTS Simplex Phase1: token 5/500: rel_id=4299 +22:28:17.992 TTS Simplex Phase1: yield 25 tokens 到 T2W (step 25, buffer=25) +22:28:17.992 TTS Simplex Phase1: token 25/500: rel_id=4299 +22:28:17.992 T2W线程(C++): 轮次切换 (-1 -> 0),更新输出目录 +22:28:17.992 T2W线程(C++): 新输出目录 ./tools/omni/output/round_000/tts_wav +22:28:18.074 LLM->TTS: text=',生活真的挺有意思的。每天早上醒来,', n_tokens=10, hidden_size=40960, n_embd=4096, token_ids=[3837 99424 100672 101174 113062 1773 101922 105083 109877 3837] +22:28:18.524 TTS Simplex Phase1: yield 25 tokens 到 T2W (step 50, buffer=25) +22:28:18.524 TTS Simplex Phase1: token 50/500: rel_id=1703 +22:28:18.595 TTS Simplex Phase1: EOS token at step 54 +22:28:18.595 TTS Simplex: chunk 结束,tts_token_buffer 剩余 3 tokens (保留等下一个 chunk) +22:28:18.595 TTS Simplex: generated 53 audio tokens for chunk 0 +22:28:18.595 TTS Simplex: chunk 0 first tokens: [1571 6486 4299 4299 4299 ], last tokens: [731 1703 1951 2112 719 ] +22:28:18.595 TTS Simplex: updated tts_n_past_accumulated=64, total_generated_tokens=53 +22:28:18.596 TTS<-LLM: chunk_idx=1, text=',生活真的挺有意思的。每天早上醒来,', n_tokens=10, hidden_size=40960, token_ids=[3837 99424 100672 101174 113062 1773 101922 105083 109877 3837] +22:28:18.596 TTS: after queue pop - speek_done=0, llm_finish=0, llm_text.empty=0, token_ids.size=10 +22:28:18.596 TTS: before empty check - response.empty=0, response=',生活真的挺有意思的。每天早上醒æ�', llm_finish=0 +22:28:18.596 TTS: DEBUG before has_llm_data - token_ids.size=10, hidden_states.size=40960, n_embd=4096 +22:28:18.596 TTS: has_llm_data=1, token_ids=10, hidden_states=40960, n_embd=4096, llm_finish=0 +22:28:18.596 TTS: n_tokens_orig=10, n_tokens_filtered=10 (filtered 0 special tokens) +22:28:18.630 TTS: saved merged embeddings (text) to ./tools/omni/output/round_000/llm_debug/chunk_1/merged_embeddings.txt +22:28:18.630 TTS Simplex: generating audio tokens for chunk 1 (n_tokens=10, tts_n_embd=768) +22:28:18.630 TTS Simplex: 在 prefill 前添加 audio_bos (chunk_idx=1, new_size=11) +22:28:18.630 TTS Simplex: chunk 1 - keeping KV cache, n_past_tts=64 +22:28:18.665 TTS Simplex: prefill completed, n_past_tts=75 +22:28:18.665 TTS Simplex: sampler created +22:28:18.696 TTS Simplex Phase1: token 1/500: rel_id=728 +22:28:18.719 TTS Simplex Phase1: token 2/500: rel_id=4613 +22:28:18.740 TTS Simplex Phase1: token 3/500: rel_id=4803 +22:28:18.763 TTS Simplex Phase1: token 4/500: rel_id=4551 +22:28:18.781 TTS Simplex Phase1: token 5/500: rel_id=4466 +22:28:18.849 LLM->TTS: text='太阳照在脸上,就觉得这一天充满了可能。', n_tokens=10, hidden_size=40960, n_embd=4096, token_ids=[101281 99331 18493 104488 3837 115119 112480 106890 87267 1773] +22:28:19.156 TTS Simplex Phase1: yield 25 tokens 到 T2W (step 22, buffer=25) +22:28:19.226 TTS Simplex Phase1: token 25/500: rel_id=4299 +22:28:19.617 LLM->TTS: text='不管前一天发生啥事,只要新的一天来了', n_tokens=10, hidden_size=40960, n_embd=4096, token_ids=[101260 115982 99726 101417 29826 3837 100671 118580 35727 101161] +22:28:19.667 TTS Simplex Phase1: yield 25 tokens 到 T2W (step 47, buffer=25) +22:28:19.700 TTS Simplex Phase1: token 50/500: rel_id=219 +22:28:19.953 TTS Simplex Phase1: yield 25 tokens 到 T2W (step 72, buffer=25) +22:28:19.988 TTS Simplex Phase1: token 75/500: rel_id=4299 +22:28:20.178 TTS Simplex Phase1: EOS token at step 92 +22:28:20.178 TTS Simplex: chunk 结束,tts_token_buffer 剩余 19 tokens (保留等下一个 chunk) +22:28:20.178 TTS Simplex: generated 91 audio tokens for chunk 1 +22:28:20.178 TTS Simplex: chunk 1 first tokens: [728 4613 4803 4551 4466 ], last tokens: [870 2726 4489 5205 6387 ] +22:28:20.178 TTS Simplex: updated tts_n_past_accumulated=166, total_generated_tokens=144 +22:28:20.179 TTS<-LLM: chunk_idx=2, text='太阳照在脸上,就觉得这一天充满了可能。', n_tokens=10, hidden_size=40960, token_ids=[101281 99331 18493 104488 3837 115119 112480 106890 87267 1773] +22:28:20.179 TTS: after queue pop - speek_done=0, llm_finish=0, llm_text.empty=0, token_ids.size=10 +22:28:20.179 TTS: before empty check - response.empty=0, response='太阳照在脸上,就觉得这一天充满了å�', llm_finish=0 +22:28:20.179 TTS: DEBUG before has_llm_data - token_ids.size=10, hidden_states.size=40960, n_embd=4096 +22:28:20.179 TTS: has_llm_data=1, token_ids=10, hidden_states=40960, n_embd=4096, llm_finish=0 +22:28:20.179 TTS: n_tokens_orig=10, n_tokens_filtered=10 (filtered 0 special tokens) +22:28:20.213 TTS: saved merged embeddings (text) to ./tools/omni/output/round_000/llm_debug/chunk_2/merged_embeddings.txt +22:28:20.213 TTS Simplex: generating audio tokens for chunk 2 (n_tokens=10, tts_n_embd=768) +22:28:20.213 TTS Simplex: 在 prefill 前添加 audio_bos (chunk_idx=2, new_size=11) +22:28:20.213 TTS Simplex: chunk 2 - keeping KV cache, n_past_tts=166 +22:28:20.247 TTS Simplex: prefill completed, n_past_tts=177 +22:28:20.247 TTS Simplex: sampler created +22:28:20.268 TTS Simplex Phase1: token 1/500: rel_id=2502 +22:28:20.293 TTS Simplex Phase1: token 2/500: rel_id=974 +22:28:20.325 TTS Simplex Phase1: token 3/500: rel_id=1163 +22:28:20.350 TTS Simplex Phase1: token 4/500: rel_id=5970 +22:28:20.378 TTS Simplex Phase1: token 5/500: rel_id=957 +22:28:20.405 TTS Simplex Phase1: yield 25 tokens 到 T2W (step 6, buffer=25) +22:28:20.938 TTS Simplex Phase1: token 25/500: rel_id=2112 +22:28:21.011 LLM->TTS: text=',就有机会重新开始。你有没有觉得,', n_tokens=10, hidden_size=40960, n_embd=4096, token_ids=[3837 104435 101135 70361 55286 1773 56568 104710 99801 3837] +22:28:21.056 TTS Simplex Phase1: yield 25 tokens 到 T2W (step 31, buffer=25) +22:28:21.326 TTS Simplex Phase1: token 50/500: rel_id=5914 +22:28:21.408 TTS Simplex Phase1: yield 25 tokens 到 T2W (step 56, buffer=25) +22:28:21.597 🎉 首响时间 (First Audio Response): 4969ms +22:28:21.597 T2W线程: wav_0.wav | 0.84s audio | 3603.6ms inference | RTF=4.29 | t=4969ms +22:28:21.674 TTS Simplex Phase1: token 75/500: rel_id=4593 +22:28:21.745 TTS Simplex Phase1: yield 25 tokens 到 T2W (step 81, buffer=25) +22:28:21.841 TTS Simplex Phase1: EOS token at step 90 +22:28:21.841 TTS Simplex: chunk 结束,tts_token_buffer 剩余 8 tokens (保留等下一个 chunk) +22:28:21.841 TTS Simplex: generated 89 audio tokens for chunk 2 +22:28:21.841 TTS Simplex: chunk 2 first tokens: [2502 974 1163 5970 957 ], last tokens: [4382 5937 2130 6051 1539 ] +22:28:21.841 TTS Simplex: updated tts_n_past_accumulated=266, total_generated_tokens=233 +22:28:21.843 TTS<-LLM: chunk_idx=3, text='不管前一天发生啥事,只要新的一天来了', n_tokens=10, hidden_size=40960, token_ids=[101260 115982 99726 101417 29826 3837 100671 118580 35727 101161] +22:28:21.843 TTS: after queue pop - speek_done=0, llm_finish=0, llm_text.empty=0, token_ids.size=10 +22:28:21.843 TTS: before empty check - response.empty=0, response='不管前一天发生啥事,只要新的一天æ�', llm_finish=0 +22:28:21.843 TTS: DEBUG before has_llm_data - token_ids.size=10, hidden_states.size=40960, n_embd=4096 +22:28:21.843 TTS: has_llm_data=1, token_ids=10, hidden_states=40960, n_embd=4096, llm_finish=0 +22:28:21.843 TTS: n_tokens_orig=10, n_tokens_filtered=10 (filtered 0 special tokens) +22:28:21.877 TTS: saved merged embeddings (text) to ./tools/omni/output/round_000/llm_debug/chunk_3/merged_embeddings.txt +22:28:21.877 TTS Simplex: generating audio tokens for chunk 3 (n_tokens=10, tts_n_embd=768) +22:28:21.877 TTS Simplex: 在 prefill 前添加 audio_bos (chunk_idx=3, new_size=11) +22:28:21.877 TTS Simplex: chunk 3 - keeping KV cache, n_past_tts=266 +22:28:21.913 TTS Simplex: prefill completed, n_past_tts=277 +22:28:21.913 TTS Simplex: sampler created +22:28:21.936 TTS Simplex Phase1: token 1/500: rel_id=2676 +22:28:21.959 TTS Simplex Phase1: token 2/500: rel_id=4981 +22:28:21.981 TTS Simplex Phase1: token 3/500: rel_id=5065 +22:28:22.001 TTS Simplex Phase1: token 4/500: rel_id=5775 +22:28:22.026 TTS Simplex Phase1: token 5/500: rel_id=6501 +22:28:22.300 TTS Simplex Phase1: yield 25 tokens 到 T2W (step 17, buffer=25) +22:28:22.482 TTS Simplex Phase1: token 25/500: rel_id=6486 +22:28:22.597 LLM->TTS: text='就算遇到再难的事,只要咬咬牙', n_tokens=10, hidden_size=40960, n_embd=4096, token_ids=[104501 104011 87256 99349 104140 3837 100671 105118 105118 100446] +22:28:22.738 TTS Simplex Phase1: yield 25 tokens 到 T2W (step 42, buffer=25) +22:28:22.838 TTS Simplex Phase1: token 50/500: rel_id=2274 +22:28:23.048 TTS Simplex Phase1: yield 25 tokens 到 T2W (step 67, buffer=25) +22:28:23.146 TTS Simplex Phase1: token 75/500: rel_id=1648 +22:28:23.335 TTS Simplex Phase1: EOS token at step 91 +22:28:23.335 TTS Simplex: chunk 结束,tts_token_buffer 剩余 23 tokens (保留等下一个 chunk) +22:28:23.336 TTS Simplex: generated 90 audio tokens for chunk 3 +22:28:23.336 TTS Simplex: chunk 3 first tokens: [2676 4981 5065 5775 6501 ], last tokens: [5323 1132 476 974 2756 ] +22:28:23.336 TTS Simplex: updated tts_n_past_accumulated=367, total_generated_tokens=323 +22:28:23.336 TTS<-LLM: chunk_idx=4, text=',就有机会重新开始。你有没有觉得,', n_tokens=10, hidden_size=40960, token_ids=[3837 104435 101135 70361 55286 1773 56568 104710 99801 3837] +22:28:23.336 TTS: after queue pop - speek_done=0, llm_finish=0, llm_text.empty=0, token_ids.size=10 +22:28:23.337 TTS: before empty check - response.empty=0, response=',就有机会重新开始。你有没有觉得ï¼', llm_finish=0 +22:28:23.337 TTS: DEBUG before has_llm_data - token_ids.size=10, hidden_states.size=40960, n_embd=4096 +22:28:23.337 TTS: has_llm_data=1, token_ids=10, hidden_states=40960, n_embd=4096, llm_finish=0 +22:28:23.337 TTS: n_tokens_orig=10, n_tokens_filtered=10 (filtered 0 special tokens) +22:28:23.368 TTS: saved merged embeddings (text) to ./tools/omni/output/round_000/llm_debug/chunk_4/merged_embeddings.txt +22:28:23.368 TTS Simplex: generating audio tokens for chunk 4 (n_tokens=10, tts_n_embd=768) +22:28:23.368 TTS Simplex: 在 prefill 前添加 audio_bos (chunk_idx=4, new_size=11) +22:28:23.368 TTS Simplex: chunk 4 - keeping KV cache, n_past_tts=367 +22:28:23.397 TTS Simplex: prefill completed, n_past_tts=378 +22:28:23.397 TTS Simplex: sampler created +22:28:23.409 TTS Simplex Phase1: token 1/500: rel_id=4441 +22:28:23.422 TTS Simplex Phase1: yield 25 tokens 到 T2W (step 2, buffer=25) +22:28:23.422 TTS Simplex Phase1: token 2/500: rel_id=6455 +22:28:23.436 TTS Simplex Phase1: token 3/500: rel_id=2229 +22:28:23.450 TTS Simplex Phase1: token 4/500: rel_id=4803 +22:28:23.465 TTS Simplex Phase1: token 5/500: rel_id=6261 +22:28:23.755 TTS Simplex Phase1: token 25/500: rel_id=1944 +22:28:23.783 TTS Simplex Phase1: yield 25 tokens 到 T2W (step 27, buffer=25) +22:28:24.439 TTS Simplex Phase1: token 50/500: rel_id=5325 +22:28:24.513 TTS Simplex Phase1: yield 25 tokens 到 T2W (step 52, buffer=25) +22:28:24.695 LLM->TTS: text='挺过去,回头看的时候,反而觉得挺酷', n_tokens=10, hidden_size=40960, n_embd=4096, token_ids=[101174 100688 3837 115204 103920 3837 104503 99801 101174 102382] +22:28:24.760 T2W线程: wav_1.wav | 1.00s audio | 3161.9ms inference | RTF=3.16 | t=8132ms +22:28:24.933 TTS Simplex Phase1: token 75/500: rel_id=6486 +22:28:24.957 TTS Simplex Phase1: yield 25 tokens 到 T2W (step 77, buffer=25) +22:28:25.045 TTS Simplex Phase1: EOS token at step 85 +22:28:25.045 TTS Simplex: chunk 结束,tts_token_buffer 剩余 7 tokens (保留等下一个 chunk) +22:28:25.045 TTS Simplex: generated 84 audio tokens for chunk 4 +22:28:25.045 TTS Simplex: chunk 4 first tokens: [4441 6455 2229 4803 6261 ], last tokens: [4299 4299 1726 5614 4831 ] +22:28:25.045 TTS Simplex: updated tts_n_past_accumulated=462, total_generated_tokens=407 +22:28:25.047 TTS<-LLM: chunk_idx=5, text='就算遇到再难的事,只要咬咬牙', n_tokens=10, hidden_size=40960, token_ids=[104501 104011 87256 99349 104140 3837 100671 105118 105118 100446] +22:28:25.047 TTS: after queue pop - speek_done=0, llm_finish=0, llm_text.empty=0, token_ids.size=10 +22:28:25.047 TTS: before empty check - response.empty=0, response='就算遇到再难的事,只要咬咬牙', llm_finish=0 +22:28:25.047 TTS: DEBUG before has_llm_data - token_ids.size=10, hidden_states.size=40960, n_embd=4096 +22:28:25.047 TTS: has_llm_data=1, token_ids=10, hidden_states=40960, n_embd=4096, llm_finish=0 +22:28:25.047 TTS: n_tokens_orig=10, n_tokens_filtered=10 (filtered 0 special tokens) +22:28:25.081 TTS: saved merged embeddings (text) to ./tools/omni/output/round_000/llm_debug/chunk_5/merged_embeddings.txt +22:28:25.081 TTS Simplex: generating audio tokens for chunk 5 (n_tokens=10, tts_n_embd=768) +22:28:25.081 TTS Simplex: 在 prefill 前添加 audio_bos (chunk_idx=5, new_size=11) +22:28:25.081 TTS Simplex: chunk 5 - keeping KV cache, n_past_tts=462 +22:28:25.122 TTS Simplex: prefill completed, n_past_tts=473 +22:28:25.122 TTS Simplex: sampler created +22:28:25.146 TTS Simplex Phase1: token 1/500: rel_id=2306 +22:28:25.172 TTS Simplex Phase1: token 2/500: rel_id=667 +22:28:25.197 TTS Simplex Phase1: token 3/500: rel_id=2125 +22:28:25.221 TTS Simplex Phase1: token 4/500: rel_id=4580 +22:28:25.244 TTS Simplex Phase1: token 5/500: rel_id=4520 +22:28:25.559 TTS Simplex Phase1: yield 25 tokens 到 T2W (step 18, buffer=25) +22:28:25.737 TTS Simplex Phase1: token 25/500: rel_id=4678 +22:28:25.817 LLM->TTS: text='的?其实啊,每个人心里都藏着一个小', n_tokens=10, hidden_size=40960, n_embd=4096, token_ids=[9370 11319 101045 103924 3837 101587 101998 71268 114880 107861] +22:28:26.001 TTS Simplex Phase1: yield 25 tokens 到 T2W (step 43, buffer=25) +22:28:26.089 TTS Simplex Phase1: token 50/500: rel_id=5 +22:28:26.318 TTS Simplex Phase1: yield 25 tokens 到 T2W (step 68, buffer=25) +22:28:26.345 TTS Simplex Phase1: EOS token at step 71 +22:28:26.345 TTS Simplex: chunk 结束,tts_token_buffer 剩余 2 tokens (保留等下一个 chunk) +22:28:26.345 TTS Simplex: generated 70 audio tokens for chunk 5 +22:28:26.345 TTS Simplex: chunk 5 first tokens: [2306 667 2125 4580 4520 ], last tokens: [5241 1862 1376 2357 6401 ] +22:28:26.345 TTS Simplex: updated tts_n_past_accumulated=543, total_generated_tokens=477 +22:28:26.346 TTS<-LLM: chunk_idx=6, text='挺过去,回头看的时候,反而觉得挺酷', n_tokens=10, hidden_size=40960, token_ids=[101174 100688 3837 115204 103920 3837 104503 99801 101174 102382] +22:28:26.346 TTS: after queue pop - speek_done=0, llm_finish=0, llm_text.empty=0, token_ids.size=10 +22:28:26.346 TTS: before empty check - response.empty=0, response='挺过去,回头看的时候,反而觉得挺é…', llm_finish=0 +22:28:26.346 TTS: DEBUG before has_llm_data - token_ids.size=10, hidden_states.size=40960, n_embd=4096 +22:28:26.346 TTS: has_llm_data=1, token_ids=10, hidden_states=40960, n_embd=4096, llm_finish=0 +22:28:26.346 TTS: n_tokens_orig=10, n_tokens_filtered=10 (filtered 0 special tokens) +22:28:26.390 TTS: saved merged embeddings (text) to ./tools/omni/output/round_000/llm_debug/chunk_6/merged_embeddings.txt +22:28:26.390 TTS Simplex: generating audio tokens for chunk 6 (n_tokens=10, tts_n_embd=768) +22:28:26.390 TTS Simplex: 在 prefill 前添加 audio_bos (chunk_idx=6, new_size=11) +22:28:26.390 TTS Simplex: chunk 6 - keeping KV cache, n_past_tts=543 +22:28:26.433 TTS Simplex: prefill completed, n_past_tts=554 +22:28:26.433 TTS Simplex: sampler created +22:28:26.457 TTS Simplex Phase1: token 1/500: rel_id=2591 +22:28:26.482 TTS Simplex Phase1: token 2/500: rel_id=566 +22:28:26.504 TTS Simplex Phase1: token 3/500: rel_id=974 +22:28:26.534 TTS Simplex Phase1: token 4/500: rel_id=4571 +22:28:26.558 TTS Simplex Phase1: token 5/500: rel_id=4579 +22:28:27.086 TTS Simplex Phase1: yield 25 tokens 到 T2W (step 23, buffer=25) +22:28:27.152 TTS Simplex Phase1: token 25/500: rel_id=4921 +22:28:27.154 LLM->TTS: text='宇宙,里面装着勇气、梦想和一点点', n_tokens=10, hidden_size=40960, n_embd=4096, token_ids=[105339 3837 100420 98641 99164 106860 5373 102294 33108 107342] +22:28:27.499 TTS Simplex Phase1: yield 25 tokens 到 T2W (step 48, buffer=25) +22:28:27.530 TTS Simplex Phase1: token 50/500: rel_id=0 +22:28:27.898 TTS Simplex Phase1: yield 25 tokens 到 T2W (step 73, buffer=25) +22:28:27.900 T2W线程: wav_2.wav | 1.00s audio | 3138.7ms inference | RTF=3.14 | t=11272ms +22:28:27.922 TTS Simplex Phase1: token 75/500: rel_id=1431 +22:28:27.989 TTS Simplex Phase1: EOS token at step 81 +22:28:27.989 TTS Simplex: chunk 结束,tts_token_buffer 剩余 7 tokens (保留等下一个 chunk) +22:28:27.989 TTS Simplex: generated 80 audio tokens for chunk 6 +22:28:27.989 TTS Simplex: chunk 6 first tokens: [2591 566 974 4571 4579 ], last tokens: [1055 1460 1625 1649 5332 ] +22:28:27.989 TTS Simplex: updated tts_n_past_accumulated=634, total_generated_tokens=557 +22:28:27.989 TTS<-LLM: chunk_idx=7, text='的?其实啊,每个人心里都藏着一个小', n_tokens=10, hidden_size=40960, token_ids=[9370 11319 101045 103924 3837 101587 101998 71268 114880 107861] +22:28:27.989 TTS: after queue pop - speek_done=0, llm_finish=0, llm_text.empty=0, token_ids.size=10 +22:28:27.989 TTS: before empty check - response.empty=0, response='的?其实啊,每个人心里都藏着一个å°', llm_finish=0 +22:28:27.989 TTS: DEBUG before has_llm_data - token_ids.size=10, hidden_states.size=40960, n_embd=4096 +22:28:27.989 TTS: has_llm_data=1, token_ids=10, hidden_states=40960, n_embd=4096, llm_finish=0 +22:28:27.990 TTS: n_tokens_orig=10, n_tokens_filtered=10 (filtered 0 special tokens) +22:28:28.021 TTS: saved merged embeddings (text) to ./tools/omni/output/round_000/llm_debug/chunk_7/merged_embeddings.txt +22:28:28.021 TTS Simplex: generating audio tokens for chunk 7 (n_tokens=10, tts_n_embd=768) +22:28:28.021 TTS Simplex: 在 prefill 前添加 audio_bos (chunk_idx=7, new_size=11) +22:28:28.021 TTS Simplex: chunk 7 - keeping KV cache, n_past_tts=634 +22:28:28.067 TTS Simplex: prefill completed, n_past_tts=645 +22:28:28.067 TTS Simplex: sampler created +22:28:28.091 TTS Simplex Phase1: token 1/500: rel_id=2742 +22:28:28.116 TTS Simplex Phase1: token 2/500: rel_id=4758 +22:28:28.140 TTS Simplex Phase1: token 3/500: rel_id=1943 +22:28:28.164 TTS Simplex Phase1: token 4/500: rel_id=59 +22:28:28.188 TTS Simplex Phase1: token 5/500: rel_id=63 +22:28:28.518 TTS Simplex Phase1: yield 25 tokens 到 T2W (step 18, buffer=25) +22:28:28.691 TTS Simplex Phase1: token 25/500: rel_id=6486 +22:28:28.782 LLM->TTS: text='小期待。别怕犯错,谁还没', n_tokens=10, hidden_size=40960, n_embd=4096, token_ids=[30709 104177 1773 62922 99756 100238 28726 3837 100165 104789] +22:28:28.965 TTS Simplex Phase1: yield 25 tokens 到 T2W (step 43, buffer=25) +22:28:29.058 TTS Simplex Phase1: token 50/500: rel_id=3170 +22:28:29.286 TTS Simplex Phase1: yield 25 tokens 到 T2W (step 68, buffer=25) +22:28:29.376 TTS Simplex Phase1: token 75/500: rel_id=4445 +22:28:29.417 TTS Simplex Phase1: EOS token at step 79 +22:28:29.417 TTS Simplex: chunk 结束,tts_token_buffer 剩余 10 tokens (保留等下一个 chunk) +22:28:29.417 TTS Simplex: generated 78 audio tokens for chunk 7 +22:28:29.417 TTS Simplex: chunk 7 first tokens: [2742 4758 1943 59 63 ], last tokens: [5986 4445 2753 566 395 ] +22:28:29.417 TTS Simplex: updated tts_n_past_accumulated=723, total_generated_tokens=635 +22:28:29.418 TTS<-LLM: chunk_idx=8, text='宇宙,里面装着勇气、梦想和一点点', n_tokens=10, hidden_size=40960, token_ids=[105339 3837 100420 98641 99164 106860 5373 102294 33108 107342] +22:28:29.418 TTS: after queue pop - speek_done=0, llm_finish=0, llm_text.empty=0, token_ids.size=10 +22:28:29.418 TTS: before empty check - response.empty=0, response='宇宙,里面装着勇气、梦想和一点点', llm_finish=0 +22:28:29.418 TTS: DEBUG before has_llm_data - token_ids.size=10, hidden_states.size=40960, n_embd=4096 +22:28:29.418 TTS: has_llm_data=1, token_ids=10, hidden_states=40960, n_embd=4096, llm_finish=0 +22:28:29.418 TTS: n_tokens_orig=10, n_tokens_filtered=10 (filtered 0 special tokens) +22:28:29.453 TTS: saved merged embeddings (text) to ./tools/omni/output/round_000/llm_debug/chunk_8/merged_embeddings.txt +22:28:29.453 TTS Simplex: generating audio tokens for chunk 8 (n_tokens=10, tts_n_embd=768) +22:28:29.454 TTS Simplex: 在 prefill 前添加 audio_bos (chunk_idx=8, new_size=11) +22:28:29.454 TTS Simplex: chunk 8 - keeping KV cache, n_past_tts=723 +22:28:29.506 TTS Simplex: prefill completed, n_past_tts=734 +22:28:29.506 TTS Simplex: sampler created +22:28:29.533 TTS Simplex Phase1: token 1/500: rel_id=876 +22:28:29.563 TTS Simplex Phase1: token 2/500: rel_id=1032 +22:28:29.586 TTS Simplex Phase1: token 3/500: rel_id=65 +22:28:29.610 TTS Simplex Phase1: token 4/500: rel_id=5087 +22:28:29.635 TTS Simplex Phase1: token 5/500: rel_id=2259 +22:28:29.905 TTS Simplex Phase1: yield 25 tokens 到 T2W (step 15, buffer=25) +22:28:30.229 TTS Simplex Phase1: token 25/500: rel_id=4842 +22:28:30.231 LLM->TTS: text='摔过跟头呢?重要的是,你', n_tokens=10, hidden_size=40960, n_embd=4096, token_ids=[103036 38182 99557 64355 101036 11319 99335 100146 3837 56568] +22:28:30.458 TTS Simplex Phase1: yield 25 tokens 到 T2W (step 40, buffer=25) +22:28:30.617 TTS Simplex Phase1: token 50/500: rel_id=1885 +22:28:30.878 TTS Simplex Phase1: yield 25 tokens 到 T2W (step 65, buffer=25) +22:28:31.003 T2W线程: wav_3.wav | 1.00s audio | 3102.7ms inference | RTF=3.10 | t=14375ms +22:28:31.040 TTS Simplex Phase1: token 75/500: rel_id=4461 +22:28:31.181 TTS Simplex Phase1: EOS token at step 86 +22:28:31.181 TTS Simplex: chunk 结束,tts_token_buffer 剩余 20 tokens (保留等下一个 chunk) +22:28:31.181 TTS Simplex: generated 85 audio tokens for chunk 8 +22:28:31.181 TTS Simplex: chunk 8 first tokens: [876 1032 65 5087 2259 ], last tokens: [3732 5835 3645 1701 2112 ] +22:28:31.181 TTS Simplex: updated tts_n_past_accumulated=819, total_generated_tokens=720 +22:28:31.182 TTS<-LLM: chunk_idx=9, text='小期待。别怕犯错,谁还没', n_tokens=10, hidden_size=40960, token_ids=[30709 104177 1773 62922 99756 100238 28726 3837 100165 104789] +22:28:31.182 TTS: after queue pop - speek_done=0, llm_finish=0, llm_text.empty=0, token_ids.size=10 +22:28:31.182 TTS: before empty check - response.empty=0, response='小期待。别怕犯错,谁还没', llm_finish=0 +22:28:31.182 TTS: DEBUG before has_llm_data - token_ids.size=10, hidden_states.size=40960, n_embd=4096 +22:28:31.182 TTS: has_llm_data=1, token_ids=10, hidden_states=40960, n_embd=4096, llm_finish=0 +22:28:31.182 TTS: n_tokens_orig=10, n_tokens_filtered=10 (filtered 0 special tokens) +22:28:31.223 TTS: saved merged embeddings (text) to ./tools/omni/output/round_000/llm_debug/chunk_9/merged_embeddings.txt +22:28:31.223 TTS Simplex: generating audio tokens for chunk 9 (n_tokens=10, tts_n_embd=768) +22:28:31.223 TTS Simplex: 在 prefill 前添加 audio_bos (chunk_idx=9, new_size=11) +22:28:31.223 TTS Simplex: chunk 9 - keeping KV cache, n_past_tts=819 +22:28:31.263 TTS Simplex: prefill completed, n_past_tts=830 +22:28:31.263 TTS Simplex: sampler created +22:28:31.278 TTS Simplex Phase1: token 1/500: rel_id=6258 +22:28:31.292 TTS Simplex Phase1: token 2/500: rel_id=4311 +22:28:31.305 TTS Simplex Phase1: token 3/500: rel_id=4942 +22:28:31.319 TTS Simplex Phase1: token 4/500: rel_id=5608 +22:28:31.334 TTS Simplex Phase1: yield 25 tokens 到 T2W (step 5, buffer=25) +22:28:31.334 TTS Simplex Phase1: token 5/500: rel_id=3266 +22:28:31.643 TTS Simplex Phase1: token 25/500: rel_id=566 +22:28:31.767 TTS Simplex Phase1: yield 25 tokens 到 T2W (step 30, buffer=25) +22:28:32.292 TTS Simplex Phase1: token 50/500: rel_id=3647 +22:28:32.346 LLM->TTS: text='有没有勇气爬起来继续往前走。所以说啊', n_tokens=10, hidden_size=40960, n_embd=4096, token_ids=[104710 106860 102377 99793 100640 114796 99314 1773 109304 103924] +22:28:32.386 TTS Simplex Phase1: yield 25 tokens 到 T2W (step 55, buffer=25) +22:28:32.659 TTS Simplex Phase1: token 75/500: rel_id=4700 +22:28:32.727 TTS Simplex Phase1: yield 25 tokens 到 T2W (step 80, buffer=25) +22:28:32.787 TTS Simplex Phase1: EOS token at step 85 +22:28:32.787 TTS Simplex: chunk 结束,tts_token_buffer 剩余 4 tokens (保留等下一个 chunk) +22:28:32.787 TTS Simplex: generated 84 audio tokens for chunk 9 +22:28:32.787 TTS Simplex: chunk 9 first tokens: [6258 4311 4942 5608 3266 ], last tokens: [3024 5800 5093 2816 2675 ] +22:28:32.787 TTS Simplex: updated tts_n_past_accumulated=914, total_generated_tokens=804 +22:28:32.788 TTS<-LLM: chunk_idx=10, text='摔过跟头呢?重要的是,你', n_tokens=10, hidden_size=40960, token_ids=[103036 38182 99557 64355 101036 11319 99335 100146 3837 56568] +22:28:32.788 TTS: after queue pop - speek_done=0, llm_finish=0, llm_text.empty=0, token_ids.size=10 +22:28:32.788 TTS: before empty check - response.empty=0, response='摔过跟头呢?重要的是,你', llm_finish=0 +22:28:32.788 TTS: DEBUG before has_llm_data - token_ids.size=10, hidden_states.size=40960, n_embd=4096 +22:28:32.788 TTS: has_llm_data=1, token_ids=10, hidden_states=40960, n_embd=4096, llm_finish=0 +22:28:32.788 TTS: n_tokens_orig=10, n_tokens_filtered=10 (filtered 0 special tokens) +22:28:32.829 TTS: saved merged embeddings (text) to ./tools/omni/output/round_000/llm_debug/chunk_10/merged_embeddings.txt +22:28:32.829 TTS Simplex: generating audio tokens for chunk 10 (n_tokens=10, tts_n_embd=768) +22:28:32.829 TTS Simplex: 在 prefill 前添加 audio_bos (chunk_idx=10, new_size=11) +22:28:32.829 TTS Simplex: chunk 10 - keeping KV cache, n_past_tts=914 +22:28:32.875 TTS Simplex: prefill completed, n_past_tts=925 +22:28:32.875 TTS Simplex: sampler created +22:28:32.890 TTS Simplex Phase1: token 1/500: rel_id=524 +22:28:32.906 TTS Simplex Phase1: token 2/500: rel_id=2031 +22:28:32.922 TTS Simplex Phase1: token 3/500: rel_id=3645 +22:28:32.939 TTS Simplex Phase1: token 4/500: rel_id=5838 +22:28:32.955 TTS Simplex Phase1: token 5/500: rel_id=5838 +22:28:33.387 TTS Simplex Phase1: yield 25 tokens 到 T2W (step 21, buffer=25) +22:28:33.528 TTS Simplex Phase1: token 25/500: rel_id=4851 +22:28:33.942 LLM: detected end token, set llm_generation_done=true +22:28:33.942 LLM->TTS: text=',活着本身就是一种奇迹,对吧?', n_tokens=9, hidden_size=36864, n_embd=4096, token_ids=[3837 107473 114300 101053 107012 3837 32664 100003 11319] +22:28:34.112 TTS Simplex Phase1: yield 25 tokens 到 T2W (step 46, buffer=25) +22:28:34.182 TTS Simplex Phase1: token 50/500: rel_id=2112 +22:28:34.280 T2W线程: wav_4.wav | 1.00s audio | 3276.0ms inference | RTF=3.28 | t=17653ms +22:28:34.351 TTS Simplex Phase1: EOS token at step 61 +22:28:34.351 TTS Simplex: chunk 结束,tts_token_buffer 剩余 14 tokens (保留等下一个 chunk) +22:28:34.351 TTS Simplex: generated 60 audio tokens for chunk 10 +22:28:34.351 TTS Simplex: chunk 10 first tokens: [524 2031 3645 5838 5838 ], last tokens: [4886 2276 5591 352 559 ] +22:28:34.351 TTS Simplex: updated tts_n_past_accumulated=985, total_generated_tokens=864 +22:28:34.352 TTS<-LLM: chunk_idx=11, text='有没有勇气爬起来继续往前走。所以说啊', n_tokens=10, hidden_size=40960, token_ids=[104710 106860 102377 99793 100640 114796 99314 1773 109304 103924] +22:28:34.352 TTS: after queue pop - speek_done=0, llm_finish=0, llm_text.empty=0, token_ids.size=10 +22:28:34.352 TTS: before empty check - response.empty=0, response='有没有勇气爬起来继续往前走。所以è¯', llm_finish=0 +22:28:34.352 TTS: DEBUG before has_llm_data - token_ids.size=10, hidden_states.size=40960, n_embd=4096 +22:28:34.352 TTS: has_llm_data=1, token_ids=10, hidden_states=40960, n_embd=4096, llm_finish=0 +22:28:34.352 📍 Decode 结束: n_past=301, 剩余空间=1747, 无需滑窗 +22:28:34.352 📍 轮次 1 结束,记录边界于 n_past=301 +22:28:34.352 TTS: n_tokens_orig=10, n_tokens_filtered=10 (filtered 0 special tokens) +22:28:34.383 TTS: saved merged embeddings (text) to ./tools/omni/output/round_000/llm_debug/chunk_11/merged_embeddings.txt +22:28:34.383 TTS Simplex: generating audio tokens for chunk 11 (n_tokens=10, tts_n_embd=768) +22:28:34.383 TTS Simplex: 在 prefill 前添加 audio_bos (chunk_idx=11, new_size=11) +22:28:34.383 TTS Simplex: chunk 11 - keeping KV cache, n_past_tts=985 +22:28:34.431 TTS Simplex: prefill completed, n_past_tts=996 +22:28:34.431 TTS Simplex: sampler created +22:28:34.445 TTS Simplex Phase1: token 1/500: rel_id=113 +22:28:34.460 TTS Simplex Phase1: token 2/500: rel_id=5264 +22:28:34.475 TTS Simplex Phase1: token 3/500: rel_id=5319 +22:28:34.489 TTS Simplex Phase1: token 4/500: rel_id=5322 +22:28:34.503 TTS Simplex Phase1: token 5/500: rel_id=876 +22:28:34.588 TTS Simplex Phase1: yield 25 tokens 到 T2W (step 11, buffer=25) +22:28:34.690 📍 为下一轮准备: eval <|im_end|>\n<|im_start|>user\n, n_past=306 +22:28:34.820 TTS Simplex Phase1: token 25/500: rel_id=4978 +22:28:34.971 TTS Simplex Phase1: yield 25 tokens 到 T2W (step 36, buffer=25) +22:28:35.171 TTS Simplex Phase1: token 50/500: rel_id=1466 +22:28:35.330 TTS Simplex Phase1: yield 25 tokens 到 T2W (step 61, buffer=25) +22:28:35.530 TTS Simplex Phase1: token 75/500: rel_id=494 +22:28:35.602 TTS Simplex Phase1: EOS token at step 81 +22:28:35.602 TTS Simplex: chunk 结束,tts_token_buffer 剩余 19 tokens (保留等下一个 chunk) +22:28:35.602 TTS Simplex: generated 80 audio tokens for chunk 11 +22:28:35.602 TTS Simplex: chunk 11 first tokens: [113 5264 5319 5322 876 ], last tokens: [602 2060 4299 6486 6486 ] +22:28:35.602 TTS Simplex: updated tts_n_past_accumulated=1076, total_generated_tokens=944 +22:28:35.612 TTS<-LLM: chunk_idx=12, text=',活着本身就是一种奇迹,对吧?', n_tokens=9, hidden_size=36864, token_ids=[3837 107473 114300 101053 107012 3837 32664 100003 11319] +22:28:35.612 TTS: after queue pop - speek_done=0, llm_finish=1, llm_text.empty=0, token_ids.size=9 +22:28:35.612 TTS: before empty check - response.empty=0, response=',活着本身就是一种奇迹,对吧?', llm_finish=1 +22:28:35.612 TTS: DEBUG before has_llm_data - token_ids.size=9, hidden_states.size=36864, n_embd=4096 +22:28:35.612 TTS: has_llm_data=1, token_ids=9, hidden_states=36864, n_embd=4096, llm_finish=1 +22:28:35.612 TTS: n_tokens_orig=9, n_tokens_filtered=9 (filtered 0 special tokens) +22:28:35.642 TTS: saved merged embeddings (text) to ./tools/omni/output/round_000/llm_debug/chunk_12/merged_embeddings.txt +22:28:35.642 TTS Simplex: generating audio tokens for chunk 12 (n_tokens=9, tts_n_embd=768) +22:28:35.642 TTS Simplex: 在 prefill 前添加 audio_bos (chunk_idx=12, new_size=10) +22:28:35.642 TTS Simplex: chunk 12 - keeping KV cache, n_past_tts=1076 +22:28:35.690 TTS Simplex: prefill completed, n_past_tts=1086 +22:28:35.690 TTS Simplex: sampler created +22:28:35.704 TTS Simplex Phase1: token 1/500: rel_id=6486 +22:28:35.718 TTS Simplex Phase1: token 2/500: rel_id=4299 +22:28:35.732 TTS Simplex Phase1: token 3/500: rel_id=4218 +22:28:35.747 TTS Simplex Phase1: token 4/500: rel_id=3975 +22:28:35.761 TTS Simplex Phase1: token 5/500: rel_id=4299 +22:28:35.775 TTS Simplex Phase1: yield 25 tokens 到 T2W (step 6, buffer=25) +22:28:36.069 TTS Simplex Phase1: token 25/500: rel_id=3647 +22:28:36.168 TTS Simplex Phase1: yield 25 tokens 到 T2W (step 31, buffer=25) +22:28:36.481 TTS Simplex Phase1: token 50/500: rel_id=361 +22:28:36.589 TTS Simplex Phase1: yield 25 tokens 到 T2W (step 56, buffer=25) +22:28:36.883 T2W线程: wav_5.wav | 1.00s audio | 2601.6ms inference | RTF=2.60 | t=20255ms +22:28:36.923 TTS Simplex Phase1: token 75/500: rel_id=2436 +22:28:37.013 TTS Simplex Phase1: yield 25 tokens 到 T2W (step 81, buffer=25) +22:28:37.145 TTS Simplex Phase1: EOS token at step 90 +22:28:37.145 TTS Simplex: is_final_text_chunk=true, will enter Phase 2 for text_eos_embed +22:28:37.145 TTS Simplex Phase2: injecting text_eos_embed + audio_bos at n_past=1175 +22:28:37.157 TTS Simplex Phase2: text_eos_embed injected, n_past=1176 +22:28:37.168 TTS Simplex Phase2: audio_bos injected, n_past=1177, starting final generation +22:28:37.390 TTS Simplex Phase2: EOS at step 14 (final end) +22:28:37.390 TTS Simplex: chunk 结束,tts_token_buffer 剩余 21 tokens (保留等下一个 chunk) +22:28:37.390 TTS Simplex: is_final_text_chunk=true, flush 剩余 21 tokens 从 tts_token_buffer +22:28:37.390 TTS Simplex: generated 102 audio tokens for chunk 12 +22:28:37.390 TTS Simplex: chunk 12 first tokens: [6486 4299 4218 3975 4299 ], last tokens: [4384 3897 6486 6486 4299 ] +22:28:37.390 TTS Simplex: updated tts_n_past_accumulated=1191, total_generated_tokens=1046 +22:28:37.399 TTS: finished processing all chunks +22:28:37.399 TTS: 单工模式轮次结束,下一轮 round_idx=1 +22:28:37.399 TTS: sent is_final=true to T2W queue (turn end) +22:28:39.451 T2W线程: wav_6.wav | 1.00s audio | 2567.8ms inference | RTF=2.57 | t=22823ms +22:28:41.704 T2W线程: wav_7.wav | 1.00s audio | 2251.6ms inference | RTF=2.25 | t=25076ms +22:28:43.954 T2W线程: wav_8.wav | 1.00s audio | 2249.3ms inference | RTF=2.25 | t=27326ms +22:28:46.208 T2W线程: wav_9.wav | 1.00s audio | 2254.1ms inference | RTF=2.25 | t=29581ms +22:28:48.471 T2W线程: wav_10.wav | 1.00s audio | 2261.9ms inference | RTF=2.26 | t=31843ms +22:28:50.731 T2W线程: wav_11.wav | 1.00s audio | 2259.2ms inference | RTF=2.26 | t=34103ms +22:28:52.994 T2W线程: wav_12.wav | 1.00s audio | 2262.3ms inference | RTF=2.26 | t=36366ms +22:28:55.241 T2W线程: wav_13.wav | 1.00s audio | 2245.8ms inference | RTF=2.25 | t=38613ms +22:28:57.493 T2W线程: wav_14.wav | 1.00s audio | 2243.6ms inference | RTF=2.24 | t=40865ms +22:28:59.727 T2W线程: wav_15.wav | 1.00s audio | 2233.5ms inference | RTF=2.23 | t=43099ms +22:29:01.986 T2W线程: wav_16.wav | 1.00s audio | 2247.9ms inference | RTF=2.25 | t=45358ms +22:29:04.270 T2W线程: wav_17.wav | 1.00s audio | 2283.5ms inference | RTF=2.28 | t=47642ms +22:29:06.553 T2W线程: wav_18.wav | 1.00s audio | 2282.2ms inference | RTF=2.28 | t=49925ms +22:29:08.804 T2W线程: wav_19.wav | 1.00s audio | 2250.0ms inference | RTF=2.25 | t=52176ms +22:29:11.073 T2W线程: wav_20.wav | 1.00s audio | 2258.2ms inference | RTF=2.26 | t=54445ms +22:29:13.334 T2W线程: wav_21.wav | 1.00s audio | 2260.2ms inference | RTF=2.26 | t=56706ms +22:29:15.586 T2W线程: wav_22.wav | 1.00s audio | 2251.7ms inference | RTF=2.25 | t=58958ms +22:29:17.855 T2W线程: wav_23.wav | 1.00s audio | 2268.6ms inference | RTF=2.27 | t=61227ms +22:29:20.119 T2W线程: wav_24.wav | 1.00s audio | 2263.4ms inference | RTF=2.26 | t=63492ms +22:29:22.375 T2W线程: wav_25.wav | 1.00s audio | 2255.1ms inference | RTF=2.26 | t=65747ms +22:29:24.634 T2W线程: wav_26.wav | 1.00s audio | 2258.4ms inference | RTF=2.26 | t=68006ms +22:29:26.885 T2W线程: wav_27.wav | 1.00s audio | 2250.1ms inference | RTF=2.25 | t=70257ms +22:29:29.146 T2W线程: wav_28.wav | 1.00s audio | 2260.1ms inference | RTF=2.26 | t=72518ms +22:29:31.398 T2W线程: wav_29.wav | 1.00s audio | 2251.4ms inference | RTF=2.25 | t=74770ms +22:29:33.656 T2W线程: wav_30.wav | 1.00s audio | 2257.1ms inference | RTF=2.26 | t=77028ms +22:29:35.899 T2W线程: wav_31.wav | 1.00s audio | 2242.6ms inference | RTF=2.24 | t=79271ms +22:29:38.169 T2W线程: wav_32.wav | 1.00s audio | 2269.3ms inference | RTF=2.27 | t=81541ms +22:29:40.423 T2W线程: wav_33.wav | 1.00s audio | 2252.7ms inference | RTF=2.25 | t=83795ms +22:29:42.682 T2W线程: wav_34.wav | 1.00s audio | 2250.6ms inference | RTF=2.25 | t=86054ms +22:29:44.941 T2W线程: wav_35.wav | 1.00s audio | 2257.8ms inference | RTF=2.26 | t=88313ms +22:29:47.208 T2W线程: wav_36.wav | 1.00s audio | 2267.2ms inference | RTF=2.27 | t=90581ms +22:29:49.462 T2W线程: wav_37.wav | 1.00s audio | 2252.6ms inference | RTF=2.25 | t=92834ms +22:29:51.715 T2W线程: wav_38.wav | 1.00s audio | 2253.0ms inference | RTF=2.25 | t=95088ms +22:29:53.969 T2W线程: wav_39.wav | 1.00s audio | 2252.7ms inference | RTF=2.25 | t=97341ms +22:29:56.231 T2W线程: wav_40.wav | 1.00s audio | 2261.3ms inference | RTF=2.26 | t=99603ms +22:29:58.497 T2W线程: wav_41.wav | 1.12s audio | 2265.0ms inference | RTF=2.02 | t=101869ms +22:29:58.497 T2W线程: 写入结束标记 ./tools/omni/output/round_000/tts_wav/generation_done.flag (last_wav=41) +22:29:58.497 T2W线程: 轮次结束后更新输出目录为 ./tools/omni/output/round_001/tts_wav +22:29:58.605 omni_stop_threads: stop signals sent +22:29:58.605 T2W(C++) 线程: 停止 +tts thread end +t2w thread end +build: 64 (5202b7b) with x86_64-w64-mingw32-gcc-posix (GCC) 13-posix for x86_64-w64-mingw32 +llama_model_load_from_file_impl: using device Vulkan0 (AMD Radeon(TM) 890M Graphics) (unknown id) - 30720 MiB free +llama_model_loader: loaded meta data with 27 key-value pairs and 399 tensors from C:\Users\zhout\w2\models\MiniCPM-o-4_5-gguf\MiniCPM-o-4_5-Q4_K_M.gguf (version GGUF V3 (latest)) +llama_model_loader: Dumping metadata keys/values. Note: KV overrides do not apply in this output. +llama_model_loader: - kv 0: general.architecture str = qwen3 +llama_model_loader: - kv 1: general.type str = model +llama_model_loader: - kv 2: general.name str = Llm +llama_model_loader: - kv 3: general.size_label str = 8.2B +llama_model_loader: - kv 4: qwen3.block_count u32 = 36 +llama_model_loader: - kv 5: qwen3.context_length u32 = 40960 +llama_model_loader: - kv 6: qwen3.embedding_length u32 = 4096 +llama_model_loader: - kv 7: qwen3.feed_forward_length u32 = 12288 +llama_model_loader: - kv 8: qwen3.attention.head_count u32 = 32 +llama_model_loader: - kv 9: qwen3.attention.head_count_kv u32 = 8 +llama_model_loader: - kv 10: qwen3.rope.freq_base f32 = 1000000.000000 +llama_model_loader: - kv 11: qwen3.attention.layer_norm_rms_epsilon f32 = 0.000001 +llama_model_loader: - kv 12: qwen3.attention.key_length u32 = 128 +llama_model_loader: - kv 13: qwen3.attention.value_length u32 = 128 +llama_model_loader: - kv 14: tokenizer.ggml.model str = gpt2 +llama_model_loader: - kv 15: tokenizer.ggml.pre str = qwen2 +llama_model_loader: - kv 16: tokenizer.ggml.tokens arr[str,151748] = ["!", "\"", "#", "$", "%", "&", "'", ... +llama_model_loader: - kv 17: tokenizer.ggml.token_type arr[i32,151748] = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ... +llama_model_loader: - kv 18: tokenizer.ggml.merges arr[str,151387] = ["Ġ Ġ", "ĠĠ ĠĠ", "i n", "Ġ t",... +llama_model_loader: - kv 19: tokenizer.ggml.bos_token_id u32 = 151644 +llama_model_loader: - kv 20: tokenizer.ggml.eos_token_id u32 = 151645 +llama_model_loader: - kv 21: tokenizer.ggml.unknown_token_id u32 = 128244 +llama_model_loader: - kv 22: tokenizer.ggml.padding_token_id u32 = 151643 +llama_model_loader: - kv 23: tokenizer.ggml.add_bos_token bool = false +llama_model_loader: - kv 24: tokenizer.chat_template str = {%- if tools %}\n {{- '<|im_start|>... +llama_model_loader: - kv 25: general.quantization_version u32 = 2 +llama_model_loader: - kv 26: general.file_type u32 = 15 +llama_model_loader: - type f32: 145 tensors +llama_model_loader: - type q4_K: 217 tensors +llama_model_loader: - type q6_K: 37 tensors +print_info: file format = GGUF V3 (latest) +print_info: file type = Q4_K - Medium +print_info: file size = 4.68 GiB (4.90 BPW) +load: printing all EOG tokens: +load: - 151643 ('<|endoftext|>') +load: - 151645 ('<|im_end|>') +load: - 151662 ('<|fim_pad|>') +load: - 151663 ('<|repo_name|>') +load: - 151664 ('<|file_sep|>') +load: special tokens cache size = 106 +load: token to piece cache size = 0.9319 MB +print_info: arch = qwen3 +print_info: vocab_only = 0 +print_info: n_ctx_train = 40960 +print_info: n_embd = 4096 +print_info: n_layer = 36 +print_info: n_head = 32 +print_info: n_head_kv = 8 +print_info: n_rot = 128 +print_info: n_swa = 0 +print_info: is_swa_any = 0 +print_info: n_embd_head_k = 128 +print_info: n_embd_head_v = 128 +print_info: n_gqa = 4 +print_info: n_embd_k_gqa = 1024 +print_info: n_embd_v_gqa = 1024 +print_info: f_norm_eps = 0.0e+00 +print_info: f_norm_rms_eps = 1.0e-06 +print_info: f_clamp_kqv = 0.0e+00 +print_info: f_max_alibi_bias = 0.0e+00 +print_info: f_logit_scale = 0.0e+00 +print_info: f_attn_scale = 0.0e+00 +print_info: n_ff = 12288 +print_info: n_expert = 0 +print_info: n_expert_used = 0 +print_info: causal attn = 1 +print_info: pooling type = -1 +print_info: rope type = 2 +print_info: rope scaling = linear +print_info: freq_base_train = 1000000.0 +print_info: freq_scale_train = 1 +print_info: n_ctx_orig_yarn = 40960 +print_info: rope_finetuned = unknown +print_info: model type = 8B +print_info: model params = 8.19 B +print_info: general.name = Llm +print_info: vocab type = BPE +print_info: n_vocab = 151748 +print_info: n_merges = 151387 +print_info: BOS token = 151644 '<|im_start|>' +print_info: EOS token = 151645 '<|im_end|>' +print_info: EOT token = 151645 '<|im_end|>' +print_info: UNK token = 128244 '' +print_info: PAD token = 151643 '<|endoftext|>' +print_info: LF token = 198 'Ċ' +print_info: FIM PRE token = 151659 '<|fim_prefix|>' +print_info: FIM SUF token = 151661 '<|fim_suffix|>' +print_info: FIM MID token = 151660 '<|fim_middle|>' +print_info: FIM PAD token = 151662 '<|fim_pad|>' +print_info: FIM REP token = 151663 '<|repo_name|>' +print_info: FIM SEP token = 151664 '<|file_sep|>' +print_info: EOG token = 151643 '<|endoftext|>' +print_info: EOG token = 151645 '<|im_end|>' +print_info: EOG token = 151662 '<|fim_pad|>' +print_info: EOG token = 151663 '<|repo_name|>' +print_info: EOG token = 151664 '<|file_sep|>' +print_info: max token length = 256 +load_tensors: loading model tensors, this can take a while... (mmap = true) +load_tensors: offloading 36 repeating layers to GPU +load_tensors: offloading output layer to GPU +load_tensors: offloaded 37/37 layers to GPU +load_tensors: Vulkan0 model buffer size = 4454.74 MiB +load_tensors: CPU_Mapped model buffer size = 333.43 MiB +..................................................................................... +llama_context: constructing llama_context +llama_context: n_seq_max = 1 +llama_context: n_ctx = 2048 +llama_context: n_ctx_per_seq = 2048 +llama_context: n_batch = 2048 +llama_context: n_ubatch = 512 +llama_context: causal_attn = 1 +llama_context: flash_attn = auto +llama_context: kv_unified = false +llama_context: freq_base = 1000000.0 +llama_context: freq_scale = 1 +llama_context: n_ctx_per_seq (2048) < n_ctx_train (40960) -- the full capacity of the model will not be utilized +llama_context: Vulkan_Host output buffer size = 0.58 MiB +llama_kv_cache: Vulkan0 KV buffer size = 288.00 MiB +llama_kv_cache: size = 288.00 MiB ( 2048 cells, 36 layers, 1/1 seqs), K (f16): 144.00 MiB, V (f16): 144.00 MiB +llama_context: Flash Attention was auto, set to enabled +llama_context: Vulkan0 compute buffer size = 304.38 MiB +llama_context: Vulkan_Host compute buffer size = 12.01 MiB +llama_context: graph nodes = 1267 +llama_context: graph splits = 2 +llama_model_load_from_file_impl: using device Vulkan0 (AMD Radeon(TM) 890M Graphics) (unknown id) - 25673 MiB free +llama_model_loader: loaded meta data with 30 key-value pairs and 193 tensors from C:\Users\zhout\w2\models\MiniCPM-o-4_5-gguf/tts/MiniCPM-o-4_5-tts-F16.gguf (version GGUF V3 (latest)) +llama_model_loader: Dumping metadata keys/values. Note: KV overrides do not apply in this output. +llama_model_loader: - kv 0: general.architecture str = llama +llama_model_loader: - kv 1: general.type str = model +llama_model_loader: - kv 2: general.name str = Tts +llama_model_loader: - kv 3: general.size_label str = 445M +llama_model_loader: - kv 4: llama.block_count u32 = 20 +llama_model_loader: - kv 5: llama.context_length u32 = 4096 +llama_model_loader: - kv 6: llama.embedding_length u32 = 768 +llama_model_loader: - kv 7: llama.feed_forward_length u32 = 3072 +llama_model_loader: - kv 8: llama.attention.head_count u32 = 12 +llama_model_loader: - kv 9: llama.attention.head_count_kv u32 = 12 +llama_model_loader: - kv 10: llama.rope.freq_base f32 = 10000.000000 +llama_model_loader: - kv 11: llama.attention.layer_norm_rms_epsilon f32 = 0.000001 +llama_model_loader: - kv 12: llama.attention.key_length u32 = 64 +llama_model_loader: - kv 13: llama.attention.value_length u32 = 64 +llama_model_loader: - kv 14: general.file_type u32 = 1 +llama_model_loader: - kv 15: llama.vocab_size u32 = 158626 +llama_model_loader: - kv 16: llama.rope.dimension_count u32 = 64 +llama_model_loader: - kv 17: general.quantization_version u32 = 2 +llama_model_loader: - kv 18: tokenizer.ggml.model str = gpt2 +llama_model_loader: - kv 19: tokenizer.ggml.pre str = qwen2 +llama_model_loader: - kv 20: tokenizer.ggml.tokens arr[str,158626] = ["!", "\"", "#", "$", "%", "&", "'", ... +llama_model_loader: - kv 21: tokenizer.ggml.token_type arr[i32,158626] = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ... +llama_model_loader: - kv 22: tokenizer.ggml.merges arr[str,151387] = ["Ġ Ġ", "ĠĠ ĠĠ", "i n", "Ġ t",... +llama_model_loader: - kv 23: tokenizer.ggml.bos_token_id u32 = 151644 +llama_model_loader: - kv 24: tokenizer.ggml.eos_token_id u32 = 151645 +llama_model_loader: - kv 25: tokenizer.ggml.unknown_token_id u32 = 128244 +llama_model_loader: - kv 26: tokenizer.ggml.padding_token_id u32 = 151643 +llama_model_loader: - kv 27: tokenizer.ggml.add_bos_token bool = false +llama_model_loader: - kv 28: tokenizer.chat_template str = {%- if tools %}\n {{- '<|im_start|>... +llama_model_loader: - kv 29: tokenizer.ggml.add_space_prefix bool = false +llama_model_loader: - type f32: 50 tensors +llama_model_loader: - type f16: 143 tensors +print_info: file format = GGUF V3 (latest) +print_info: file type = F16 +print_info: file size = 1.07 GiB (20.70 BPW) +load: printing all EOG tokens: +load: - 151643 ('<|endoftext|>') +load: - 151645 ('<|im_end|>') +load: - 151662 ('<|fim_pad|>') +load: - 151663 ('<|repo_name|>') +load: - 151664 ('<|file_sep|>') +load: special tokens cache size = 106 +load: token to piece cache size = 0.9319 MB +print_info: arch = llama +print_info: vocab_only = 0 +print_info: n_ctx_train = 4096 +print_info: n_embd = 768 +print_info: n_layer = 20 +print_info: n_head = 12 +print_info: n_head_kv = 12 +print_info: n_rot = 64 +print_info: n_swa = 0 +print_info: is_swa_any = 0 +print_info: n_embd_head_k = 64 +print_info: n_embd_head_v = 64 +print_info: n_gqa = 1 +print_info: n_embd_k_gqa = 768 +print_info: n_embd_v_gqa = 768 +print_info: f_norm_eps = 0.0e+00 +print_info: f_norm_rms_eps = 1.0e-06 +print_info: f_clamp_kqv = 0.0e+00 +print_info: f_max_alibi_bias = 0.0e+00 +print_info: f_logit_scale = 0.0e+00 +print_info: f_attn_scale = 0.0e+00 +print_info: n_ff = 3072 +print_info: n_expert = 0 +print_info: n_expert_used = 0 +print_info: causal attn = 1 +print_info: pooling type = 0 +print_info: rope type = 0 +print_info: rope scaling = linear +print_info: freq_base_train = 10000.0 +print_info: freq_scale_train = 1 +print_info: n_ctx_orig_yarn = 4096 +print_info: rope_finetuned = unknown +print_info: model type = ?B +print_info: model params = 444.94 M +print_info: general.name = Tts +print_info: vocab type = BPE +print_info: n_vocab = 158626 +print_info: n_merges = 151387 +print_info: BOS token = 151644 '<|im_start|>' +print_info: EOS token = 151645 '<|im_end|>' +print_info: EOT token = 151645 '<|im_end|>' +print_info: UNK token = 128244 '' +print_info: PAD token = 151643 '<|endoftext|>' +print_info: LF token = 198 'Ċ' +print_info: FIM PRE token = 151659 '<|fim_prefix|>' +print_info: FIM SUF token = 151661 '<|fim_suffix|>' +print_info: FIM MID token = 151660 '<|fim_middle|>' +print_info: FIM PAD token = 151662 '<|fim_pad|>' +print_info: FIM REP token = 151663 '<|repo_name|>' +print_info: FIM SEP token = 151664 '<|file_sep|>' +print_info: EOG token = 151643 '<|endoftext|>' +print_info: EOG token = 151645 '<|im_end|>' +print_info: EOG token = 151662 '<|fim_pad|>' +print_info: EOG token = 151663 '<|repo_name|>' +print_info: EOG token = 151664 '<|file_sep|>' +print_info: max token length = 256 +load_tensors: loading model tensors, this can take a while... (mmap = true) +load_tensors: skipping TTS tensor emb_code.0.weight (size = 20158464 bytes) -- will be loaded separately +load_tensors: skipping TTS tensor emb_text.weight (size = 467140608 bytes) -- will be loaded separately +load_tensors: skipping TTS tensor projector_semantic.linear1.weight (size = 12582912 bytes) -- will be loaded separately +load_tensors: skipping TTS tensor projector_semantic.linear1.bias (size = 3072 bytes) -- will be loaded separately +load_tensors: skipping TTS tensor projector_semantic.linear2.weight (size = 2359296 bytes) -- will be loaded separately +load_tensors: skipping TTS tensor projector_semantic.linear2.bias (size = 3072 bytes) -- will be loaded separately +load_tensors: skipping TTS tensor projector_spk.linear1.weight (size = 6291456 bytes) -- will be loaded separately +load_tensors: skipping TTS tensor projector_spk.linear1.bias (size = 3072 bytes) -- will be loaded separately +load_tensors: skipping TTS tensor projector_spk.linear2.weight (size = 1179648 bytes) -- will be loaded separately +load_tensors: skipping TTS tensor projector_spk.linear2.bias (size = 3072 bytes) -- will be loaded separately +load_tensors: skipping TTS tensor head_code.0.weight (size = 20158464 bytes) -- will be loaded separately +load_tensors: offloading 0 repeating layers to GPU +load_tensors: offloaded 0/21 layers to GPU +load_tensors: CPU_Mapped model buffer size = 592.48 MiB +.............................................................. +llama_init_from_model: model default pooling_type is [0], but [-1] was specified +llama_context: constructing llama_context +llama_context: n_seq_max = 1 +llama_context: n_ctx = 2048 +llama_context: n_ctx_per_seq = 2048 +llama_context: n_batch = 2048 +llama_context: n_ubatch = 512 +llama_context: causal_attn = 1 +llama_context: flash_attn = auto +llama_context: kv_unified = false +llama_context: freq_base = 10000.0 +llama_context: freq_scale = 1 +llama_context: n_ctx_per_seq (2048) < n_ctx_train (4096) -- the full capacity of the model will not be utilized +llama_context: CPU output buffer size = 0.61 MiB +llama_kv_cache: CPU KV buffer size = 120.00 MiB +llama_kv_cache: size = 120.00 MiB ( 2048 cells, 20 layers, 1/1 seqs), K (f16): 60.00 MiB, V (f16): 60.00 MiB +llama_context: Flash Attention was auto, set to enabled +llama_context: Vulkan0 compute buffer size = 30.75 MiB +llama_context: Vulkan_Host compute buffer size = 7.01 MiB +llama_context: graph nodes = 613 +llama_context: graph splits = 216 (with bs=512), 1 (with bs=1) +vision_model_loader: model name: +vision_model_loader: description: image encoder for MiniCPM-V +vision_model_loader: GGUF version: 3 +vision_model_loader: alignment: 32 +vision_model_loader: n_tensors: 455 +vision_model_loader: n_kv: 20 + +vision_ctx: vision using Vulkan0 backend +load_hparams: model_type: 0 +load_hparams: n_embd: 1152 +load_hparams: n_head: 16 +load_hparams: n_ff: 4304 +load_hparams: n_layer: 27 +load_hparams: ffn_op: gelu +load_hparams: projection_dim: 0 + +--- vision hparams --- +load_hparams: image_size: 448 +load_hparams: patch_size: 14 +load_hparams: minicpmv_version: 100045 +load_hparams: proj_scale_factor: 0 +load_hparams: n_wa_pattern: 0 + +load_hparams: model size: 1044.36 MiB +load_hparams: metadata size: 0.16 MiB +load_tensors: ffn up/down are swapped +alloc_compute_meta: Vulkan0 compute buffer size = 100.30 MiB +alloc_compute_meta: CPU compute buffer size = 18.30 MiB +init tts....init t2w....voc_hg2_model: CPU backend using 8 threads +audition_audio_preprocess: Decoded audio - sample_rate=16000, n_samples=32000 +audition_get_mel_filters: Retrieved mel filters from model: 80 mel bins x 201 fft bins +audition_audio_preprocess: Using mel filters - n_mel=80, n_fft=201 +audition_audio_preprocess: Generated 1 mel spectrogram chunk(s) +audition_audio_preprocess: Mel spectrogram ready - n_len=200, n_mel=80, total_size=16000 +build_whisper: Whisper encoder graph built (projector output, pre-pooling) +audition_audio_batch_encode: Audio input data - n_step=200, n_mel=80, total_elements=16000 +audition_audio_batch_encode: Before incrementing iter: input_frames=200, n_tokens=100, current_iter=0, current_total=0, new_total=100, max_tokens=1500 +audition_audio_batch_encode: KV cache iter incremented to 1 (total_tokens=100, max_tokens=1500) +audition_audio_batch_encode: Final output shape: [4096, 20] +audition_audio_batch_encode: Final output: 20 tokens x 4096 dims +encode_image_with_vision_chunks: step 1 of 1 encoded in 1617.01 ms +encode_image_with_vision_chunks: all 1 chunks encoded in 1635.01 ms (grid: 1x1) + +encode_image_with_vision_chunks: image encoded in 1635.01 ms by vision ( 1635.01 ms per chunk, 64 total tokens) +omni_image_embed_make_chunks_with_filename: created 1 vision chunks from C:\Users\zhout\w2\minicpmo_cpp_radeon\fixture_0001.jpg +stream_prefill: prefilled 1 vision chunks (64 tokens each) +audition_audio_preprocess: Decoded audio - sample_rate=16000, n_samples=32000 +audition_get_mel_filters: Retrieved mel filters from model: 80 mel bins x 201 fft bins +audition_audio_preprocess: Using mel filters - n_mel=80, n_fft=201 +audition_audio_preprocess: Generated 1 mel spectrogram chunk(s) +audition_audio_preprocess: Mel spectrogram ready - n_len=200, n_mel=80, total_size=16000 +build_whisper: Whisper encoder graph built (projector output, pre-pooling) +audition_audio_batch_encode: Audio input data - n_step=200, n_mel=80, total_elements=16000 +audition_audio_batch_encode: Before incrementing iter: input_frames=200, n_tokens=100, current_iter=1, current_total=100, new_total=200, max_tokens=1500 +audition_audio_batch_encode: KV cache iter incremented to 2 (total_tokens=200, max_tokens=1500) +audition_audio_batch_encode: Final output shape: [4096, 20] +audition_audio_batch_encode: Final output: 20 tokens x 4096 dims + +[timing] call=0 tokens=28 final=0 token2mel=3244.086ms vocoder=359.413ms total=3603.528ms audio=20160 +[timing] call=1 tokens=28 final=0 token2mel=2583.070ms vocoder=578.836ms total=3161.921ms audio=24000 +[timing] call=2 tokens=28 final=0 token2mel=2720.120ms vocoder=418.546ms total=3138.675ms audio=24000 +[timing] call=3 tokens=28 final=0 token2mel=2702.357ms vocoder=400.267ms total=3102.637ms audio=24000 +[timing] call=4 tokens=28 final=0 token2mel=2831.007ms vocoder=444.991ms total=3276.016ms audio=24000 +Waiting for audio generation to complete... +[timing] call=5 tokens=28 final=0 token2mel=2186.155ms vocoder=415.404ms total=2601.571ms audio=24000 +TTS: chunk file ./tools/omni/output/round_000/tts_wav/tts_output_chunk_0.wav does not exist or is empty +TTS: chunk file ./tools/omni/output/round_000/tts_wav/tts_output_chunk_1.wav does not exist or is empty +TTS: chunk file ./tools/omni/output/round_000/tts_wav/tts_output_chunk_2.wav does not exist or is empty +TTS: chunk file ./tools/omni/output/round_000/tts_wav/tts_output_chunk_3.wav does not exist or is empty +TTS: chunk file ./tools/omni/output/round_000/tts_wav/tts_output_chunk_4.wav does not exist or is empty +TTS: chunk file ./tools/omni/output/round_000/tts_wav/tts_output_chunk_5.wav does not exist or is empty +TTS: chunk file ./tools/omni/output/round_000/tts_wav/tts_output_chunk_6.wav does not exist or is empty +TTS: chunk file ./tools/omni/output/round_000/tts_wav/tts_output_chunk_7.wav does not exist or is empty +TTS: chunk file ./tools/omni/output/round_000/tts_wav/tts_output_chunk_8.wav does not exist or is empty +TTS: chunk file ./tools/omni/output/round_000/tts_wav/tts_output_chunk_9.wav does not exist or is empty +TTS: chunk file ./tools/omni/output/round_000/tts_wav/tts_output_chunk_10.wav does not exist or is empty +TTS: chunk file ./tools/omni/output/round_000/tts_wav/tts_output_chunk_11.wav does not exist or is empty +TTS: chunk file ./tools/omni/output/round_000/tts_wav/tts_output_chunk_12.wav does not exist or is empty +TTS: chunk file ./tools/omni/output/round_000/tts_wav/tts_output_chunk_13.wav does not exist or is empty +TTS: no valid WAV files to merge +[timing] call=6 tokens=28 final=0 token2mel=2191.143ms vocoder=376.579ms total=2567.733ms audio=24000 +[timing] call=7 tokens=28 final=0 token2mel=1873.429ms vocoder=378.172ms total=2251.612ms audio=24000 +[timing] call=8 tokens=28 final=0 token2mel=1865.689ms vocoder=383.563ms total=2249.263ms audio=24000 +[timing] call=9 tokens=28 final=0 token2mel=1883.567ms vocoder=370.476ms total=2254.054ms audio=24000 +[timing] call=10 tokens=28 final=0 token2mel=1883.619ms vocoder=378.244ms total=2261.873ms audio=24000 +[timing] call=11 tokens=28 final=0 token2mel=1881.421ms vocoder=377.737ms total=2259.169ms audio=24000 +[timing] call=12 tokens=28 final=0 token2mel=1882.963ms vocoder=379.295ms total=2262.267ms audio=24000 +[timing] call=13 tokens=28 final=0 token2mel=1866.974ms vocoder=378.789ms total=2245.774ms audio=24000 +[timing] call=14 tokens=28 final=0 token2mel=1862.498ms vocoder=381.036ms total=2243.544ms audio=24000 +[timing] call=15 tokens=28 final=0 token2mel=1862.182ms vocoder=371.245ms total=2233.437ms audio=24000 +[timing] call=16 tokens=28 final=0 token2mel=1869.784ms vocoder=378.069ms total=2247.863ms audio=24000 +[timing] call=17 tokens=28 final=0 token2mel=1907.270ms vocoder=376.247ms total=2283.528ms audio=24000 +[timing] call=18 tokens=28 final=0 token2mel=1891.931ms vocoder=390.200ms total=2282.142ms audio=24000 +[timing] call=19 tokens=28 final=0 token2mel=1876.856ms vocoder=373.099ms total=2249.966ms audio=24000 +[timing] call=20 tokens=28 final=0 token2mel=1881.694ms vocoder=376.436ms total=2258.141ms audio=24000 +[timing] call=21 tokens=28 final=0 token2mel=1877.034ms vocoder=383.119ms total=2260.163ms audio=24000 +[timing] call=22 tokens=28 final=0 token2mel=1873.869ms vocoder=377.816ms total=2251.696ms audio=24000 +[timing] call=23 tokens=28 final=0 token2mel=1891.518ms vocoder=377.053ms total=2268.581ms audio=24000 +[timing] call=24 tokens=28 final=0 token2mel=1886.656ms vocoder=376.669ms total=2263.336ms audio=24000 +[timing] call=25 tokens=28 final=0 token2mel=1885.998ms vocoder=369.118ms total=2255.126ms audio=24000 +[timing] call=26 tokens=28 final=0 token2mel=1876.853ms vocoder=381.546ms total=2258.409ms audio=24000 +[timing] call=27 tokens=28 final=0 token2mel=1872.564ms vocoder=377.462ms total=2250.037ms audio=24000 +[timing] call=28 tokens=28 final=0 token2mel=1884.822ms vocoder=375.263ms total=2260.095ms audio=24000 +[timing] call=29 tokens=28 final=0 token2mel=1867.917ms vocoder=383.469ms total=2251.396ms audio=24000 +[timing] call=30 tokens=28 final=0 token2mel=1878.216ms vocoder=378.829ms total=2257.056ms audio=24000 +[timing] call=31 tokens=28 final=0 token2mel=1863.766ms vocoder=378.836ms total=2242.612ms audio=24000 +[timing] call=32 tokens=28 final=0 token2mel=1896.603ms vocoder=372.658ms total=2269.271ms audio=24000 +[timing] call=33 tokens=28 final=0 token2mel=1866.058ms vocoder=386.570ms total=2252.641ms audio=24000 +[timing] call=34 tokens=28 final=0 token2mel=1879.893ms vocoder=370.639ms total=2250.543ms audio=24000 +[timing] call=35 tokens=28 final=0 token2mel=1871.253ms vocoder=386.568ms total=2257.831ms audio=24000 +[timing] call=36 tokens=28 final=0 token2mel=1890.302ms vocoder=376.857ms total=2267.171ms audio=24000 +[timing] call=37 tokens=28 final=0 token2mel=1866.266ms vocoder=386.295ms total=2252.571ms audio=24000 +[timing] call=38 tokens=28 final=0 token2mel=1882.129ms vocoder=370.886ms total=2253.025ms audio=24000 +[timing] call=39 tokens=28 final=0 token2mel=1870.137ms vocoder=382.574ms total=2252.722ms audio=24000 +[timing] call=40 tokens=28 final=0 token2mel=1878.943ms vocoder=382.292ms total=2261.245ms audio=24000 +[timing] call=41 tokens=24 final=1 token2mel=1899.809ms vocoder=365.195ms total=2265.014ms audio=26880 +Audio generation completed. +llama_perf_context_print: load time = 6915.94 ms +llama_perf_context_print: prompt eval time = 4496.81 ms / 171 tokens ( 26.30 ms per token, 38.03 tokens per second) +llama_perf_context_print: eval time = 11234.37 ms / 130 runs ( 86.42 ms per token, 11.57 tokens per second) +llama_perf_context_print: total time = 108736.83 ms / 301 tokens +llama_perf_context_print: graphs reused = 130 +Token2Wav (C++): session released diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/full.profile.json b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/full.profile.json new file mode 100644 index 000000000..704c46b9d --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/full.profile.json @@ -0,0 +1,29 @@ +{ + "command": [ + "C:\\Users\\zhout\\w2\\minicpmo_cpp_radeon\\llama-omni-cli.exe", + "-m", + "C:\\Users\\zhout\\w2\\models\\MiniCPM-o-4_5-gguf\\MiniCPM-o-4_5-Q4_K_M.gguf", + "-ngl", + "99", + "-c", + "2048", + "--omni", + "--t2w-device", + "cpu", + "--t2w-wait-seconds", + "900", + "--ref-audio", + "C:\\Users\\zhout\\w2\\minicpmo_cpp_radeon\\default_ref_audio.wav", + "--test", + "C:\\Users\\zhout\\w2\\minicpmo_cpp_radeon\\fixture_", + "2" + ], + "cwd": "C:\\Users\\zhout\\w2\\minicpmo_cpp_radeon", + "exit_code": 0, + "wall_s": 113.42734129994642, + "memory_sample_interval_ms": 100, + "memory_samples": 1128, + "peak_sampled_rss_bytes": 15568060416, + "peak_sampled_private_bytes": 15451271168, + "measurement_note": "sampled process values, not guaranteed loading peaks" +} diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/full.stderr.log b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/full.stderr.log new file mode 100644 index 000000000..d758098d7 --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/full.stderr.log @@ -0,0 +1,390 @@ +build: 64 (5202b7b) with x86_64-w64-mingw32-gcc-posix (GCC) 13-posix for x86_64-w64-mingw32 +llama_model_load_from_file_impl: using device Vulkan0 (AMD Radeon(TM) 890M Graphics) (unknown id) - 30720 MiB free +llama_model_loader: loaded meta data with 27 key-value pairs and 399 tensors from C:\Users\zhout\w2\models\MiniCPM-o-4_5-gguf\MiniCPM-o-4_5-Q4_K_M.gguf (version GGUF V3 (latest)) +llama_model_loader: Dumping metadata keys/values. Note: KV overrides do not apply in this output. +llama_model_loader: - kv 0: general.architecture str = qwen3 +llama_model_loader: - kv 1: general.type str = model +llama_model_loader: - kv 2: general.name str = Llm +llama_model_loader: - kv 3: general.size_label str = 8.2B +llama_model_loader: - kv 4: qwen3.block_count u32 = 36 +llama_model_loader: - kv 5: qwen3.context_length u32 = 40960 +llama_model_loader: - kv 6: qwen3.embedding_length u32 = 4096 +llama_model_loader: - kv 7: qwen3.feed_forward_length u32 = 12288 +llama_model_loader: - kv 8: qwen3.attention.head_count u32 = 32 +llama_model_loader: - kv 9: qwen3.attention.head_count_kv u32 = 8 +llama_model_loader: - kv 10: qwen3.rope.freq_base f32 = 1000000.000000 +llama_model_loader: - kv 11: qwen3.attention.layer_norm_rms_epsilon f32 = 0.000001 +llama_model_loader: - kv 12: qwen3.attention.key_length u32 = 128 +llama_model_loader: - kv 13: qwen3.attention.value_length u32 = 128 +llama_model_loader: - kv 14: tokenizer.ggml.model str = gpt2 +llama_model_loader: - kv 15: tokenizer.ggml.pre str = qwen2 +llama_model_loader: - kv 16: tokenizer.ggml.tokens arr[str,151748] = ["!", "\"", "#", "$", "%", "&", "'", ... +llama_model_loader: - kv 17: tokenizer.ggml.token_type arr[i32,151748] = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ... +llama_model_loader: - kv 18: tokenizer.ggml.merges arr[str,151387] = ["Ġ Ġ", "ĠĠ ĠĠ", "i n", "Ġ t",... +llama_model_loader: - kv 19: tokenizer.ggml.bos_token_id u32 = 151644 +llama_model_loader: - kv 20: tokenizer.ggml.eos_token_id u32 = 151645 +llama_model_loader: - kv 21: tokenizer.ggml.unknown_token_id u32 = 128244 +llama_model_loader: - kv 22: tokenizer.ggml.padding_token_id u32 = 151643 +llama_model_loader: - kv 23: tokenizer.ggml.add_bos_token bool = false +llama_model_loader: - kv 24: tokenizer.chat_template str = {%- if tools %}\n {{- '<|im_start|>... +llama_model_loader: - kv 25: general.quantization_version u32 = 2 +llama_model_loader: - kv 26: general.file_type u32 = 15 +llama_model_loader: - type f32: 145 tensors +llama_model_loader: - type q4_K: 217 tensors +llama_model_loader: - type q6_K: 37 tensors +print_info: file format = GGUF V3 (latest) +print_info: file type = Q4_K - Medium +print_info: file size = 4.68 GiB (4.90 BPW) +load: printing all EOG tokens: +load: - 151643 ('<|endoftext|>') +load: - 151645 ('<|im_end|>') +load: - 151662 ('<|fim_pad|>') +load: - 151663 ('<|repo_name|>') +load: - 151664 ('<|file_sep|>') +load: special tokens cache size = 106 +load: token to piece cache size = 0.9319 MB +print_info: arch = qwen3 +print_info: vocab_only = 0 +print_info: n_ctx_train = 40960 +print_info: n_embd = 4096 +print_info: n_layer = 36 +print_info: n_head = 32 +print_info: n_head_kv = 8 +print_info: n_rot = 128 +print_info: n_swa = 0 +print_info: is_swa_any = 0 +print_info: n_embd_head_k = 128 +print_info: n_embd_head_v = 128 +print_info: n_gqa = 4 +print_info: n_embd_k_gqa = 1024 +print_info: n_embd_v_gqa = 1024 +print_info: f_norm_eps = 0.0e+00 +print_info: f_norm_rms_eps = 1.0e-06 +print_info: f_clamp_kqv = 0.0e+00 +print_info: f_max_alibi_bias = 0.0e+00 +print_info: f_logit_scale = 0.0e+00 +print_info: f_attn_scale = 0.0e+00 +print_info: n_ff = 12288 +print_info: n_expert = 0 +print_info: n_expert_used = 0 +print_info: causal attn = 1 +print_info: pooling type = -1 +print_info: rope type = 2 +print_info: rope scaling = linear +print_info: freq_base_train = 1000000.0 +print_info: freq_scale_train = 1 +print_info: n_ctx_orig_yarn = 40960 +print_info: rope_finetuned = unknown +print_info: model type = 8B +print_info: model params = 8.19 B +print_info: general.name = Llm +print_info: vocab type = BPE +print_info: n_vocab = 151748 +print_info: n_merges = 151387 +print_info: BOS token = 151644 '<|im_start|>' +print_info: EOS token = 151645 '<|im_end|>' +print_info: EOT token = 151645 '<|im_end|>' +print_info: UNK token = 128244 '' +print_info: PAD token = 151643 '<|endoftext|>' +print_info: LF token = 198 'Ċ' +print_info: FIM PRE token = 151659 '<|fim_prefix|>' +print_info: FIM SUF token = 151661 '<|fim_suffix|>' +print_info: FIM MID token = 151660 '<|fim_middle|>' +print_info: FIM PAD token = 151662 '<|fim_pad|>' +print_info: FIM REP token = 151663 '<|repo_name|>' +print_info: FIM SEP token = 151664 '<|file_sep|>' +print_info: EOG token = 151643 '<|endoftext|>' +print_info: EOG token = 151645 '<|im_end|>' +print_info: EOG token = 151662 '<|fim_pad|>' +print_info: EOG token = 151663 '<|repo_name|>' +print_info: EOG token = 151664 '<|file_sep|>' +print_info: max token length = 256 +load_tensors: loading model tensors, this can take a while... (mmap = true) +load_tensors: offloading 36 repeating layers to GPU +load_tensors: offloading output layer to GPU +load_tensors: offloaded 37/37 layers to GPU +load_tensors: Vulkan0 model buffer size = 4454.74 MiB +load_tensors: CPU_Mapped model buffer size = 333.43 MiB +..................................................................................... +llama_context: constructing llama_context +llama_context: n_seq_max = 1 +llama_context: n_ctx = 2048 +llama_context: n_ctx_per_seq = 2048 +llama_context: n_batch = 2048 +llama_context: n_ubatch = 512 +llama_context: causal_attn = 1 +llama_context: flash_attn = auto +llama_context: kv_unified = false +llama_context: freq_base = 1000000.0 +llama_context: freq_scale = 1 +llama_context: n_ctx_per_seq (2048) < n_ctx_train (40960) -- the full capacity of the model will not be utilized +llama_context: Vulkan_Host output buffer size = 0.58 MiB +llama_kv_cache: Vulkan0 KV buffer size = 288.00 MiB +llama_kv_cache: size = 288.00 MiB ( 2048 cells, 36 layers, 1/1 seqs), K (f16): 144.00 MiB, V (f16): 144.00 MiB +llama_context: Flash Attention was auto, set to enabled +llama_context: Vulkan0 compute buffer size = 304.38 MiB +llama_context: Vulkan_Host compute buffer size = 12.01 MiB +llama_context: graph nodes = 1267 +llama_context: graph splits = 2 +llama_model_load_from_file_impl: using device Vulkan0 (AMD Radeon(TM) 890M Graphics) (unknown id) - 25673 MiB free +llama_model_loader: loaded meta data with 30 key-value pairs and 193 tensors from C:\Users\zhout\w2\models\MiniCPM-o-4_5-gguf/tts/MiniCPM-o-4_5-tts-F16.gguf (version GGUF V3 (latest)) +llama_model_loader: Dumping metadata keys/values. Note: KV overrides do not apply in this output. +llama_model_loader: - kv 0: general.architecture str = llama +llama_model_loader: - kv 1: general.type str = model +llama_model_loader: - kv 2: general.name str = Tts +llama_model_loader: - kv 3: general.size_label str = 445M +llama_model_loader: - kv 4: llama.block_count u32 = 20 +llama_model_loader: - kv 5: llama.context_length u32 = 4096 +llama_model_loader: - kv 6: llama.embedding_length u32 = 768 +llama_model_loader: - kv 7: llama.feed_forward_length u32 = 3072 +llama_model_loader: - kv 8: llama.attention.head_count u32 = 12 +llama_model_loader: - kv 9: llama.attention.head_count_kv u32 = 12 +llama_model_loader: - kv 10: llama.rope.freq_base f32 = 10000.000000 +llama_model_loader: - kv 11: llama.attention.layer_norm_rms_epsilon f32 = 0.000001 +llama_model_loader: - kv 12: llama.attention.key_length u32 = 64 +llama_model_loader: - kv 13: llama.attention.value_length u32 = 64 +llama_model_loader: - kv 14: general.file_type u32 = 1 +llama_model_loader: - kv 15: llama.vocab_size u32 = 158626 +llama_model_loader: - kv 16: llama.rope.dimension_count u32 = 64 +llama_model_loader: - kv 17: general.quantization_version u32 = 2 +llama_model_loader: - kv 18: tokenizer.ggml.model str = gpt2 +llama_model_loader: - kv 19: tokenizer.ggml.pre str = qwen2 +llama_model_loader: - kv 20: tokenizer.ggml.tokens arr[str,158626] = ["!", "\"", "#", "$", "%", "&", "'", ... +llama_model_loader: - kv 21: tokenizer.ggml.token_type arr[i32,158626] = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ... +llama_model_loader: - kv 22: tokenizer.ggml.merges arr[str,151387] = ["Ġ Ġ", "ĠĠ ĠĠ", "i n", "Ġ t",... +llama_model_loader: - kv 23: tokenizer.ggml.bos_token_id u32 = 151644 +llama_model_loader: - kv 24: tokenizer.ggml.eos_token_id u32 = 151645 +llama_model_loader: - kv 25: tokenizer.ggml.unknown_token_id u32 = 128244 +llama_model_loader: - kv 26: tokenizer.ggml.padding_token_id u32 = 151643 +llama_model_loader: - kv 27: tokenizer.ggml.add_bos_token bool = false +llama_model_loader: - kv 28: tokenizer.chat_template str = {%- if tools %}\n {{- '<|im_start|>... +llama_model_loader: - kv 29: tokenizer.ggml.add_space_prefix bool = false +llama_model_loader: - type f32: 50 tensors +llama_model_loader: - type f16: 143 tensors +print_info: file format = GGUF V3 (latest) +print_info: file type = F16 +print_info: file size = 1.07 GiB (20.70 BPW) +load: printing all EOG tokens: +load: - 151643 ('<|endoftext|>') +load: - 151645 ('<|im_end|>') +load: - 151662 ('<|fim_pad|>') +load: - 151663 ('<|repo_name|>') +load: - 151664 ('<|file_sep|>') +load: special tokens cache size = 106 +load: token to piece cache size = 0.9319 MB +print_info: arch = llama +print_info: vocab_only = 0 +print_info: n_ctx_train = 4096 +print_info: n_embd = 768 +print_info: n_layer = 20 +print_info: n_head = 12 +print_info: n_head_kv = 12 +print_info: n_rot = 64 +print_info: n_swa = 0 +print_info: is_swa_any = 0 +print_info: n_embd_head_k = 64 +print_info: n_embd_head_v = 64 +print_info: n_gqa = 1 +print_info: n_embd_k_gqa = 768 +print_info: n_embd_v_gqa = 768 +print_info: f_norm_eps = 0.0e+00 +print_info: f_norm_rms_eps = 1.0e-06 +print_info: f_clamp_kqv = 0.0e+00 +print_info: f_max_alibi_bias = 0.0e+00 +print_info: f_logit_scale = 0.0e+00 +print_info: f_attn_scale = 0.0e+00 +print_info: n_ff = 3072 +print_info: n_expert = 0 +print_info: n_expert_used = 0 +print_info: causal attn = 1 +print_info: pooling type = 0 +print_info: rope type = 0 +print_info: rope scaling = linear +print_info: freq_base_train = 10000.0 +print_info: freq_scale_train = 1 +print_info: n_ctx_orig_yarn = 4096 +print_info: rope_finetuned = unknown +print_info: model type = ?B +print_info: model params = 444.94 M +print_info: general.name = Tts +print_info: vocab type = BPE +print_info: n_vocab = 158626 +print_info: n_merges = 151387 +print_info: BOS token = 151644 '<|im_start|>' +print_info: EOS token = 151645 '<|im_end|>' +print_info: EOT token = 151645 '<|im_end|>' +print_info: UNK token = 128244 '' +print_info: PAD token = 151643 '<|endoftext|>' +print_info: LF token = 198 'Ċ' +print_info: FIM PRE token = 151659 '<|fim_prefix|>' +print_info: FIM SUF token = 151661 '<|fim_suffix|>' +print_info: FIM MID token = 151660 '<|fim_middle|>' +print_info: FIM PAD token = 151662 '<|fim_pad|>' +print_info: FIM REP token = 151663 '<|repo_name|>' +print_info: FIM SEP token = 151664 '<|file_sep|>' +print_info: EOG token = 151643 '<|endoftext|>' +print_info: EOG token = 151645 '<|im_end|>' +print_info: EOG token = 151662 '<|fim_pad|>' +print_info: EOG token = 151663 '<|repo_name|>' +print_info: EOG token = 151664 '<|file_sep|>' +print_info: max token length = 256 +load_tensors: loading model tensors, this can take a while... (mmap = true) +load_tensors: skipping TTS tensor emb_code.0.weight (size = 20158464 bytes) -- will be loaded separately +load_tensors: skipping TTS tensor emb_text.weight (size = 467140608 bytes) -- will be loaded separately +load_tensors: skipping TTS tensor projector_semantic.linear1.weight (size = 12582912 bytes) -- will be loaded separately +load_tensors: skipping TTS tensor projector_semantic.linear1.bias (size = 3072 bytes) -- will be loaded separately +load_tensors: skipping TTS tensor projector_semantic.linear2.weight (size = 2359296 bytes) -- will be loaded separately +load_tensors: skipping TTS tensor projector_semantic.linear2.bias (size = 3072 bytes) -- will be loaded separately +load_tensors: skipping TTS tensor projector_spk.linear1.weight (size = 6291456 bytes) -- will be loaded separately +load_tensors: skipping TTS tensor projector_spk.linear1.bias (size = 3072 bytes) -- will be loaded separately +load_tensors: skipping TTS tensor projector_spk.linear2.weight (size = 1179648 bytes) -- will be loaded separately +load_tensors: skipping TTS tensor projector_spk.linear2.bias (size = 3072 bytes) -- will be loaded separately +load_tensors: skipping TTS tensor head_code.0.weight (size = 20158464 bytes) -- will be loaded separately +load_tensors: offloading 0 repeating layers to GPU +load_tensors: offloaded 0/21 layers to GPU +load_tensors: CPU_Mapped model buffer size = 592.48 MiB +.............................................................. +llama_init_from_model: model default pooling_type is [0], but [-1] was specified +llama_context: constructing llama_context +llama_context: n_seq_max = 1 +llama_context: n_ctx = 2048 +llama_context: n_ctx_per_seq = 2048 +llama_context: n_batch = 2048 +llama_context: n_ubatch = 512 +llama_context: causal_attn = 1 +llama_context: flash_attn = auto +llama_context: kv_unified = false +llama_context: freq_base = 10000.0 +llama_context: freq_scale = 1 +llama_context: n_ctx_per_seq (2048) < n_ctx_train (4096) -- the full capacity of the model will not be utilized +llama_context: CPU output buffer size = 0.61 MiB +llama_kv_cache: CPU KV buffer size = 120.00 MiB +llama_kv_cache: size = 120.00 MiB ( 2048 cells, 20 layers, 1/1 seqs), K (f16): 60.00 MiB, V (f16): 60.00 MiB +llama_context: Flash Attention was auto, set to enabled +llama_context: Vulkan0 compute buffer size = 30.75 MiB +llama_context: Vulkan_Host compute buffer size = 7.01 MiB +llama_context: graph nodes = 613 +llama_context: graph splits = 216 (with bs=512), 1 (with bs=1) +vision_model_loader: model name: +vision_model_loader: description: image encoder for MiniCPM-V +vision_model_loader: GGUF version: 3 +vision_model_loader: alignment: 32 +vision_model_loader: n_tensors: 455 +vision_model_loader: n_kv: 20 + +vision_ctx: vision using Vulkan0 backend +load_hparams: model_type: 0 +load_hparams: n_embd: 1152 +load_hparams: n_head: 16 +load_hparams: n_ff: 4304 +load_hparams: n_layer: 27 +load_hparams: ffn_op: gelu +load_hparams: projection_dim: 0 + +--- vision hparams --- +load_hparams: image_size: 448 +load_hparams: patch_size: 14 +load_hparams: minicpmv_version: 100045 +load_hparams: proj_scale_factor: 0 +load_hparams: n_wa_pattern: 0 + +load_hparams: model size: 1044.36 MiB +load_hparams: metadata size: 0.16 MiB +load_tensors: ffn up/down are swapped +alloc_compute_meta: Vulkan0 compute buffer size = 100.30 MiB +alloc_compute_meta: CPU compute buffer size = 18.30 MiB +init tts....init t2w....voc_hg2_model: CPU backend using 8 threads +audition_audio_preprocess: Decoded audio - sample_rate=16000, n_samples=32000 +audition_get_mel_filters: Retrieved mel filters from model: 80 mel bins x 201 fft bins +audition_audio_preprocess: Using mel filters - n_mel=80, n_fft=201 +audition_audio_preprocess: Generated 1 mel spectrogram chunk(s) +audition_audio_preprocess: Mel spectrogram ready - n_len=200, n_mel=80, total_size=16000 +build_whisper: Whisper encoder graph built (projector output, pre-pooling) +audition_audio_batch_encode: Audio input data - n_step=200, n_mel=80, total_elements=16000 +audition_audio_batch_encode: Before incrementing iter: input_frames=200, n_tokens=100, current_iter=0, current_total=0, new_total=100, max_tokens=1500 +audition_audio_batch_encode: KV cache iter incremented to 1 (total_tokens=100, max_tokens=1500) +audition_audio_batch_encode: Final output shape: [4096, 20] +audition_audio_batch_encode: Final output: 20 tokens x 4096 dims +encode_image_with_vision_chunks: step 1 of 1 encoded in 1617.01 ms +encode_image_with_vision_chunks: all 1 chunks encoded in 1635.01 ms (grid: 1x1) + +encode_image_with_vision_chunks: image encoded in 1635.01 ms by vision ( 1635.01 ms per chunk, 64 total tokens) +omni_image_embed_make_chunks_with_filename: created 1 vision chunks from C:\Users\zhout\w2\minicpmo_cpp_radeon\fixture_0001.jpg +stream_prefill: prefilled 1 vision chunks (64 tokens each) +audition_audio_preprocess: Decoded audio - sample_rate=16000, n_samples=32000 +audition_get_mel_filters: Retrieved mel filters from model: 80 mel bins x 201 fft bins +audition_audio_preprocess: Using mel filters - n_mel=80, n_fft=201 +audition_audio_preprocess: Generated 1 mel spectrogram chunk(s) +audition_audio_preprocess: Mel spectrogram ready - n_len=200, n_mel=80, total_size=16000 +build_whisper: Whisper encoder graph built (projector output, pre-pooling) +audition_audio_batch_encode: Audio input data - n_step=200, n_mel=80, total_elements=16000 +audition_audio_batch_encode: Before incrementing iter: input_frames=200, n_tokens=100, current_iter=1, current_total=100, new_total=200, max_tokens=1500 +audition_audio_batch_encode: KV cache iter incremented to 2 (total_tokens=200, max_tokens=1500) +audition_audio_batch_encode: Final output shape: [4096, 20] +audition_audio_batch_encode: Final output: 20 tokens x 4096 dims + +[timing] call=0 tokens=28 final=0 token2mel=3244.086ms vocoder=359.413ms total=3603.528ms audio=20160 +[timing] call=1 tokens=28 final=0 token2mel=2583.070ms vocoder=578.836ms total=3161.921ms audio=24000 +[timing] call=2 tokens=28 final=0 token2mel=2720.120ms vocoder=418.546ms total=3138.675ms audio=24000 +[timing] call=3 tokens=28 final=0 token2mel=2702.357ms vocoder=400.267ms total=3102.637ms audio=24000 +[timing] call=4 tokens=28 final=0 token2mel=2831.007ms vocoder=444.991ms total=3276.016ms audio=24000 +Waiting for audio generation to complete... +[timing] call=5 tokens=28 final=0 token2mel=2186.155ms vocoder=415.404ms total=2601.571ms audio=24000 +TTS: chunk file ./tools/omni/output/round_000/tts_wav/tts_output_chunk_0.wav does not exist or is empty +TTS: chunk file ./tools/omni/output/round_000/tts_wav/tts_output_chunk_1.wav does not exist or is empty +TTS: chunk file ./tools/omni/output/round_000/tts_wav/tts_output_chunk_2.wav does not exist or is empty +TTS: chunk file ./tools/omni/output/round_000/tts_wav/tts_output_chunk_3.wav does not exist or is empty +TTS: chunk file ./tools/omni/output/round_000/tts_wav/tts_output_chunk_4.wav does not exist or is empty +TTS: chunk file ./tools/omni/output/round_000/tts_wav/tts_output_chunk_5.wav does not exist or is empty +TTS: chunk file ./tools/omni/output/round_000/tts_wav/tts_output_chunk_6.wav does not exist or is empty +TTS: chunk file ./tools/omni/output/round_000/tts_wav/tts_output_chunk_7.wav does not exist or is empty +TTS: chunk file ./tools/omni/output/round_000/tts_wav/tts_output_chunk_8.wav does not exist or is empty +TTS: chunk file ./tools/omni/output/round_000/tts_wav/tts_output_chunk_9.wav does not exist or is empty +TTS: chunk file ./tools/omni/output/round_000/tts_wav/tts_output_chunk_10.wav does not exist or is empty +TTS: chunk file ./tools/omni/output/round_000/tts_wav/tts_output_chunk_11.wav does not exist or is empty +TTS: chunk file ./tools/omni/output/round_000/tts_wav/tts_output_chunk_12.wav does not exist or is empty +TTS: chunk file ./tools/omni/output/round_000/tts_wav/tts_output_chunk_13.wav does not exist or is empty +TTS: no valid WAV files to merge +[timing] call=6 tokens=28 final=0 token2mel=2191.143ms vocoder=376.579ms total=2567.733ms audio=24000 +[timing] call=7 tokens=28 final=0 token2mel=1873.429ms vocoder=378.172ms total=2251.612ms audio=24000 +[timing] call=8 tokens=28 final=0 token2mel=1865.689ms vocoder=383.563ms total=2249.263ms audio=24000 +[timing] call=9 tokens=28 final=0 token2mel=1883.567ms vocoder=370.476ms total=2254.054ms audio=24000 +[timing] call=10 tokens=28 final=0 token2mel=1883.619ms vocoder=378.244ms total=2261.873ms audio=24000 +[timing] call=11 tokens=28 final=0 token2mel=1881.421ms vocoder=377.737ms total=2259.169ms audio=24000 +[timing] call=12 tokens=28 final=0 token2mel=1882.963ms vocoder=379.295ms total=2262.267ms audio=24000 +[timing] call=13 tokens=28 final=0 token2mel=1866.974ms vocoder=378.789ms total=2245.774ms audio=24000 +[timing] call=14 tokens=28 final=0 token2mel=1862.498ms vocoder=381.036ms total=2243.544ms audio=24000 +[timing] call=15 tokens=28 final=0 token2mel=1862.182ms vocoder=371.245ms total=2233.437ms audio=24000 +[timing] call=16 tokens=28 final=0 token2mel=1869.784ms vocoder=378.069ms total=2247.863ms audio=24000 +[timing] call=17 tokens=28 final=0 token2mel=1907.270ms vocoder=376.247ms total=2283.528ms audio=24000 +[timing] call=18 tokens=28 final=0 token2mel=1891.931ms vocoder=390.200ms total=2282.142ms audio=24000 +[timing] call=19 tokens=28 final=0 token2mel=1876.856ms vocoder=373.099ms total=2249.966ms audio=24000 +[timing] call=20 tokens=28 final=0 token2mel=1881.694ms vocoder=376.436ms total=2258.141ms audio=24000 +[timing] call=21 tokens=28 final=0 token2mel=1877.034ms vocoder=383.119ms total=2260.163ms audio=24000 +[timing] call=22 tokens=28 final=0 token2mel=1873.869ms vocoder=377.816ms total=2251.696ms audio=24000 +[timing] call=23 tokens=28 final=0 token2mel=1891.518ms vocoder=377.053ms total=2268.581ms audio=24000 +[timing] call=24 tokens=28 final=0 token2mel=1886.656ms vocoder=376.669ms total=2263.336ms audio=24000 +[timing] call=25 tokens=28 final=0 token2mel=1885.998ms vocoder=369.118ms total=2255.126ms audio=24000 +[timing] call=26 tokens=28 final=0 token2mel=1876.853ms vocoder=381.546ms total=2258.409ms audio=24000 +[timing] call=27 tokens=28 final=0 token2mel=1872.564ms vocoder=377.462ms total=2250.037ms audio=24000 +[timing] call=28 tokens=28 final=0 token2mel=1884.822ms vocoder=375.263ms total=2260.095ms audio=24000 +[timing] call=29 tokens=28 final=0 token2mel=1867.917ms vocoder=383.469ms total=2251.396ms audio=24000 +[timing] call=30 tokens=28 final=0 token2mel=1878.216ms vocoder=378.829ms total=2257.056ms audio=24000 +[timing] call=31 tokens=28 final=0 token2mel=1863.766ms vocoder=378.836ms total=2242.612ms audio=24000 +[timing] call=32 tokens=28 final=0 token2mel=1896.603ms vocoder=372.658ms total=2269.271ms audio=24000 +[timing] call=33 tokens=28 final=0 token2mel=1866.058ms vocoder=386.570ms total=2252.641ms audio=24000 +[timing] call=34 tokens=28 final=0 token2mel=1879.893ms vocoder=370.639ms total=2250.543ms audio=24000 +[timing] call=35 tokens=28 final=0 token2mel=1871.253ms vocoder=386.568ms total=2257.831ms audio=24000 +[timing] call=36 tokens=28 final=0 token2mel=1890.302ms vocoder=376.857ms total=2267.171ms audio=24000 +[timing] call=37 tokens=28 final=0 token2mel=1866.266ms vocoder=386.295ms total=2252.571ms audio=24000 +[timing] call=38 tokens=28 final=0 token2mel=1882.129ms vocoder=370.886ms total=2253.025ms audio=24000 +[timing] call=39 tokens=28 final=0 token2mel=1870.137ms vocoder=382.574ms total=2252.722ms audio=24000 +[timing] call=40 tokens=28 final=0 token2mel=1878.943ms vocoder=382.292ms total=2261.245ms audio=24000 +[timing] call=41 tokens=24 final=1 token2mel=1899.809ms vocoder=365.195ms total=2265.014ms audio=26880 +Audio generation completed. +llama_perf_context_print: load time = 6915.94 ms +llama_perf_context_print: prompt eval time = 4496.81 ms / 171 tokens ( 26.30 ms per token, 38.03 tokens per second) +llama_perf_context_print: eval time = 11234.37 ms / 130 runs ( 86.42 ms per token, 11.57 tokens per second) +llama_perf_context_print: total time = 108736.83 ms / 301 tokens +llama_perf_context_print: graphs reused = 130 +Token2Wav (C++): session released diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/full.stdout.log b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/full.stdout.log new file mode 100644 index 000000000..aa66bfdce --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/full.stdout.log @@ -0,0 +1,528 @@ +=== Model Paths === + Base dir: C:\Users\zhout\w2\models\MiniCPM-o-4_5-gguf + LLM: C:\Users\zhout\w2\models\MiniCPM-o-4_5-gguf\MiniCPM-o-4_5-Q4_K_M.gguf [OK] + Vision: C:\Users\zhout\w2\models\MiniCPM-o-4_5-gguf/vision/MiniCPM-o-4_5-vision-F16.gguf [OK] + Audio: C:\Users\zhout\w2\models\MiniCPM-o-4_5-gguf/audio/MiniCPM-o-4_5-audio-F16.gguf [OK] + TTS: C:\Users\zhout\w2\models\MiniCPM-o-4_5-gguf/tts/MiniCPM-o-4_5-tts-F16.gguf [OK] + Projector: C:\Users\zhout\w2\models\MiniCPM-o-4_5-gguf/tts/MiniCPM-o-4_5-projector-F16.gguf [OK] +=================== +=== Initializing Omni Context === + Media type: 2 (omni: audio+vision) + TTS enabled: yes + Context size: 2048 + GPU layers: 99 + Token2Wav device: cpu + Vision backend: metal + TTS bin dir: C:\Users\zhout\w2\models\MiniCPM-o-4_5-gguf/tts + Ref audio: C:\Users\zhout\w2\minicpmo_cpp_radeon\default_ref_audio.wav +22:28:06.598 === omni_init start +22:28:06.598 media_type = 2, duplex_mode = 0, base_output_dir = ./tools/omni/output +22:28:06.598 === omni_init: loading new LLM model +22:28:09.715 === omni_init: loading TTS model +22:28:09.715 TTS model: loading with n_gpu_layers=0 +22:28:10.056 TTS sampler: temp=0.80, top_p=0.85, top_k=25, rep_penalty=1.05 +22:28:10.056 TTS: loading weights from GGUF (emb_code, emb_text, projector_semantic, head_code)... +22:28:10.564 TTS: head_code shape: dim0=6562, dim1=768, will transpose to [6562, 768] +22:28:10.573 TTS: head_code loaded, verifying first few values: +22:28:10.573 head_code_weight[0] = 0.01361084 (expect ~0.01385498) +22:28:10.573 head_code_weight[1] = -0.01660156 (expect ~-0.01647949) +22:28:10.573 head_code_weight[768] = 0.04101562 (this is weight[1, 0], expect ~0.04150391) +22:28:10.668 TTS: weights loaded successfully +22:28:10.668 Projector: loading from C:\Users\zhout\w2\models\MiniCPM-o-4_5-gguf/tts/MiniCPM-o-4_5-projector-F16.gguf +22:28:10.677 Projector: loaded successfully +22:28:10.677 === omni_init: loading APM model +22:28:10.953 APM: init from C:\Users\zhout\w2\models\MiniCPM-o-4_5-gguf/audio/MiniCPM-o-4_5-audio-F16.gguf +22:28:11.918 Token2Wav: found models in C:\Users\zhout\w2\models\MiniCPM-o-4_5-gguf/token2wav-gguf +22:28:11.919 Token2Wav: all model files found, initializing session... +22:28:11.919 Token2Wav: non-CUDA backend, vocoder using CPU for better performance +22:28:11.919 Token2Wav: using prompt_cache from C:\Users\zhout\w2\models\MiniCPM-o-4_5-gguf/token2wav-gguf/prompt_cache.gguf +22:28:12.286 Token2Wav: initialized successfully +22:28:12.286 Python T2W: script_dir=./tools/omni/pyt2w, model_dir=./tools/omni/pyt2w/token2wav +22:28:12.286 Token2Wav: 使用 C++ 实现 +22:28:12.286 === omni_init success: ctx_llama = 00000220286afaa0 +=== Running test case === + Audio prefix: C:\Users\zhout\w2\minicpmo_cpp_radeon\fixture_ + Count: 2 +22:28:12.286 stream_prefill: n_past = 0 + voice_clone_prompt = <|im_start|>system +模仿音频样本的音色并生成新的内容。 +<|audio_start|> + assistant_prompt = <|audio_end|>你的任务是用这种声音模式来当一个助手。请认真、高质量地回复用户的问题。请用高自然度的方式和用户聊天。<|im_end|> +<|im_start|>user + +22:28:12.286 system prompt ref_audio: C:\Users\zhout\w2\minicpmo_cpp_radeon\fixture_0000.wav +22:28:13.326 system prompt ref_audio embedding: n_pos=20 +22:28:13.997 🔒 n_keep 设置为 72 (system prompt tokens),这部分永远不会被滑动窗口删除 +22:28:13.997 stream_prefill(index=0): system prompt 初始化完成,ref_audio 已在其中 prefill +22:28:13.997 [SW] system_prompt registered: preserve_length=72 (will be protected from sliding) +22:28:13.997 n_past = 72 +22:28:13.997 + +c++ finish stream_prefill(index=0). n_past=72, n_keep=72, n_ctx=2048 + +prefill 0 (audio) : 1.71101 s +22:28:16.166 stream_prefill(index=1): processing user audio: C:\Users\zhout\w2\minicpmo_cpp_radeon\fixture_0001.wav +22:28:16.335 stream_prefill(index=1): user audio embedding: n_pos=20 +22:28:16.627 + +c++ finish stream_prefill(index=1). n_past=161, n_keep=72, n_ctx=2048 + +prefill 1 (audio+vision) : 2.62999 s +22:28:16.627 📍 stream_decode 开始: n_past=161, n_keep=72, n_ctx=2048, duplex_mode=0 +22:28:16.627 stream_decode: create tts thread (simplex mode) +22:28:16.627 stream_decode: create t2w thread +22:28:16.627 wait prefill done +22:28:16.628 📍 [单工TTS] 添加 assistant prompt: "<|im_end|> +<|im_start|>assistant + + + + +<|tts_bos|>", n_past=161 +22:28:16.628 T2W thread (C++) started +22:28:16.631 TTS: 创建单工模式输出目录: ./tools/omni/output/round_000 +22:28:16.632 TTS thread started +22:28:16.783 📍 [单工TTS] assistant prompt 完成, n_past=171 +22:28:16.784 LLM decode: max_tgt_len = 2048, n_predict = -1, n_ctx = 2048 +22:28:17.359 LLM->TTS: text='你知道吗,有时候啊,我也会想啊', n_tokens=10, hidden_size=40960, n_embd=4096, token_ids=[107733 101037 3837 104854 103924 3837 35946 103977 99172 103924] +22:28:17.359 TTS<-LLM: chunk_idx=0, text='你知道吗,有时候啊,我也会想啊', n_tokens=10, hidden_size=40960, token_ids=[107733 101037 3837 104854 103924 3837 35946 103977 99172 103924] +22:28:17.359 TTS: after queue pop - speek_done=0, llm_finish=0, llm_text.empty=0, token_ids.size=10 +22:28:17.359 TTS: before empty check - response.empty=0, response='你知道吗,有时候啊,我也会想啊', llm_finish=0 +22:28:17.359 TTS: DEBUG before has_llm_data - token_ids.size=10, hidden_states.size=40960, n_embd=4096 +22:28:17.359 TTS: has_llm_data=1, token_ids=10, hidden_states=40960, n_embd=4096, llm_finish=0 +22:28:17.360 TTS: n_tokens_orig=10, n_tokens_filtered=10 (filtered 0 special tokens) +22:28:17.402 TTS: saved merged embeddings (text) to ./tools/omni/output/round_000/llm_debug/chunk_0/merged_embeddings.txt +22:28:17.402 TTS Simplex: generating audio tokens for chunk 0 (n_tokens=10, tts_n_embd=768) +22:28:17.402 TTS Simplex: 在 prefill 前添加 audio_bos (chunk_idx=0, new_size=11) +22:28:17.402 TTS Simplex: first chunk - cleared KV cache +22:28:17.402 TTS Simplex: first chunk - cleared tts_all_generated_tokens and tts_token_buffer +22:28:17.479 TTS Simplex: prefill completed, n_past_tts=11 +22:28:17.479 TTS Simplex: sampler created +22:28:17.479 TTS simplex: is_audio_bos=true (first audio token) +22:28:17.524 TTS Simplex Phase1: token 1/500: rel_id=1571 +22:28:17.545 TTS Simplex Phase1: token 2/500: rel_id=6486 +22:28:17.564 TTS Simplex Phase1: token 3/500: rel_id=4299 +22:28:17.583 TTS Simplex Phase1: token 4/500: rel_id=4299 +22:28:17.603 TTS Simplex Phase1: token 5/500: rel_id=4299 +22:28:17.992 TTS Simplex Phase1: yield 25 tokens 到 T2W (step 25, buffer=25) +22:28:17.992 TTS Simplex Phase1: token 25/500: rel_id=4299 +22:28:17.992 T2W线程(C++): 轮次切换 (-1 -> 0),更新输出目录 +22:28:17.992 T2W线程(C++): 新输出目录 ./tools/omni/output/round_000/tts_wav +22:28:18.074 LLM->TTS: text=',生活真的挺有意思的。每天早上醒来,', n_tokens=10, hidden_size=40960, n_embd=4096, token_ids=[3837 99424 100672 101174 113062 1773 101922 105083 109877 3837] +22:28:18.524 TTS Simplex Phase1: yield 25 tokens 到 T2W (step 50, buffer=25) +22:28:18.524 TTS Simplex Phase1: token 50/500: rel_id=1703 +22:28:18.595 TTS Simplex Phase1: EOS token at step 54 +22:28:18.595 TTS Simplex: chunk 结束,tts_token_buffer 剩余 3 tokens (保留等下一个 chunk) +22:28:18.595 TTS Simplex: generated 53 audio tokens for chunk 0 +22:28:18.595 TTS Simplex: chunk 0 first tokens: [1571 6486 4299 4299 4299 ], last tokens: [731 1703 1951 2112 719 ] +22:28:18.595 TTS Simplex: updated tts_n_past_accumulated=64, total_generated_tokens=53 +22:28:18.596 TTS<-LLM: chunk_idx=1, text=',生活真的挺有意思的。每天早上醒来,', n_tokens=10, hidden_size=40960, token_ids=[3837 99424 100672 101174 113062 1773 101922 105083 109877 3837] +22:28:18.596 TTS: after queue pop - speek_done=0, llm_finish=0, llm_text.empty=0, token_ids.size=10 +22:28:18.596 TTS: before empty check - response.empty=0, response=',生活真的挺有意思的。每天早上醒æ�', llm_finish=0 +22:28:18.596 TTS: DEBUG before has_llm_data - token_ids.size=10, hidden_states.size=40960, n_embd=4096 +22:28:18.596 TTS: has_llm_data=1, token_ids=10, hidden_states=40960, n_embd=4096, llm_finish=0 +22:28:18.596 TTS: n_tokens_orig=10, n_tokens_filtered=10 (filtered 0 special tokens) +22:28:18.630 TTS: saved merged embeddings (text) to ./tools/omni/output/round_000/llm_debug/chunk_1/merged_embeddings.txt +22:28:18.630 TTS Simplex: generating audio tokens for chunk 1 (n_tokens=10, tts_n_embd=768) +22:28:18.630 TTS Simplex: 在 prefill 前添加 audio_bos (chunk_idx=1, new_size=11) +22:28:18.630 TTS Simplex: chunk 1 - keeping KV cache, n_past_tts=64 +22:28:18.665 TTS Simplex: prefill completed, n_past_tts=75 +22:28:18.665 TTS Simplex: sampler created +22:28:18.696 TTS Simplex Phase1: token 1/500: rel_id=728 +22:28:18.719 TTS Simplex Phase1: token 2/500: rel_id=4613 +22:28:18.740 TTS Simplex Phase1: token 3/500: rel_id=4803 +22:28:18.763 TTS Simplex Phase1: token 4/500: rel_id=4551 +22:28:18.781 TTS Simplex Phase1: token 5/500: rel_id=4466 +22:28:18.849 LLM->TTS: text='太阳照在脸上,就觉得这一天充满了可能。', n_tokens=10, hidden_size=40960, n_embd=4096, token_ids=[101281 99331 18493 104488 3837 115119 112480 106890 87267 1773] +22:28:19.156 TTS Simplex Phase1: yield 25 tokens 到 T2W (step 22, buffer=25) +22:28:19.226 TTS Simplex Phase1: token 25/500: rel_id=4299 +22:28:19.617 LLM->TTS: text='不管前一天发生啥事,只要新的一天来了', n_tokens=10, hidden_size=40960, n_embd=4096, token_ids=[101260 115982 99726 101417 29826 3837 100671 118580 35727 101161] +22:28:19.667 TTS Simplex Phase1: yield 25 tokens 到 T2W (step 47, buffer=25) +22:28:19.700 TTS Simplex Phase1: token 50/500: rel_id=219 +22:28:19.953 TTS Simplex Phase1: yield 25 tokens 到 T2W (step 72, buffer=25) +22:28:19.988 TTS Simplex Phase1: token 75/500: rel_id=4299 +22:28:20.178 TTS Simplex Phase1: EOS token at step 92 +22:28:20.178 TTS Simplex: chunk 结束,tts_token_buffer 剩余 19 tokens (保留等下一个 chunk) +22:28:20.178 TTS Simplex: generated 91 audio tokens for chunk 1 +22:28:20.178 TTS Simplex: chunk 1 first tokens: [728 4613 4803 4551 4466 ], last tokens: [870 2726 4489 5205 6387 ] +22:28:20.178 TTS Simplex: updated tts_n_past_accumulated=166, total_generated_tokens=144 +22:28:20.179 TTS<-LLM: chunk_idx=2, text='太阳照在脸上,就觉得这一天充满了可能。', n_tokens=10, hidden_size=40960, token_ids=[101281 99331 18493 104488 3837 115119 112480 106890 87267 1773] +22:28:20.179 TTS: after queue pop - speek_done=0, llm_finish=0, llm_text.empty=0, token_ids.size=10 +22:28:20.179 TTS: before empty check - response.empty=0, response='太阳照在脸上,就觉得这一天充满了å�', llm_finish=0 +22:28:20.179 TTS: DEBUG before has_llm_data - token_ids.size=10, hidden_states.size=40960, n_embd=4096 +22:28:20.179 TTS: has_llm_data=1, token_ids=10, hidden_states=40960, n_embd=4096, llm_finish=0 +22:28:20.179 TTS: n_tokens_orig=10, n_tokens_filtered=10 (filtered 0 special tokens) +22:28:20.213 TTS: saved merged embeddings (text) to ./tools/omni/output/round_000/llm_debug/chunk_2/merged_embeddings.txt +22:28:20.213 TTS Simplex: generating audio tokens for chunk 2 (n_tokens=10, tts_n_embd=768) +22:28:20.213 TTS Simplex: 在 prefill 前添加 audio_bos (chunk_idx=2, new_size=11) +22:28:20.213 TTS Simplex: chunk 2 - keeping KV cache, n_past_tts=166 +22:28:20.247 TTS Simplex: prefill completed, n_past_tts=177 +22:28:20.247 TTS Simplex: sampler created +22:28:20.268 TTS Simplex Phase1: token 1/500: rel_id=2502 +22:28:20.293 TTS Simplex Phase1: token 2/500: rel_id=974 +22:28:20.325 TTS Simplex Phase1: token 3/500: rel_id=1163 +22:28:20.350 TTS Simplex Phase1: token 4/500: rel_id=5970 +22:28:20.378 TTS Simplex Phase1: token 5/500: rel_id=957 +22:28:20.405 TTS Simplex Phase1: yield 25 tokens 到 T2W (step 6, buffer=25) +22:28:20.938 TTS Simplex Phase1: token 25/500: rel_id=2112 +22:28:21.011 LLM->TTS: text=',就有机会重新开始。你有没有觉得,', n_tokens=10, hidden_size=40960, n_embd=4096, token_ids=[3837 104435 101135 70361 55286 1773 56568 104710 99801 3837] +22:28:21.056 TTS Simplex Phase1: yield 25 tokens 到 T2W (step 31, buffer=25) +22:28:21.326 TTS Simplex Phase1: token 50/500: rel_id=5914 +22:28:21.408 TTS Simplex Phase1: yield 25 tokens 到 T2W (step 56, buffer=25) +22:28:21.597 🎉 首响时间 (First Audio Response): 4969ms +22:28:21.597 T2W线程: wav_0.wav | 0.84s audio | 3603.6ms inference | RTF=4.29 | t=4969ms +22:28:21.674 TTS Simplex Phase1: token 75/500: rel_id=4593 +22:28:21.745 TTS Simplex Phase1: yield 25 tokens 到 T2W (step 81, buffer=25) +22:28:21.841 TTS Simplex Phase1: EOS token at step 90 +22:28:21.841 TTS Simplex: chunk 结束,tts_token_buffer 剩余 8 tokens (保留等下一个 chunk) +22:28:21.841 TTS Simplex: generated 89 audio tokens for chunk 2 +22:28:21.841 TTS Simplex: chunk 2 first tokens: [2502 974 1163 5970 957 ], last tokens: [4382 5937 2130 6051 1539 ] +22:28:21.841 TTS Simplex: updated tts_n_past_accumulated=266, total_generated_tokens=233 +22:28:21.843 TTS<-LLM: chunk_idx=3, text='不管前一天发生啥事,只要新的一天来了', n_tokens=10, hidden_size=40960, token_ids=[101260 115982 99726 101417 29826 3837 100671 118580 35727 101161] +22:28:21.843 TTS: after queue pop - speek_done=0, llm_finish=0, llm_text.empty=0, token_ids.size=10 +22:28:21.843 TTS: before empty check - response.empty=0, response='不管前一天发生啥事,只要新的一天æ�', llm_finish=0 +22:28:21.843 TTS: DEBUG before has_llm_data - token_ids.size=10, hidden_states.size=40960, n_embd=4096 +22:28:21.843 TTS: has_llm_data=1, token_ids=10, hidden_states=40960, n_embd=4096, llm_finish=0 +22:28:21.843 TTS: n_tokens_orig=10, n_tokens_filtered=10 (filtered 0 special tokens) +22:28:21.877 TTS: saved merged embeddings (text) to ./tools/omni/output/round_000/llm_debug/chunk_3/merged_embeddings.txt +22:28:21.877 TTS Simplex: generating audio tokens for chunk 3 (n_tokens=10, tts_n_embd=768) +22:28:21.877 TTS Simplex: 在 prefill 前添加 audio_bos (chunk_idx=3, new_size=11) +22:28:21.877 TTS Simplex: chunk 3 - keeping KV cache, n_past_tts=266 +22:28:21.913 TTS Simplex: prefill completed, n_past_tts=277 +22:28:21.913 TTS Simplex: sampler created +22:28:21.936 TTS Simplex Phase1: token 1/500: rel_id=2676 +22:28:21.959 TTS Simplex Phase1: token 2/500: rel_id=4981 +22:28:21.981 TTS Simplex Phase1: token 3/500: rel_id=5065 +22:28:22.001 TTS Simplex Phase1: token 4/500: rel_id=5775 +22:28:22.026 TTS Simplex Phase1: token 5/500: rel_id=6501 +22:28:22.300 TTS Simplex Phase1: yield 25 tokens 到 T2W (step 17, buffer=25) +22:28:22.482 TTS Simplex Phase1: token 25/500: rel_id=6486 +22:28:22.597 LLM->TTS: text='就算遇到再难的事,只要咬咬牙', n_tokens=10, hidden_size=40960, n_embd=4096, token_ids=[104501 104011 87256 99349 104140 3837 100671 105118 105118 100446] +22:28:22.738 TTS Simplex Phase1: yield 25 tokens 到 T2W (step 42, buffer=25) +22:28:22.838 TTS Simplex Phase1: token 50/500: rel_id=2274 +22:28:23.048 TTS Simplex Phase1: yield 25 tokens 到 T2W (step 67, buffer=25) +22:28:23.146 TTS Simplex Phase1: token 75/500: rel_id=1648 +22:28:23.335 TTS Simplex Phase1: EOS token at step 91 +22:28:23.335 TTS Simplex: chunk 结束,tts_token_buffer 剩余 23 tokens (保留等下一个 chunk) +22:28:23.336 TTS Simplex: generated 90 audio tokens for chunk 3 +22:28:23.336 TTS Simplex: chunk 3 first tokens: [2676 4981 5065 5775 6501 ], last tokens: [5323 1132 476 974 2756 ] +22:28:23.336 TTS Simplex: updated tts_n_past_accumulated=367, total_generated_tokens=323 +22:28:23.336 TTS<-LLM: chunk_idx=4, text=',就有机会重新开始。你有没有觉得,', n_tokens=10, hidden_size=40960, token_ids=[3837 104435 101135 70361 55286 1773 56568 104710 99801 3837] +22:28:23.336 TTS: after queue pop - speek_done=0, llm_finish=0, llm_text.empty=0, token_ids.size=10 +22:28:23.337 TTS: before empty check - response.empty=0, response=',就有机会重新开始。你有没有觉得ï¼', llm_finish=0 +22:28:23.337 TTS: DEBUG before has_llm_data - token_ids.size=10, hidden_states.size=40960, n_embd=4096 +22:28:23.337 TTS: has_llm_data=1, token_ids=10, hidden_states=40960, n_embd=4096, llm_finish=0 +22:28:23.337 TTS: n_tokens_orig=10, n_tokens_filtered=10 (filtered 0 special tokens) +22:28:23.368 TTS: saved merged embeddings (text) to ./tools/omni/output/round_000/llm_debug/chunk_4/merged_embeddings.txt +22:28:23.368 TTS Simplex: generating audio tokens for chunk 4 (n_tokens=10, tts_n_embd=768) +22:28:23.368 TTS Simplex: 在 prefill 前添加 audio_bos (chunk_idx=4, new_size=11) +22:28:23.368 TTS Simplex: chunk 4 - keeping KV cache, n_past_tts=367 +22:28:23.397 TTS Simplex: prefill completed, n_past_tts=378 +22:28:23.397 TTS Simplex: sampler created +22:28:23.409 TTS Simplex Phase1: token 1/500: rel_id=4441 +22:28:23.422 TTS Simplex Phase1: yield 25 tokens 到 T2W (step 2, buffer=25) +22:28:23.422 TTS Simplex Phase1: token 2/500: rel_id=6455 +22:28:23.436 TTS Simplex Phase1: token 3/500: rel_id=2229 +22:28:23.450 TTS Simplex Phase1: token 4/500: rel_id=4803 +22:28:23.465 TTS Simplex Phase1: token 5/500: rel_id=6261 +22:28:23.755 TTS Simplex Phase1: token 25/500: rel_id=1944 +22:28:23.783 TTS Simplex Phase1: yield 25 tokens 到 T2W (step 27, buffer=25) +22:28:24.439 TTS Simplex Phase1: token 50/500: rel_id=5325 +22:28:24.513 TTS Simplex Phase1: yield 25 tokens 到 T2W (step 52, buffer=25) +22:28:24.695 LLM->TTS: text='挺过去,回头看的时候,反而觉得挺酷', n_tokens=10, hidden_size=40960, n_embd=4096, token_ids=[101174 100688 3837 115204 103920 3837 104503 99801 101174 102382] +22:28:24.760 T2W线程: wav_1.wav | 1.00s audio | 3161.9ms inference | RTF=3.16 | t=8132ms +22:28:24.933 TTS Simplex Phase1: token 75/500: rel_id=6486 +22:28:24.957 TTS Simplex Phase1: yield 25 tokens 到 T2W (step 77, buffer=25) +22:28:25.045 TTS Simplex Phase1: EOS token at step 85 +22:28:25.045 TTS Simplex: chunk 结束,tts_token_buffer 剩余 7 tokens (保留等下一个 chunk) +22:28:25.045 TTS Simplex: generated 84 audio tokens for chunk 4 +22:28:25.045 TTS Simplex: chunk 4 first tokens: [4441 6455 2229 4803 6261 ], last tokens: [4299 4299 1726 5614 4831 ] +22:28:25.045 TTS Simplex: updated tts_n_past_accumulated=462, total_generated_tokens=407 +22:28:25.047 TTS<-LLM: chunk_idx=5, text='就算遇到再难的事,只要咬咬牙', n_tokens=10, hidden_size=40960, token_ids=[104501 104011 87256 99349 104140 3837 100671 105118 105118 100446] +22:28:25.047 TTS: after queue pop - speek_done=0, llm_finish=0, llm_text.empty=0, token_ids.size=10 +22:28:25.047 TTS: before empty check - response.empty=0, response='就算遇到再难的事,只要咬咬牙', llm_finish=0 +22:28:25.047 TTS: DEBUG before has_llm_data - token_ids.size=10, hidden_states.size=40960, n_embd=4096 +22:28:25.047 TTS: has_llm_data=1, token_ids=10, hidden_states=40960, n_embd=4096, llm_finish=0 +22:28:25.047 TTS: n_tokens_orig=10, n_tokens_filtered=10 (filtered 0 special tokens) +22:28:25.081 TTS: saved merged embeddings (text) to ./tools/omni/output/round_000/llm_debug/chunk_5/merged_embeddings.txt +22:28:25.081 TTS Simplex: generating audio tokens for chunk 5 (n_tokens=10, tts_n_embd=768) +22:28:25.081 TTS Simplex: 在 prefill 前添加 audio_bos (chunk_idx=5, new_size=11) +22:28:25.081 TTS Simplex: chunk 5 - keeping KV cache, n_past_tts=462 +22:28:25.122 TTS Simplex: prefill completed, n_past_tts=473 +22:28:25.122 TTS Simplex: sampler created +22:28:25.146 TTS Simplex Phase1: token 1/500: rel_id=2306 +22:28:25.172 TTS Simplex Phase1: token 2/500: rel_id=667 +22:28:25.197 TTS Simplex Phase1: token 3/500: rel_id=2125 +22:28:25.221 TTS Simplex Phase1: token 4/500: rel_id=4580 +22:28:25.244 TTS Simplex Phase1: token 5/500: rel_id=4520 +22:28:25.559 TTS Simplex Phase1: yield 25 tokens 到 T2W (step 18, buffer=25) +22:28:25.737 TTS Simplex Phase1: token 25/500: rel_id=4678 +22:28:25.817 LLM->TTS: text='的?其实啊,每个人心里都藏着一个小', n_tokens=10, hidden_size=40960, n_embd=4096, token_ids=[9370 11319 101045 103924 3837 101587 101998 71268 114880 107861] +22:28:26.001 TTS Simplex Phase1: yield 25 tokens 到 T2W (step 43, buffer=25) +22:28:26.089 TTS Simplex Phase1: token 50/500: rel_id=5 +22:28:26.318 TTS Simplex Phase1: yield 25 tokens 到 T2W (step 68, buffer=25) +22:28:26.345 TTS Simplex Phase1: EOS token at step 71 +22:28:26.345 TTS Simplex: chunk 结束,tts_token_buffer 剩余 2 tokens (保留等下一个 chunk) +22:28:26.345 TTS Simplex: generated 70 audio tokens for chunk 5 +22:28:26.345 TTS Simplex: chunk 5 first tokens: [2306 667 2125 4580 4520 ], last tokens: [5241 1862 1376 2357 6401 ] +22:28:26.345 TTS Simplex: updated tts_n_past_accumulated=543, total_generated_tokens=477 +22:28:26.346 TTS<-LLM: chunk_idx=6, text='挺过去,回头看的时候,反而觉得挺酷', n_tokens=10, hidden_size=40960, token_ids=[101174 100688 3837 115204 103920 3837 104503 99801 101174 102382] +22:28:26.346 TTS: after queue pop - speek_done=0, llm_finish=0, llm_text.empty=0, token_ids.size=10 +22:28:26.346 TTS: before empty check - response.empty=0, response='挺过去,回头看的时候,反而觉得挺é…', llm_finish=0 +22:28:26.346 TTS: DEBUG before has_llm_data - token_ids.size=10, hidden_states.size=40960, n_embd=4096 +22:28:26.346 TTS: has_llm_data=1, token_ids=10, hidden_states=40960, n_embd=4096, llm_finish=0 +22:28:26.346 TTS: n_tokens_orig=10, n_tokens_filtered=10 (filtered 0 special tokens) +22:28:26.390 TTS: saved merged embeddings (text) to ./tools/omni/output/round_000/llm_debug/chunk_6/merged_embeddings.txt +22:28:26.390 TTS Simplex: generating audio tokens for chunk 6 (n_tokens=10, tts_n_embd=768) +22:28:26.390 TTS Simplex: 在 prefill 前添加 audio_bos (chunk_idx=6, new_size=11) +22:28:26.390 TTS Simplex: chunk 6 - keeping KV cache, n_past_tts=543 +22:28:26.433 TTS Simplex: prefill completed, n_past_tts=554 +22:28:26.433 TTS Simplex: sampler created +22:28:26.457 TTS Simplex Phase1: token 1/500: rel_id=2591 +22:28:26.482 TTS Simplex Phase1: token 2/500: rel_id=566 +22:28:26.504 TTS Simplex Phase1: token 3/500: rel_id=974 +22:28:26.534 TTS Simplex Phase1: token 4/500: rel_id=4571 +22:28:26.558 TTS Simplex Phase1: token 5/500: rel_id=4579 +22:28:27.086 TTS Simplex Phase1: yield 25 tokens 到 T2W (step 23, buffer=25) +22:28:27.152 TTS Simplex Phase1: token 25/500: rel_id=4921 +22:28:27.154 LLM->TTS: text='宇宙,里面装着勇气、梦想和一点点', n_tokens=10, hidden_size=40960, n_embd=4096, token_ids=[105339 3837 100420 98641 99164 106860 5373 102294 33108 107342] +22:28:27.499 TTS Simplex Phase1: yield 25 tokens 到 T2W (step 48, buffer=25) +22:28:27.530 TTS Simplex Phase1: token 50/500: rel_id=0 +22:28:27.898 TTS Simplex Phase1: yield 25 tokens 到 T2W (step 73, buffer=25) +22:28:27.900 T2W线程: wav_2.wav | 1.00s audio | 3138.7ms inference | RTF=3.14 | t=11272ms +22:28:27.922 TTS Simplex Phase1: token 75/500: rel_id=1431 +22:28:27.989 TTS Simplex Phase1: EOS token at step 81 +22:28:27.989 TTS Simplex: chunk 结束,tts_token_buffer 剩余 7 tokens (保留等下一个 chunk) +22:28:27.989 TTS Simplex: generated 80 audio tokens for chunk 6 +22:28:27.989 TTS Simplex: chunk 6 first tokens: [2591 566 974 4571 4579 ], last tokens: [1055 1460 1625 1649 5332 ] +22:28:27.989 TTS Simplex: updated tts_n_past_accumulated=634, total_generated_tokens=557 +22:28:27.989 TTS<-LLM: chunk_idx=7, text='的?其实啊,每个人心里都藏着一个小', n_tokens=10, hidden_size=40960, token_ids=[9370 11319 101045 103924 3837 101587 101998 71268 114880 107861] +22:28:27.989 TTS: after queue pop - speek_done=0, llm_finish=0, llm_text.empty=0, token_ids.size=10 +22:28:27.989 TTS: before empty check - response.empty=0, response='的?其实啊,每个人心里都藏着一个å°', llm_finish=0 +22:28:27.989 TTS: DEBUG before has_llm_data - token_ids.size=10, hidden_states.size=40960, n_embd=4096 +22:28:27.989 TTS: has_llm_data=1, token_ids=10, hidden_states=40960, n_embd=4096, llm_finish=0 +22:28:27.990 TTS: n_tokens_orig=10, n_tokens_filtered=10 (filtered 0 special tokens) +22:28:28.021 TTS: saved merged embeddings (text) to ./tools/omni/output/round_000/llm_debug/chunk_7/merged_embeddings.txt +22:28:28.021 TTS Simplex: generating audio tokens for chunk 7 (n_tokens=10, tts_n_embd=768) +22:28:28.021 TTS Simplex: 在 prefill 前添加 audio_bos (chunk_idx=7, new_size=11) +22:28:28.021 TTS Simplex: chunk 7 - keeping KV cache, n_past_tts=634 +22:28:28.067 TTS Simplex: prefill completed, n_past_tts=645 +22:28:28.067 TTS Simplex: sampler created +22:28:28.091 TTS Simplex Phase1: token 1/500: rel_id=2742 +22:28:28.116 TTS Simplex Phase1: token 2/500: rel_id=4758 +22:28:28.140 TTS Simplex Phase1: token 3/500: rel_id=1943 +22:28:28.164 TTS Simplex Phase1: token 4/500: rel_id=59 +22:28:28.188 TTS Simplex Phase1: token 5/500: rel_id=63 +22:28:28.518 TTS Simplex Phase1: yield 25 tokens 到 T2W (step 18, buffer=25) +22:28:28.691 TTS Simplex Phase1: token 25/500: rel_id=6486 +22:28:28.782 LLM->TTS: text='小期待。别怕犯错,谁还没', n_tokens=10, hidden_size=40960, n_embd=4096, token_ids=[30709 104177 1773 62922 99756 100238 28726 3837 100165 104789] +22:28:28.965 TTS Simplex Phase1: yield 25 tokens 到 T2W (step 43, buffer=25) +22:28:29.058 TTS Simplex Phase1: token 50/500: rel_id=3170 +22:28:29.286 TTS Simplex Phase1: yield 25 tokens 到 T2W (step 68, buffer=25) +22:28:29.376 TTS Simplex Phase1: token 75/500: rel_id=4445 +22:28:29.417 TTS Simplex Phase1: EOS token at step 79 +22:28:29.417 TTS Simplex: chunk 结束,tts_token_buffer 剩余 10 tokens (保留等下一个 chunk) +22:28:29.417 TTS Simplex: generated 78 audio tokens for chunk 7 +22:28:29.417 TTS Simplex: chunk 7 first tokens: [2742 4758 1943 59 63 ], last tokens: [5986 4445 2753 566 395 ] +22:28:29.417 TTS Simplex: updated tts_n_past_accumulated=723, total_generated_tokens=635 +22:28:29.418 TTS<-LLM: chunk_idx=8, text='宇宙,里面装着勇气、梦想和一点点', n_tokens=10, hidden_size=40960, token_ids=[105339 3837 100420 98641 99164 106860 5373 102294 33108 107342] +22:28:29.418 TTS: after queue pop - speek_done=0, llm_finish=0, llm_text.empty=0, token_ids.size=10 +22:28:29.418 TTS: before empty check - response.empty=0, response='宇宙,里面装着勇气、梦想和一点点', llm_finish=0 +22:28:29.418 TTS: DEBUG before has_llm_data - token_ids.size=10, hidden_states.size=40960, n_embd=4096 +22:28:29.418 TTS: has_llm_data=1, token_ids=10, hidden_states=40960, n_embd=4096, llm_finish=0 +22:28:29.418 TTS: n_tokens_orig=10, n_tokens_filtered=10 (filtered 0 special tokens) +22:28:29.453 TTS: saved merged embeddings (text) to ./tools/omni/output/round_000/llm_debug/chunk_8/merged_embeddings.txt +22:28:29.453 TTS Simplex: generating audio tokens for chunk 8 (n_tokens=10, tts_n_embd=768) +22:28:29.454 TTS Simplex: 在 prefill 前添加 audio_bos (chunk_idx=8, new_size=11) +22:28:29.454 TTS Simplex: chunk 8 - keeping KV cache, n_past_tts=723 +22:28:29.506 TTS Simplex: prefill completed, n_past_tts=734 +22:28:29.506 TTS Simplex: sampler created +22:28:29.533 TTS Simplex Phase1: token 1/500: rel_id=876 +22:28:29.563 TTS Simplex Phase1: token 2/500: rel_id=1032 +22:28:29.586 TTS Simplex Phase1: token 3/500: rel_id=65 +22:28:29.610 TTS Simplex Phase1: token 4/500: rel_id=5087 +22:28:29.635 TTS Simplex Phase1: token 5/500: rel_id=2259 +22:28:29.905 TTS Simplex Phase1: yield 25 tokens 到 T2W (step 15, buffer=25) +22:28:30.229 TTS Simplex Phase1: token 25/500: rel_id=4842 +22:28:30.231 LLM->TTS: text='摔过跟头呢?重要的是,你', n_tokens=10, hidden_size=40960, n_embd=4096, token_ids=[103036 38182 99557 64355 101036 11319 99335 100146 3837 56568] +22:28:30.458 TTS Simplex Phase1: yield 25 tokens 到 T2W (step 40, buffer=25) +22:28:30.617 TTS Simplex Phase1: token 50/500: rel_id=1885 +22:28:30.878 TTS Simplex Phase1: yield 25 tokens 到 T2W (step 65, buffer=25) +22:28:31.003 T2W线程: wav_3.wav | 1.00s audio | 3102.7ms inference | RTF=3.10 | t=14375ms +22:28:31.040 TTS Simplex Phase1: token 75/500: rel_id=4461 +22:28:31.181 TTS Simplex Phase1: EOS token at step 86 +22:28:31.181 TTS Simplex: chunk 结束,tts_token_buffer 剩余 20 tokens (保留等下一个 chunk) +22:28:31.181 TTS Simplex: generated 85 audio tokens for chunk 8 +22:28:31.181 TTS Simplex: chunk 8 first tokens: [876 1032 65 5087 2259 ], last tokens: [3732 5835 3645 1701 2112 ] +22:28:31.181 TTS Simplex: updated tts_n_past_accumulated=819, total_generated_tokens=720 +22:28:31.182 TTS<-LLM: chunk_idx=9, text='小期待。别怕犯错,谁还没', n_tokens=10, hidden_size=40960, token_ids=[30709 104177 1773 62922 99756 100238 28726 3837 100165 104789] +22:28:31.182 TTS: after queue pop - speek_done=0, llm_finish=0, llm_text.empty=0, token_ids.size=10 +22:28:31.182 TTS: before empty check - response.empty=0, response='小期待。别怕犯错,谁还没', llm_finish=0 +22:28:31.182 TTS: DEBUG before has_llm_data - token_ids.size=10, hidden_states.size=40960, n_embd=4096 +22:28:31.182 TTS: has_llm_data=1, token_ids=10, hidden_states=40960, n_embd=4096, llm_finish=0 +22:28:31.182 TTS: n_tokens_orig=10, n_tokens_filtered=10 (filtered 0 special tokens) +22:28:31.223 TTS: saved merged embeddings (text) to ./tools/omni/output/round_000/llm_debug/chunk_9/merged_embeddings.txt +22:28:31.223 TTS Simplex: generating audio tokens for chunk 9 (n_tokens=10, tts_n_embd=768) +22:28:31.223 TTS Simplex: 在 prefill 前添加 audio_bos (chunk_idx=9, new_size=11) +22:28:31.223 TTS Simplex: chunk 9 - keeping KV cache, n_past_tts=819 +22:28:31.263 TTS Simplex: prefill completed, n_past_tts=830 +22:28:31.263 TTS Simplex: sampler created +22:28:31.278 TTS Simplex Phase1: token 1/500: rel_id=6258 +22:28:31.292 TTS Simplex Phase1: token 2/500: rel_id=4311 +22:28:31.305 TTS Simplex Phase1: token 3/500: rel_id=4942 +22:28:31.319 TTS Simplex Phase1: token 4/500: rel_id=5608 +22:28:31.334 TTS Simplex Phase1: yield 25 tokens 到 T2W (step 5, buffer=25) +22:28:31.334 TTS Simplex Phase1: token 5/500: rel_id=3266 +22:28:31.643 TTS Simplex Phase1: token 25/500: rel_id=566 +22:28:31.767 TTS Simplex Phase1: yield 25 tokens 到 T2W (step 30, buffer=25) +22:28:32.292 TTS Simplex Phase1: token 50/500: rel_id=3647 +22:28:32.346 LLM->TTS: text='有没有勇气爬起来继续往前走。所以说啊', n_tokens=10, hidden_size=40960, n_embd=4096, token_ids=[104710 106860 102377 99793 100640 114796 99314 1773 109304 103924] +22:28:32.386 TTS Simplex Phase1: yield 25 tokens 到 T2W (step 55, buffer=25) +22:28:32.659 TTS Simplex Phase1: token 75/500: rel_id=4700 +22:28:32.727 TTS Simplex Phase1: yield 25 tokens 到 T2W (step 80, buffer=25) +22:28:32.787 TTS Simplex Phase1: EOS token at step 85 +22:28:32.787 TTS Simplex: chunk 结束,tts_token_buffer 剩余 4 tokens (保留等下一个 chunk) +22:28:32.787 TTS Simplex: generated 84 audio tokens for chunk 9 +22:28:32.787 TTS Simplex: chunk 9 first tokens: [6258 4311 4942 5608 3266 ], last tokens: [3024 5800 5093 2816 2675 ] +22:28:32.787 TTS Simplex: updated tts_n_past_accumulated=914, total_generated_tokens=804 +22:28:32.788 TTS<-LLM: chunk_idx=10, text='摔过跟头呢?重要的是,你', n_tokens=10, hidden_size=40960, token_ids=[103036 38182 99557 64355 101036 11319 99335 100146 3837 56568] +22:28:32.788 TTS: after queue pop - speek_done=0, llm_finish=0, llm_text.empty=0, token_ids.size=10 +22:28:32.788 TTS: before empty check - response.empty=0, response='摔过跟头呢?重要的是,你', llm_finish=0 +22:28:32.788 TTS: DEBUG before has_llm_data - token_ids.size=10, hidden_states.size=40960, n_embd=4096 +22:28:32.788 TTS: has_llm_data=1, token_ids=10, hidden_states=40960, n_embd=4096, llm_finish=0 +22:28:32.788 TTS: n_tokens_orig=10, n_tokens_filtered=10 (filtered 0 special tokens) +22:28:32.829 TTS: saved merged embeddings (text) to ./tools/omni/output/round_000/llm_debug/chunk_10/merged_embeddings.txt +22:28:32.829 TTS Simplex: generating audio tokens for chunk 10 (n_tokens=10, tts_n_embd=768) +22:28:32.829 TTS Simplex: 在 prefill 前添加 audio_bos (chunk_idx=10, new_size=11) +22:28:32.829 TTS Simplex: chunk 10 - keeping KV cache, n_past_tts=914 +22:28:32.875 TTS Simplex: prefill completed, n_past_tts=925 +22:28:32.875 TTS Simplex: sampler created +22:28:32.890 TTS Simplex Phase1: token 1/500: rel_id=524 +22:28:32.906 TTS Simplex Phase1: token 2/500: rel_id=2031 +22:28:32.922 TTS Simplex Phase1: token 3/500: rel_id=3645 +22:28:32.939 TTS Simplex Phase1: token 4/500: rel_id=5838 +22:28:32.955 TTS Simplex Phase1: token 5/500: rel_id=5838 +22:28:33.387 TTS Simplex Phase1: yield 25 tokens 到 T2W (step 21, buffer=25) +22:28:33.528 TTS Simplex Phase1: token 25/500: rel_id=4851 +22:28:33.942 LLM: detected end token, set llm_generation_done=true +22:28:33.942 LLM->TTS: text=',活着本身就是一种奇迹,对吧?', n_tokens=9, hidden_size=36864, n_embd=4096, token_ids=[3837 107473 114300 101053 107012 3837 32664 100003 11319] +22:28:34.112 TTS Simplex Phase1: yield 25 tokens 到 T2W (step 46, buffer=25) +22:28:34.182 TTS Simplex Phase1: token 50/500: rel_id=2112 +22:28:34.280 T2W线程: wav_4.wav | 1.00s audio | 3276.0ms inference | RTF=3.28 | t=17653ms +22:28:34.351 TTS Simplex Phase1: EOS token at step 61 +22:28:34.351 TTS Simplex: chunk 结束,tts_token_buffer 剩余 14 tokens (保留等下一个 chunk) +22:28:34.351 TTS Simplex: generated 60 audio tokens for chunk 10 +22:28:34.351 TTS Simplex: chunk 10 first tokens: [524 2031 3645 5838 5838 ], last tokens: [4886 2276 5591 352 559 ] +22:28:34.351 TTS Simplex: updated tts_n_past_accumulated=985, total_generated_tokens=864 +22:28:34.352 TTS<-LLM: chunk_idx=11, text='有没有勇气爬起来继续往前走。所以说啊', n_tokens=10, hidden_size=40960, token_ids=[104710 106860 102377 99793 100640 114796 99314 1773 109304 103924] +22:28:34.352 TTS: after queue pop - speek_done=0, llm_finish=0, llm_text.empty=0, token_ids.size=10 +22:28:34.352 TTS: before empty check - response.empty=0, response='有没有勇气爬起来继续往前走。所以è¯', llm_finish=0 +22:28:34.352 TTS: DEBUG before has_llm_data - token_ids.size=10, hidden_states.size=40960, n_embd=4096 +22:28:34.352 TTS: has_llm_data=1, token_ids=10, hidden_states=40960, n_embd=4096, llm_finish=0 +22:28:34.352 📍 Decode 结束: n_past=301, 剩余空间=1747, 无需滑窗 +22:28:34.352 📍 轮次 1 结束,记录边界于 n_past=301 +22:28:34.352 TTS: n_tokens_orig=10, n_tokens_filtered=10 (filtered 0 special tokens) +22:28:34.383 TTS: saved merged embeddings (text) to ./tools/omni/output/round_000/llm_debug/chunk_11/merged_embeddings.txt +22:28:34.383 TTS Simplex: generating audio tokens for chunk 11 (n_tokens=10, tts_n_embd=768) +22:28:34.383 TTS Simplex: 在 prefill 前添加 audio_bos (chunk_idx=11, new_size=11) +22:28:34.383 TTS Simplex: chunk 11 - keeping KV cache, n_past_tts=985 +22:28:34.431 TTS Simplex: prefill completed, n_past_tts=996 +22:28:34.431 TTS Simplex: sampler created +22:28:34.445 TTS Simplex Phase1: token 1/500: rel_id=113 +22:28:34.460 TTS Simplex Phase1: token 2/500: rel_id=5264 +22:28:34.475 TTS Simplex Phase1: token 3/500: rel_id=5319 +22:28:34.489 TTS Simplex Phase1: token 4/500: rel_id=5322 +22:28:34.503 TTS Simplex Phase1: token 5/500: rel_id=876 +22:28:34.588 TTS Simplex Phase1: yield 25 tokens 到 T2W (step 11, buffer=25) +22:28:34.690 📍 为下一轮准备: eval <|im_end|>\n<|im_start|>user\n, n_past=306 +22:28:34.820 TTS Simplex Phase1: token 25/500: rel_id=4978 +22:28:34.971 TTS Simplex Phase1: yield 25 tokens 到 T2W (step 36, buffer=25) +22:28:35.171 TTS Simplex Phase1: token 50/500: rel_id=1466 +22:28:35.330 TTS Simplex Phase1: yield 25 tokens 到 T2W (step 61, buffer=25) +22:28:35.530 TTS Simplex Phase1: token 75/500: rel_id=494 +22:28:35.602 TTS Simplex Phase1: EOS token at step 81 +22:28:35.602 TTS Simplex: chunk 结束,tts_token_buffer 剩余 19 tokens (保留等下一个 chunk) +22:28:35.602 TTS Simplex: generated 80 audio tokens for chunk 11 +22:28:35.602 TTS Simplex: chunk 11 first tokens: [113 5264 5319 5322 876 ], last tokens: [602 2060 4299 6486 6486 ] +22:28:35.602 TTS Simplex: updated tts_n_past_accumulated=1076, total_generated_tokens=944 +22:28:35.612 TTS<-LLM: chunk_idx=12, text=',活着本身就是一种奇迹,对吧?', n_tokens=9, hidden_size=36864, token_ids=[3837 107473 114300 101053 107012 3837 32664 100003 11319] +22:28:35.612 TTS: after queue pop - speek_done=0, llm_finish=1, llm_text.empty=0, token_ids.size=9 +22:28:35.612 TTS: before empty check - response.empty=0, response=',活着本身就是一种奇迹,对吧?', llm_finish=1 +22:28:35.612 TTS: DEBUG before has_llm_data - token_ids.size=9, hidden_states.size=36864, n_embd=4096 +22:28:35.612 TTS: has_llm_data=1, token_ids=9, hidden_states=36864, n_embd=4096, llm_finish=1 +22:28:35.612 TTS: n_tokens_orig=9, n_tokens_filtered=9 (filtered 0 special tokens) +22:28:35.642 TTS: saved merged embeddings (text) to ./tools/omni/output/round_000/llm_debug/chunk_12/merged_embeddings.txt +22:28:35.642 TTS Simplex: generating audio tokens for chunk 12 (n_tokens=9, tts_n_embd=768) +22:28:35.642 TTS Simplex: 在 prefill 前添加 audio_bos (chunk_idx=12, new_size=10) +22:28:35.642 TTS Simplex: chunk 12 - keeping KV cache, n_past_tts=1076 +22:28:35.690 TTS Simplex: prefill completed, n_past_tts=1086 +22:28:35.690 TTS Simplex: sampler created +22:28:35.704 TTS Simplex Phase1: token 1/500: rel_id=6486 +22:28:35.718 TTS Simplex Phase1: token 2/500: rel_id=4299 +22:28:35.732 TTS Simplex Phase1: token 3/500: rel_id=4218 +22:28:35.747 TTS Simplex Phase1: token 4/500: rel_id=3975 +22:28:35.761 TTS Simplex Phase1: token 5/500: rel_id=4299 +22:28:35.775 TTS Simplex Phase1: yield 25 tokens 到 T2W (step 6, buffer=25) +22:28:36.069 TTS Simplex Phase1: token 25/500: rel_id=3647 +22:28:36.168 TTS Simplex Phase1: yield 25 tokens 到 T2W (step 31, buffer=25) +22:28:36.481 TTS Simplex Phase1: token 50/500: rel_id=361 +22:28:36.589 TTS Simplex Phase1: yield 25 tokens 到 T2W (step 56, buffer=25) +22:28:36.883 T2W线程: wav_5.wav | 1.00s audio | 2601.6ms inference | RTF=2.60 | t=20255ms +22:28:36.923 TTS Simplex Phase1: token 75/500: rel_id=2436 +22:28:37.013 TTS Simplex Phase1: yield 25 tokens 到 T2W (step 81, buffer=25) +22:28:37.145 TTS Simplex Phase1: EOS token at step 90 +22:28:37.145 TTS Simplex: is_final_text_chunk=true, will enter Phase 2 for text_eos_embed +22:28:37.145 TTS Simplex Phase2: injecting text_eos_embed + audio_bos at n_past=1175 +22:28:37.157 TTS Simplex Phase2: text_eos_embed injected, n_past=1176 +22:28:37.168 TTS Simplex Phase2: audio_bos injected, n_past=1177, starting final generation +22:28:37.390 TTS Simplex Phase2: EOS at step 14 (final end) +22:28:37.390 TTS Simplex: chunk 结束,tts_token_buffer 剩余 21 tokens (保留等下一个 chunk) +22:28:37.390 TTS Simplex: is_final_text_chunk=true, flush 剩余 21 tokens 从 tts_token_buffer +22:28:37.390 TTS Simplex: generated 102 audio tokens for chunk 12 +22:28:37.390 TTS Simplex: chunk 12 first tokens: [6486 4299 4218 3975 4299 ], last tokens: [4384 3897 6486 6486 4299 ] +22:28:37.390 TTS Simplex: updated tts_n_past_accumulated=1191, total_generated_tokens=1046 +22:28:37.399 TTS: finished processing all chunks +22:28:37.399 TTS: 单工模式轮次结束,下一轮 round_idx=1 +22:28:37.399 TTS: sent is_final=true to T2W queue (turn end) +22:28:39.451 T2W线程: wav_6.wav | 1.00s audio | 2567.8ms inference | RTF=2.57 | t=22823ms +22:28:41.704 T2W线程: wav_7.wav | 1.00s audio | 2251.6ms inference | RTF=2.25 | t=25076ms +22:28:43.954 T2W线程: wav_8.wav | 1.00s audio | 2249.3ms inference | RTF=2.25 | t=27326ms +22:28:46.208 T2W线程: wav_9.wav | 1.00s audio | 2254.1ms inference | RTF=2.25 | t=29581ms +22:28:48.471 T2W线程: wav_10.wav | 1.00s audio | 2261.9ms inference | RTF=2.26 | t=31843ms +22:28:50.731 T2W线程: wav_11.wav | 1.00s audio | 2259.2ms inference | RTF=2.26 | t=34103ms +22:28:52.994 T2W线程: wav_12.wav | 1.00s audio | 2262.3ms inference | RTF=2.26 | t=36366ms +22:28:55.241 T2W线程: wav_13.wav | 1.00s audio | 2245.8ms inference | RTF=2.25 | t=38613ms +22:28:57.493 T2W线程: wav_14.wav | 1.00s audio | 2243.6ms inference | RTF=2.24 | t=40865ms +22:28:59.727 T2W线程: wav_15.wav | 1.00s audio | 2233.5ms inference | RTF=2.23 | t=43099ms +22:29:01.986 T2W线程: wav_16.wav | 1.00s audio | 2247.9ms inference | RTF=2.25 | t=45358ms +22:29:04.270 T2W线程: wav_17.wav | 1.00s audio | 2283.5ms inference | RTF=2.28 | t=47642ms +22:29:06.553 T2W线程: wav_18.wav | 1.00s audio | 2282.2ms inference | RTF=2.28 | t=49925ms +22:29:08.804 T2W线程: wav_19.wav | 1.00s audio | 2250.0ms inference | RTF=2.25 | t=52176ms +22:29:11.073 T2W线程: wav_20.wav | 1.00s audio | 2258.2ms inference | RTF=2.26 | t=54445ms +22:29:13.334 T2W线程: wav_21.wav | 1.00s audio | 2260.2ms inference | RTF=2.26 | t=56706ms +22:29:15.586 T2W线程: wav_22.wav | 1.00s audio | 2251.7ms inference | RTF=2.25 | t=58958ms +22:29:17.855 T2W线程: wav_23.wav | 1.00s audio | 2268.6ms inference | RTF=2.27 | t=61227ms +22:29:20.119 T2W线程: wav_24.wav | 1.00s audio | 2263.4ms inference | RTF=2.26 | t=63492ms +22:29:22.375 T2W线程: wav_25.wav | 1.00s audio | 2255.1ms inference | RTF=2.26 | t=65747ms +22:29:24.634 T2W线程: wav_26.wav | 1.00s audio | 2258.4ms inference | RTF=2.26 | t=68006ms +22:29:26.885 T2W线程: wav_27.wav | 1.00s audio | 2250.1ms inference | RTF=2.25 | t=70257ms +22:29:29.146 T2W线程: wav_28.wav | 1.00s audio | 2260.1ms inference | RTF=2.26 | t=72518ms +22:29:31.398 T2W线程: wav_29.wav | 1.00s audio | 2251.4ms inference | RTF=2.25 | t=74770ms +22:29:33.656 T2W线程: wav_30.wav | 1.00s audio | 2257.1ms inference | RTF=2.26 | t=77028ms +22:29:35.899 T2W线程: wav_31.wav | 1.00s audio | 2242.6ms inference | RTF=2.24 | t=79271ms +22:29:38.169 T2W线程: wav_32.wav | 1.00s audio | 2269.3ms inference | RTF=2.27 | t=81541ms +22:29:40.423 T2W线程: wav_33.wav | 1.00s audio | 2252.7ms inference | RTF=2.25 | t=83795ms +22:29:42.682 T2W线程: wav_34.wav | 1.00s audio | 2250.6ms inference | RTF=2.25 | t=86054ms +22:29:44.941 T2W线程: wav_35.wav | 1.00s audio | 2257.8ms inference | RTF=2.26 | t=88313ms +22:29:47.208 T2W线程: wav_36.wav | 1.00s audio | 2267.2ms inference | RTF=2.27 | t=90581ms +22:29:49.462 T2W线程: wav_37.wav | 1.00s audio | 2252.6ms inference | RTF=2.25 | t=92834ms +22:29:51.715 T2W线程: wav_38.wav | 1.00s audio | 2253.0ms inference | RTF=2.25 | t=95088ms +22:29:53.969 T2W线程: wav_39.wav | 1.00s audio | 2252.7ms inference | RTF=2.25 | t=97341ms +22:29:56.231 T2W线程: wav_40.wav | 1.00s audio | 2261.3ms inference | RTF=2.26 | t=99603ms +22:29:58.497 T2W线程: wav_41.wav | 1.12s audio | 2265.0ms inference | RTF=2.02 | t=101869ms +22:29:58.497 T2W线程: 写入结束标记 ./tools/omni/output/round_000/tts_wav/generation_done.flag (last_wav=41) +22:29:58.497 T2W线程: 轮次结束后更新输出目录为 ./tools/omni/output/round_001/tts_wav +22:29:58.605 omni_stop_threads: stop signals sent +22:29:58.605 T2W(C++) 线程: 停止 +tts thread end +t2w thread end diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/full_merged.wav b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/full_merged.wav new file mode 100644 index 000000000..e15927f3b Binary files /dev/null and b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/full_merged.wav differ diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/full_report.json b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/full_report.json new file mode 100644 index 000000000..6defd1a9c --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/full_report.json @@ -0,0 +1,302 @@ +{ + "scope": "standalone MiniCPM-o 4.5 GGUF audio+image input to text+speech on native-Windows-11-HX370-Radeon-890M-plus-CPU", + "status": "scoped_complete_path_pass", + "expected_placement": "radeon-hybrid", + "quality": "synthetic red-square/tone response not established as semantically correct", + "model_revision": "db25077c33951fe163b42986fba0132e279872a2", + "artifacts": { + "MiniCPM-o-4_5-Q4_K_M.gguf": { + "bytes": 5026714400, + "sha256": "1237a97ee081b8abebc47aa7dad565701e8f5f904cdc92f6723ac4281bbc0932" + }, + "audio/MiniCPM-o-4_5-audio-F16.gguf": { + "bytes": 660167904, + "sha256": "d5b188ac7feaf98e17175c3f9bd14bf269301bfd187439fdaa3e3a494fc32ef7" + }, + "vision/MiniCPM-o-4_5-vision-F16.gguf": { + "bytes": 1095113184, + "sha256": "1453678cc4e4fe18de241952962e234f265cb8dda780773526103ab8ba82f421" + }, + "tts/MiniCPM-o-4_5-tts-F16.gguf": { + "bytes": 1157244416, + "sha256": "c7be3748a863dd6966ae7eed42600b7f41ca67affb03729ff245247f0e5ea088" + }, + "tts/MiniCPM-o-4_5-projector-F16.gguf": { + "bytes": 14948640, + "sha256": "4b1b5b377358a5e594a304ff6ea5d52df606a9ba7d886c4299d232f0c67dd1fd" + }, + "token2wav-gguf/encoder.gguf": { + "bytes": 151339008, + "sha256": "7f8d265da594eaf5e1de2db8f5f1867dbcb0bb75ef5878fadf2952347116f4d0" + }, + "token2wav-gguf/flow_matching.gguf": { + "bytes": 458250240, + "sha256": "eda6069f3edeb5dd3a87fbf2aedb2ddd1b46f3273926c4fcf09b24476a39cab8" + }, + "token2wav-gguf/flow_extra.gguf": { + "bytes": 13663328, + "sha256": "c67611aa7d02500fe395a7798bf0bfdfb55c74d37ba93934ca74d82b4e63f78d" + }, + "token2wav-gguf/hifigan2.gguf": { + "bytes": 83242816, + "sha256": "1b8b3bf5d8d3066aeee4324fdcdd41aefce170d0ee907645858de408d82835c2" + }, + "token2wav-gguf/prompt_cache.gguf": { + "bytes": 211613152, + "sha256": "81fe6f541ebe0b67db06a1e395df928da47991dc9637c2cf47d6c59d5b979f2c" + } + }, + "runtime_binary_sha256": "39e089894e010c4a85092f866d9eee79942b9fcab0bca090353dcad24a6dafee", + "input_image_sha256": "22c7ccea466a3f551c512045e6316c7597408d4e0a20205502f55784d977aa8d", + "input_audio_sha256": "cf4bb5cd9acbfbf67596d4a53310652b61ef4b7ede1d54eb03ef4882ca40223a", + "response_text": "你知道吗,有时候啊,我也会想啊,生活真的挺有意思的。每天早上醒来,太阳照在脸上,就觉得这一天充满了可能。不管前一天发生啥事,只要新的一天来了,就有机会重新开始。你有没有觉得,就算遇到再难的事,只要咬咬牙挺过去,回头看的时候,反而觉得挺酷的?其实啊,每个人心里都藏着一个小宇宙,里面装着勇气、梦想和一点点小期待。别怕犯错,谁还没摔过跟头呢?重要的是,你有没有勇气爬起来继续往前走。所以说啊,活着本身就是一种奇迹,对吧?", + "audio_chunks": [ + { + "name": "wav_0.wav", + "frames": 20160, + "sha256": "556547d795d425a4cb0f12f1742227c11495a738de28193b4c38a09ad0e6e3f1" + }, + { + "name": "wav_1.wav", + "frames": 24000, + "sha256": "01697d341ccd566cec7193dc54fecea717cf61d7c91e190c58d0cdc599bef6b4" + }, + { + "name": "wav_2.wav", + "frames": 24000, + "sha256": "d0d97225e3fda8705bf513aab9417c78363c806c99e90568e804efa9df1c1db0" + }, + { + "name": "wav_3.wav", + "frames": 24000, + "sha256": "c68da18455456c014bb80b2ac5f41b10142e3c5faea625e83fadd629e44bb6cd" + }, + { + "name": "wav_4.wav", + "frames": 24000, + "sha256": "94ea00a24616d0bd4a077d894aa1c3840b6b2cef8fe364c5646e408b7390eef6" + }, + { + "name": "wav_5.wav", + "frames": 24000, + "sha256": "1159f21d9adef11a164916882ae5fac6219879cc4e7446ac6a418caf9f79d45b" + }, + { + "name": "wav_6.wav", + "frames": 24000, + "sha256": "e397bb95a5f63f91bf5b8a8661c1c6bb4e620f3faf12733a053e86b0be97f2ec" + }, + { + "name": "wav_7.wav", + "frames": 24000, + "sha256": "682badaac2419eb1d974ce3c6fbf61df813f55d8e55b96ef9f71cc6a6e9e26c4" + }, + { + "name": "wav_8.wav", + "frames": 24000, + "sha256": "46eda74ce637a760bae5dd9e6d15f49fc33faf7830dd55741f2a22c17731e264" + }, + { + "name": "wav_9.wav", + "frames": 24000, + "sha256": "f75776adf08b79fae17364e5c3c6905590f7630b44977ea40a2a7bcb3c55f359" + }, + { + "name": "wav_10.wav", + "frames": 24000, + "sha256": "fd7e9689b7d6b2b2d2ec0ead752696dae01d395aec20b7a1610065fbd60283f0" + }, + { + "name": "wav_11.wav", + "frames": 24000, + "sha256": "36020b18a2fc52a095cd0ea3cc8bc0810e4540ab678441f89c557a187f973d25" + }, + { + "name": "wav_12.wav", + "frames": 24000, + "sha256": "e6205992ec251b6135669f7be1a1d423a32b84ad0f1c100b3cc586b6ea562e2b" + }, + { + "name": "wav_13.wav", + "frames": 24000, + "sha256": "68f99f0cd6cf51a96c5e87b8d4abb4a618cbb31443ec01535198a77ad4a30920" + }, + { + "name": "wav_14.wav", + "frames": 24000, + "sha256": "20fdfe45b52153080237550c807b508297e43981843675f94ef711fbec52e4b4" + }, + { + "name": "wav_15.wav", + "frames": 24000, + "sha256": "e87ac891d93e36cce4b7aa1bea36c254046f28a6267a5118f97837f0692767bb" + }, + { + "name": "wav_16.wav", + "frames": 24000, + "sha256": "905409d3418b0dbcacd996ecb622ac99a729f7815620ce3dd773bf3f86b38454" + }, + { + "name": "wav_17.wav", + "frames": 24000, + "sha256": "79740317f3fab281cf4f6cacb7fa7815fa80ab7bdad747a484c5d94fbba0becc" + }, + { + "name": "wav_18.wav", + "frames": 24000, + "sha256": "1999800a699dc406f35f97fd5829d77e87db72b8053e4f06dedaa09089071770" + }, + { + "name": "wav_19.wav", + "frames": 24000, + "sha256": "757799836b6486f4448b1c063ae45c8df7fe0d545fdb863a3a20f5e8f7f8073f" + }, + { + "name": "wav_20.wav", + "frames": 24000, + "sha256": "b69778822c64f054f08d492c8227aad22445512c337f612ae7dd4d4f72c00def" + }, + { + "name": "wav_21.wav", + "frames": 24000, + "sha256": "ec23d36f1f3fec8c462a927db90255a83c0aa88ec4a2bf947acef0fde20c2a84" + }, + { + "name": "wav_22.wav", + "frames": 24000, + "sha256": "3367cc81ad3b0c870501d9aa8c0dfc220d3a2370ebcf4171b6ece0f452caf4e3" + }, + { + "name": "wav_23.wav", + "frames": 24000, + "sha256": "ea32e435f1f1963fe9d4376a315a0ed6701719b015bc2211b24c153dbca7f692" + }, + { + "name": "wav_24.wav", + "frames": 24000, + "sha256": "c36bc807a09d7148ea9153ee8381b8de808aa4854233398429b02db9d754687a" + }, + { + "name": "wav_25.wav", + "frames": 24000, + "sha256": "b94986bf4a9cd048dc23e5eba2acda35f5fbb517bbd2accabd7cd7a47df099fd" + }, + { + "name": "wav_26.wav", + "frames": 24000, + "sha256": "5cf467959e82bef3235920095f8f49b1315d21204cdad86a278a9f7266084182" + }, + { + "name": "wav_27.wav", + "frames": 24000, + "sha256": "1f8617102824bc15c95cd4336e222fef3cff8415695e30170c22a33d371d8fee" + }, + { + "name": "wav_28.wav", + "frames": 24000, + "sha256": "222e29369c511b3c6338fe1d853c84137739a8a6b23a614bf3060a1405375e7a" + }, + { + "name": "wav_29.wav", + "frames": 24000, + "sha256": "bd79a447f44b58d1c81cba8327002b7f8db3f5f0db21a8619090f6d02b1dcfb8" + }, + { + "name": "wav_30.wav", + "frames": 24000, + "sha256": "02965e59f2ba3fbd0c5c83170d555bb7d7488072963d34f35cfa1001031c41d1" + }, + { + "name": "wav_31.wav", + "frames": 24000, + "sha256": "c417317cc3c6b8e005e8c362c76019a4fcd5f017a5c90e82dac0a4d1bd86aa44" + }, + { + "name": "wav_32.wav", + "frames": 24000, + "sha256": "6771fd6e2d934219857e076d830a9ab9358d80a8bbd0cbdf3c384cb6dd5a4d60" + }, + { + "name": "wav_33.wav", + "frames": 24000, + "sha256": "5810d38e314d51517642d1e1484fa1edf2c0eba72fd4e79ef93903246675c236" + }, + { + "name": "wav_34.wav", + "frames": 24000, + "sha256": "56dbc8ac154e401b32c10f8379152c6a1af9501be5bb0e2105e04b73033672ee" + }, + { + "name": "wav_35.wav", + "frames": 24000, + "sha256": "85fba9d1da8f65b80ef0c2a7d67be65f8dee94a275ab984dd0c6ce816b9da29a" + }, + { + "name": "wav_36.wav", + "frames": 24000, + "sha256": "ebda8dd357107b31e90a67824ce47d9983c0dd00aefaebb0d4098e9a67782ffa" + }, + { + "name": "wav_37.wav", + "frames": 24000, + "sha256": "c9e9fe238f8cd98b4af583314ef7cf4877e98470d6471c7c218fa0d760b23de8" + }, + { + "name": "wav_38.wav", + "frames": 24000, + "sha256": "33c3ba34178e49520c9d5f8c48895bbfb8d7475505e1b53fa763bb37e79a9c15" + }, + { + "name": "wav_39.wav", + "frames": 24000, + "sha256": "0f9ab5b3ec79a5464d9c818239f4da19cf1cf649db25a742b11189afbb20451f" + }, + { + "name": "wav_40.wav", + "frames": 24000, + "sha256": "39a5e184c96d2fec5bbe492adba5980d67c2c235bbeed2af9b994816159f65a5" + }, + { + "name": "wav_41.wav", + "frames": 26880, + "sha256": "bb775223b13183f8c2dd75fdc1c8e43aa213dffc19d93abe81eb39c36a85bbbc" + } + ], + "audio_frames": 1007040, + "audio_duration_s": 41.96, + "audio_rms_pcm16": 2399.4583535294237, + "pcm_sha256": "ee8de0dc5a574a8168a23c4a0e70f911d7b981ecd6cb921a5fbf9698f7d45636", + "merged_wav_sha256": "bf1d7c665eec4e7da09d03f89bac110ff07a7f4335fde7add212c0363fadaa80", + "peak_rss_kib_from_time": null, + "wall_clock_from_time": null, + "sampled_process_profile": { + "command": [ + "C:\\Users\\zhout\\w2\\minicpmo_cpp_radeon\\llama-omni-cli.exe", + "-m", + "C:\\Users\\zhout\\w2\\models\\MiniCPM-o-4_5-gguf\\MiniCPM-o-4_5-Q4_K_M.gguf", + "-ngl", + "99", + "-c", + "2048", + "--omni", + "--t2w-device", + "cpu", + "--t2w-wait-seconds", + "900", + "--ref-audio", + "C:\\Users\\zhout\\w2\\minicpmo_cpp_radeon\\default_ref_audio.wav", + "--test", + "C:\\Users\\zhout\\w2\\minicpmo_cpp_radeon\\fixture_", + "2" + ], + "cwd": "C:\\Users\\zhout\\w2\\minicpmo_cpp_radeon", + "exit_code": 0, + "wall_s": 113.42734129994642, + "memory_sample_interval_ms": 100, + "memory_samples": 1128, + "peak_sampled_rss_bytes": 15568060416, + "peak_sampled_private_bytes": 15451271168, + "measurement_note": "sampled process values, not guaranteed loading peaks" + }, + "upstream_merge_name_mismatch": true +} diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/response_text.txt b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/response_text.txt new file mode 100644 index 000000000..092298753 --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/response_text.txt @@ -0,0 +1 @@ +你知道吗,有时候啊,我也会想啊,生活真的挺有意思的。每天早上醒来,太阳照在脸上,就觉得这一天充满了可能。不管前一天发生啥事,只要新的一天来了,就有机会重新开始。你有没有觉得,就算遇到再难的事,只要咬咬牙挺过去,回头看的时候,反而觉得挺酷的?其实啊,每个人心里都藏着一个小宇宙,里面装着勇气、梦想和一点点小期待。别怕犯错,谁还没摔过跟头呢?重要的是,你有没有勇气爬起来继续往前走。所以说啊,活着本身就是一种奇迹,对吧? diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/llm_debug/chunk_0/llm_text.txt b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/llm_debug/chunk_0/llm_text.txt new file mode 100644 index 000000000..5ed5cb173 --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/llm_debug/chunk_0/llm_text.txt @@ -0,0 +1 @@ +你知道吗,有时候啊,我也会想啊 \ No newline at end of file diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/llm_debug/chunk_1/llm_text.txt b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/llm_debug/chunk_1/llm_text.txt new file mode 100644 index 000000000..7d7956459 --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/llm_debug/chunk_1/llm_text.txt @@ -0,0 +1 @@ +,生活真的挺有意思的。每天早上醒来, \ No newline at end of file diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/llm_debug/chunk_10/llm_text.txt b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/llm_debug/chunk_10/llm_text.txt new file mode 100644 index 000000000..fcf814e22 --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/llm_debug/chunk_10/llm_text.txt @@ -0,0 +1 @@ +摔过跟头呢?重要的是,你 \ No newline at end of file diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/llm_debug/chunk_11/llm_text.txt b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/llm_debug/chunk_11/llm_text.txt new file mode 100644 index 000000000..54a10c0bc --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/llm_debug/chunk_11/llm_text.txt @@ -0,0 +1 @@ +有没有勇气爬起来继续往前走。所以说啊 \ No newline at end of file diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/llm_debug/chunk_12/llm_text.txt b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/llm_debug/chunk_12/llm_text.txt new file mode 100644 index 000000000..68c2b2582 --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/llm_debug/chunk_12/llm_text.txt @@ -0,0 +1 @@ +,活着本身就是一种奇迹,对吧? \ No newline at end of file diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/llm_debug/chunk_2/llm_text.txt b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/llm_debug/chunk_2/llm_text.txt new file mode 100644 index 000000000..bf1dd3318 --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/llm_debug/chunk_2/llm_text.txt @@ -0,0 +1 @@ +太阳照在脸上,就觉得这一天充满了可能。 \ No newline at end of file diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/llm_debug/chunk_3/llm_text.txt b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/llm_debug/chunk_3/llm_text.txt new file mode 100644 index 000000000..c92770da4 --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/llm_debug/chunk_3/llm_text.txt @@ -0,0 +1 @@ +不管前一天发生啥事,只要新的一天来了 \ No newline at end of file diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/llm_debug/chunk_4/llm_text.txt b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/llm_debug/chunk_4/llm_text.txt new file mode 100644 index 000000000..f3023e198 --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/llm_debug/chunk_4/llm_text.txt @@ -0,0 +1 @@ +,就有机会重新开始。你有没有觉得, \ No newline at end of file diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/llm_debug/chunk_5/llm_text.txt b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/llm_debug/chunk_5/llm_text.txt new file mode 100644 index 000000000..9f96b68c5 --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/llm_debug/chunk_5/llm_text.txt @@ -0,0 +1 @@ +就算遇到再难的事,只要咬咬牙 \ No newline at end of file diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/llm_debug/chunk_6/llm_text.txt b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/llm_debug/chunk_6/llm_text.txt new file mode 100644 index 000000000..020c00166 --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/llm_debug/chunk_6/llm_text.txt @@ -0,0 +1 @@ +挺过去,回头看的时候,反而觉得挺酷 \ No newline at end of file diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/llm_debug/chunk_7/llm_text.txt b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/llm_debug/chunk_7/llm_text.txt new file mode 100644 index 000000000..87a75d69d --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/llm_debug/chunk_7/llm_text.txt @@ -0,0 +1 @@ +的?其实啊,每个人心里都藏着一个小 \ No newline at end of file diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/llm_debug/chunk_8/llm_text.txt b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/llm_debug/chunk_8/llm_text.txt new file mode 100644 index 000000000..8c3223100 --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/llm_debug/chunk_8/llm_text.txt @@ -0,0 +1 @@ +宇宙,里面装着勇气、梦想和一点点 \ No newline at end of file diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/llm_debug/chunk_9/llm_text.txt b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/llm_debug/chunk_9/llm_text.txt new file mode 100644 index 000000000..69581b111 --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/llm_debug/chunk_9/llm_text.txt @@ -0,0 +1 @@ +小期待。别怕犯错,谁还没 \ No newline at end of file diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/audio_tokens_chunk_0.bin b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/audio_tokens_chunk_0.bin new file mode 100644 index 000000000..97284bfe7 Binary files /dev/null and b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/audio_tokens_chunk_0.bin differ diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/audio_tokens_chunk_0.txt b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/audio_tokens_chunk_0.txt new file mode 100644 index 000000000..531bd2d83 --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/audio_tokens_chunk_0.txt @@ -0,0 +1 @@ +1571,6486,4299,4299,4299,4299,1960,566,404,1041,4593,3077,396,4375,5590,1395,2125,4619,5357,4628,4636,5365,4299,6486,4299,4299,4299,3975,5838,3732,4299,2040,3480,2753,218,713,5944,5322,159,110,5589,5602,5053,4982,4907,2279,2189,2918,731,1703,1951,2112,719 diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/audio_tokens_chunk_1.bin b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/audio_tokens_chunk_1.bin new file mode 100644 index 000000000..32e5e2b17 Binary files /dev/null and b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/audio_tokens_chunk_1.bin differ diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/audio_tokens_chunk_1.txt b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/audio_tokens_chunk_1.txt new file mode 100644 index 000000000..eb8a50ef6 --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/audio_tokens_chunk_1.txt @@ -0,0 +1 @@ +728,4613,4803,4551,4466,2673,2772,2408,4778,5482,4920,2276,1703,1964,991,11,2918,5105,5834,3647,3656,1459,4299,6486,4299,4299,4218,5838,3732,1788,6021,5322,159,137,4961,2698,2763,635,218,231,4515,3077,4414,5937,6261,2259,4456,2189,2,219,60,4623,1241,5777,4507,389,632,80,4911,4992,5100,4425,6454,6373,3231,543,2246,731,3161,3169,3888,6486,6486,4299,4299,4218,3648,5835,5838,3651,1545,2112,2121,1882,287,485,870,2726,4489,5205,6387 diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/audio_tokens_chunk_10.bin b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/audio_tokens_chunk_10.bin new file mode 100644 index 000000000..c1a5efca3 Binary files /dev/null and b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/audio_tokens_chunk_10.bin differ diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/audio_tokens_chunk_10.txt b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/audio_tokens_chunk_10.txt new file mode 100644 index 000000000..d33f080f7 --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/audio_tokens_chunk_10.txt @@ -0,0 +1 @@ +524,2031,3645,5838,5838,3003,1870,3759,6048,3135,881,2411,4390,5832,5917,2358,4317,914,359,4859,6048,5322,3125,4540,4851,588,2894,1369,3,127,4430,4473,6261,297,5112,5062,2687,1557,19,2189,254,290,1945,6486,4299,3972,3648,5919,3975,2112,2112,3057,1686,2900,2801,4886,2276,5591,352,559 diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/audio_tokens_chunk_11.bin b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/audio_tokens_chunk_11.bin new file mode 100644 index 000000000..a568854fe Binary files /dev/null and b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/audio_tokens_chunk_11.bin differ diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/audio_tokens_chunk_11.txt b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/audio_tokens_chunk_11.txt new file mode 100644 index 000000000..99a72f635 --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/audio_tokens_chunk_11.txt @@ -0,0 +1 @@ +113,5264,5319,5322,876,5345,3158,953,116,3894,5838,2922,735,2031,3913,5614,5073,4532,491,2125,2125,125,2564,4736,4978,4614,4911,227,530,1723,1806,5648,4432,4461,4749,5020,2348,1917,2166,3240,6075,1703,1463,4540,5650,4432,2454,148,1532,1466,4490,951,4922,4647,4857,4776,4675,2634,5342,3644,2843,497,752,3471,4408,258,62,4393,5532,6375,6373,2243,488,491,494,602,2060,4299,6486,6486 diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/audio_tokens_chunk_12.bin b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/audio_tokens_chunk_12.bin new file mode 100644 index 000000000..ad22f7ddb Binary files /dev/null and b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/audio_tokens_chunk_12.bin differ diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/audio_tokens_chunk_12.txt b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/audio_tokens_chunk_12.txt new file mode 100644 index 000000000..69fe51b81 --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/audio_tokens_chunk_12.txt @@ -0,0 +1 @@ +6486,4299,4218,3975,4299,4299,4299,1707,6373,6455,3465,1046,4520,4857,5101,2987,6048,138,2666,5000,5006,4376,5834,3647,3647,3656,1710,1704,3645,5835,5862,3645,1944,573,2835,2841,1376,635,353,2417,2976,3156,4567,4456,2459,1757,2112,4299,2085,361,110,881,1097,3688,5322,141,2222,4551,6261,4678,4587,5087,3790,5319,160,5021,5750,889,3057,1937,524,1564,5650,4405,2436,2024,3482,888,5650,4696,4857,4778,1034,1763,4299,6486,6486,4299,4299,2112,54,4532,4604,2169,2594,5834,5105,4384,3897,6486,6486,4299 diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/audio_tokens_chunk_2.bin b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/audio_tokens_chunk_2.bin new file mode 100644 index 000000000..a3206460c Binary files /dev/null and b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/audio_tokens_chunk_2.bin differ diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/audio_tokens_chunk_2.txt b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/audio_tokens_chunk_2.txt new file mode 100644 index 000000000..e0b99795e --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/audio_tokens_chunk_2.txt @@ -0,0 +1 @@ +2502,974,1163,5970,957,5915,4557,5402,5404,2888,1079,1721,1262,29,3650,3650,2924,4543,4570,2032,2922,5838,2922,1545,2112,54,5835,5111,4688,2474,731,2720,3103,1743,3147,4538,4943,63,5652,4463,166,3717,2582,143,845,998,5214,2409,2303,5914,2675,263,2028,3888,5835,3732,3003,2112,4920,969,3638,888,4921,1943,140,138,73,2354,2300,113,1520,2112,4299,1005,4593,3157,4598,4778,3482,969,1029,4704,2724,2573,4382,5937,2130,6051,1539 diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/audio_tokens_chunk_3.bin b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/audio_tokens_chunk_3.bin new file mode 100644 index 000000000..4fa9872ea Binary files /dev/null and b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/audio_tokens_chunk_3.bin differ diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/audio_tokens_chunk_3.txt b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/audio_tokens_chunk_3.txt new file mode 100644 index 000000000..824e6eac9 --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/audio_tokens_chunk_3.txt @@ -0,0 +1 @@ +2676,4981,5065,5775,6501,2854,5113,1463,1010,1262,2216,960,162,2349,2476,56,1641,748,731,497,515,4907,5608,2032,6486,6486,4299,4218,5832,5832,5919,5838,5835,3648,2106,2166,1440,5098,582,721,191,104,6396,4432,25,116,4967,4966,1644,2274,2688,2339,2219,4744,3531,6537,2756,6157,4489,5319,2290,5286,5953,5322,89,1703,1460,2393,5319,2406,4571,6239,1622,1649,1648,6486,4299,3732,5919,5838,3651,2922,816,2112,1518,5323,1132,476,974,2756 diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/audio_tokens_chunk_4.bin b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/audio_tokens_chunk_4.bin new file mode 100644 index 000000000..14950d1f9 Binary files /dev/null and b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/audio_tokens_chunk_4.bin differ diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/audio_tokens_chunk_4.txt b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/audio_tokens_chunk_4.txt new file mode 100644 index 000000000..b602aeb77 --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/audio_tokens_chunk_4.txt @@ -0,0 +1 @@ +4441,6455,2229,4803,6261,2232,4445,5668,4912,960,2274,2454,4543,4637,6149,2918,1463,737,2195,3071,4691,4537,5348,254,1944,3888,5835,5838,3651,2112,1977,4675,2423,2426,890,713,875,1275,5404,2023,5507,2585,2757,2775,4835,2411,386,1286,2112,5325,3807,502,1403,4316,4452,5645,2238,4803,6504,33,5835,3653,2600,4778,5319,5322,3063,1862,1610,1601,4299,6486,6486,6486,6486,6486,6486,4299,4299,4299,4299,1726,5614,4831 diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/audio_tokens_chunk_5.bin b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/audio_tokens_chunk_5.bin new file mode 100644 index 000000000..cb3ad6973 Binary files /dev/null and b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/audio_tokens_chunk_5.bin differ diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/audio_tokens_chunk_5.txt b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/audio_tokens_chunk_5.txt new file mode 100644 index 000000000..744f56137 --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/audio_tokens_chunk_5.txt @@ -0,0 +1 @@ +2306,667,2125,4580,4520,281,321,4675,1133,62,2246,300,4433,4376,2189,2198,1701,3888,5919,5838,5838,3003,2112,3462,4678,5587,5086,4448,5645,3456,4511,4376,4643,5775,6289,888,63,3242,4646,1110,6374,4411,4542,4462,834,2236,3650,18,1719,5,2348,5319,4593,2399,5267,1622,1649,1625,1623,3972,5919,5838,3003,1869,1491,5241,1862,1376,2357,6401 diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/audio_tokens_chunk_6.bin b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/audio_tokens_chunk_6.bin new file mode 100644 index 000000000..5f017bd74 Binary files /dev/null and b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/audio_tokens_chunk_6.bin differ diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/audio_tokens_chunk_6.txt b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/audio_tokens_chunk_6.txt new file mode 100644 index 000000000..4d1ef5501 --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/audio_tokens_chunk_6.txt @@ -0,0 +1 @@ +2591,566,974,4571,4579,5672,245,2753,2752,818,3647,5834,5265,1896,60,4704,2679,620,1484,1970,1239,696,5077,2415,4921,4569,1149,6074,968,869,1519,1707,4215,4299,3972,3888,6156,6075,3888,4131,2112,1383,2841,1373,4604,60,2187,4871,5095,0,2268,5832,5994,2205,4149,2219,5173,5319,879,137,2710,4860,4877,4973,2789,2870,2789,3486,4299,4215,3975,4299,4218,6537,1431,1055,1460,1625,1649,5332 diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/audio_tokens_chunk_7.bin b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/audio_tokens_chunk_7.bin new file mode 100644 index 000000000..c2027840b Binary files /dev/null and b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/audio_tokens_chunk_7.bin differ diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/audio_tokens_chunk_7.txt b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/audio_tokens_chunk_7.txt new file mode 100644 index 000000000..5877ea017 --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/audio_tokens_chunk_7.txt @@ -0,0 +1 @@ +2742,4758,1943,59,63,4568,2415,60,4704,2760,593,1724,2050,648,5751,2766,5100,5088,144,306,5,1460,1459,4299,6486,6486,6486,6486,4299,4218,4002,4299,4299,4299,4299,2085,5648,4432,1051,5588,5251,5319,3054,1537,1691,3083,5834,6077,3890,3170,1710,1704,5832,5835,3648,1461,2040,4068,911,2465,476,3,2666,4600,6073,1682,4553,4399,5402,4675,5398,4522,5931,5986,4445,2753,566,395 diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/audio_tokens_chunk_8.bin b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/audio_tokens_chunk_8.bin new file mode 100644 index 000000000..0d573e03b Binary files /dev/null and b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/audio_tokens_chunk_8.bin differ diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/audio_tokens_chunk_8.txt b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/audio_tokens_chunk_8.txt new file mode 100644 index 000000000..e2cb0c8b8 --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/audio_tokens_chunk_8.txt @@ -0,0 +1 @@ +876,1032,65,5087,2259,5647,2916,5832,1946,1253,4151,1509,3141,4607,4940,3455,2672,3,4612,4441,5483,2463,8,2678,4842,4857,3534,1943,1862,1680,5325,970,4807,5053,2789,611,2032,4299,4299,3891,5916,5838,2922,1465,2031,1854,80,2753,1888,1885,359,2285,1725,6051,3155,4862,4879,3832,5244,3158,2300,2324,29,1517,1987,2022,3237,3152,701,2132,1808,3462,5402,4408,4461,4857,5100,5021,2591,1816,3732,5835,3645,1701,2112 diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/audio_tokens_chunk_9.bin b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/audio_tokens_chunk_9.bin new file mode 100644 index 000000000..1196e8fc0 Binary files /dev/null and b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/audio_tokens_chunk_9.bin differ diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/audio_tokens_chunk_9.txt b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/audio_tokens_chunk_9.txt new file mode 100644 index 000000000..a25289efd --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/audio_tokens_chunk_9.txt @@ -0,0 +1 @@ +6258,4311,4942,5608,3266,5173,5482,2463,2591,3647,1217,1235,1963,1722,4299,4299,3888,2754,560,2429,5667,4992,231,57,566,2249,4476,3993,51,2753,116,2291,4560,4416,5402,4650,5,1949,1253,1815,5650,4432,4489,249,5750,231,54,4542,5917,3647,818,736,4299,6486,6486,6486,6486,6486,6486,4299,6486,4299,2112,1677,3481,557,2273,1431,3240,5841,6158,2513,6453,6507,4700,4376,1480,4209,6374,3024,5800,5093,2816,2675 diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/generation_done.flag b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/generation_done.flag new file mode 100644 index 000000000..87523dd7a --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/generation_done.flag @@ -0,0 +1 @@ +41 diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_0.wav b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_0.wav new file mode 100644 index 000000000..663769e21 Binary files /dev/null and b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_0.wav differ diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_1.wav b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_1.wav new file mode 100644 index 000000000..8e508e21e Binary files /dev/null and b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_1.wav differ diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_10.wav b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_10.wav new file mode 100644 index 000000000..b30b940c6 Binary files /dev/null and b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_10.wav differ diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_11.wav b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_11.wav new file mode 100644 index 000000000..434616230 Binary files /dev/null and b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_11.wav differ diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_12.wav b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_12.wav new file mode 100644 index 000000000..0ce4184d8 Binary files /dev/null and b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_12.wav differ diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_13.wav b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_13.wav new file mode 100644 index 000000000..31fb6a476 Binary files /dev/null and b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_13.wav differ diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_14.wav b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_14.wav new file mode 100644 index 000000000..7cbb1de3e Binary files /dev/null and b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_14.wav differ diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_15.wav b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_15.wav new file mode 100644 index 000000000..b15170b21 Binary files /dev/null and b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_15.wav differ diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_16.wav b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_16.wav new file mode 100644 index 000000000..4983a435f Binary files /dev/null and b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_16.wav differ diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_17.wav b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_17.wav new file mode 100644 index 000000000..53438485b Binary files /dev/null and b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_17.wav differ diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_18.wav b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_18.wav new file mode 100644 index 000000000..c62896ec1 Binary files /dev/null and b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_18.wav differ diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_19.wav b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_19.wav new file mode 100644 index 000000000..37a8a009f Binary files /dev/null and b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_19.wav differ diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_2.wav b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_2.wav new file mode 100644 index 000000000..aa023de9c Binary files /dev/null and b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_2.wav differ diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_20.wav b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_20.wav new file mode 100644 index 000000000..2fb57a37a Binary files /dev/null and b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_20.wav differ diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_21.wav b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_21.wav new file mode 100644 index 000000000..32d82df9f Binary files /dev/null and b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_21.wav differ diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_22.wav b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_22.wav new file mode 100644 index 000000000..d3ea890ee Binary files /dev/null and b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_22.wav differ diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_23.wav b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_23.wav new file mode 100644 index 000000000..a144652ed Binary files /dev/null and b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_23.wav differ diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_24.wav b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_24.wav new file mode 100644 index 000000000..c6feaba36 Binary files /dev/null and b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_24.wav differ diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_25.wav b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_25.wav new file mode 100644 index 000000000..078c318de Binary files /dev/null and b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_25.wav differ diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_26.wav b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_26.wav new file mode 100644 index 000000000..8b94157c4 Binary files /dev/null and b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_26.wav differ diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_27.wav b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_27.wav new file mode 100644 index 000000000..fa82dd1aa Binary files /dev/null and b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_27.wav differ diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_28.wav b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_28.wav new file mode 100644 index 000000000..e8080089f Binary files /dev/null and b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_28.wav differ diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_29.wav b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_29.wav new file mode 100644 index 000000000..00338bd22 Binary files /dev/null and b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_29.wav differ diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_3.wav b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_3.wav new file mode 100644 index 000000000..93d50c1bc Binary files /dev/null and b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_3.wav differ diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_30.wav b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_30.wav new file mode 100644 index 000000000..a247e44a0 Binary files /dev/null and b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_30.wav differ diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_31.wav b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_31.wav new file mode 100644 index 000000000..37a442ad0 Binary files /dev/null and b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_31.wav differ diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_32.wav b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_32.wav new file mode 100644 index 000000000..5f7c80826 Binary files /dev/null and b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_32.wav differ diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_33.wav b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_33.wav new file mode 100644 index 000000000..5577ad7dc Binary files /dev/null and b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_33.wav differ diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_34.wav b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_34.wav new file mode 100644 index 000000000..45dabb453 Binary files /dev/null and b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_34.wav differ diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_35.wav b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_35.wav new file mode 100644 index 000000000..90315d54b Binary files /dev/null and b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_35.wav differ diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_36.wav b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_36.wav new file mode 100644 index 000000000..f8170f182 Binary files /dev/null and b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_36.wav differ diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_37.wav b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_37.wav new file mode 100644 index 000000000..e312ea36e Binary files /dev/null and b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_37.wav differ diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_38.wav b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_38.wav new file mode 100644 index 000000000..eaff952af Binary files /dev/null and b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_38.wav differ diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_39.wav b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_39.wav new file mode 100644 index 000000000..6da07ff15 Binary files /dev/null and b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_39.wav differ diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_4.wav b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_4.wav new file mode 100644 index 000000000..36e39d906 Binary files /dev/null and b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_4.wav differ diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_40.wav b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_40.wav new file mode 100644 index 000000000..2f0c37d41 Binary files /dev/null and b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_40.wav differ diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_41.wav b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_41.wav new file mode 100644 index 000000000..c079a8a0b Binary files /dev/null and b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_41.wav differ diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_5.wav b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_5.wav new file mode 100644 index 000000000..64799b409 Binary files /dev/null and b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_5.wav differ diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_6.wav b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_6.wav new file mode 100644 index 000000000..965009775 Binary files /dev/null and b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_6.wav differ diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_7.wav b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_7.wav new file mode 100644 index 000000000..46ea21df7 Binary files /dev/null and b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_7.wav differ diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_8.wav b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_8.wav new file mode 100644 index 000000000..cc05c76c2 Binary files /dev/null and b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_8.wav differ diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_9.wav b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_9.wav new file mode 100644 index 000000000..32768e816 Binary files /dev/null and b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_9.wav differ diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_timing.txt b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_timing.txt new file mode 100644 index 000000000..478e4b1af --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/round_000/tts_wav/wav_timing.txt @@ -0,0 +1,3 @@ +# WAV file generation timing log +# Format: chunk_index, elapsed_time_ms (since stream_decode start), file_size_bytes, request_duration_ms +# Time 0 is when stream_decode() function starts diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/speech_asr_proxy.json b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/speech_asr_proxy.json new file mode 100644 index 000000000..45dc02513 --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/speech_asr_proxy.json @@ -0,0 +1,18 @@ +{ + "scope": "Whisper Mandarin ASR proxy for generated speech; no input-task or perceptual-quality claim", + "asr_model": "openai/whisper-tiny", + "asr_revision": "169d4a4341b33bc18d8881c4b69c2e104e1cc0af", + "asr_weights_sha256": "7ebd0e69e78190ffe1438491fa05cc1f5c1aa3a4c4db3bc1723adbb551ea2395", + "transformers": "4.57.3", + "torch": "2.4.1+cpu", + "wav_sha256": "bf1d7c665eec4e7da09d03f89bac110ff07a7f4335fde7add212c0363fadaa80", + "wav_duration_s": 41.96, + "reference_text": "你知道吗,有时候啊,我也会想啊,生活真的挺有意思的。每天早上醒来,太阳照在脸上,就觉得这一天充满了可能。不管前一天发生啥事,只要新的一天来了,就有机会重新开始。你有没有觉得,就算遇到再难的事,只要咬咬牙挺过去,回头看的时候,反而觉得挺酷的?其实啊,每个人心里都藏着一个小宇宙,里面装着勇气、梦想和一点点小期待。别怕犯错,谁还没摔过跟头呢?重要的是,你有没有勇气爬起来继续往前走。所以说啊,活着本身就是一种奇迹,对吧?", + "transcript": "你知道嗎?有時候我也會想啊,生活真的挺有意思的。每天早上醒來,太陽照在臉上,就覺得這天充滿了可能。不管前一天發生啥事,只要新的一天來了,就有機會重新開始。你有沒有覺得,就算遇到在南的事,只要要壓停過去。回頭看的時候,反而覺得停哭的。其實啊,每個人人心裡都藏著一個小宇宙裡面裝著勇氣,夢想和一點點小期待別怕犯錯,誰還沒睡過跟透呢?重要的是,你有沒有勇氣爬起來繼續往前走所以說啊,活著本身就是一種奇跡,對吧?", + "asr_segments_25_s": 2, + "character_error_rate_raw": 0.33516483516483514, + "character_error_rate_t2s_normalized": 0.08791208791208792, + "normalization": "OpenCC 0.1.7 t2s; punctuation ignored", + "load_s": 0.7860921999672428, + "inference_s": 2.9756397999590263 +} diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/speech_asr_proxy.log b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/speech_asr_proxy.log new file mode 100644 index 000000000..d68c82d7f --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/speech_asr_proxy.log @@ -0,0 +1,18 @@ +{ + "scope": "Whisper Mandarin ASR proxy for generated speech; no input-task or perceptual-quality claim", + "asr_model": "openai/whisper-tiny", + "asr_revision": "169d4a4341b33bc18d8881c4b69c2e104e1cc0af", + "asr_weights_sha256": "7ebd0e69e78190ffe1438491fa05cc1f5c1aa3a4c4db3bc1723adbb551ea2395", + "transformers": "4.57.3", + "torch": "2.4.1+cpu", + "wav_sha256": "bf1d7c665eec4e7da09d03f89bac110ff07a7f4335fde7add212c0363fadaa80", + "wav_duration_s": 41.96, + "reference_text": "��֪������ʱ�򰡣���Ҳ���밡���������ͦ����˼�ġ�ÿ������������̫���������ϣ��;�����һ������˿��ܡ�����ǰһ�췢��ɶ�£�ֻҪ�µ�һ�����ˣ����л������¿�ʼ������û�о��ã������������ѵ��£�ֻҪҧҧ��ͦ��ȥ����ͷ����ʱ�򣬷�������ͦ��ģ���ʵ����ÿ�������ﶼ����һ��С���棬����װ�������������һ���С�ڴ������·�����˭��ûˤ����ͷ�أ���Ҫ���ǣ�����û������������������ǰ�ߡ�����˵�������ű�������һ���漣���԰ɣ�", + "transcript": "��֪����?�Еr����Ҳ���밡,�������ͦ����˼�ġ�ÿ�������с�,̫�����Ę��,���X���@���M�˿��ܡ�����ǰһ��l��ɶ��,ֻҪ�µ�һ�����,���ЙC�������_ʼ�����Л]���X��,�����������ϵ���,ֻҪҪ��ͣ�^ȥ�����^���ĕr��,�����X��ͣ�޵ġ��䌍��,ÿ���������e������һ��С�����e���b���š�,�����һ�c�cС�ڴ��e�·��e,�l߀�]˯�^��͸��?��Ҫ����,���Л]���š��������^�m��ǰ�������f��,������������һ�N���E,����?", + "asr_segments_25_s": 2, + "character_error_rate_raw": 0.33516483516483514, + "character_error_rate_t2s_normalized": 0.08791208791208792, + "normalization": "OpenCC 0.1.7 t2s; punctuation ignored", + "load_s": 0.7860921999672428, + "inference_s": 2.9756397999590263 +} diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/vulkaninfo_summary.log b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/vulkaninfo_summary.log new file mode 100644 index 000000000..fb9668e1e --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/vulkaninfo_summary.log @@ -0,0 +1,65 @@ +WARNING: [Loader Message] Code 0 : windows_read_data_files_in_registry: Registry lookup failed to get layer manifest files. +========== +VULKANINFO +========== + +Vulkan Instance Version: 1.4.341 + + +Instance Extensions: count = 20 +------------------------------- +VK_EXT_debug_report : extension revision 10 +VK_EXT_debug_utils : extension revision 2 +VK_EXT_direct_mode_display : extension revision 1 +VK_EXT_surface_maintenance1 : extension revision 1 +VK_EXT_swapchain_colorspace : extension revision 5 +VK_KHR_device_group_creation : extension revision 1 +VK_KHR_display : extension revision 23 +VK_KHR_external_fence_capabilities : extension revision 1 +VK_KHR_external_memory_capabilities : extension revision 1 +VK_KHR_external_semaphore_capabilities : extension revision 1 +VK_KHR_get_display_properties2 : extension revision 1 +VK_KHR_get_physical_device_properties2 : extension revision 2 +VK_KHR_get_surface_capabilities2 : extension revision 1 +VK_KHR_portability_enumeration : extension revision 1 +VK_KHR_surface : extension revision 25 +VK_KHR_surface_maintenance1 : extension revision 1 +VK_KHR_surface_protected_capabilities : extension revision 1 +VK_KHR_win32_surface : extension revision 6 +VK_LUNARG_direct_driver_loading : extension revision 1 +VK_NV_external_memory_capabilities : extension revision 1 + +Instance Layers: count = 3 +-------------------------- +VK_LAYER_AMD_switchable_graphics AMD switchable graphics layer 1.4.320 version 1 +VK_LAYER_NV_optimus NVIDIA Optimus layer 1.4.341 version 1 +VK_LAYER_NV_present NVIDIA Presentation Layer 1.4.341 version 1 + +Devices: +======== +GPU0: + apiVersion = 1.4.341 + driverVersion = 610.71.0.0 + vendorID = 0x10de + deviceID = 0x2c18 + deviceType = PHYSICAL_DEVICE_TYPE_DISCRETE_GPU + deviceName = NVIDIA GeForce RTX 5090 Laptop GPU + driverID = DRIVER_ID_NVIDIA_PROPRIETARY + driverName = NVIDIA + driverInfo = 610.71 + conformanceVersion = 1.4.3.3 + deviceUUID = bf6e910e-657c-15d7-c558-f169df134d8a + driverUUID = 32da8b74-b45b-55e0-9ba2-ab437d951f07 +GPU1: + apiVersion = 1.4.320 + driverVersion = 2.0.359 + vendorID = 0x1002 + deviceID = 0x150e + deviceType = PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU + deviceName = AMD Radeon(TM) 890M Graphics + driverID = DRIVER_ID_AMD_PROPRIETARY + driverName = AMD proprietary driver + driverInfo = 25.20.18.06 (LLPC) + conformanceVersion = 1.4.0.0 + deviceUUID = 00000000-6500-0000-0000-000000000000 + driverUUID = 414d442d-5749-4e2d-4452-560000000000 diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m_prompted/README.md b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m_prompted/README.md new file mode 100644 index 000000000..d53f2a10f --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m_prompted/README.md @@ -0,0 +1,9 @@ +# Radeon 890M MiniCPM-o: spoken visual question + +This is one **standalone scoped complete** audio+image → text+speech request on native Windows 11 build 26200 with the pinned MiniCPM-o 4.5 Q4_K_M/F16 GGUF set. It uses the same [C++ runtime, patch and Radeon placement](../minicpmo_cpp_radeon890m/README.md) as the unprompted combined-input run. The image is a synthetic 448×448 red square. The question, “What color is the square in the image?”, was spoken by Windows SAPI's default `Microsoft Huihui Desktop` voice into [22,050 Hz PCM16](question_raw.wav), resampled to [16 kHz PCM16](fixture_0001.wav), and paired with the [JPEG](fixture_0001.jpg). Pinned CPU [Whisper tiny.en independently transcribed the input exactly](input_asr.json), WER 0; this verifies the acoustic fixture rather than relying only on the intended prompt text. + +The [raw log](full.combined.log) records actual index-1 image and audio prefill. `GGML_VK_VISIBLE_DEVICES=1` selected the Radeon 890M; the runtime logged 37/37 language layers on `Vulkan0 (AMD Radeon(TM) 890M Graphics)`, vision on Vulkan0, TTS weights 0/21 GPU layers, and CPU Token2Wav/vocoder. The output was **“The square in the image is red.”** The [verifier report](full_report.json) pins ten weight hashes, executable/input hashes, text, all three contiguous nonzero 24 kHz [WAV chunks](round_000/tts_wav/), their 2.56 s [merged PCM](full_merged.wav), and the completion marker. Pinned [Whisper tiny.en transcribed the output exactly](output_asr.json), WER 0; this is an intelligibility proxy only. + +One cold process took 18.63 s. [100 ms process sampling](full.profile.json) observed maximum RSS 15.57 GB and private bytes 15.44 GB, not proven loading peaks. The [same fixture on native Windows CPU](../minicpmo_cpp_windows_cpu_prompted/README.md) returned the same answer and all eight language token IDs; the [cross-device check](cpu_radeon_parity.json) verifies that the model and input hashes match. Speech PCM differs, so this is text/token parity, not waveform parity or a general numerical tolerance. It is one synthetic quality case, not a full image/audio suite, latency distribution, playable stream, memory admission or sustained-power result. No Omni stage binding or NPU execution is claimed. + +To reproduce the fixture, use Windows `System.Speech.Synthesis.SpeechSynthesizer.SetOutputToWaveFile` with the stated sentence and default voice, resample mono audio to 16 kHz PCM16, and run the [same command](../minicpmo_cpp_radeon890m/README.md) with this directory's `fixture_0000.wav`, `fixture_0001.wav`, and `fixture_0001.jpg` as the `--test` prefix. The source and artifact hashes in [the report](full_report.json) are the definitive identity checks. diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m_prompted/cpu_radeon_parity.json b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m_prompted/cpu_radeon_parity.json new file mode 100644 index 000000000..dbce6a97a --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m_prompted/cpu_radeon_parity.json @@ -0,0 +1,33 @@ +{ + "scope": "one synthetic spoken visual question; standalone CPU vs Radeon hybrid", + "status": "scoped_prompted_path_pass", + "checkpoint_revision": "db25077c33951fe163b42986fba0132e279872a2", + "same_artifact_set": true, + "same_input_image_audio": true, + "spoken_input": "What color is the square in the image?", + "input_asr_wer": 0.0, + "response_text": "The square in the image is red.", + "language_token_ids": [ + 785, + 9334, + 304, + 279, + 2168, + 374, + 2518, + 13 + ], + "cpu": { + "cold_wall_s": 24.658903300063685, + "audio_duration_s": 2.32, + "pcm_sha256": "8de1b8306907577948b85131e5af2296bd276da4427c5f7559d91790eb8fb837", + "output_asr_wer": 0.0 + }, + "radeon_hybrid": { + "cold_wall_s": 18.634632700006478, + "audio_duration_s": 2.56, + "pcm_sha256": "de9c909bb698da33f0f79f6a5b1761c1739492a2cdcfeafb2716f821645d3251", + "output_asr_wer": 0.0 + }, + "quality_limit": "one synthetic red square and one spoken question" +} diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m_prompted/fixture_0000.wav b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m_prompted/fixture_0000.wav new file mode 100644 index 000000000..76b27ff0b Binary files /dev/null and b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m_prompted/fixture_0000.wav differ diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m_prompted/fixture_0001.jpg b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m_prompted/fixture_0001.jpg new file mode 100644 index 000000000..63bf0ffd6 Binary files /dev/null and b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m_prompted/fixture_0001.jpg differ diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m_prompted/fixture_0001.wav b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m_prompted/fixture_0001.wav new file mode 100644 index 000000000..19bf38b0f Binary files /dev/null and b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m_prompted/fixture_0001.wav differ diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m_prompted/full.combined.log b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m_prompted/full.combined.log new file mode 100644 index 000000000..59e37ed6e --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m_prompted/full.combined.log @@ -0,0 +1,480 @@ +=== Model Paths === + Base dir: C:\Users\zhout\w2\models\MiniCPM-o-4_5-gguf + LLM: C:\Users\zhout\w2\models\MiniCPM-o-4_5-gguf\MiniCPM-o-4_5-Q4_K_M.gguf [OK] + Vision: C:\Users\zhout\w2\models\MiniCPM-o-4_5-gguf/vision/MiniCPM-o-4_5-vision-F16.gguf [OK] + Audio: C:\Users\zhout\w2\models\MiniCPM-o-4_5-gguf/audio/MiniCPM-o-4_5-audio-F16.gguf [OK] + TTS: C:\Users\zhout\w2\models\MiniCPM-o-4_5-gguf/tts/MiniCPM-o-4_5-tts-F16.gguf [OK] + Projector: C:\Users\zhout\w2\models\MiniCPM-o-4_5-gguf/tts/MiniCPM-o-4_5-projector-F16.gguf [OK] +=================== +=== Initializing Omni Context === + Media type: 2 (omni: audio+vision) + TTS enabled: yes + Context size: 2048 + GPU layers: 99 + Token2Wav device: cpu + Vision backend: metal + TTS bin dir: C:\Users\zhout\w2\models\MiniCPM-o-4_5-gguf/tts + Ref audio: C:\Users\zhout\w2\minicpmo_cpp_prompt\default_ref_audio.wav +22:32:43.815 === omni_init start +22:32:43.815 media_type = 2, duplex_mode = 0, base_output_dir = ./tools/omni/output +22:32:43.815 === omni_init: loading new LLM model +22:32:46.957 === omni_init: loading TTS model +22:32:46.957 TTS model: loading with n_gpu_layers=0 +22:32:47.242 TTS sampler: temp=0.80, top_p=0.85, top_k=25, rep_penalty=1.05 +22:32:47.242 TTS: loading weights from GGUF (emb_code, emb_text, projector_semantic, head_code)... +22:32:47.594 TTS: head_code shape: dim0=6562, dim1=768, will transpose to [6562, 768] +22:32:47.598 TTS: head_code loaded, verifying first few values: +22:32:47.598 head_code_weight[0] = 0.01361084 (expect ~0.01385498) +22:32:47.598 head_code_weight[1] = -0.01660156 (expect ~-0.01647949) +22:32:47.598 head_code_weight[768] = 0.04101562 (this is weight[1, 0], expect ~0.04150391) +22:32:47.633 TTS: weights loaded successfully +22:32:47.634 Projector: loading from C:\Users\zhout\w2\models\MiniCPM-o-4_5-gguf/tts/MiniCPM-o-4_5-projector-F16.gguf +22:32:47.639 Projector: loaded successfully +22:32:47.639 === omni_init: loading APM model +22:32:47.828 APM: init from C:\Users\zhout\w2\models\MiniCPM-o-4_5-gguf/audio/MiniCPM-o-4_5-audio-F16.gguf +22:32:48.659 Token2Wav: found models in C:\Users\zhout\w2\models\MiniCPM-o-4_5-gguf/token2wav-gguf +22:32:48.659 Token2Wav: all model files found, initializing session... +22:32:48.659 Token2Wav: non-CUDA backend, vocoder using CPU for better performance +22:32:48.659 Token2Wav: using prompt_cache from C:\Users\zhout\w2\models\MiniCPM-o-4_5-gguf/token2wav-gguf/prompt_cache.gguf +22:32:48.940 Token2Wav: initialized successfully +22:32:48.940 Python T2W: script_dir=./tools/omni/pyt2w, model_dir=./tools/omni/pyt2w/token2wav +22:32:48.940 Token2Wav: 使用 C++ 实现 +22:32:48.940 === omni_init success: ctx_llama = 000002c8d49bfaa0 +=== Running test case === + Audio prefix: C:\Users\zhout\w2\minicpmo_cpp_prompt\fixture_ + Count: 2 +22:32:48.940 stream_prefill: n_past = 0 + voice_clone_prompt = <|im_start|>system +模仿音频样本的音色并生成新的内容。 +<|audio_start|> + assistant_prompt = <|audio_end|>你的任务是用这种声音模式来当一个助手。请认真、高质量地回复用户的问题。请用高自然度的方式和用户聊天。<|im_end|> +<|im_start|>user + +22:32:48.940 system prompt ref_audio: C:\Users\zhout\w2\minicpmo_cpp_prompt\fixture_0000.wav +22:32:49.611 system prompt ref_audio embedding: n_pos=20 +22:32:50.277 🔒 n_keep 设置为 72 (system prompt tokens),这部分永远不会被滑动窗口删除 +22:32:50.277 stream_prefill(index=0): system prompt 初始化完成,ref_audio 已在其中 prefill +22:32:50.277 [SW] system_prompt registered: preserve_length=72 (will be protected from sliding) +22:32:50.277 n_past = 72 +22:32:50.277 + +c++ finish stream_prefill(index=0). n_past=72, n_keep=72, n_ctx=2048 + +prefill 0 (audio) : 1.33625 s +22:32:52.195 stream_prefill(index=1): processing user audio: C:\Users\zhout\w2\minicpmo_cpp_prompt\fixture_0001.wav +22:32:52.482 stream_prefill(index=1): user audio embedding: n_pos=31 +22:32:52.788 + +c++ finish stream_prefill(index=1). n_past=172, n_keep=72, n_ctx=2048 + +prefill 1 (audio+vision) : 2.5109 s +22:32:52.788 📍 stream_decode 开始: n_past=172, n_keep=72, n_ctx=2048, duplex_mode=0 +22:32:52.788 stream_decode: create tts thread (simplex mode) +22:32:52.788 stream_decode: create t2w thread +22:32:52.788 wait prefill done +22:32:52.788 📍 [单工TTS] 添加 assistant prompt: "<|im_end|> +<|im_start|>assistant + + + + +<|tts_bos|>", n_past=172 +22:32:52.789 T2W thread (C++) started +22:32:52.791 TTS: 创建单工模式输出目录: ./tools/omni/output/round_000 +22:32:52.791 TTS thread started +22:32:52.944 📍 [单工TTS] assistant prompt 完成, n_past=182 +22:32:52.945 LLM decode: max_tgt_len = 2048, n_predict = -1, n_ctx = 2048 +22:32:53.483 LLM: detected end token, set llm_generation_done=true +22:32:53.483 LLM->TTS: text='The square in the image is red.', n_tokens=8, hidden_size=32768, n_embd=4096, token_ids=[785 9334 304 279 2168 374 2518 13] +22:32:53.483 📍 Decode 结束: n_past=191, 剩余空间=1857, 无需滑窗 +22:32:53.483 📍 轮次 1 结束,记录边界于 n_past=191 +22:32:53.483 TTS<-LLM: chunk_idx=0, text='The square in the image is red.', n_tokens=8, hidden_size=32768, token_ids=[785 9334 304 279 2168 374 2518 13] +22:32:53.483 TTS: after queue pop - speek_done=0, llm_finish=1, llm_text.empty=0, token_ids.size=8 +22:32:53.483 TTS: before empty check - response.empty=0, response='The square in the image is red.', llm_finish=1 +22:32:53.483 TTS: DEBUG before has_llm_data - token_ids.size=8, hidden_states.size=32768, n_embd=4096 +22:32:53.483 TTS: has_llm_data=1, token_ids=8, hidden_states=32768, n_embd=4096, llm_finish=1 +22:32:53.484 TTS: n_tokens_orig=8, n_tokens_filtered=8 (filtered 0 special tokens) +22:32:53.524 TTS: saved merged embeddings (text) to ./tools/omni/output/round_000/llm_debug/chunk_0/merged_embeddings.txt +22:32:53.524 TTS Simplex: generating audio tokens for chunk 0 (n_tokens=8, tts_n_embd=768) +22:32:53.524 TTS Simplex: 在 prefill 前添加 audio_bos (chunk_idx=0, new_size=9) +22:32:53.524 TTS Simplex: first chunk - cleared KV cache +22:32:53.524 TTS Simplex: first chunk - cleared tts_all_generated_tokens and tts_token_buffer +22:32:53.585 TTS Simplex: prefill completed, n_past_tts=9 +22:32:53.585 TTS Simplex: sampler created +22:32:53.585 TTS simplex: is_audio_bos=true (first audio token) +22:32:53.612 TTS Simplex Phase1: token 1/500: rel_id=3764 +22:32:53.622 TTS Simplex Phase1: token 2/500: rel_id=1950 +22:32:53.633 TTS Simplex Phase1: token 3/500: rel_id=4137 +22:32:53.644 TTS Simplex Phase1: token 4/500: rel_id=4137 +22:32:53.656 TTS Simplex Phase1: token 5/500: rel_id=4137 +22:32:53.782 📍 为下一轮准备: eval <|im_end|>\n<|im_start|>user\n, n_past=196 +22:32:22:32:53.5300.907 907 TTS Simplex Phase1: yield 25 tokens 到 T2W (step 25, buffer=25) +T2W线程(C++): 轮次切换 (-1 -> 0),更新输出目录 +22:32:53.908 TTS Simplex Phase1: token 25/500: rel_id=3906 +22:32:53.908 T2W线程(C++): 新输出目录 ./tools/omni/output/round_000/tts_wav +22:32:54.188 TTS Simplex Phase1: yield 25 tokens 到 T2W (step 50, buffer=25) +22:32:54.188 TTS Simplex Phase1: token 50/500: rel_id=3863 +22:32:54.281 TTS Simplex Phase1: EOS token at step 59 +22:32:54.281 TTS Simplex: is_final_text_chunk=true, will enter Phase 2 for text_eos_embed +22:32:54.281 TTS Simplex Phase2: injecting text_eos_embed + audio_bos at n_past=67 +22:32:54.289 TTS Simplex Phase2: text_eos_embed injected, n_past=68 +22:32:54.297 TTS Simplex Phase2: audio_bos injected, n_past=69, starting final generation +22:32:54.347 TTS Simplex Phase2: EOS at step 4 (final end) +22:32:54.347 TTS Simplex: chunk 结束,tts_token_buffer 剩余 11 tokens (保留等下一个 chunk) +22:32:54.347 TTS Simplex: is_final_text_chunk=true, flush 剩余 11 tokens 从 tts_token_buffer +22:32:54.347 TTS Simplex: generated 61 audio tokens for chunk 0 +22:32:54.347 TTS Simplex: chunk 0 first tokens: [3764 1950 4137 4137 4137 ], last tokens: [741 1707 4137 4218 6091 ] +22:32:54.347 TTS Simplex: updated tts_n_past_accumulated=73, total_generated_tokens=61 +22:32:54.348 TTS: finished processing all chunks +22:32:54.348 TTS: 单工模式轮次结束,下一轮 round_idx=1 +22:32:54.348 TTS: sent is_final=true to T2W queue (turn end) +22:32:56.408 🎉 首响时间 (First Audio Response): 3620ms +22:32:56.408 T2W线程: wav_0.wav | 0.84s audio | 2499.3ms inference | RTF=2.98 | t=3620ms +22:32:58.967 T2W线程: wav_1.wav | 1.00s audio | 2557.7ms inference | RTF=2.56 | t=6178ms +22:33:01.065 T2W线程: wav_2.wav | 0.72s audio | 2097.4ms inference | RTF=2.91 | t=8276ms +22:33:01.065 T2W线程: 写入结束标记 ./tools/omni/output/round_000/tts_wav/generation_done.flag (last_wav=2) +22:33:01.066 T2W线程: 轮次结束后更新输出目录为 ./tools/omni/output/round_001/tts_wav +22:33:01.145 omni_stop_threads: stop signals sent +22:33:01.145 T2W(C++) 线程: 停止 +tts thread end +t2w thread end +build: 64 (5202b7b) with x86_64-w64-mingw32-gcc-posix (GCC) 13-posix for x86_64-w64-mingw32 +llama_model_load_from_file_impl: using device Vulkan0 (AMD Radeon(TM) 890M Graphics) (unknown id) - 30720 MiB free +llama_model_loader: loaded meta data with 27 key-value pairs and 399 tensors from C:\Users\zhout\w2\models\MiniCPM-o-4_5-gguf\MiniCPM-o-4_5-Q4_K_M.gguf (version GGUF V3 (latest)) +llama_model_loader: Dumping metadata keys/values. Note: KV overrides do not apply in this output. +llama_model_loader: - kv 0: general.architecture str = qwen3 +llama_model_loader: - kv 1: general.type str = model +llama_model_loader: - kv 2: general.name str = Llm +llama_model_loader: - kv 3: general.size_label str = 8.2B +llama_model_loader: - kv 4: qwen3.block_count u32 = 36 +llama_model_loader: - kv 5: qwen3.context_length u32 = 40960 +llama_model_loader: - kv 6: qwen3.embedding_length u32 = 4096 +llama_model_loader: - kv 7: qwen3.feed_forward_length u32 = 12288 +llama_model_loader: - kv 8: qwen3.attention.head_count u32 = 32 +llama_model_loader: - kv 9: qwen3.attention.head_count_kv u32 = 8 +llama_model_loader: - kv 10: qwen3.rope.freq_base f32 = 1000000.000000 +llama_model_loader: - kv 11: qwen3.attention.layer_norm_rms_epsilon f32 = 0.000001 +llama_model_loader: - kv 12: qwen3.attention.key_length u32 = 128 +llama_model_loader: - kv 13: qwen3.attention.value_length u32 = 128 +llama_model_loader: - kv 14: tokenizer.ggml.model str = gpt2 +llama_model_loader: - kv 15: tokenizer.ggml.pre str = qwen2 +llama_model_loader: - kv 16: tokenizer.ggml.tokens arr[str,151748] = ["!", "\"", "#", "$", "%", "&", "'", ... +llama_model_loader: - kv 17: tokenizer.ggml.token_type arr[i32,151748] = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ... +llama_model_loader: - kv 18: tokenizer.ggml.merges arr[str,151387] = ["Ġ Ġ", "ĠĠ ĠĠ", "i n", "Ġ t",... +llama_model_loader: - kv 19: tokenizer.ggml.bos_token_id u32 = 151644 +llama_model_loader: - kv 20: tokenizer.ggml.eos_token_id u32 = 151645 +llama_model_loader: - kv 21: tokenizer.ggml.unknown_token_id u32 = 128244 +llama_model_loader: - kv 22: tokenizer.ggml.padding_token_id u32 = 151643 +llama_model_loader: - kv 23: tokenizer.ggml.add_bos_token bool = false +llama_model_loader: - kv 24: tokenizer.chat_template str = {%- if tools %}\n {{- '<|im_start|>... +llama_model_loader: - kv 25: general.quantization_version u32 = 2 +llama_model_loader: - kv 26: general.file_type u32 = 15 +llama_model_loader: - type f32: 145 tensors +llama_model_loader: - type q4_K: 217 tensors +llama_model_loader: - type q6_K: 37 tensors +print_info: file format = GGUF V3 (latest) +print_info: file type = Q4_K - Medium +print_info: file size = 4.68 GiB (4.90 BPW) +load: printing all EOG tokens: +load: - 151643 ('<|endoftext|>') +load: - 151645 ('<|im_end|>') +load: - 151662 ('<|fim_pad|>') +load: - 151663 ('<|repo_name|>') +load: - 151664 ('<|file_sep|>') +load: special tokens cache size = 106 +load: token to piece cache size = 0.9319 MB +print_info: arch = qwen3 +print_info: vocab_only = 0 +print_info: n_ctx_train = 40960 +print_info: n_embd = 4096 +print_info: n_layer = 36 +print_info: n_head = 32 +print_info: n_head_kv = 8 +print_info: n_rot = 128 +print_info: n_swa = 0 +print_info: is_swa_any = 0 +print_info: n_embd_head_k = 128 +print_info: n_embd_head_v = 128 +print_info: n_gqa = 4 +print_info: n_embd_k_gqa = 1024 +print_info: n_embd_v_gqa = 1024 +print_info: f_norm_eps = 0.0e+00 +print_info: f_norm_rms_eps = 1.0e-06 +print_info: f_clamp_kqv = 0.0e+00 +print_info: f_max_alibi_bias = 0.0e+00 +print_info: f_logit_scale = 0.0e+00 +print_info: f_attn_scale = 0.0e+00 +print_info: n_ff = 12288 +print_info: n_expert = 0 +print_info: n_expert_used = 0 +print_info: causal attn = 1 +print_info: pooling type = -1 +print_info: rope type = 2 +print_info: rope scaling = linear +print_info: freq_base_train = 1000000.0 +print_info: freq_scale_train = 1 +print_info: n_ctx_orig_yarn = 40960 +print_info: rope_finetuned = unknown +print_info: model type = 8B +print_info: model params = 8.19 B +print_info: general.name = Llm +print_info: vocab type = BPE +print_info: n_vocab = 151748 +print_info: n_merges = 151387 +print_info: BOS token = 151644 '<|im_start|>' +print_info: EOS token = 151645 '<|im_end|>' +print_info: EOT token = 151645 '<|im_end|>' +print_info: UNK token = 128244 '' +print_info: PAD token = 151643 '<|endoftext|>' +print_info: LF token = 198 'Ċ' +print_info: FIM PRE token = 151659 '<|fim_prefix|>' +print_info: FIM SUF token = 151661 '<|fim_suffix|>' +print_info: FIM MID token = 151660 '<|fim_middle|>' +print_info: FIM PAD token = 151662 '<|fim_pad|>' +print_info: FIM REP token = 151663 '<|repo_name|>' +print_info: FIM SEP token = 151664 '<|file_sep|>' +print_info: EOG token = 151643 '<|endoftext|>' +print_info: EOG token = 151645 '<|im_end|>' +print_info: EOG token = 151662 '<|fim_pad|>' +print_info: EOG token = 151663 '<|repo_name|>' +print_info: EOG token = 151664 '<|file_sep|>' +print_info: max token length = 256 +load_tensors: loading model tensors, this can take a while... (mmap = true) +load_tensors: offloading 36 repeating layers to GPU +load_tensors: offloading output layer to GPU +load_tensors: offloaded 37/37 layers to GPU +load_tensors: Vulkan0 model buffer size = 4454.74 MiB +load_tensors: CPU_Mapped model buffer size = 333.43 MiB +..................................................................................... +llama_context: constructing llama_context +llama_context: n_seq_max = 1 +llama_context: n_ctx = 2048 +llama_context: n_ctx_per_seq = 2048 +llama_context: n_batch = 2048 +llama_context: n_ubatch = 512 +llama_context: causal_attn = 1 +llama_context: flash_attn = auto +llama_context: kv_unified = false +llama_context: freq_base = 1000000.0 +llama_context: freq_scale = 1 +llama_context: n_ctx_per_seq (2048) < n_ctx_train (40960) -- the full capacity of the model will not be utilized +llama_context: Vulkan_Host output buffer size = 0.58 MiB +llama_kv_cache: Vulkan0 KV buffer size = 288.00 MiB +llama_kv_cache: size = 288.00 MiB ( 2048 cells, 36 layers, 1/1 seqs), K (f16): 144.00 MiB, V (f16): 144.00 MiB +llama_context: Flash Attention was auto, set to enabled +llama_context: Vulkan0 compute buffer size = 304.38 MiB +llama_context: Vulkan_Host compute buffer size = 12.01 MiB +llama_context: graph nodes = 1267 +llama_context: graph splits = 2 +llama_model_load_from_file_impl: using device Vulkan0 (AMD Radeon(TM) 890M Graphics) (unknown id) - 25673 MiB free +llama_model_loader: loaded meta data with 30 key-value pairs and 193 tensors from C:\Users\zhout\w2\models\MiniCPM-o-4_5-gguf/tts/MiniCPM-o-4_5-tts-F16.gguf (version GGUF V3 (latest)) +llama_model_loader: Dumping metadata keys/values. Note: KV overrides do not apply in this output. +llama_model_loader: - kv 0: general.architecture str = llama +llama_model_loader: - kv 1: general.type str = model +llama_model_loader: - kv 2: general.name str = Tts +llama_model_loader: - kv 3: general.size_label str = 445M +llama_model_loader: - kv 4: llama.block_count u32 = 20 +llama_model_loader: - kv 5: llama.context_length u32 = 4096 +llama_model_loader: - kv 6: llama.embedding_length u32 = 768 +llama_model_loader: - kv 7: llama.feed_forward_length u32 = 3072 +llama_model_loader: - kv 8: llama.attention.head_count u32 = 12 +llama_model_loader: - kv 9: llama.attention.head_count_kv u32 = 12 +llama_model_loader: - kv 10: llama.rope.freq_base f32 = 10000.000000 +llama_model_loader: - kv 11: llama.attention.layer_norm_rms_epsilon f32 = 0.000001 +llama_model_loader: - kv 12: llama.attention.key_length u32 = 64 +llama_model_loader: - kv 13: llama.attention.value_length u32 = 64 +llama_model_loader: - kv 14: general.file_type u32 = 1 +llama_model_loader: - kv 15: llama.vocab_size u32 = 158626 +llama_model_loader: - kv 16: llama.rope.dimension_count u32 = 64 +llama_model_loader: - kv 17: general.quantization_version u32 = 2 +llama_model_loader: - kv 18: tokenizer.ggml.model str = gpt2 +llama_model_loader: - kv 19: tokenizer.ggml.pre str = qwen2 +llama_model_loader: - kv 20: tokenizer.ggml.tokens arr[str,158626] = ["!", "\"", "#", "$", "%", "&", "'", ... +llama_model_loader: - kv 21: tokenizer.ggml.token_type arr[i32,158626] = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ... +llama_model_loader: - kv 22: tokenizer.ggml.merges arr[str,151387] = ["Ġ Ġ", "ĠĠ ĠĠ", "i n", "Ġ t",... +llama_model_loader: - kv 23: tokenizer.ggml.bos_token_id u32 = 151644 +llama_model_loader: - kv 24: tokenizer.ggml.eos_token_id u32 = 151645 +llama_model_loader: - kv 25: tokenizer.ggml.unknown_token_id u32 = 128244 +llama_model_loader: - kv 26: tokenizer.ggml.padding_token_id u32 = 151643 +llama_model_loader: - kv 27: tokenizer.ggml.add_bos_token bool = false +llama_model_loader: - kv 28: tokenizer.chat_template str = {%- if tools %}\n {{- '<|im_start|>... +llama_model_loader: - kv 29: tokenizer.ggml.add_space_prefix bool = false +llama_model_loader: - type f32: 50 tensors +llama_model_loader: - type f16: 143 tensors +print_info: file format = GGUF V3 (latest) +print_info: file type = F16 +print_info: file size = 1.07 GiB (20.70 BPW) +load: printing all EOG tokens: +load: - 151643 ('<|endoftext|>') +load: - 151645 ('<|im_end|>') +load: - 151662 ('<|fim_pad|>') +load: - 151663 ('<|repo_name|>') +load: - 151664 ('<|file_sep|>') +load: special tokens cache size = 106 +load: token to piece cache size = 0.9319 MB +print_info: arch = llama +print_info: vocab_only = 0 +print_info: n_ctx_train = 4096 +print_info: n_embd = 768 +print_info: n_layer = 20 +print_info: n_head = 12 +print_info: n_head_kv = 12 +print_info: n_rot = 64 +print_info: n_swa = 0 +print_info: is_swa_any = 0 +print_info: n_embd_head_k = 64 +print_info: n_embd_head_v = 64 +print_info: n_gqa = 1 +print_info: n_embd_k_gqa = 768 +print_info: n_embd_v_gqa = 768 +print_info: f_norm_eps = 0.0e+00 +print_info: f_norm_rms_eps = 1.0e-06 +print_info: f_clamp_kqv = 0.0e+00 +print_info: f_max_alibi_bias = 0.0e+00 +print_info: f_logit_scale = 0.0e+00 +print_info: f_attn_scale = 0.0e+00 +print_info: n_ff = 3072 +print_info: n_expert = 0 +print_info: n_expert_used = 0 +print_info: causal attn = 1 +print_info: pooling type = 0 +print_info: rope type = 0 +print_info: rope scaling = linear +print_info: freq_base_train = 10000.0 +print_info: freq_scale_train = 1 +print_info: n_ctx_orig_yarn = 4096 +print_info: rope_finetuned = unknown +print_info: model type = ?B +print_info: model params = 444.94 M +print_info: general.name = Tts +print_info: vocab type = BPE +print_info: n_vocab = 158626 +print_info: n_merges = 151387 +print_info: BOS token = 151644 '<|im_start|>' +print_info: EOS token = 151645 '<|im_end|>' +print_info: EOT token = 151645 '<|im_end|>' +print_info: UNK token = 128244 '' +print_info: PAD token = 151643 '<|endoftext|>' +print_info: LF token = 198 'Ċ' +print_info: FIM PRE token = 151659 '<|fim_prefix|>' +print_info: FIM SUF token = 151661 '<|fim_suffix|>' +print_info: FIM MID token = 151660 '<|fim_middle|>' +print_info: FIM PAD token = 151662 '<|fim_pad|>' +print_info: FIM REP token = 151663 '<|repo_name|>' +print_info: FIM SEP token = 151664 '<|file_sep|>' +print_info: EOG token = 151643 '<|endoftext|>' +print_info: EOG token = 151645 '<|im_end|>' +print_info: EOG token = 151662 '<|fim_pad|>' +print_info: EOG token = 151663 '<|repo_name|>' +print_info: EOG token = 151664 '<|file_sep|>' +print_info: max token length = 256 +load_tensors: loading model tensors, this can take a while... (mmap = true) +load_tensors: skipping TTS tensor emb_code.0.weight (size = 20158464 bytes) -- will be loaded separately +load_tensors: skipping TTS tensor emb_text.weight (size = 467140608 bytes) -- will be loaded separately +load_tensors: skipping TTS tensor projector_semantic.linear1.weight (size = 12582912 bytes) -- will be loaded separately +load_tensors: skipping TTS tensor projector_semantic.linear1.bias (size = 3072 bytes) -- will be loaded separately +load_tensors: skipping TTS tensor projector_semantic.linear2.weight (size = 2359296 bytes) -- will be loaded separately +load_tensors: skipping TTS tensor projector_semantic.linear2.bias (size = 3072 bytes) -- will be loaded separately +load_tensors: skipping TTS tensor projector_spk.linear1.weight (size = 6291456 bytes) -- will be loaded separately +load_tensors: skipping TTS tensor projector_spk.linear1.bias (size = 3072 bytes) -- will be loaded separately +load_tensors: skipping TTS tensor projector_spk.linear2.weight (size = 1179648 bytes) -- will be loaded separately +load_tensors: skipping TTS tensor projector_spk.linear2.bias (size = 3072 bytes) -- will be loaded separately +load_tensors: skipping TTS tensor head_code.0.weight (size = 20158464 bytes) -- will be loaded separately +load_tensors: offloading 0 repeating layers to GPU +load_tensors: offloaded 0/21 layers to GPU +load_tensors: CPU_Mapped model buffer size = 592.48 MiB +.............................................................. +llama_init_from_model: model default pooling_type is [0], but [-1] was specified +llama_context: constructing llama_context +llama_context: n_seq_max = 1 +llama_context: n_ctx = 2048 +llama_context: n_ctx_per_seq = 2048 +llama_context: n_batch = 2048 +llama_context: n_ubatch = 512 +llama_context: causal_attn = 1 +llama_context: flash_attn = auto +llama_context: kv_unified = false +llama_context: freq_base = 10000.0 +llama_context: freq_scale = 1 +llama_context: n_ctx_per_seq (2048) < n_ctx_train (4096) -- the full capacity of the model will not be utilized +llama_context: CPU output buffer size = 0.61 MiB +llama_kv_cache: CPU KV buffer size = 120.00 MiB +llama_kv_cache: size = 120.00 MiB ( 2048 cells, 20 layers, 1/1 seqs), K (f16): 60.00 MiB, V (f16): 60.00 MiB +llama_context: Flash Attention was auto, set to enabled +llama_context: Vulkan0 compute buffer size = 30.75 MiB +llama_context: Vulkan_Host compute buffer size = 7.01 MiB +llama_context: graph nodes = 613 +llama_context: graph splits = 216 (with bs=512), 1 (with bs=1) +vision_model_loader: model name: +vision_model_loader: description: image encoder for MiniCPM-V +vision_model_loader: GGUF version: 3 +vision_model_loader: alignment: 32 +vision_model_loader: n_tensors: 455 +vision_model_loader: n_kv: 20 + +vision_ctx: vision using Vulkan0 backend +load_hparams: model_type: 0 +load_hparams: n_embd: 1152 +load_hparams: n_head: 16 +load_hparams: n_ff: 4304 +load_hparams: n_layer: 27 +load_hparams: ffn_op: gelu +load_hparams: projection_dim: 0 + +--- vision hparams --- +load_hparams: image_size: 448 +load_hparams: patch_size: 14 +load_hparams: minicpmv_version: 100045 +load_hparams: proj_scale_factor: 0 +load_hparams: n_wa_pattern: 0 + +load_hparams: model size: 1044.36 MiB +load_hparams: metadata size: 0.16 MiB +load_tensors: ffn up/down are swapped +alloc_compute_meta: Vulkan0 compute buffer size = 100.30 MiB +alloc_compute_meta: CPU compute buffer size = 18.30 MiB +init tts....init t2w....voc_hg2_model: CPU backend using 8 threads +audition_audio_preprocess: Decoded audio - sample_rate=16000, n_samples=32000 +audition_get_mel_filters: Retrieved mel filters from model: 80 mel bins x 201 fft bins +audition_audio_preprocess: Using mel filters - n_mel=80, n_fft=201 +audition_audio_preprocess: Generated 1 mel spectrogram chunk(s) +audition_audio_preprocess: Mel spectrogram ready - n_len=200, n_mel=80, total_size=16000 +build_whisper: Whisper encoder graph built (projector output, pre-pooling) +audition_audio_batch_encode: Audio input data - n_step=200, n_mel=80, total_elements=16000 +audition_audio_batch_encode: Before incrementing iter: input_frames=200, n_tokens=100, current_iter=0, current_total=0, new_total=100, max_tokens=1500 +audition_audio_batch_encode: KV cache iter incremented to 1 (total_tokens=100, max_tokens=1500) +audition_audio_batch_encode: Final output shape: [4096, 20] +audition_audio_batch_encode: Final output: 20 tokens x 4096 dims +encode_image_with_vision_chunks: step 1 of 1 encoded in 1378.54 ms +encode_image_with_vision_chunks: all 1 chunks encoded in 1397.50 ms (grid: 1x1) + +encode_image_with_vision_chunks: image encoded in 1397.51 ms by vision ( 1397.51 ms per chunk, 64 total tokens) +omni_image_embed_make_chunks_with_filename: created 1 vision chunks from C:\Users\zhout\w2\minicpmo_cpp_prompt\fixture_0001.jpg +stream_prefill: prefilled 1 vision chunks (64 tokens each) +audition_audio_preprocess: Decoded audio - sample_rate=16000, n_samples=49339 +audition_audio_preprocess: Audio not aligned to 100ms (49339 samples = 3083.7ms), padded with silence to 49600 samples (3100ms) +audition_get_mel_filters: Retrieved mel filters from model: 80 mel bins x 201 fft bins +audition_audio_preprocess: Using mel filters - n_mel=80, n_fft=201 +audition_audio_preprocess: Generated 1 mel spectrogram chunk(s) +audition_audio_preprocess: Mel spectrogram ready - n_len=310, n_mel=80, total_size=24800 +build_whisper: Whisper encoder graph built (projector output, pre-pooling) +audition_audio_batch_encode: Audio input data - n_step=310, n_mel=80, total_elements=24800 +audition_audio_batch_encode: Before incrementing iter: input_frames=310, n_tokens=155, current_iter=1, current_total=155, new_total=310, max_tokens=1500 +audition_audio_batch_encode: KV cache iter incremented to 2 (total_tokens=310, max_tokens=1500) +audition_audio_batch_encode: Final output shape: [4096, 31] +audition_audio_batch_encode: Final output: 31 tokens x 4096 dims + +Waiting for audio generation to complete... +TTS: chunk file ./tools/omni/output/round_000/tts_wav/tts_output_chunk_0.wav does not exist or is empty +TTS: chunk file ./tools/omni/output/round_000/tts_wav/tts_output_chunk_1.wav does not exist or is empty +TTS: no valid WAV files to merge +[timing] call=0 tokens=28 final=0 token2mel=2158.018ms vocoder=341.226ms total=2499.280ms audio=20160 +[timing] call=1 tokens=28 final=0 token2mel=2161.975ms vocoder=395.668ms total=2557.654ms audio=24000 +[timing] call=2 tokens=14 final=1 token2mel=1857.158ms vocoder=240.238ms total=2097.407ms audio=17280 +Audio generation completed. +llama_perf_context_print: load time = 5491.00 ms +llama_perf_context_print: prompt eval time = 4003.75 ms / 182 tokens ( 22.00 ms per token, 45.46 tokens per second) +llama_perf_context_print: eval time = 536.03 ms / 9 runs ( 59.56 ms per token, 16.79 tokens per second) +llama_perf_context_print: total time = 13691.24 ms / 191 tokens +llama_perf_context_print: graphs reused = 10 +Token2Wav (C++): session released diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m_prompted/full.profile.json b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m_prompted/full.profile.json new file mode 100644 index 000000000..96b5e404f --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m_prompted/full.profile.json @@ -0,0 +1,29 @@ +{ + "command": [ + "C:\\Users\\zhout\\w2\\minicpmo_cpp_prompt\\llama-omni-cli.exe", + "-m", + "C:\\Users\\zhout\\w2\\models\\MiniCPM-o-4_5-gguf\\MiniCPM-o-4_5-Q4_K_M.gguf", + "-ngl", + "99", + "-c", + "2048", + "--omni", + "--t2w-device", + "cpu", + "--t2w-wait-seconds", + "900", + "--ref-audio", + "C:\\Users\\zhout\\w2\\minicpmo_cpp_prompt\\default_ref_audio.wav", + "--test", + "C:\\Users\\zhout\\w2\\minicpmo_cpp_prompt\\fixture_", + "2" + ], + "cwd": "C:\\Users\\zhout\\w2\\minicpmo_cpp_prompt", + "exit_code": 0, + "wall_s": 18.634632700006478, + "memory_sample_interval_ms": 100, + "memory_samples": 185, + "peak_sampled_rss_bytes": 15565971456, + "peak_sampled_private_bytes": 15439056896, + "measurement_note": "sampled process values, not guaranteed loading peaks" +} diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m_prompted/full.stderr.log b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m_prompted/full.stderr.log new file mode 100644 index 000000000..d22666f25 --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m_prompted/full.stderr.log @@ -0,0 +1,340 @@ +build: 64 (5202b7b) with x86_64-w64-mingw32-gcc-posix (GCC) 13-posix for x86_64-w64-mingw32 +llama_model_load_from_file_impl: using device Vulkan0 (AMD Radeon(TM) 890M Graphics) (unknown id) - 30720 MiB free +llama_model_loader: loaded meta data with 27 key-value pairs and 399 tensors from C:\Users\zhout\w2\models\MiniCPM-o-4_5-gguf\MiniCPM-o-4_5-Q4_K_M.gguf (version GGUF V3 (latest)) +llama_model_loader: Dumping metadata keys/values. Note: KV overrides do not apply in this output. +llama_model_loader: - kv 0: general.architecture str = qwen3 +llama_model_loader: - kv 1: general.type str = model +llama_model_loader: - kv 2: general.name str = Llm +llama_model_loader: - kv 3: general.size_label str = 8.2B +llama_model_loader: - kv 4: qwen3.block_count u32 = 36 +llama_model_loader: - kv 5: qwen3.context_length u32 = 40960 +llama_model_loader: - kv 6: qwen3.embedding_length u32 = 4096 +llama_model_loader: - kv 7: qwen3.feed_forward_length u32 = 12288 +llama_model_loader: - kv 8: qwen3.attention.head_count u32 = 32 +llama_model_loader: - kv 9: qwen3.attention.head_count_kv u32 = 8 +llama_model_loader: - kv 10: qwen3.rope.freq_base f32 = 1000000.000000 +llama_model_loader: - kv 11: qwen3.attention.layer_norm_rms_epsilon f32 = 0.000001 +llama_model_loader: - kv 12: qwen3.attention.key_length u32 = 128 +llama_model_loader: - kv 13: qwen3.attention.value_length u32 = 128 +llama_model_loader: - kv 14: tokenizer.ggml.model str = gpt2 +llama_model_loader: - kv 15: tokenizer.ggml.pre str = qwen2 +llama_model_loader: - kv 16: tokenizer.ggml.tokens arr[str,151748] = ["!", "\"", "#", "$", "%", "&", "'", ... +llama_model_loader: - kv 17: tokenizer.ggml.token_type arr[i32,151748] = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ... +llama_model_loader: - kv 18: tokenizer.ggml.merges arr[str,151387] = ["Ġ Ġ", "ĠĠ ĠĠ", "i n", "Ġ t",... +llama_model_loader: - kv 19: tokenizer.ggml.bos_token_id u32 = 151644 +llama_model_loader: - kv 20: tokenizer.ggml.eos_token_id u32 = 151645 +llama_model_loader: - kv 21: tokenizer.ggml.unknown_token_id u32 = 128244 +llama_model_loader: - kv 22: tokenizer.ggml.padding_token_id u32 = 151643 +llama_model_loader: - kv 23: tokenizer.ggml.add_bos_token bool = false +llama_model_loader: - kv 24: tokenizer.chat_template str = {%- if tools %}\n {{- '<|im_start|>... +llama_model_loader: - kv 25: general.quantization_version u32 = 2 +llama_model_loader: - kv 26: general.file_type u32 = 15 +llama_model_loader: - type f32: 145 tensors +llama_model_loader: - type q4_K: 217 tensors +llama_model_loader: - type q6_K: 37 tensors +print_info: file format = GGUF V3 (latest) +print_info: file type = Q4_K - Medium +print_info: file size = 4.68 GiB (4.90 BPW) +load: printing all EOG tokens: +load: - 151643 ('<|endoftext|>') +load: - 151645 ('<|im_end|>') +load: - 151662 ('<|fim_pad|>') +load: - 151663 ('<|repo_name|>') +load: - 151664 ('<|file_sep|>') +load: special tokens cache size = 106 +load: token to piece cache size = 0.9319 MB +print_info: arch = qwen3 +print_info: vocab_only = 0 +print_info: n_ctx_train = 40960 +print_info: n_embd = 4096 +print_info: n_layer = 36 +print_info: n_head = 32 +print_info: n_head_kv = 8 +print_info: n_rot = 128 +print_info: n_swa = 0 +print_info: is_swa_any = 0 +print_info: n_embd_head_k = 128 +print_info: n_embd_head_v = 128 +print_info: n_gqa = 4 +print_info: n_embd_k_gqa = 1024 +print_info: n_embd_v_gqa = 1024 +print_info: f_norm_eps = 0.0e+00 +print_info: f_norm_rms_eps = 1.0e-06 +print_info: f_clamp_kqv = 0.0e+00 +print_info: f_max_alibi_bias = 0.0e+00 +print_info: f_logit_scale = 0.0e+00 +print_info: f_attn_scale = 0.0e+00 +print_info: n_ff = 12288 +print_info: n_expert = 0 +print_info: n_expert_used = 0 +print_info: causal attn = 1 +print_info: pooling type = -1 +print_info: rope type = 2 +print_info: rope scaling = linear +print_info: freq_base_train = 1000000.0 +print_info: freq_scale_train = 1 +print_info: n_ctx_orig_yarn = 40960 +print_info: rope_finetuned = unknown +print_info: model type = 8B +print_info: model params = 8.19 B +print_info: general.name = Llm +print_info: vocab type = BPE +print_info: n_vocab = 151748 +print_info: n_merges = 151387 +print_info: BOS token = 151644 '<|im_start|>' +print_info: EOS token = 151645 '<|im_end|>' +print_info: EOT token = 151645 '<|im_end|>' +print_info: UNK token = 128244 '' +print_info: PAD token = 151643 '<|endoftext|>' +print_info: LF token = 198 'Ċ' +print_info: FIM PRE token = 151659 '<|fim_prefix|>' +print_info: FIM SUF token = 151661 '<|fim_suffix|>' +print_info: FIM MID token = 151660 '<|fim_middle|>' +print_info: FIM PAD token = 151662 '<|fim_pad|>' +print_info: FIM REP token = 151663 '<|repo_name|>' +print_info: FIM SEP token = 151664 '<|file_sep|>' +print_info: EOG token = 151643 '<|endoftext|>' +print_info: EOG token = 151645 '<|im_end|>' +print_info: EOG token = 151662 '<|fim_pad|>' +print_info: EOG token = 151663 '<|repo_name|>' +print_info: EOG token = 151664 '<|file_sep|>' +print_info: max token length = 256 +load_tensors: loading model tensors, this can take a while... (mmap = true) +load_tensors: offloading 36 repeating layers to GPU +load_tensors: offloading output layer to GPU +load_tensors: offloaded 37/37 layers to GPU +load_tensors: Vulkan0 model buffer size = 4454.74 MiB +load_tensors: CPU_Mapped model buffer size = 333.43 MiB +..................................................................................... +llama_context: constructing llama_context +llama_context: n_seq_max = 1 +llama_context: n_ctx = 2048 +llama_context: n_ctx_per_seq = 2048 +llama_context: n_batch = 2048 +llama_context: n_ubatch = 512 +llama_context: causal_attn = 1 +llama_context: flash_attn = auto +llama_context: kv_unified = false +llama_context: freq_base = 1000000.0 +llama_context: freq_scale = 1 +llama_context: n_ctx_per_seq (2048) < n_ctx_train (40960) -- the full capacity of the model will not be utilized +llama_context: Vulkan_Host output buffer size = 0.58 MiB +llama_kv_cache: Vulkan0 KV buffer size = 288.00 MiB +llama_kv_cache: size = 288.00 MiB ( 2048 cells, 36 layers, 1/1 seqs), K (f16): 144.00 MiB, V (f16): 144.00 MiB +llama_context: Flash Attention was auto, set to enabled +llama_context: Vulkan0 compute buffer size = 304.38 MiB +llama_context: Vulkan_Host compute buffer size = 12.01 MiB +llama_context: graph nodes = 1267 +llama_context: graph splits = 2 +llama_model_load_from_file_impl: using device Vulkan0 (AMD Radeon(TM) 890M Graphics) (unknown id) - 25673 MiB free +llama_model_loader: loaded meta data with 30 key-value pairs and 193 tensors from C:\Users\zhout\w2\models\MiniCPM-o-4_5-gguf/tts/MiniCPM-o-4_5-tts-F16.gguf (version GGUF V3 (latest)) +llama_model_loader: Dumping metadata keys/values. Note: KV overrides do not apply in this output. +llama_model_loader: - kv 0: general.architecture str = llama +llama_model_loader: - kv 1: general.type str = model +llama_model_loader: - kv 2: general.name str = Tts +llama_model_loader: - kv 3: general.size_label str = 445M +llama_model_loader: - kv 4: llama.block_count u32 = 20 +llama_model_loader: - kv 5: llama.context_length u32 = 4096 +llama_model_loader: - kv 6: llama.embedding_length u32 = 768 +llama_model_loader: - kv 7: llama.feed_forward_length u32 = 3072 +llama_model_loader: - kv 8: llama.attention.head_count u32 = 12 +llama_model_loader: - kv 9: llama.attention.head_count_kv u32 = 12 +llama_model_loader: - kv 10: llama.rope.freq_base f32 = 10000.000000 +llama_model_loader: - kv 11: llama.attention.layer_norm_rms_epsilon f32 = 0.000001 +llama_model_loader: - kv 12: llama.attention.key_length u32 = 64 +llama_model_loader: - kv 13: llama.attention.value_length u32 = 64 +llama_model_loader: - kv 14: general.file_type u32 = 1 +llama_model_loader: - kv 15: llama.vocab_size u32 = 158626 +llama_model_loader: - kv 16: llama.rope.dimension_count u32 = 64 +llama_model_loader: - kv 17: general.quantization_version u32 = 2 +llama_model_loader: - kv 18: tokenizer.ggml.model str = gpt2 +llama_model_loader: - kv 19: tokenizer.ggml.pre str = qwen2 +llama_model_loader: - kv 20: tokenizer.ggml.tokens arr[str,158626] = ["!", "\"", "#", "$", "%", "&", "'", ... +llama_model_loader: - kv 21: tokenizer.ggml.token_type arr[i32,158626] = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ... +llama_model_loader: - kv 22: tokenizer.ggml.merges arr[str,151387] = ["Ġ Ġ", "ĠĠ ĠĠ", "i n", "Ġ t",... +llama_model_loader: - kv 23: tokenizer.ggml.bos_token_id u32 = 151644 +llama_model_loader: - kv 24: tokenizer.ggml.eos_token_id u32 = 151645 +llama_model_loader: - kv 25: tokenizer.ggml.unknown_token_id u32 = 128244 +llama_model_loader: - kv 26: tokenizer.ggml.padding_token_id u32 = 151643 +llama_model_loader: - kv 27: tokenizer.ggml.add_bos_token bool = false +llama_model_loader: - kv 28: tokenizer.chat_template str = {%- if tools %}\n {{- '<|im_start|>... +llama_model_loader: - kv 29: tokenizer.ggml.add_space_prefix bool = false +llama_model_loader: - type f32: 50 tensors +llama_model_loader: - type f16: 143 tensors +print_info: file format = GGUF V3 (latest) +print_info: file type = F16 +print_info: file size = 1.07 GiB (20.70 BPW) +load: printing all EOG tokens: +load: - 151643 ('<|endoftext|>') +load: - 151645 ('<|im_end|>') +load: - 151662 ('<|fim_pad|>') +load: - 151663 ('<|repo_name|>') +load: - 151664 ('<|file_sep|>') +load: special tokens cache size = 106 +load: token to piece cache size = 0.9319 MB +print_info: arch = llama +print_info: vocab_only = 0 +print_info: n_ctx_train = 4096 +print_info: n_embd = 768 +print_info: n_layer = 20 +print_info: n_head = 12 +print_info: n_head_kv = 12 +print_info: n_rot = 64 +print_info: n_swa = 0 +print_info: is_swa_any = 0 +print_info: n_embd_head_k = 64 +print_info: n_embd_head_v = 64 +print_info: n_gqa = 1 +print_info: n_embd_k_gqa = 768 +print_info: n_embd_v_gqa = 768 +print_info: f_norm_eps = 0.0e+00 +print_info: f_norm_rms_eps = 1.0e-06 +print_info: f_clamp_kqv = 0.0e+00 +print_info: f_max_alibi_bias = 0.0e+00 +print_info: f_logit_scale = 0.0e+00 +print_info: f_attn_scale = 0.0e+00 +print_info: n_ff = 3072 +print_info: n_expert = 0 +print_info: n_expert_used = 0 +print_info: causal attn = 1 +print_info: pooling type = 0 +print_info: rope type = 0 +print_info: rope scaling = linear +print_info: freq_base_train = 10000.0 +print_info: freq_scale_train = 1 +print_info: n_ctx_orig_yarn = 4096 +print_info: rope_finetuned = unknown +print_info: model type = ?B +print_info: model params = 444.94 M +print_info: general.name = Tts +print_info: vocab type = BPE +print_info: n_vocab = 158626 +print_info: n_merges = 151387 +print_info: BOS token = 151644 '<|im_start|>' +print_info: EOS token = 151645 '<|im_end|>' +print_info: EOT token = 151645 '<|im_end|>' +print_info: UNK token = 128244 '' +print_info: PAD token = 151643 '<|endoftext|>' +print_info: LF token = 198 'Ċ' +print_info: FIM PRE token = 151659 '<|fim_prefix|>' +print_info: FIM SUF token = 151661 '<|fim_suffix|>' +print_info: FIM MID token = 151660 '<|fim_middle|>' +print_info: FIM PAD token = 151662 '<|fim_pad|>' +print_info: FIM REP token = 151663 '<|repo_name|>' +print_info: FIM SEP token = 151664 '<|file_sep|>' +print_info: EOG token = 151643 '<|endoftext|>' +print_info: EOG token = 151645 '<|im_end|>' +print_info: EOG token = 151662 '<|fim_pad|>' +print_info: EOG token = 151663 '<|repo_name|>' +print_info: EOG token = 151664 '<|file_sep|>' +print_info: max token length = 256 +load_tensors: loading model tensors, this can take a while... (mmap = true) +load_tensors: skipping TTS tensor emb_code.0.weight (size = 20158464 bytes) -- will be loaded separately +load_tensors: skipping TTS tensor emb_text.weight (size = 467140608 bytes) -- will be loaded separately +load_tensors: skipping TTS tensor projector_semantic.linear1.weight (size = 12582912 bytes) -- will be loaded separately +load_tensors: skipping TTS tensor projector_semantic.linear1.bias (size = 3072 bytes) -- will be loaded separately +load_tensors: skipping TTS tensor projector_semantic.linear2.weight (size = 2359296 bytes) -- will be loaded separately +load_tensors: skipping TTS tensor projector_semantic.linear2.bias (size = 3072 bytes) -- will be loaded separately +load_tensors: skipping TTS tensor projector_spk.linear1.weight (size = 6291456 bytes) -- will be loaded separately +load_tensors: skipping TTS tensor projector_spk.linear1.bias (size = 3072 bytes) -- will be loaded separately +load_tensors: skipping TTS tensor projector_spk.linear2.weight (size = 1179648 bytes) -- will be loaded separately +load_tensors: skipping TTS tensor projector_spk.linear2.bias (size = 3072 bytes) -- will be loaded separately +load_tensors: skipping TTS tensor head_code.0.weight (size = 20158464 bytes) -- will be loaded separately +load_tensors: offloading 0 repeating layers to GPU +load_tensors: offloaded 0/21 layers to GPU +load_tensors: CPU_Mapped model buffer size = 592.48 MiB +.............................................................. +llama_init_from_model: model default pooling_type is [0], but [-1] was specified +llama_context: constructing llama_context +llama_context: n_seq_max = 1 +llama_context: n_ctx = 2048 +llama_context: n_ctx_per_seq = 2048 +llama_context: n_batch = 2048 +llama_context: n_ubatch = 512 +llama_context: causal_attn = 1 +llama_context: flash_attn = auto +llama_context: kv_unified = false +llama_context: freq_base = 10000.0 +llama_context: freq_scale = 1 +llama_context: n_ctx_per_seq (2048) < n_ctx_train (4096) -- the full capacity of the model will not be utilized +llama_context: CPU output buffer size = 0.61 MiB +llama_kv_cache: CPU KV buffer size = 120.00 MiB +llama_kv_cache: size = 120.00 MiB ( 2048 cells, 20 layers, 1/1 seqs), K (f16): 60.00 MiB, V (f16): 60.00 MiB +llama_context: Flash Attention was auto, set to enabled +llama_context: Vulkan0 compute buffer size = 30.75 MiB +llama_context: Vulkan_Host compute buffer size = 7.01 MiB +llama_context: graph nodes = 613 +llama_context: graph splits = 216 (with bs=512), 1 (with bs=1) +vision_model_loader: model name: +vision_model_loader: description: image encoder for MiniCPM-V +vision_model_loader: GGUF version: 3 +vision_model_loader: alignment: 32 +vision_model_loader: n_tensors: 455 +vision_model_loader: n_kv: 20 + +vision_ctx: vision using Vulkan0 backend +load_hparams: model_type: 0 +load_hparams: n_embd: 1152 +load_hparams: n_head: 16 +load_hparams: n_ff: 4304 +load_hparams: n_layer: 27 +load_hparams: ffn_op: gelu +load_hparams: projection_dim: 0 + +--- vision hparams --- +load_hparams: image_size: 448 +load_hparams: patch_size: 14 +load_hparams: minicpmv_version: 100045 +load_hparams: proj_scale_factor: 0 +load_hparams: n_wa_pattern: 0 + +load_hparams: model size: 1044.36 MiB +load_hparams: metadata size: 0.16 MiB +load_tensors: ffn up/down are swapped +alloc_compute_meta: Vulkan0 compute buffer size = 100.30 MiB +alloc_compute_meta: CPU compute buffer size = 18.30 MiB +init tts....init t2w....voc_hg2_model: CPU backend using 8 threads +audition_audio_preprocess: Decoded audio - sample_rate=16000, n_samples=32000 +audition_get_mel_filters: Retrieved mel filters from model: 80 mel bins x 201 fft bins +audition_audio_preprocess: Using mel filters - n_mel=80, n_fft=201 +audition_audio_preprocess: Generated 1 mel spectrogram chunk(s) +audition_audio_preprocess: Mel spectrogram ready - n_len=200, n_mel=80, total_size=16000 +build_whisper: Whisper encoder graph built (projector output, pre-pooling) +audition_audio_batch_encode: Audio input data - n_step=200, n_mel=80, total_elements=16000 +audition_audio_batch_encode: Before incrementing iter: input_frames=200, n_tokens=100, current_iter=0, current_total=0, new_total=100, max_tokens=1500 +audition_audio_batch_encode: KV cache iter incremented to 1 (total_tokens=100, max_tokens=1500) +audition_audio_batch_encode: Final output shape: [4096, 20] +audition_audio_batch_encode: Final output: 20 tokens x 4096 dims +encode_image_with_vision_chunks: step 1 of 1 encoded in 1378.54 ms +encode_image_with_vision_chunks: all 1 chunks encoded in 1397.50 ms (grid: 1x1) + +encode_image_with_vision_chunks: image encoded in 1397.51 ms by vision ( 1397.51 ms per chunk, 64 total tokens) +omni_image_embed_make_chunks_with_filename: created 1 vision chunks from C:\Users\zhout\w2\minicpmo_cpp_prompt\fixture_0001.jpg +stream_prefill: prefilled 1 vision chunks (64 tokens each) +audition_audio_preprocess: Decoded audio - sample_rate=16000, n_samples=49339 +audition_audio_preprocess: Audio not aligned to 100ms (49339 samples = 3083.7ms), padded with silence to 49600 samples (3100ms) +audition_get_mel_filters: Retrieved mel filters from model: 80 mel bins x 201 fft bins +audition_audio_preprocess: Using mel filters - n_mel=80, n_fft=201 +audition_audio_preprocess: Generated 1 mel spectrogram chunk(s) +audition_audio_preprocess: Mel spectrogram ready - n_len=310, n_mel=80, total_size=24800 +build_whisper: Whisper encoder graph built (projector output, pre-pooling) +audition_audio_batch_encode: Audio input data - n_step=310, n_mel=80, total_elements=24800 +audition_audio_batch_encode: Before incrementing iter: input_frames=310, n_tokens=155, current_iter=1, current_total=155, new_total=310, max_tokens=1500 +audition_audio_batch_encode: KV cache iter incremented to 2 (total_tokens=310, max_tokens=1500) +audition_audio_batch_encode: Final output shape: [4096, 31] +audition_audio_batch_encode: Final output: 31 tokens x 4096 dims + +Waiting for audio generation to complete... +TTS: chunk file ./tools/omni/output/round_000/tts_wav/tts_output_chunk_0.wav does not exist or is empty +TTS: chunk file ./tools/omni/output/round_000/tts_wav/tts_output_chunk_1.wav does not exist or is empty +TTS: no valid WAV files to merge +[timing] call=0 tokens=28 final=0 token2mel=2158.018ms vocoder=341.226ms total=2499.280ms audio=20160 +[timing] call=1 tokens=28 final=0 token2mel=2161.975ms vocoder=395.668ms total=2557.654ms audio=24000 +[timing] call=2 tokens=14 final=1 token2mel=1857.158ms vocoder=240.238ms total=2097.407ms audio=17280 +Audio generation completed. +llama_perf_context_print: load time = 5491.00 ms +llama_perf_context_print: prompt eval time = 4003.75 ms / 182 tokens ( 22.00 ms per token, 45.46 tokens per second) +llama_perf_context_print: eval time = 536.03 ms / 9 runs ( 59.56 ms per token, 16.79 tokens per second) +llama_perf_context_print: total time = 13691.24 ms / 191 tokens +llama_perf_context_print: graphs reused = 10 +Token2Wav (C++): session released diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m_prompted/full.stdout.log b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m_prompted/full.stdout.log new file mode 100644 index 000000000..342ec6ead --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m_prompted/full.stdout.log @@ -0,0 +1,140 @@ +=== Model Paths === + Base dir: C:\Users\zhout\w2\models\MiniCPM-o-4_5-gguf + LLM: C:\Users\zhout\w2\models\MiniCPM-o-4_5-gguf\MiniCPM-o-4_5-Q4_K_M.gguf [OK] + Vision: C:\Users\zhout\w2\models\MiniCPM-o-4_5-gguf/vision/MiniCPM-o-4_5-vision-F16.gguf [OK] + Audio: C:\Users\zhout\w2\models\MiniCPM-o-4_5-gguf/audio/MiniCPM-o-4_5-audio-F16.gguf [OK] + TTS: C:\Users\zhout\w2\models\MiniCPM-o-4_5-gguf/tts/MiniCPM-o-4_5-tts-F16.gguf [OK] + Projector: C:\Users\zhout\w2\models\MiniCPM-o-4_5-gguf/tts/MiniCPM-o-4_5-projector-F16.gguf [OK] +=================== +=== Initializing Omni Context === + Media type: 2 (omni: audio+vision) + TTS enabled: yes + Context size: 2048 + GPU layers: 99 + Token2Wav device: cpu + Vision backend: metal + TTS bin dir: C:\Users\zhout\w2\models\MiniCPM-o-4_5-gguf/tts + Ref audio: C:\Users\zhout\w2\minicpmo_cpp_prompt\default_ref_audio.wav +22:32:43.815 === omni_init start +22:32:43.815 media_type = 2, duplex_mode = 0, base_output_dir = ./tools/omni/output +22:32:43.815 === omni_init: loading new LLM model +22:32:46.957 === omni_init: loading TTS model +22:32:46.957 TTS model: loading with n_gpu_layers=0 +22:32:47.242 TTS sampler: temp=0.80, top_p=0.85, top_k=25, rep_penalty=1.05 +22:32:47.242 TTS: loading weights from GGUF (emb_code, emb_text, projector_semantic, head_code)... +22:32:47.594 TTS: head_code shape: dim0=6562, dim1=768, will transpose to [6562, 768] +22:32:47.598 TTS: head_code loaded, verifying first few values: +22:32:47.598 head_code_weight[0] = 0.01361084 (expect ~0.01385498) +22:32:47.598 head_code_weight[1] = -0.01660156 (expect ~-0.01647949) +22:32:47.598 head_code_weight[768] = 0.04101562 (this is weight[1, 0], expect ~0.04150391) +22:32:47.633 TTS: weights loaded successfully +22:32:47.634 Projector: loading from C:\Users\zhout\w2\models\MiniCPM-o-4_5-gguf/tts/MiniCPM-o-4_5-projector-F16.gguf +22:32:47.639 Projector: loaded successfully +22:32:47.639 === omni_init: loading APM model +22:32:47.828 APM: init from C:\Users\zhout\w2\models\MiniCPM-o-4_5-gguf/audio/MiniCPM-o-4_5-audio-F16.gguf +22:32:48.659 Token2Wav: found models in C:\Users\zhout\w2\models\MiniCPM-o-4_5-gguf/token2wav-gguf +22:32:48.659 Token2Wav: all model files found, initializing session... +22:32:48.659 Token2Wav: non-CUDA backend, vocoder using CPU for better performance +22:32:48.659 Token2Wav: using prompt_cache from C:\Users\zhout\w2\models\MiniCPM-o-4_5-gguf/token2wav-gguf/prompt_cache.gguf +22:32:48.940 Token2Wav: initialized successfully +22:32:48.940 Python T2W: script_dir=./tools/omni/pyt2w, model_dir=./tools/omni/pyt2w/token2wav +22:32:48.940 Token2Wav: 使用 C++ 实现 +22:32:48.940 === omni_init success: ctx_llama = 000002c8d49bfaa0 +=== Running test case === + Audio prefix: C:\Users\zhout\w2\minicpmo_cpp_prompt\fixture_ + Count: 2 +22:32:48.940 stream_prefill: n_past = 0 + voice_clone_prompt = <|im_start|>system +模仿音频样本的音色并生成新的内容。 +<|audio_start|> + assistant_prompt = <|audio_end|>你的任务是用这种声音模式来当一个助手。请认真、高质量地回复用户的问题。请用高自然度的方式和用户聊天。<|im_end|> +<|im_start|>user + +22:32:48.940 system prompt ref_audio: C:\Users\zhout\w2\minicpmo_cpp_prompt\fixture_0000.wav +22:32:49.611 system prompt ref_audio embedding: n_pos=20 +22:32:50.277 🔒 n_keep 设置为 72 (system prompt tokens),这部分永远不会被滑动窗口删除 +22:32:50.277 stream_prefill(index=0): system prompt 初始化完成,ref_audio 已在其中 prefill +22:32:50.277 [SW] system_prompt registered: preserve_length=72 (will be protected from sliding) +22:32:50.277 n_past = 72 +22:32:50.277 + +c++ finish stream_prefill(index=0). n_past=72, n_keep=72, n_ctx=2048 + +prefill 0 (audio) : 1.33625 s +22:32:52.195 stream_prefill(index=1): processing user audio: C:\Users\zhout\w2\minicpmo_cpp_prompt\fixture_0001.wav +22:32:52.482 stream_prefill(index=1): user audio embedding: n_pos=31 +22:32:52.788 + +c++ finish stream_prefill(index=1). n_past=172, n_keep=72, n_ctx=2048 + +prefill 1 (audio+vision) : 2.5109 s +22:32:52.788 📍 stream_decode 开始: n_past=172, n_keep=72, n_ctx=2048, duplex_mode=0 +22:32:52.788 stream_decode: create tts thread (simplex mode) +22:32:52.788 stream_decode: create t2w thread +22:32:52.788 wait prefill done +22:32:52.788 📍 [单工TTS] 添加 assistant prompt: "<|im_end|> +<|im_start|>assistant + + + + +<|tts_bos|>", n_past=172 +22:32:52.789 T2W thread (C++) started +22:32:52.791 TTS: 创建单工模式输出目录: ./tools/omni/output/round_000 +22:32:52.791 TTS thread started +22:32:52.944 📍 [单工TTS] assistant prompt 完成, n_past=182 +22:32:52.945 LLM decode: max_tgt_len = 2048, n_predict = -1, n_ctx = 2048 +22:32:53.483 LLM: detected end token, set llm_generation_done=true +22:32:53.483 LLM->TTS: text='The square in the image is red.', n_tokens=8, hidden_size=32768, n_embd=4096, token_ids=[785 9334 304 279 2168 374 2518 13] +22:32:53.483 📍 Decode 结束: n_past=191, 剩余空间=1857, 无需滑窗 +22:32:53.483 📍 轮次 1 结束,记录边界于 n_past=191 +22:32:53.483 TTS<-LLM: chunk_idx=0, text='The square in the image is red.', n_tokens=8, hidden_size=32768, token_ids=[785 9334 304 279 2168 374 2518 13] +22:32:53.483 TTS: after queue pop - speek_done=0, llm_finish=1, llm_text.empty=0, token_ids.size=8 +22:32:53.483 TTS: before empty check - response.empty=0, response='The square in the image is red.', llm_finish=1 +22:32:53.483 TTS: DEBUG before has_llm_data - token_ids.size=8, hidden_states.size=32768, n_embd=4096 +22:32:53.483 TTS: has_llm_data=1, token_ids=8, hidden_states=32768, n_embd=4096, llm_finish=1 +22:32:53.484 TTS: n_tokens_orig=8, n_tokens_filtered=8 (filtered 0 special tokens) +22:32:53.524 TTS: saved merged embeddings (text) to ./tools/omni/output/round_000/llm_debug/chunk_0/merged_embeddings.txt +22:32:53.524 TTS Simplex: generating audio tokens for chunk 0 (n_tokens=8, tts_n_embd=768) +22:32:53.524 TTS Simplex: 在 prefill 前添加 audio_bos (chunk_idx=0, new_size=9) +22:32:53.524 TTS Simplex: first chunk - cleared KV cache +22:32:53.524 TTS Simplex: first chunk - cleared tts_all_generated_tokens and tts_token_buffer +22:32:53.585 TTS Simplex: prefill completed, n_past_tts=9 +22:32:53.585 TTS Simplex: sampler created +22:32:53.585 TTS simplex: is_audio_bos=true (first audio token) +22:32:53.612 TTS Simplex Phase1: token 1/500: rel_id=3764 +22:32:53.622 TTS Simplex Phase1: token 2/500: rel_id=1950 +22:32:53.633 TTS Simplex Phase1: token 3/500: rel_id=4137 +22:32:53.644 TTS Simplex Phase1: token 4/500: rel_id=4137 +22:32:53.656 TTS Simplex Phase1: token 5/500: rel_id=4137 +22:32:53.782 📍 为下一轮准备: eval <|im_end|>\n<|im_start|>user\n, n_past=196 +22:32:22:32:53.5300.907 907 TTS Simplex Phase1: yield 25 tokens 到 T2W (step 25, buffer=25) +T2W线程(C++): 轮次切换 (-1 -> 0),更新输出目录 +22:32:53.908 TTS Simplex Phase1: token 25/500: rel_id=3906 +22:32:53.908 T2W线程(C++): 新输出目录 ./tools/omni/output/round_000/tts_wav +22:32:54.188 TTS Simplex Phase1: yield 25 tokens 到 T2W (step 50, buffer=25) +22:32:54.188 TTS Simplex Phase1: token 50/500: rel_id=3863 +22:32:54.281 TTS Simplex Phase1: EOS token at step 59 +22:32:54.281 TTS Simplex: is_final_text_chunk=true, will enter Phase 2 for text_eos_embed +22:32:54.281 TTS Simplex Phase2: injecting text_eos_embed + audio_bos at n_past=67 +22:32:54.289 TTS Simplex Phase2: text_eos_embed injected, n_past=68 +22:32:54.297 TTS Simplex Phase2: audio_bos injected, n_past=69, starting final generation +22:32:54.347 TTS Simplex Phase2: EOS at step 4 (final end) +22:32:54.347 TTS Simplex: chunk 结束,tts_token_buffer 剩余 11 tokens (保留等下一个 chunk) +22:32:54.347 TTS Simplex: is_final_text_chunk=true, flush 剩余 11 tokens 从 tts_token_buffer +22:32:54.347 TTS Simplex: generated 61 audio tokens for chunk 0 +22:32:54.347 TTS Simplex: chunk 0 first tokens: [3764 1950 4137 4137 4137 ], last tokens: [741 1707 4137 4218 6091 ] +22:32:54.347 TTS Simplex: updated tts_n_past_accumulated=73, total_generated_tokens=61 +22:32:54.348 TTS: finished processing all chunks +22:32:54.348 TTS: 单工模式轮次结束,下一轮 round_idx=1 +22:32:54.348 TTS: sent is_final=true to T2W queue (turn end) +22:32:56.408 🎉 首响时间 (First Audio Response): 3620ms +22:32:56.408 T2W线程: wav_0.wav | 0.84s audio | 2499.3ms inference | RTF=2.98 | t=3620ms +22:32:58.967 T2W线程: wav_1.wav | 1.00s audio | 2557.7ms inference | RTF=2.56 | t=6178ms +22:33:01.065 T2W线程: wav_2.wav | 0.72s audio | 2097.4ms inference | RTF=2.91 | t=8276ms +22:33:01.065 T2W线程: 写入结束标记 ./tools/omni/output/round_000/tts_wav/generation_done.flag (last_wav=2) +22:33:01.066 T2W线程: 轮次结束后更新输出目录为 ./tools/omni/output/round_001/tts_wav +22:33:01.145 omni_stop_threads: stop signals sent +22:33:01.145 T2W(C++) 线程: 停止 +tts thread end +t2w thread end diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m_prompted/full_merged.wav b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m_prompted/full_merged.wav new file mode 100644 index 000000000..4c86f04b4 Binary files /dev/null and b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m_prompted/full_merged.wav differ diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m_prompted/full_report.json b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m_prompted/full_report.json new file mode 100644 index 000000000..78a98311e --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m_prompted/full_report.json @@ -0,0 +1,107 @@ +{ + "scope": "standalone MiniCPM-o 4.5 GGUF audio+image input to text+speech on native-Windows-11-HX370-Radeon-890M-plus-CPU", + "status": "scoped_complete_path_pass", + "expected_placement": "radeon-hybrid", + "quality": "synthetic red-square/tone response not established as semantically correct", + "model_revision": "db25077c33951fe163b42986fba0132e279872a2", + "artifacts": { + "MiniCPM-o-4_5-Q4_K_M.gguf": { + "bytes": 5026714400, + "sha256": "1237a97ee081b8abebc47aa7dad565701e8f5f904cdc92f6723ac4281bbc0932" + }, + "audio/MiniCPM-o-4_5-audio-F16.gguf": { + "bytes": 660167904, + "sha256": "d5b188ac7feaf98e17175c3f9bd14bf269301bfd187439fdaa3e3a494fc32ef7" + }, + "vision/MiniCPM-o-4_5-vision-F16.gguf": { + "bytes": 1095113184, + "sha256": "1453678cc4e4fe18de241952962e234f265cb8dda780773526103ab8ba82f421" + }, + "tts/MiniCPM-o-4_5-tts-F16.gguf": { + "bytes": 1157244416, + "sha256": "c7be3748a863dd6966ae7eed42600b7f41ca67affb03729ff245247f0e5ea088" + }, + "tts/MiniCPM-o-4_5-projector-F16.gguf": { + "bytes": 14948640, + "sha256": "4b1b5b377358a5e594a304ff6ea5d52df606a9ba7d886c4299d232f0c67dd1fd" + }, + "token2wav-gguf/encoder.gguf": { + "bytes": 151339008, + "sha256": "7f8d265da594eaf5e1de2db8f5f1867dbcb0bb75ef5878fadf2952347116f4d0" + }, + "token2wav-gguf/flow_matching.gguf": { + "bytes": 458250240, + "sha256": "eda6069f3edeb5dd3a87fbf2aedb2ddd1b46f3273926c4fcf09b24476a39cab8" + }, + "token2wav-gguf/flow_extra.gguf": { + "bytes": 13663328, + "sha256": "c67611aa7d02500fe395a7798bf0bfdfb55c74d37ba93934ca74d82b4e63f78d" + }, + "token2wav-gguf/hifigan2.gguf": { + "bytes": 83242816, + "sha256": "1b8b3bf5d8d3066aeee4324fdcdd41aefce170d0ee907645858de408d82835c2" + }, + "token2wav-gguf/prompt_cache.gguf": { + "bytes": 211613152, + "sha256": "81fe6f541ebe0b67db06a1e395df928da47991dc9637c2cf47d6c59d5b979f2c" + } + }, + "runtime_binary_sha256": "39e089894e010c4a85092f866d9eee79942b9fcab0bca090353dcad24a6dafee", + "input_image_sha256": "22c7ccea466a3f551c512045e6316c7597408d4e0a20205502f55784d977aa8d", + "input_audio_sha256": "14ee147cbf2ce9afd9e32c8c8228d7cfe11985cd7e63456b2ad33871492aefcc", + "response_text": "The square in the image is red.", + "audio_chunks": [ + { + "name": "wav_0.wav", + "frames": 20160, + "sha256": "e038ca472e08fbc84404c2a268fa59cd4894e726db3ab140347142f038d286e6" + }, + { + "name": "wav_1.wav", + "frames": 24000, + "sha256": "4c87362fc2c8aebbd684a6082595ad07ffed186f72e1522b7d32524b327b5e96" + }, + { + "name": "wav_2.wav", + "frames": 17280, + "sha256": "5ecaf1e49a46a52c0c6cea0cfc25abe94e7364963e16f436a2161f59b66a2bdc" + } + ], + "audio_frames": 61440, + "audio_duration_s": 2.56, + "audio_rms_pcm16": 2316.0898388169994, + "pcm_sha256": "de9c909bb698da33f0f79f6a5b1761c1739492a2cdcfeafb2716f821645d3251", + "merged_wav_sha256": "41f411907116e6a000a3fcdadcc52ae15277abd7f71803f36b78ea79232a6f3d", + "peak_rss_kib_from_time": null, + "wall_clock_from_time": null, + "sampled_process_profile": { + "command": [ + "C:\\Users\\zhout\\w2\\minicpmo_cpp_prompt\\llama-omni-cli.exe", + "-m", + "C:\\Users\\zhout\\w2\\models\\MiniCPM-o-4_5-gguf\\MiniCPM-o-4_5-Q4_K_M.gguf", + "-ngl", + "99", + "-c", + "2048", + "--omni", + "--t2w-device", + "cpu", + "--t2w-wait-seconds", + "900", + "--ref-audio", + "C:\\Users\\zhout\\w2\\minicpmo_cpp_prompt\\default_ref_audio.wav", + "--test", + "C:\\Users\\zhout\\w2\\minicpmo_cpp_prompt\\fixture_", + "2" + ], + "cwd": "C:\\Users\\zhout\\w2\\minicpmo_cpp_prompt", + "exit_code": 0, + "wall_s": 18.634632700006478, + "memory_sample_interval_ms": 100, + "memory_samples": 185, + "peak_sampled_rss_bytes": 15565971456, + "peak_sampled_private_bytes": 15439056896, + "measurement_note": "sampled process values, not guaranteed loading peaks" + }, + "upstream_merge_name_mismatch": true +} diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m_prompted/input_asr.json b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m_prompted/input_asr.json new file mode 100644 index 000000000..1bfaeb35a --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m_prompted/input_asr.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": "14ee147cbf2ce9afd9e32c8c8228d7cfe11985cd7e63456b2ad33871492aefcc", + "input_sample_rate": 16000, + "input_duration_s": 3.0836875, + "reference_text": "What color is the square in the image?", + "transcript": "What color is the square in the image?", + "word_error_rate": 0.0, + "asr_load_s": 0.7945198999950662, + "asr_inference_s": 1.010420500067994 +} diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m_prompted/input_asr.log b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m_prompted/input_asr.log new file mode 100644 index 000000000..da29f415e --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m_prompted/input_asr.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": "14ee147cbf2ce9afd9e32c8c8228d7cfe11985cd7e63456b2ad33871492aefcc", + "input_sample_rate": 16000, + "input_duration_s": 3.0836875, + "reference_text": "What color is the square in the image?", + "transcript": "What color is the square in the image?", + "word_error_rate": 0.0, + "asr_load_s": 0.7945198999950662, + "asr_inference_s": 1.010420500067994 +} diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m_prompted/output_asr.json b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m_prompted/output_asr.json new file mode 100644 index 000000000..9e9f1f9d4 --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m_prompted/output_asr.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": "41f411907116e6a000a3fcdadcc52ae15277abd7f71803f36b78ea79232a6f3d", + "input_sample_rate": 24000, + "input_duration_s": 2.56, + "reference_text": "The square in the image is red.", + "transcript": "The square in the image is red.", + "word_error_rate": 0.0, + "asr_load_s": 0.7322970000095665, + "asr_inference_s": 0.974585699965246 +} diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m_prompted/output_asr.log b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m_prompted/output_asr.log new file mode 100644 index 000000000..83497b811 --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m_prompted/output_asr.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": "41f411907116e6a000a3fcdadcc52ae15277abd7f71803f36b78ea79232a6f3d", + "input_sample_rate": 24000, + "input_duration_s": 2.56, + "reference_text": "The square in the image is red.", + "transcript": "The square in the image is red.", + "word_error_rate": 0.0, + "asr_load_s": 0.7322970000095665, + "asr_inference_s": 0.974585699965246 +} diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m_prompted/question_raw.wav b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m_prompted/question_raw.wav new file mode 100644 index 000000000..dde4ca8b4 Binary files /dev/null and b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m_prompted/question_raw.wav differ diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m_prompted/round_000/llm_debug/chunk_0/llm_text.txt b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m_prompted/round_000/llm_debug/chunk_0/llm_text.txt new file mode 100644 index 000000000..a42002cc4 --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m_prompted/round_000/llm_debug/chunk_0/llm_text.txt @@ -0,0 +1 @@ +The square in the image is red. \ No newline at end of file diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m_prompted/round_000/tts_wav/audio_tokens_chunk_0.bin b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m_prompted/round_000/tts_wav/audio_tokens_chunk_0.bin new file mode 100644 index 000000000..9c85de69a Binary files /dev/null and b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m_prompted/round_000/tts_wav/audio_tokens_chunk_0.bin differ diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m_prompted/round_000/tts_wav/audio_tokens_chunk_0.txt b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m_prompted/round_000/tts_wav/audio_tokens_chunk_0.txt new file mode 100644 index 000000000..40a285444 --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m_prompted/round_000/tts_wav/audio_tokens_chunk_0.txt @@ -0,0 +1 @@ +3764,1950,4137,4137,4137,4218,4245,6375,316,65,4671,4752,1620,573,669,1457,920,926,3140,6050,6058,6061,4850,2222,3906,1965,1774,1295,1294,1052,62,208,4314,1909,4598,4602,1122,5322,960,2005,1763,2591,2348,2993,4932,1602,2145,2158,4367,3863,4544,35,35,76,1851,66,741,1707,4137,4218,6091 diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m_prompted/round_000/tts_wav/generation_done.flag b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m_prompted/round_000/tts_wav/generation_done.flag new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m_prompted/round_000/tts_wav/generation_done.flag @@ -0,0 +1 @@ +2 diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m_prompted/round_000/tts_wav/wav_0.wav b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m_prompted/round_000/tts_wav/wav_0.wav new file mode 100644 index 000000000..dbec20c13 Binary files /dev/null and b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m_prompted/round_000/tts_wav/wav_0.wav differ diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m_prompted/round_000/tts_wav/wav_1.wav b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m_prompted/round_000/tts_wav/wav_1.wav new file mode 100644 index 000000000..4adce41df Binary files /dev/null and b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m_prompted/round_000/tts_wav/wav_1.wav differ diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m_prompted/round_000/tts_wav/wav_2.wav b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m_prompted/round_000/tts_wav/wav_2.wav new file mode 100644 index 000000000..5bc250dd0 Binary files /dev/null and b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m_prompted/round_000/tts_wav/wav_2.wav differ diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m_prompted/round_000/tts_wav/wav_timing.txt b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m_prompted/round_000/tts_wav/wav_timing.txt new file mode 100644 index 000000000..478e4b1af --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m_prompted/round_000/tts_wav/wav_timing.txt @@ -0,0 +1,3 @@ +# WAV file generation timing log +# Format: chunk_index, elapsed_time_ms (since stream_decode start), file_size_bytes, request_duration_ms +# Time 0 is when stream_decode() function starts diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_windows_cpu/README.md b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_windows_cpu/README.md index f1e2caa70..788823069 100644 --- a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_windows_cpu/README.md +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_windows_cpu/README.md @@ -11,7 +11,7 @@ The complete ten-file Q4_K_M/F16 set is [openbmb/MiniCPM-o-4_5-gguf](https://hug | One cold process took 137.34 s. At 100 ms intervals, maximum sampled RSS/private bytes were 13.10/13.31 GB; these are observed maxima, not proven loading peaks. The 49.16 s speech took longer than real time. This is one observation, with no warmup distribution. | [process profile](full.profile.json), [raw timing/stderr](full.stderr.log) | | Pinned CPU `openai/whisper-tiny` recognized the generated Mandarin speech with 13.59% CJK/alphanumeric character error against the model's **own** text after OpenCC traditional-to-simplified normalization (25.24% before normalization), across two 25 s ASR windows. This is only an intelligibility proxy. | [ASR report](speech_asr_proxy.json), [ASR log](speech_asr_proxy.log), [probe](../../../../experiments/probe_tts_asr_cjk.py) | -The response was a generic story about visiting the Arctic rather than a description of the square or tone. The CLI fixture did not supply an explicit describe-the-input instruction, so this observation cannot establish grounded task quality. The runtime's optional merger still looked for `tts_output_chunk_N.wav` while the vocoder wrote `wav_N.wav`, and it attempted merging before all audio was ready. [The verifier](../../../../experiments/verify_minicpm_cpp_output.py) assembled the original PCM only after checking the completion flag and all chunks; this does not provide live playable streaming. The [first native attempt](../minicpmo_cpp_windows_cpu_attempt1/README.md) exited 0 with partial audio because of a 120 s wait; it is retained as a failed run. Omni admission/state/cancellation, real image/audio quality, repeat latency, loading peak and sustained power/thermal behavior remain open. +The response was a generic story about visiting the Arctic rather than a description of the square or tone. The CLI fixture did not supply an explicit describe-the-input instruction, so this observation cannot establish grounded task quality. A separate [spoken visual question](../minicpmo_cpp_windows_cpu_prompted/README.md) subsequently received the correct red-square answer on both CPU and Radeon 890M, with identical language token IDs; that is still only one synthetic quality case. The runtime's optional merger still looked for `tts_output_chunk_N.wav` while the vocoder wrote `wav_N.wav`, and it attempted merging before all audio was ready. [The verifier](../../../../experiments/verify_minicpm_cpp_output.py) assembled the original PCM only after checking the completion flag and all chunks; this does not provide live playable streaming. The [first native attempt](../minicpmo_cpp_windows_cpu_attempt1/README.md) exited 0 with partial audio because of a 120 s wait; it is retained as a failed run. Omni admission/state/cancellation, real image/audio quality, repeat latency, loading peak and sustained power/thermal behavior remain open. Reproduce from the pinned C++ checkout after applying the patch and obtaining the pinned GGUF set. Cross-build using `-DCMAKE_SYSTEM_NAME=Windows -DCMAKE_SYSTEM_PROCESSOR=x86_64`, MinGW-w64 `gcc-posix/g++-posix`, `-DCMAKE_C_FLAGS=-march=x86-64-v3 -DCMAKE_CXX_FLAGS=-march=x86-64-v3`, `-DGGML_CUDA=OFF -DGGML_VULKAN=OFF -DGGML_OPENMP=OFF -DLLAMA_CURL=OFF -DLLAMA_BUILD_TESTS=OFF -DLLAMA_BUILD_EXAMPLES=ON`, then build `llama-omni-cli`. The native run used: diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_windows_cpu_prompted/README.md b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_windows_cpu_prompted/README.md new file mode 100644 index 000000000..9becb6d51 --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_windows_cpu_prompted/README.md @@ -0,0 +1,7 @@ +# Native Windows CPU MiniCPM-o: spoken visual question + +The pinned GGUF [native CPU backend](../minicpmo_cpp_windows_cpu/README.md) completed the same synthetic red-square image and spoken “What color is the square in the image?” request as the [Radeon 890M hybrid](../minicpmo_cpp_radeon890m_prompted/README.md). Pinned Whisper tiny.en independently transcribed the spoken input with WER 0 in the Radeon record. The [raw CPU log](full.combined.log) shows zero GPU layers, CPU vision and CPU Token2Wav/vocoder, actual index-1 image/audio prefill, and the response **“The square in the image is red.”** All eight logged language token IDs matched the Radeon run on the identical checkpoint and inputs; see the [cross-device check](../minicpmo_cpp_radeon890m_prompted/cpu_radeon_parity.json). + +The [bounded verifier](../../../../experiments/verify_minicpm_cpp_output.py) checked the ten weight hashes, exact executable/input hashes, completion marker, text, and three contiguous nonzero mono 24 kHz [WAV chunks](round_000/tts_wav/). It assembled their unchanged PCM into a [2.32 s WAV](full_merged.wav); the [report](full_report.json) includes each hash. Local pinned [Whisper tiny.en](output_asr.json) transcribed the speech as the exact answer, WER 0 as an intelligibility proxy. The CPU and Radeon PCM hashes differ, so waveform parity is not claimed. + +One cold CPU process took 24.66 s. [100 ms sampling](full.profile.json) observed 13.11 GB maximum RSS and 13.31 GB maximum private bytes; these are not guaranteed loading peaks or a repeated profile. The one prompted image case is stronger than the earlier unprompted tone fixture but does not qualify general visual/audio understanding, playable streaming, Omni admission/state/cancellation or sustained operation. The Windows GGUF backend remains standalone outside Omni. diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_windows_cpu_prompted/fixture_0000.wav b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_windows_cpu_prompted/fixture_0000.wav new file mode 100644 index 000000000..76b27ff0b Binary files /dev/null and b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_windows_cpu_prompted/fixture_0000.wav differ diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_windows_cpu_prompted/fixture_0001.jpg b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_windows_cpu_prompted/fixture_0001.jpg new file mode 100644 index 000000000..63bf0ffd6 Binary files /dev/null and b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_windows_cpu_prompted/fixture_0001.jpg differ diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_windows_cpu_prompted/fixture_0001.wav b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_windows_cpu_prompted/fixture_0001.wav new file mode 100644 index 000000000..19bf38b0f Binary files /dev/null and b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_windows_cpu_prompted/fixture_0001.wav differ diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_windows_cpu_prompted/full.combined.log b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_windows_cpu_prompted/full.combined.log new file mode 100644 index 000000000..e961b1b13 --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_windows_cpu_prompted/full.combined.log @@ -0,0 +1,469 @@ +=== Model Paths === + Base dir: C:\Users\zhout\w2\models\MiniCPM-o-4_5-gguf + LLM: C:\Users\zhout\w2\models\MiniCPM-o-4_5-gguf\MiniCPM-o-4_5-Q4_K_M.gguf [OK] + Vision: C:\Users\zhout\w2\models\MiniCPM-o-4_5-gguf/vision/MiniCPM-o-4_5-vision-F16.gguf [OK] + Audio: C:\Users\zhout\w2\models\MiniCPM-o-4_5-gguf/audio/MiniCPM-o-4_5-audio-F16.gguf [OK] + TTS: C:\Users\zhout\w2\models\MiniCPM-o-4_5-gguf/tts/MiniCPM-o-4_5-tts-F16.gguf [OK] + Projector: C:\Users\zhout\w2\models\MiniCPM-o-4_5-gguf/tts/MiniCPM-o-4_5-projector-F16.gguf [OK] +=================== +=== Initializing Omni Context === + Media type: 2 (omni: audio+vision) + TTS enabled: yes + Context size: 2048 + GPU layers: 0 + Token2Wav device: cpu + Vision backend: metal + TTS bin dir: C:\Users\zhout\w2\models\MiniCPM-o-4_5-gguf/tts + Ref audio: C:\Users\zhout\w2\minicpmo_cpp_cpu_prompt\default_ref_audio.wav +22:34:45.743 === omni_init start +22:34:45.743 media_type = 2, duplex_mode = 0, base_output_dir = ./tools/omni/output +22:34:45.743 === omni_init: loading new LLM model +22:34:47.963 === omni_init: loading TTS model +22:34:47.963 TTS model: loading with n_gpu_layers=0 +22:34:48.244 TTS sampler: temp=0.80, top_p=0.85, top_k=25, rep_penalty=1.05 +22:34:48.244 TTS: loading weights from GGUF (emb_code, emb_text, projector_semantic, head_code)... +22:34:48.600 TTS: head_code shape: dim0=6562, dim1=768, will transpose to [6562, 768] +22:34:48.606 TTS: head_code loaded, verifying first few values: +22:34:48.606 head_code_weight[0] = 0.01361084 (expect ~0.01385498) +22:34:48.606 head_code_weight[1] = -0.01660156 (expect ~-0.01647949) +22:34:48.606 head_code_weight[768] = 0.04101562 (this is weight[1, 0], expect ~0.04150391) +22:34:48.635 TTS: weights loaded successfully +22:34:48.635 Projector: loading from C:\Users\zhout\w2\models\MiniCPM-o-4_5-gguf/tts/MiniCPM-o-4_5-projector-F16.gguf +22:34:48.641 Projector: loaded successfully +22:34:48.641 === omni_init: loading APM model +22:34:48.837 APM: init from C:\Users\zhout\w2\models\MiniCPM-o-4_5-gguf/audio/MiniCPM-o-4_5-audio-F16.gguf +22:34:49.186 Token2Wav: found models in C:\Users\zhout\w2\models\MiniCPM-o-4_5-gguf/token2wav-gguf +22:34:49.186 Token2Wav: all model files found, initializing session... +22:34:49.186 Token2Wav: non-CUDA backend, vocoder using CPU for better performance +22:34:49.186 Token2Wav: using prompt_cache from C:\Users\zhout\w2\models\MiniCPM-o-4_5-gguf/token2wav-gguf/prompt_cache.gguf +22:34:49.505 Token2Wav: initialized successfully +22:34:49.505 Python T2W: script_dir=./tools/omni/pyt2w, model_dir=./tools/omni/pyt2w/token2wav +22:34:49.506 Token2Wav: 使用 C++ 实现 +22:34:49.506 === omni_init success: ctx_llama = 000001c37e89ec40 +=== Running test case === + Audio prefix: C:\Users\zhout\w2\minicpmo_cpp_cpu_prompt\fixture_ + Count: 2 +22:34:49.506 stream_prefill: n_past = 0 + voice_clone_prompt = <|im_start|>system +模仿音频样本的音色并生成新的内容。 +<|audio_start|> + assistant_prompt = <|audio_end|>你的任务是用这种声音模式来当一个助手。请认真、高质量地回复用户的问题。请用高自然度的方式和用户聊天。<|im_end|> +<|im_start|>user + +22:34:49.506 system prompt ref_audio: C:\Users\zhout\w2\minicpmo_cpp_cpu_prompt\fixture_0000.wav +22:34:50.534 system prompt ref_audio embedding: n_pos=20 +22:34:52.926 🔒 n_keep 设置为 72 (system prompt tokens),这部分永远不会被滑动窗口删除 +22:34:52.926 stream_prefill(index=0): system prompt 初始化完成,ref_audio 已在其中 prefill +22:34:52.926 [SW] system_prompt registered: preserve_length=72 (will be protected from sliding) +22:34:52.926 n_past = 72 +22:34:52.926 + +c++ finish stream_prefill(index=0). n_past=72, n_keep=72, n_ctx=2048 + +prefill 0 (audio) : 3.4203 s +22:34:58.976 stream_prefill(index=1): processing user audio: C:\Users\zhout\w2\minicpmo_cpp_cpu_prompt\fixture_0001.wav +22:34:59.268 stream_prefill(index=1): user audio embedding: n_pos=31 +22:35:00.901 + +c++ finish stream_prefill(index=1). n_past=172, n_keep=72, n_ctx=2048 + +prefill 1 (audio+vision) : 7.97498 s +22:35:00.901 📍 stream_decode 开始: n_past=172, n_keep=72, n_ctx=2048, duplex_mode=0 +22:35:00.902 stream_decode: create tts thread (simplex mode) +22:35:00.902 stream_decode: create t2w thread +22:35:00.902 wait prefill done +22:35:00.902 📍 [单工TTS] 添加 assistant prompt: "<|im_end|> +<|im_start|>assistant + + + + +<|tts_bos|>", n_past=172 +22:35:00.902 T2W thread (C++) started +22:35:00.906 TTS: 创建单工模式输出目录: ./tools/omni/output/round_000 +22:35:00.906 TTS thread started +22:35:01.422 📍 [单工TTS] assistant prompt 完成, n_past=182 +22:35:01.422 LLM decode: max_tgt_len = 2048, n_predict = -1, n_ctx = 2048 +22:35:02.229 LLM: detected end token, set llm_generation_done=true +22:35:02.229 LLM->TTS: text='The square in the image is red.', n_tokens=8, hidden_size=32768, n_embd=4096, token_ids=[785 9334 304 279 2168 374 2518 13] +22:35:02.229 📍 Decode 结束: n_past=191, 剩余空间=1857, 无需滑窗 +22:35:02.229 📍 轮次 1 结束,记录边界于 n_past=191 +22:35:02.229 TTS<-LLM: chunk_idx=0, text='The square in the image is red.', n_tokens=8, hidden_size=32768, token_ids=[785 9334 304 279 2168 374 2518 13] +22:35:02.229 TTS: after queue pop - speek_done=0, llm_finish=1, llm_text.empty=0, token_ids.size=8 +22:35:02.229 TTS: before empty check - response.empty=0, response='The square in the image is red.', llm_finish=1 +22:35:02.229 TTS: DEBUG before has_llm_data - token_ids.size=8, hidden_states.size=32768, n_embd=4096 +22:35:02.229 TTS: has_llm_data=1, token_ids=8, hidden_states=32768, n_embd=4096, llm_finish=1 +22:35:02.230 TTS: n_tokens_orig=8, n_tokens_filtered=8 (filtered 0 special tokens) +22:35:02.278 TTS: saved merged embeddings (text) to ./tools/omni/output/round_000/llm_debug/chunk_0/merged_embeddings.txt +22:35:02.278 TTS Simplex: generating audio tokens for chunk 0 (n_tokens=8, tts_n_embd=768) +22:35:02.278 TTS Simplex: 在 prefill 前添加 audio_bos (chunk_idx=0, new_size=9) +22:35:02.278 TTS Simplex: first chunk - cleared KV cache +22:35:02.278 TTS Simplex: first chunk - cleared tts_all_generated_tokens and tts_token_buffer +22:35:02.380 TTS Simplex: prefill completed, n_past_tts=9 +22:35:02.380 TTS Simplex: sampler created +22:35:02.380 TTS simplex: is_audio_bos=true (first audio token) +22:35:02.410 TTS Simplex Phase1: token 1/500: rel_id=1487 +22:35:02.423 TTS Simplex Phase1: token 2/500: rel_id=4218 +22:35:02.436 TTS Simplex Phase1: token 3/500: rel_id=4137 +22:35:02.448 TTS Simplex Phase1: token 4/500: rel_id=4137 +22:35:02.460 TTS Simplex Phase1: token 5/500: rel_id=4218 +22:35:02.570 📍 为下一轮准备: eval <|im_end|>\n<|im_start|>user\n, n_past=196 +22:35:02.695 TTS Simplex Phase1: yield 25 tokens 到 T2W (step 25, buffer=25) +22:35:22:35:02.695 T2W线程(C++): 轮次切换 (-1 -> 0),更新输出目录 +02.695 TTS Simplex Phase1: token 25/500: rel_id=2753 +22:35:02.695 T2W线程(C++): 新输出目录 ./tools/omni/output/round_000/tts_wav +22:35:02.826 TTS Simplex Phase1: EOS token at step 38 +22:35:02.826 TTS Simplex: is_final_text_chunk=true, will enter Phase 2 for text_eos_embed +22:35:02.826 TTS Simplex Phase2: injecting text_eos_embed + audio_bos at n_past=46 +22:35:02.834 TTS Simplex Phase2: text_eos_embed injected, n_past=47 +22:35:02.842 TTS Simplex Phase2: audio_bos injected, n_past=48, starting final generation +22:35:02.979 TTS Simplex Phase2: yield 25 tokens 到 T2W +22:35:03.042 TTS Simplex Phase2: EOS at step 19 (final end) +22:35:03.042 TTS Simplex: chunk 结束,tts_token_buffer 剩余 5 tokens (保留等下一个 chunk) +22:35:03.042 TTS Simplex: is_final_text_chunk=true, flush 剩余 5 tokens 从 tts_token_buffer +22:35:03.042 TTS Simplex: generated 55 audio tokens for chunk 0 +22:35:03.042 TTS Simplex: chunk 0 first tokens: [1487 4218 4137 4137 4218 ], last tokens: [1707 4218 4218 4218 4137 ] +22:35:03.042 TTS Simplex: updated tts_n_past_accumulated=67, total_generated_tokens=55 +22:35:03.044 TTS: finished processing all chunks +22:35:03.044 TTS: 单工模式轮次结束,下一轮 round_idx=1 +22:35:03.044 TTS: sent is_final=true to T2W queue (turn end) +22:35:05.068 🎉 首响时间 (First Audio Response): 4166ms +22:35:05.068 T2W线程: wav_0.wav | 0.84s audio | 2362.3ms inference | RTF=2.81 | t=4166ms +22:35:07.264 T2W线程: wav_1.wav | 1.00s audio | 2195.4ms inference | RTF=2.20 | t=6362ms +22:35:09.294 T2W线程: wav_2.wav | 0.48s audio | 2029.6ms inference | RTF=4.23 | t=8392ms +22:35:09.295 T2W线程: 写入结束标记 ./tools/omni/output/round_000/tts_wav/generation_done.flag (last_wav=2) +22:35:09.295 T2W线程: 轮次结束后更新输出目录为 ./tools/omni/output/round_001/tts_wav +22:22:35:35:09.09390 .T2W(C++) 线程: 停止 +390 omni_stop_threads: stop signals sent +tts thread end +t2w thread end +build: 64 (5202b7b) with x86_64-w64-mingw32-gcc-posix (GCC) 13-posix for x86_64-w64-mingw32 +llama_model_loader: loaded meta data with 27 key-value pairs and 399 tensors from C:\Users\zhout\w2\models\MiniCPM-o-4_5-gguf\MiniCPM-o-4_5-Q4_K_M.gguf (version GGUF V3 (latest)) +llama_model_loader: Dumping metadata keys/values. Note: KV overrides do not apply in this output. +llama_model_loader: - kv 0: general.architecture str = qwen3 +llama_model_loader: - kv 1: general.type str = model +llama_model_loader: - kv 2: general.name str = Llm +llama_model_loader: - kv 3: general.size_label str = 8.2B +llama_model_loader: - kv 4: qwen3.block_count u32 = 36 +llama_model_loader: - kv 5: qwen3.context_length u32 = 40960 +llama_model_loader: - kv 6: qwen3.embedding_length u32 = 4096 +llama_model_loader: - kv 7: qwen3.feed_forward_length u32 = 12288 +llama_model_loader: - kv 8: qwen3.attention.head_count u32 = 32 +llama_model_loader: - kv 9: qwen3.attention.head_count_kv u32 = 8 +llama_model_loader: - kv 10: qwen3.rope.freq_base f32 = 1000000.000000 +llama_model_loader: - kv 11: qwen3.attention.layer_norm_rms_epsilon f32 = 0.000001 +llama_model_loader: - kv 12: qwen3.attention.key_length u32 = 128 +llama_model_loader: - kv 13: qwen3.attention.value_length u32 = 128 +llama_model_loader: - kv 14: tokenizer.ggml.model str = gpt2 +llama_model_loader: - kv 15: tokenizer.ggml.pre str = qwen2 +llama_model_loader: - kv 16: tokenizer.ggml.tokens arr[str,151748] = ["!", "\"", "#", "$", "%", "&", "'", ... +llama_model_loader: - kv 17: tokenizer.ggml.token_type arr[i32,151748] = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ... +llama_model_loader: - kv 18: tokenizer.ggml.merges arr[str,151387] = ["Ġ Ġ", "ĠĠ ĠĠ", "i n", "Ġ t",... +llama_model_loader: - kv 19: tokenizer.ggml.bos_token_id u32 = 151644 +llama_model_loader: - kv 20: tokenizer.ggml.eos_token_id u32 = 151645 +llama_model_loader: - kv 21: tokenizer.ggml.unknown_token_id u32 = 128244 +llama_model_loader: - kv 22: tokenizer.ggml.padding_token_id u32 = 151643 +llama_model_loader: - kv 23: tokenizer.ggml.add_bos_token bool = false +llama_model_loader: - kv 24: tokenizer.chat_template str = {%- if tools %}\n {{- '<|im_start|>... +llama_model_loader: - kv 25: general.quantization_version u32 = 2 +llama_model_loader: - kv 26: general.file_type u32 = 15 +llama_model_loader: - type f32: 145 tensors +llama_model_loader: - type q4_K: 217 tensors +llama_model_loader: - type q6_K: 37 tensors +print_info: file format = GGUF V3 (latest) +print_info: file type = Q4_K - Medium +print_info: file size = 4.68 GiB (4.90 BPW) +load: printing all EOG tokens: +load: - 151643 ('<|endoftext|>') +load: - 151645 ('<|im_end|>') +load: - 151662 ('<|fim_pad|>') +load: - 151663 ('<|repo_name|>') +load: - 151664 ('<|file_sep|>') +load: special tokens cache size = 106 +load: token to piece cache size = 0.9319 MB +print_info: arch = qwen3 +print_info: vocab_only = 0 +print_info: n_ctx_train = 40960 +print_info: n_embd = 4096 +print_info: n_layer = 36 +print_info: n_head = 32 +print_info: n_head_kv = 8 +print_info: n_rot = 128 +print_info: n_swa = 0 +print_info: is_swa_any = 0 +print_info: n_embd_head_k = 128 +print_info: n_embd_head_v = 128 +print_info: n_gqa = 4 +print_info: n_embd_k_gqa = 1024 +print_info: n_embd_v_gqa = 1024 +print_info: f_norm_eps = 0.0e+00 +print_info: f_norm_rms_eps = 1.0e-06 +print_info: f_clamp_kqv = 0.0e+00 +print_info: f_max_alibi_bias = 0.0e+00 +print_info: f_logit_scale = 0.0e+00 +print_info: f_attn_scale = 0.0e+00 +print_info: n_ff = 12288 +print_info: n_expert = 0 +print_info: n_expert_used = 0 +print_info: causal attn = 1 +print_info: pooling type = -1 +print_info: rope type = 2 +print_info: rope scaling = linear +print_info: freq_base_train = 1000000.0 +print_info: freq_scale_train = 1 +print_info: n_ctx_orig_yarn = 40960 +print_info: rope_finetuned = unknown +print_info: model type = 8B +print_info: model params = 8.19 B +print_info: general.name = Llm +print_info: vocab type = BPE +print_info: n_vocab = 151748 +print_info: n_merges = 151387 +print_info: BOS token = 151644 '<|im_start|>' +print_info: EOS token = 151645 '<|im_end|>' +print_info: EOT token = 151645 '<|im_end|>' +print_info: UNK token = 128244 '' +print_info: PAD token = 151643 '<|endoftext|>' +print_info: LF token = 198 'Ċ' +print_info: FIM PRE token = 151659 '<|fim_prefix|>' +print_info: FIM SUF token = 151661 '<|fim_suffix|>' +print_info: FIM MID token = 151660 '<|fim_middle|>' +print_info: FIM PAD token = 151662 '<|fim_pad|>' +print_info: FIM REP token = 151663 '<|repo_name|>' +print_info: FIM SEP token = 151664 '<|file_sep|>' +print_info: EOG token = 151643 '<|endoftext|>' +print_info: EOG token = 151645 '<|im_end|>' +print_info: EOG token = 151662 '<|fim_pad|>' +print_info: EOG token = 151663 '<|repo_name|>' +print_info: EOG token = 151664 '<|file_sep|>' +print_info: max token length = 256 +load_tensors: loading model tensors, this can take a while... (mmap = true) +load_tensors: CPU_REPACK model buffer size = 3199.50 MiB +load_tensors: CPU_Mapped model buffer size = 4761.17 MiB +..................................................................................... +llama_context: constructing llama_context +llama_context: n_seq_max = 1 +llama_context: n_ctx = 2048 +llama_context: n_ctx_per_seq = 2048 +llama_context: n_batch = 2048 +llama_context: n_ubatch = 512 +llama_context: causal_attn = 1 +llama_context: flash_attn = auto +llama_context: kv_unified = false +llama_context: freq_base = 1000000.0 +llama_context: freq_scale = 1 +llama_context: n_ctx_per_seq (2048) < n_ctx_train (40960) -- the full capacity of the model will not be utilized +llama_context: CPU output buffer size = 0.58 MiB +llama_kv_cache: CPU KV buffer size = 288.00 MiB +llama_kv_cache: size = 288.00 MiB ( 2048 cells, 36 layers, 1/1 seqs), K (f16): 144.00 MiB, V (f16): 144.00 MiB +llama_context: Flash Attention was auto, set to enabled +llama_context: CPU compute buffer size = 304.38 MiB +llama_context: graph nodes = 1267 +llama_context: graph splits = 1 +llama_model_loader: loaded meta data with 30 key-value pairs and 193 tensors from C:\Users\zhout\w2\models\MiniCPM-o-4_5-gguf/tts/MiniCPM-o-4_5-tts-F16.gguf (version GGUF V3 (latest)) +llama_model_loader: Dumping metadata keys/values. Note: KV overrides do not apply in this output. +llama_model_loader: - kv 0: general.architecture str = llama +llama_model_loader: - kv 1: general.type str = model +llama_model_loader: - kv 2: general.name str = Tts +llama_model_loader: - kv 3: general.size_label str = 445M +llama_model_loader: - kv 4: llama.block_count u32 = 20 +llama_model_loader: - kv 5: llama.context_length u32 = 4096 +llama_model_loader: - kv 6: llama.embedding_length u32 = 768 +llama_model_loader: - kv 7: llama.feed_forward_length u32 = 3072 +llama_model_loader: - kv 8: llama.attention.head_count u32 = 12 +llama_model_loader: - kv 9: llama.attention.head_count_kv u32 = 12 +llama_model_loader: - kv 10: llama.rope.freq_base f32 = 10000.000000 +llama_model_loader: - kv 11: llama.attention.layer_norm_rms_epsilon f32 = 0.000001 +llama_model_loader: - kv 12: llama.attention.key_length u32 = 64 +llama_model_loader: - kv 13: llama.attention.value_length u32 = 64 +llama_model_loader: - kv 14: general.file_type u32 = 1 +llama_model_loader: - kv 15: llama.vocab_size u32 = 158626 +llama_model_loader: - kv 16: llama.rope.dimension_count u32 = 64 +llama_model_loader: - kv 17: general.quantization_version u32 = 2 +llama_model_loader: - kv 18: tokenizer.ggml.model str = gpt2 +llama_model_loader: - kv 19: tokenizer.ggml.pre str = qwen2 +llama_model_loader: - kv 20: tokenizer.ggml.tokens arr[str,158626] = ["!", "\"", "#", "$", "%", "&", "'", ... +llama_model_loader: - kv 21: tokenizer.ggml.token_type arr[i32,158626] = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ... +llama_model_loader: - kv 22: tokenizer.ggml.merges arr[str,151387] = ["Ġ Ġ", "ĠĠ ĠĠ", "i n", "Ġ t",... +llama_model_loader: - kv 23: tokenizer.ggml.bos_token_id u32 = 151644 +llama_model_loader: - kv 24: tokenizer.ggml.eos_token_id u32 = 151645 +llama_model_loader: - kv 25: tokenizer.ggml.unknown_token_id u32 = 128244 +llama_model_loader: - kv 26: tokenizer.ggml.padding_token_id u32 = 151643 +llama_model_loader: - kv 27: tokenizer.ggml.add_bos_token bool = false +llama_model_loader: - kv 28: tokenizer.chat_template str = {%- if tools %}\n {{- '<|im_start|>... +llama_model_loader: - kv 29: tokenizer.ggml.add_space_prefix bool = false +llama_model_loader: - type f32: 50 tensors +llama_model_loader: - type f16: 143 tensors +print_info: file format = GGUF V3 (latest) +print_info: file type = F16 +print_info: file size = 1.07 GiB (20.70 BPW) +load: printing all EOG tokens: +load: - 151643 ('<|endoftext|>') +load: - 151645 ('<|im_end|>') +load: - 151662 ('<|fim_pad|>') +load: - 151663 ('<|repo_name|>') +load: - 151664 ('<|file_sep|>') +load: special tokens cache size = 106 +load: token to piece cache size = 0.9319 MB +print_info: arch = llama +print_info: vocab_only = 0 +print_info: n_ctx_train = 4096 +print_info: n_embd = 768 +print_info: n_layer = 20 +print_info: n_head = 12 +print_info: n_head_kv = 12 +print_info: n_rot = 64 +print_info: n_swa = 0 +print_info: is_swa_any = 0 +print_info: n_embd_head_k = 64 +print_info: n_embd_head_v = 64 +print_info: n_gqa = 1 +print_info: n_embd_k_gqa = 768 +print_info: n_embd_v_gqa = 768 +print_info: f_norm_eps = 0.0e+00 +print_info: f_norm_rms_eps = 1.0e-06 +print_info: f_clamp_kqv = 0.0e+00 +print_info: f_max_alibi_bias = 0.0e+00 +print_info: f_logit_scale = 0.0e+00 +print_info: f_attn_scale = 0.0e+00 +print_info: n_ff = 3072 +print_info: n_expert = 0 +print_info: n_expert_used = 0 +print_info: causal attn = 1 +print_info: pooling type = 0 +print_info: rope type = 0 +print_info: rope scaling = linear +print_info: freq_base_train = 10000.0 +print_info: freq_scale_train = 1 +print_info: n_ctx_orig_yarn = 4096 +print_info: rope_finetuned = unknown +print_info: model type = ?B +print_info: model params = 444.94 M +print_info: general.name = Tts +print_info: vocab type = BPE +print_info: n_vocab = 158626 +print_info: n_merges = 151387 +print_info: BOS token = 151644 '<|im_start|>' +print_info: EOS token = 151645 '<|im_end|>' +print_info: EOT token = 151645 '<|im_end|>' +print_info: UNK token = 128244 '' +print_info: PAD token = 151643 '<|endoftext|>' +print_info: LF token = 198 'Ċ' +print_info: FIM PRE token = 151659 '<|fim_prefix|>' +print_info: FIM SUF token = 151661 '<|fim_suffix|>' +print_info: FIM MID token = 151660 '<|fim_middle|>' +print_info: FIM PAD token = 151662 '<|fim_pad|>' +print_info: FIM REP token = 151663 '<|repo_name|>' +print_info: FIM SEP token = 151664 '<|file_sep|>' +print_info: EOG token = 151643 '<|endoftext|>' +print_info: EOG token = 151645 '<|im_end|>' +print_info: EOG token = 151662 '<|fim_pad|>' +print_info: EOG token = 151663 '<|repo_name|>' +print_info: EOG token = 151664 '<|file_sep|>' +print_info: max token length = 256 +load_tensors: loading model tensors, this can take a while... (mmap = true) +load_tensors: skipping TTS tensor emb_code.0.weight (size = 20158464 bytes) -- will be loaded separately +load_tensors: skipping TTS tensor emb_text.weight (size = 467140608 bytes) -- will be loaded separately +load_tensors: skipping TTS tensor projector_semantic.linear1.weight (size = 12582912 bytes) -- will be loaded separately +load_tensors: skipping TTS tensor projector_semantic.linear1.bias (size = 3072 bytes) -- will be loaded separately +load_tensors: skipping TTS tensor projector_semantic.linear2.weight (size = 2359296 bytes) -- will be loaded separately +load_tensors: skipping TTS tensor projector_semantic.linear2.bias (size = 3072 bytes) -- will be loaded separately +load_tensors: skipping TTS tensor projector_spk.linear1.weight (size = 6291456 bytes) -- will be loaded separately +load_tensors: skipping TTS tensor projector_spk.linear1.bias (size = 3072 bytes) -- will be loaded separately +load_tensors: skipping TTS tensor projector_spk.linear2.weight (size = 1179648 bytes) -- will be loaded separately +load_tensors: skipping TTS tensor projector_spk.linear2.bias (size = 3072 bytes) -- will be loaded separately +load_tensors: skipping TTS tensor head_code.0.weight (size = 20158464 bytes) -- will be loaded separately +load_tensors: CPU_Mapped model buffer size = 592.48 MiB +.............................................................. +llama_init_from_model: model default pooling_type is [0], but [-1] was specified +llama_context: constructing llama_context +llama_context: n_seq_max = 1 +llama_context: n_ctx = 2048 +llama_context: n_ctx_per_seq = 2048 +llama_context: n_batch = 2048 +llama_context: n_ubatch = 512 +llama_context: causal_attn = 1 +llama_context: flash_attn = auto +llama_context: kv_unified = false +llama_context: freq_base = 10000.0 +llama_context: freq_scale = 1 +llama_context: n_ctx_per_seq (2048) < n_ctx_train (4096) -- the full capacity of the model will not be utilized +llama_context: CPU output buffer size = 0.61 MiB +llama_kv_cache: CPU KV buffer size = 120.00 MiB +llama_kv_cache: size = 120.00 MiB ( 2048 cells, 20 layers, 1/1 seqs), K (f16): 60.00 MiB, V (f16): 60.00 MiB +llama_context: Flash Attention was auto, set to enabled +llama_context: CPU compute buffer size = 25.51 MiB +llama_context: graph nodes = 613 +llama_context: graph splits = 1 +vision_model_loader: model name: +vision_model_loader: description: image encoder for MiniCPM-V +vision_model_loader: GGUF version: 3 +vision_model_loader: alignment: 32 +vision_model_loader: n_tensors: 455 +vision_model_loader: n_kv: 20 + +vision_ctx: vision using CPU backend +load_hparams: model_type: 0 +load_hparams: n_embd: 1152 +load_hparams: n_head: 16 +load_hparams: n_ff: 4304 +load_hparams: n_layer: 27 +load_hparams: ffn_op: gelu +load_hparams: projection_dim: 0 + +--- vision hparams --- +load_hparams: image_size: 448 +load_hparams: patch_size: 14 +load_hparams: minicpmv_version: 100045 +load_hparams: proj_scale_factor: 0 +load_hparams: n_wa_pattern: 0 + +load_hparams: model size: 1044.36 MiB +load_hparams: metadata size: 0.16 MiB +load_tensors: ffn up/down are swapped +alloc_compute_meta: CPU compute buffer size = 100.30 MiB +init tts....init t2w....voc_hg2_model: CPU backend using 8 threads +audition_audio_preprocess: Decoded audio - sample_rate=16000, n_samples=32000 +audition_get_mel_filters: Retrieved mel filters from model: 80 mel bins x 201 fft bins +audition_audio_preprocess: Using mel filters - n_mel=80, n_fft=201 +audition_audio_preprocess: Generated 1 mel spectrogram chunk(s) +audition_audio_preprocess: Mel spectrogram ready - n_len=200, n_mel=80, total_size=16000 +build_whisper: Whisper encoder graph built (projector output, pre-pooling) +audition_audio_batch_encode: Audio input data - n_step=200, n_mel=80, total_elements=16000 +audition_audio_batch_encode: Before incrementing iter: input_frames=200, n_tokens=100, current_iter=0, current_total=0, new_total=100, max_tokens=1500 +audition_audio_batch_encode: KV cache iter incremented to 1 (total_tokens=100, max_tokens=1500) +audition_audio_batch_encode: Final output shape: [4096, 20] +audition_audio_batch_encode: Final output: 20 tokens x 4096 dims +encode_image_with_vision_chunks: step 1 of 1 encoded in 3046.44 ms +encode_image_with_vision_chunks: all 1 chunks encoded in 3066.00 ms (grid: 1x1) + +encode_image_with_vision_chunks: image encoded in 3066.01 ms by vision ( 3066.01 ms per chunk, 64 total tokens) +omni_image_embed_make_chunks_with_filename: created 1 vision chunks from C:\Users\zhout\w2\minicpmo_cpp_cpu_prompt\fixture_0001.jpg +stream_prefill: prefilled 1 vision chunks (64 tokens each) +audition_audio_preprocess: Decoded audio - sample_rate=16000, n_samples=49339 +audition_audio_preprocess: Audio not aligned to 100ms (49339 samples = 3083.7ms), padded with silence to 49600 samples (3100ms) +audition_get_mel_filters: Retrieved mel filters from model: 80 mel bins x 201 fft bins +audition_audio_preprocess: Using mel filters - n_mel=80, n_fft=201 +audition_audio_preprocess: Generated 1 mel spectrogram chunk(s) +audition_audio_preprocess: Mel spectrogram ready - n_len=310, n_mel=80, total_size=24800 +build_whisper: Whisper encoder graph built (projector output, pre-pooling) +audition_audio_batch_encode: Audio input data - n_step=310, n_mel=80, total_elements=24800 +audition_audio_batch_encode: Before incrementing iter: input_frames=310, n_tokens=155, current_iter=1, current_total=155, new_total=310, max_tokens=1500 +audition_audio_batch_encode: KV cache iter incremented to 2 (total_tokens=310, max_tokens=1500) +audition_audio_batch_encode: Final output shape: [4096, 31] +audition_audio_batch_encode: Final output: 31 tokens x 4096 dims + +Waiting for audio generation to complete... +TTS: chunk file ./tools/omni/output/round_000/tts_wav/tts_output_chunk_0.wav does not exist or is empty +TTS: chunk file ./tools/omni/output/round_000/tts_wav/tts_output_chunk_1.wav does not exist or is empty +TTS: no valid WAV files to merge +[timing] call=0 tokens=28 final=0 token2mel=2024.909ms vocoder=337.377ms total=2362.293ms audio=20160 +[timing] call=1 tokens=28 final=0 token2mel=1814.472ms vocoder=380.862ms total=2195.345ms audio=24000 +[timing] call=2 tokens=8 final=1 token2mel=1850.567ms vocoder=178.954ms total=2029.537ms audio=11520 +Audio generation completed. +llama_perf_context_print: load time = 13458.13 ms +llama_perf_context_print: prompt eval time = 11915.90 ms / 182 tokens ( 65.47 ms per token, 15.27 tokens per second) +llama_perf_context_print: eval time = 804.79 ms / 9 runs ( 89.42 ms per token, 11.18 tokens per second) +llama_perf_context_print: total time = 21425.86 ms / 191 tokens +llama_perf_context_print: graphs reused = 10 +Token2Wav (C++): session released diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_windows_cpu_prompted/full.profile.json b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_windows_cpu_prompted/full.profile.json new file mode 100644 index 000000000..68d0be8f3 --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_windows_cpu_prompted/full.profile.json @@ -0,0 +1,29 @@ +{ + "command": [ + "C:\\Users\\zhout\\w2\\minicpmo_cpp_cpu_prompt\\llama-omni-cli.exe", + "-m", + "C:\\Users\\zhout\\w2\\models\\MiniCPM-o-4_5-gguf\\MiniCPM-o-4_5-Q4_K_M.gguf", + "-ngl", + "0", + "-c", + "2048", + "--omni", + "--t2w-device", + "cpu", + "--t2w-wait-seconds", + "900", + "--ref-audio", + "C:\\Users\\zhout\\w2\\minicpmo_cpp_cpu_prompt\\default_ref_audio.wav", + "--test", + "C:\\Users\\zhout\\w2\\minicpmo_cpp_cpu_prompt\\fixture_", + "2" + ], + "cwd": "C:\\Users\\zhout\\w2\\minicpmo_cpp_cpu_prompt", + "exit_code": 0, + "wall_s": 24.658903300063685, + "memory_sample_interval_ms": 100, + "memory_samples": 244, + "peak_sampled_rss_bytes": 13107912704, + "peak_sampled_private_bytes": 13307936768, + "measurement_note": "sampled process values, not guaranteed loading peaks" +} diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_windows_cpu_prompted/full.stderr.log b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_windows_cpu_prompted/full.stderr.log new file mode 100644 index 000000000..2c8e3dc9f --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_windows_cpu_prompted/full.stderr.log @@ -0,0 +1,330 @@ +build: 64 (5202b7b) with x86_64-w64-mingw32-gcc-posix (GCC) 13-posix for x86_64-w64-mingw32 +llama_model_loader: loaded meta data with 27 key-value pairs and 399 tensors from C:\Users\zhout\w2\models\MiniCPM-o-4_5-gguf\MiniCPM-o-4_5-Q4_K_M.gguf (version GGUF V3 (latest)) +llama_model_loader: Dumping metadata keys/values. Note: KV overrides do not apply in this output. +llama_model_loader: - kv 0: general.architecture str = qwen3 +llama_model_loader: - kv 1: general.type str = model +llama_model_loader: - kv 2: general.name str = Llm +llama_model_loader: - kv 3: general.size_label str = 8.2B +llama_model_loader: - kv 4: qwen3.block_count u32 = 36 +llama_model_loader: - kv 5: qwen3.context_length u32 = 40960 +llama_model_loader: - kv 6: qwen3.embedding_length u32 = 4096 +llama_model_loader: - kv 7: qwen3.feed_forward_length u32 = 12288 +llama_model_loader: - kv 8: qwen3.attention.head_count u32 = 32 +llama_model_loader: - kv 9: qwen3.attention.head_count_kv u32 = 8 +llama_model_loader: - kv 10: qwen3.rope.freq_base f32 = 1000000.000000 +llama_model_loader: - kv 11: qwen3.attention.layer_norm_rms_epsilon f32 = 0.000001 +llama_model_loader: - kv 12: qwen3.attention.key_length u32 = 128 +llama_model_loader: - kv 13: qwen3.attention.value_length u32 = 128 +llama_model_loader: - kv 14: tokenizer.ggml.model str = gpt2 +llama_model_loader: - kv 15: tokenizer.ggml.pre str = qwen2 +llama_model_loader: - kv 16: tokenizer.ggml.tokens arr[str,151748] = ["!", "\"", "#", "$", "%", "&", "'", ... +llama_model_loader: - kv 17: tokenizer.ggml.token_type arr[i32,151748] = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ... +llama_model_loader: - kv 18: tokenizer.ggml.merges arr[str,151387] = ["Ġ Ġ", "ĠĠ ĠĠ", "i n", "Ġ t",... +llama_model_loader: - kv 19: tokenizer.ggml.bos_token_id u32 = 151644 +llama_model_loader: - kv 20: tokenizer.ggml.eos_token_id u32 = 151645 +llama_model_loader: - kv 21: tokenizer.ggml.unknown_token_id u32 = 128244 +llama_model_loader: - kv 22: tokenizer.ggml.padding_token_id u32 = 151643 +llama_model_loader: - kv 23: tokenizer.ggml.add_bos_token bool = false +llama_model_loader: - kv 24: tokenizer.chat_template str = {%- if tools %}\n {{- '<|im_start|>... +llama_model_loader: - kv 25: general.quantization_version u32 = 2 +llama_model_loader: - kv 26: general.file_type u32 = 15 +llama_model_loader: - type f32: 145 tensors +llama_model_loader: - type q4_K: 217 tensors +llama_model_loader: - type q6_K: 37 tensors +print_info: file format = GGUF V3 (latest) +print_info: file type = Q4_K - Medium +print_info: file size = 4.68 GiB (4.90 BPW) +load: printing all EOG tokens: +load: - 151643 ('<|endoftext|>') +load: - 151645 ('<|im_end|>') +load: - 151662 ('<|fim_pad|>') +load: - 151663 ('<|repo_name|>') +load: - 151664 ('<|file_sep|>') +load: special tokens cache size = 106 +load: token to piece cache size = 0.9319 MB +print_info: arch = qwen3 +print_info: vocab_only = 0 +print_info: n_ctx_train = 40960 +print_info: n_embd = 4096 +print_info: n_layer = 36 +print_info: n_head = 32 +print_info: n_head_kv = 8 +print_info: n_rot = 128 +print_info: n_swa = 0 +print_info: is_swa_any = 0 +print_info: n_embd_head_k = 128 +print_info: n_embd_head_v = 128 +print_info: n_gqa = 4 +print_info: n_embd_k_gqa = 1024 +print_info: n_embd_v_gqa = 1024 +print_info: f_norm_eps = 0.0e+00 +print_info: f_norm_rms_eps = 1.0e-06 +print_info: f_clamp_kqv = 0.0e+00 +print_info: f_max_alibi_bias = 0.0e+00 +print_info: f_logit_scale = 0.0e+00 +print_info: f_attn_scale = 0.0e+00 +print_info: n_ff = 12288 +print_info: n_expert = 0 +print_info: n_expert_used = 0 +print_info: causal attn = 1 +print_info: pooling type = -1 +print_info: rope type = 2 +print_info: rope scaling = linear +print_info: freq_base_train = 1000000.0 +print_info: freq_scale_train = 1 +print_info: n_ctx_orig_yarn = 40960 +print_info: rope_finetuned = unknown +print_info: model type = 8B +print_info: model params = 8.19 B +print_info: general.name = Llm +print_info: vocab type = BPE +print_info: n_vocab = 151748 +print_info: n_merges = 151387 +print_info: BOS token = 151644 '<|im_start|>' +print_info: EOS token = 151645 '<|im_end|>' +print_info: EOT token = 151645 '<|im_end|>' +print_info: UNK token = 128244 '' +print_info: PAD token = 151643 '<|endoftext|>' +print_info: LF token = 198 'Ċ' +print_info: FIM PRE token = 151659 '<|fim_prefix|>' +print_info: FIM SUF token = 151661 '<|fim_suffix|>' +print_info: FIM MID token = 151660 '<|fim_middle|>' +print_info: FIM PAD token = 151662 '<|fim_pad|>' +print_info: FIM REP token = 151663 '<|repo_name|>' +print_info: FIM SEP token = 151664 '<|file_sep|>' +print_info: EOG token = 151643 '<|endoftext|>' +print_info: EOG token = 151645 '<|im_end|>' +print_info: EOG token = 151662 '<|fim_pad|>' +print_info: EOG token = 151663 '<|repo_name|>' +print_info: EOG token = 151664 '<|file_sep|>' +print_info: max token length = 256 +load_tensors: loading model tensors, this can take a while... (mmap = true) +load_tensors: CPU_REPACK model buffer size = 3199.50 MiB +load_tensors: CPU_Mapped model buffer size = 4761.17 MiB +..................................................................................... +llama_context: constructing llama_context +llama_context: n_seq_max = 1 +llama_context: n_ctx = 2048 +llama_context: n_ctx_per_seq = 2048 +llama_context: n_batch = 2048 +llama_context: n_ubatch = 512 +llama_context: causal_attn = 1 +llama_context: flash_attn = auto +llama_context: kv_unified = false +llama_context: freq_base = 1000000.0 +llama_context: freq_scale = 1 +llama_context: n_ctx_per_seq (2048) < n_ctx_train (40960) -- the full capacity of the model will not be utilized +llama_context: CPU output buffer size = 0.58 MiB +llama_kv_cache: CPU KV buffer size = 288.00 MiB +llama_kv_cache: size = 288.00 MiB ( 2048 cells, 36 layers, 1/1 seqs), K (f16): 144.00 MiB, V (f16): 144.00 MiB +llama_context: Flash Attention was auto, set to enabled +llama_context: CPU compute buffer size = 304.38 MiB +llama_context: graph nodes = 1267 +llama_context: graph splits = 1 +llama_model_loader: loaded meta data with 30 key-value pairs and 193 tensors from C:\Users\zhout\w2\models\MiniCPM-o-4_5-gguf/tts/MiniCPM-o-4_5-tts-F16.gguf (version GGUF V3 (latest)) +llama_model_loader: Dumping metadata keys/values. Note: KV overrides do not apply in this output. +llama_model_loader: - kv 0: general.architecture str = llama +llama_model_loader: - kv 1: general.type str = model +llama_model_loader: - kv 2: general.name str = Tts +llama_model_loader: - kv 3: general.size_label str = 445M +llama_model_loader: - kv 4: llama.block_count u32 = 20 +llama_model_loader: - kv 5: llama.context_length u32 = 4096 +llama_model_loader: - kv 6: llama.embedding_length u32 = 768 +llama_model_loader: - kv 7: llama.feed_forward_length u32 = 3072 +llama_model_loader: - kv 8: llama.attention.head_count u32 = 12 +llama_model_loader: - kv 9: llama.attention.head_count_kv u32 = 12 +llama_model_loader: - kv 10: llama.rope.freq_base f32 = 10000.000000 +llama_model_loader: - kv 11: llama.attention.layer_norm_rms_epsilon f32 = 0.000001 +llama_model_loader: - kv 12: llama.attention.key_length u32 = 64 +llama_model_loader: - kv 13: llama.attention.value_length u32 = 64 +llama_model_loader: - kv 14: general.file_type u32 = 1 +llama_model_loader: - kv 15: llama.vocab_size u32 = 158626 +llama_model_loader: - kv 16: llama.rope.dimension_count u32 = 64 +llama_model_loader: - kv 17: general.quantization_version u32 = 2 +llama_model_loader: - kv 18: tokenizer.ggml.model str = gpt2 +llama_model_loader: - kv 19: tokenizer.ggml.pre str = qwen2 +llama_model_loader: - kv 20: tokenizer.ggml.tokens arr[str,158626] = ["!", "\"", "#", "$", "%", "&", "'", ... +llama_model_loader: - kv 21: tokenizer.ggml.token_type arr[i32,158626] = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ... +llama_model_loader: - kv 22: tokenizer.ggml.merges arr[str,151387] = ["Ġ Ġ", "ĠĠ ĠĠ", "i n", "Ġ t",... +llama_model_loader: - kv 23: tokenizer.ggml.bos_token_id u32 = 151644 +llama_model_loader: - kv 24: tokenizer.ggml.eos_token_id u32 = 151645 +llama_model_loader: - kv 25: tokenizer.ggml.unknown_token_id u32 = 128244 +llama_model_loader: - kv 26: tokenizer.ggml.padding_token_id u32 = 151643 +llama_model_loader: - kv 27: tokenizer.ggml.add_bos_token bool = false +llama_model_loader: - kv 28: tokenizer.chat_template str = {%- if tools %}\n {{- '<|im_start|>... +llama_model_loader: - kv 29: tokenizer.ggml.add_space_prefix bool = false +llama_model_loader: - type f32: 50 tensors +llama_model_loader: - type f16: 143 tensors +print_info: file format = GGUF V3 (latest) +print_info: file type = F16 +print_info: file size = 1.07 GiB (20.70 BPW) +load: printing all EOG tokens: +load: - 151643 ('<|endoftext|>') +load: - 151645 ('<|im_end|>') +load: - 151662 ('<|fim_pad|>') +load: - 151663 ('<|repo_name|>') +load: - 151664 ('<|file_sep|>') +load: special tokens cache size = 106 +load: token to piece cache size = 0.9319 MB +print_info: arch = llama +print_info: vocab_only = 0 +print_info: n_ctx_train = 4096 +print_info: n_embd = 768 +print_info: n_layer = 20 +print_info: n_head = 12 +print_info: n_head_kv = 12 +print_info: n_rot = 64 +print_info: n_swa = 0 +print_info: is_swa_any = 0 +print_info: n_embd_head_k = 64 +print_info: n_embd_head_v = 64 +print_info: n_gqa = 1 +print_info: n_embd_k_gqa = 768 +print_info: n_embd_v_gqa = 768 +print_info: f_norm_eps = 0.0e+00 +print_info: f_norm_rms_eps = 1.0e-06 +print_info: f_clamp_kqv = 0.0e+00 +print_info: f_max_alibi_bias = 0.0e+00 +print_info: f_logit_scale = 0.0e+00 +print_info: f_attn_scale = 0.0e+00 +print_info: n_ff = 3072 +print_info: n_expert = 0 +print_info: n_expert_used = 0 +print_info: causal attn = 1 +print_info: pooling type = 0 +print_info: rope type = 0 +print_info: rope scaling = linear +print_info: freq_base_train = 10000.0 +print_info: freq_scale_train = 1 +print_info: n_ctx_orig_yarn = 4096 +print_info: rope_finetuned = unknown +print_info: model type = ?B +print_info: model params = 444.94 M +print_info: general.name = Tts +print_info: vocab type = BPE +print_info: n_vocab = 158626 +print_info: n_merges = 151387 +print_info: BOS token = 151644 '<|im_start|>' +print_info: EOS token = 151645 '<|im_end|>' +print_info: EOT token = 151645 '<|im_end|>' +print_info: UNK token = 128244 '' +print_info: PAD token = 151643 '<|endoftext|>' +print_info: LF token = 198 'Ċ' +print_info: FIM PRE token = 151659 '<|fim_prefix|>' +print_info: FIM SUF token = 151661 '<|fim_suffix|>' +print_info: FIM MID token = 151660 '<|fim_middle|>' +print_info: FIM PAD token = 151662 '<|fim_pad|>' +print_info: FIM REP token = 151663 '<|repo_name|>' +print_info: FIM SEP token = 151664 '<|file_sep|>' +print_info: EOG token = 151643 '<|endoftext|>' +print_info: EOG token = 151645 '<|im_end|>' +print_info: EOG token = 151662 '<|fim_pad|>' +print_info: EOG token = 151663 '<|repo_name|>' +print_info: EOG token = 151664 '<|file_sep|>' +print_info: max token length = 256 +load_tensors: loading model tensors, this can take a while... (mmap = true) +load_tensors: skipping TTS tensor emb_code.0.weight (size = 20158464 bytes) -- will be loaded separately +load_tensors: skipping TTS tensor emb_text.weight (size = 467140608 bytes) -- will be loaded separately +load_tensors: skipping TTS tensor projector_semantic.linear1.weight (size = 12582912 bytes) -- will be loaded separately +load_tensors: skipping TTS tensor projector_semantic.linear1.bias (size = 3072 bytes) -- will be loaded separately +load_tensors: skipping TTS tensor projector_semantic.linear2.weight (size = 2359296 bytes) -- will be loaded separately +load_tensors: skipping TTS tensor projector_semantic.linear2.bias (size = 3072 bytes) -- will be loaded separately +load_tensors: skipping TTS tensor projector_spk.linear1.weight (size = 6291456 bytes) -- will be loaded separately +load_tensors: skipping TTS tensor projector_spk.linear1.bias (size = 3072 bytes) -- will be loaded separately +load_tensors: skipping TTS tensor projector_spk.linear2.weight (size = 1179648 bytes) -- will be loaded separately +load_tensors: skipping TTS tensor projector_spk.linear2.bias (size = 3072 bytes) -- will be loaded separately +load_tensors: skipping TTS tensor head_code.0.weight (size = 20158464 bytes) -- will be loaded separately +load_tensors: CPU_Mapped model buffer size = 592.48 MiB +.............................................................. +llama_init_from_model: model default pooling_type is [0], but [-1] was specified +llama_context: constructing llama_context +llama_context: n_seq_max = 1 +llama_context: n_ctx = 2048 +llama_context: n_ctx_per_seq = 2048 +llama_context: n_batch = 2048 +llama_context: n_ubatch = 512 +llama_context: causal_attn = 1 +llama_context: flash_attn = auto +llama_context: kv_unified = false +llama_context: freq_base = 10000.0 +llama_context: freq_scale = 1 +llama_context: n_ctx_per_seq (2048) < n_ctx_train (4096) -- the full capacity of the model will not be utilized +llama_context: CPU output buffer size = 0.61 MiB +llama_kv_cache: CPU KV buffer size = 120.00 MiB +llama_kv_cache: size = 120.00 MiB ( 2048 cells, 20 layers, 1/1 seqs), K (f16): 60.00 MiB, V (f16): 60.00 MiB +llama_context: Flash Attention was auto, set to enabled +llama_context: CPU compute buffer size = 25.51 MiB +llama_context: graph nodes = 613 +llama_context: graph splits = 1 +vision_model_loader: model name: +vision_model_loader: description: image encoder for MiniCPM-V +vision_model_loader: GGUF version: 3 +vision_model_loader: alignment: 32 +vision_model_loader: n_tensors: 455 +vision_model_loader: n_kv: 20 + +vision_ctx: vision using CPU backend +load_hparams: model_type: 0 +load_hparams: n_embd: 1152 +load_hparams: n_head: 16 +load_hparams: n_ff: 4304 +load_hparams: n_layer: 27 +load_hparams: ffn_op: gelu +load_hparams: projection_dim: 0 + +--- vision hparams --- +load_hparams: image_size: 448 +load_hparams: patch_size: 14 +load_hparams: minicpmv_version: 100045 +load_hparams: proj_scale_factor: 0 +load_hparams: n_wa_pattern: 0 + +load_hparams: model size: 1044.36 MiB +load_hparams: metadata size: 0.16 MiB +load_tensors: ffn up/down are swapped +alloc_compute_meta: CPU compute buffer size = 100.30 MiB +init tts....init t2w....voc_hg2_model: CPU backend using 8 threads +audition_audio_preprocess: Decoded audio - sample_rate=16000, n_samples=32000 +audition_get_mel_filters: Retrieved mel filters from model: 80 mel bins x 201 fft bins +audition_audio_preprocess: Using mel filters - n_mel=80, n_fft=201 +audition_audio_preprocess: Generated 1 mel spectrogram chunk(s) +audition_audio_preprocess: Mel spectrogram ready - n_len=200, n_mel=80, total_size=16000 +build_whisper: Whisper encoder graph built (projector output, pre-pooling) +audition_audio_batch_encode: Audio input data - n_step=200, n_mel=80, total_elements=16000 +audition_audio_batch_encode: Before incrementing iter: input_frames=200, n_tokens=100, current_iter=0, current_total=0, new_total=100, max_tokens=1500 +audition_audio_batch_encode: KV cache iter incremented to 1 (total_tokens=100, max_tokens=1500) +audition_audio_batch_encode: Final output shape: [4096, 20] +audition_audio_batch_encode: Final output: 20 tokens x 4096 dims +encode_image_with_vision_chunks: step 1 of 1 encoded in 3046.44 ms +encode_image_with_vision_chunks: all 1 chunks encoded in 3066.00 ms (grid: 1x1) + +encode_image_with_vision_chunks: image encoded in 3066.01 ms by vision ( 3066.01 ms per chunk, 64 total tokens) +omni_image_embed_make_chunks_with_filename: created 1 vision chunks from C:\Users\zhout\w2\minicpmo_cpp_cpu_prompt\fixture_0001.jpg +stream_prefill: prefilled 1 vision chunks (64 tokens each) +audition_audio_preprocess: Decoded audio - sample_rate=16000, n_samples=49339 +audition_audio_preprocess: Audio not aligned to 100ms (49339 samples = 3083.7ms), padded with silence to 49600 samples (3100ms) +audition_get_mel_filters: Retrieved mel filters from model: 80 mel bins x 201 fft bins +audition_audio_preprocess: Using mel filters - n_mel=80, n_fft=201 +audition_audio_preprocess: Generated 1 mel spectrogram chunk(s) +audition_audio_preprocess: Mel spectrogram ready - n_len=310, n_mel=80, total_size=24800 +build_whisper: Whisper encoder graph built (projector output, pre-pooling) +audition_audio_batch_encode: Audio input data - n_step=310, n_mel=80, total_elements=24800 +audition_audio_batch_encode: Before incrementing iter: input_frames=310, n_tokens=155, current_iter=1, current_total=155, new_total=310, max_tokens=1500 +audition_audio_batch_encode: KV cache iter incremented to 2 (total_tokens=310, max_tokens=1500) +audition_audio_batch_encode: Final output shape: [4096, 31] +audition_audio_batch_encode: Final output: 31 tokens x 4096 dims + +Waiting for audio generation to complete... +TTS: chunk file ./tools/omni/output/round_000/tts_wav/tts_output_chunk_0.wav does not exist or is empty +TTS: chunk file ./tools/omni/output/round_000/tts_wav/tts_output_chunk_1.wav does not exist or is empty +TTS: no valid WAV files to merge +[timing] call=0 tokens=28 final=0 token2mel=2024.909ms vocoder=337.377ms total=2362.293ms audio=20160 +[timing] call=1 tokens=28 final=0 token2mel=1814.472ms vocoder=380.862ms total=2195.345ms audio=24000 +[timing] call=2 tokens=8 final=1 token2mel=1850.567ms vocoder=178.954ms total=2029.537ms audio=11520 +Audio generation completed. +llama_perf_context_print: load time = 13458.13 ms +llama_perf_context_print: prompt eval time = 11915.90 ms / 182 tokens ( 65.47 ms per token, 15.27 tokens per second) +llama_perf_context_print: eval time = 804.79 ms / 9 runs ( 89.42 ms per token, 11.18 tokens per second) +llama_perf_context_print: total time = 21425.86 ms / 191 tokens +llama_perf_context_print: graphs reused = 10 +Token2Wav (C++): session released diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_windows_cpu_prompted/full.stdout.log b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_windows_cpu_prompted/full.stdout.log new file mode 100644 index 000000000..094fe4e47 --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_windows_cpu_prompted/full.stdout.log @@ -0,0 +1,139 @@ +=== Model Paths === + Base dir: C:\Users\zhout\w2\models\MiniCPM-o-4_5-gguf + LLM: C:\Users\zhout\w2\models\MiniCPM-o-4_5-gguf\MiniCPM-o-4_5-Q4_K_M.gguf [OK] + Vision: C:\Users\zhout\w2\models\MiniCPM-o-4_5-gguf/vision/MiniCPM-o-4_5-vision-F16.gguf [OK] + Audio: C:\Users\zhout\w2\models\MiniCPM-o-4_5-gguf/audio/MiniCPM-o-4_5-audio-F16.gguf [OK] + TTS: C:\Users\zhout\w2\models\MiniCPM-o-4_5-gguf/tts/MiniCPM-o-4_5-tts-F16.gguf [OK] + Projector: C:\Users\zhout\w2\models\MiniCPM-o-4_5-gguf/tts/MiniCPM-o-4_5-projector-F16.gguf [OK] +=================== +=== Initializing Omni Context === + Media type: 2 (omni: audio+vision) + TTS enabled: yes + Context size: 2048 + GPU layers: 0 + Token2Wav device: cpu + Vision backend: metal + TTS bin dir: C:\Users\zhout\w2\models\MiniCPM-o-4_5-gguf/tts + Ref audio: C:\Users\zhout\w2\minicpmo_cpp_cpu_prompt\default_ref_audio.wav +22:34:45.743 === omni_init start +22:34:45.743 media_type = 2, duplex_mode = 0, base_output_dir = ./tools/omni/output +22:34:45.743 === omni_init: loading new LLM model +22:34:47.963 === omni_init: loading TTS model +22:34:47.963 TTS model: loading with n_gpu_layers=0 +22:34:48.244 TTS sampler: temp=0.80, top_p=0.85, top_k=25, rep_penalty=1.05 +22:34:48.244 TTS: loading weights from GGUF (emb_code, emb_text, projector_semantic, head_code)... +22:34:48.600 TTS: head_code shape: dim0=6562, dim1=768, will transpose to [6562, 768] +22:34:48.606 TTS: head_code loaded, verifying first few values: +22:34:48.606 head_code_weight[0] = 0.01361084 (expect ~0.01385498) +22:34:48.606 head_code_weight[1] = -0.01660156 (expect ~-0.01647949) +22:34:48.606 head_code_weight[768] = 0.04101562 (this is weight[1, 0], expect ~0.04150391) +22:34:48.635 TTS: weights loaded successfully +22:34:48.635 Projector: loading from C:\Users\zhout\w2\models\MiniCPM-o-4_5-gguf/tts/MiniCPM-o-4_5-projector-F16.gguf +22:34:48.641 Projector: loaded successfully +22:34:48.641 === omni_init: loading APM model +22:34:48.837 APM: init from C:\Users\zhout\w2\models\MiniCPM-o-4_5-gguf/audio/MiniCPM-o-4_5-audio-F16.gguf +22:34:49.186 Token2Wav: found models in C:\Users\zhout\w2\models\MiniCPM-o-4_5-gguf/token2wav-gguf +22:34:49.186 Token2Wav: all model files found, initializing session... +22:34:49.186 Token2Wav: non-CUDA backend, vocoder using CPU for better performance +22:34:49.186 Token2Wav: using prompt_cache from C:\Users\zhout\w2\models\MiniCPM-o-4_5-gguf/token2wav-gguf/prompt_cache.gguf +22:34:49.505 Token2Wav: initialized successfully +22:34:49.505 Python T2W: script_dir=./tools/omni/pyt2w, model_dir=./tools/omni/pyt2w/token2wav +22:34:49.506 Token2Wav: 使用 C++ 实现 +22:34:49.506 === omni_init success: ctx_llama = 000001c37e89ec40 +=== Running test case === + Audio prefix: C:\Users\zhout\w2\minicpmo_cpp_cpu_prompt\fixture_ + Count: 2 +22:34:49.506 stream_prefill: n_past = 0 + voice_clone_prompt = <|im_start|>system +模仿音频样本的音色并生成新的内容。 +<|audio_start|> + assistant_prompt = <|audio_end|>你的任务是用这种声音模式来当一个助手。请认真、高质量地回复用户的问题。请用高自然度的方式和用户聊天。<|im_end|> +<|im_start|>user + +22:34:49.506 system prompt ref_audio: C:\Users\zhout\w2\minicpmo_cpp_cpu_prompt\fixture_0000.wav +22:34:50.534 system prompt ref_audio embedding: n_pos=20 +22:34:52.926 🔒 n_keep 设置为 72 (system prompt tokens),这部分永远不会被滑动窗口删除 +22:34:52.926 stream_prefill(index=0): system prompt 初始化完成,ref_audio 已在其中 prefill +22:34:52.926 [SW] system_prompt registered: preserve_length=72 (will be protected from sliding) +22:34:52.926 n_past = 72 +22:34:52.926 + +c++ finish stream_prefill(index=0). n_past=72, n_keep=72, n_ctx=2048 + +prefill 0 (audio) : 3.4203 s +22:34:58.976 stream_prefill(index=1): processing user audio: C:\Users\zhout\w2\minicpmo_cpp_cpu_prompt\fixture_0001.wav +22:34:59.268 stream_prefill(index=1): user audio embedding: n_pos=31 +22:35:00.901 + +c++ finish stream_prefill(index=1). n_past=172, n_keep=72, n_ctx=2048 + +prefill 1 (audio+vision) : 7.97498 s +22:35:00.901 📍 stream_decode 开始: n_past=172, n_keep=72, n_ctx=2048, duplex_mode=0 +22:35:00.902 stream_decode: create tts thread (simplex mode) +22:35:00.902 stream_decode: create t2w thread +22:35:00.902 wait prefill done +22:35:00.902 📍 [单工TTS] 添加 assistant prompt: "<|im_end|> +<|im_start|>assistant + + + + +<|tts_bos|>", n_past=172 +22:35:00.902 T2W thread (C++) started +22:35:00.906 TTS: 创建单工模式输出目录: ./tools/omni/output/round_000 +22:35:00.906 TTS thread started +22:35:01.422 📍 [单工TTS] assistant prompt 完成, n_past=182 +22:35:01.422 LLM decode: max_tgt_len = 2048, n_predict = -1, n_ctx = 2048 +22:35:02.229 LLM: detected end token, set llm_generation_done=true +22:35:02.229 LLM->TTS: text='The square in the image is red.', n_tokens=8, hidden_size=32768, n_embd=4096, token_ids=[785 9334 304 279 2168 374 2518 13] +22:35:02.229 📍 Decode 结束: n_past=191, 剩余空间=1857, 无需滑窗 +22:35:02.229 📍 轮次 1 结束,记录边界于 n_past=191 +22:35:02.229 TTS<-LLM: chunk_idx=0, text='The square in the image is red.', n_tokens=8, hidden_size=32768, token_ids=[785 9334 304 279 2168 374 2518 13] +22:35:02.229 TTS: after queue pop - speek_done=0, llm_finish=1, llm_text.empty=0, token_ids.size=8 +22:35:02.229 TTS: before empty check - response.empty=0, response='The square in the image is red.', llm_finish=1 +22:35:02.229 TTS: DEBUG before has_llm_data - token_ids.size=8, hidden_states.size=32768, n_embd=4096 +22:35:02.229 TTS: has_llm_data=1, token_ids=8, hidden_states=32768, n_embd=4096, llm_finish=1 +22:35:02.230 TTS: n_tokens_orig=8, n_tokens_filtered=8 (filtered 0 special tokens) +22:35:02.278 TTS: saved merged embeddings (text) to ./tools/omni/output/round_000/llm_debug/chunk_0/merged_embeddings.txt +22:35:02.278 TTS Simplex: generating audio tokens for chunk 0 (n_tokens=8, tts_n_embd=768) +22:35:02.278 TTS Simplex: 在 prefill 前添加 audio_bos (chunk_idx=0, new_size=9) +22:35:02.278 TTS Simplex: first chunk - cleared KV cache +22:35:02.278 TTS Simplex: first chunk - cleared tts_all_generated_tokens and tts_token_buffer +22:35:02.380 TTS Simplex: prefill completed, n_past_tts=9 +22:35:02.380 TTS Simplex: sampler created +22:35:02.380 TTS simplex: is_audio_bos=true (first audio token) +22:35:02.410 TTS Simplex Phase1: token 1/500: rel_id=1487 +22:35:02.423 TTS Simplex Phase1: token 2/500: rel_id=4218 +22:35:02.436 TTS Simplex Phase1: token 3/500: rel_id=4137 +22:35:02.448 TTS Simplex Phase1: token 4/500: rel_id=4137 +22:35:02.460 TTS Simplex Phase1: token 5/500: rel_id=4218 +22:35:02.570 📍 为下一轮准备: eval <|im_end|>\n<|im_start|>user\n, n_past=196 +22:35:02.695 TTS Simplex Phase1: yield 25 tokens 到 T2W (step 25, buffer=25) +22:35:22:35:02.695 T2W线程(C++): 轮次切换 (-1 -> 0),更新输出目录 +02.695 TTS Simplex Phase1: token 25/500: rel_id=2753 +22:35:02.695 T2W线程(C++): 新输出目录 ./tools/omni/output/round_000/tts_wav +22:35:02.826 TTS Simplex Phase1: EOS token at step 38 +22:35:02.826 TTS Simplex: is_final_text_chunk=true, will enter Phase 2 for text_eos_embed +22:35:02.826 TTS Simplex Phase2: injecting text_eos_embed + audio_bos at n_past=46 +22:35:02.834 TTS Simplex Phase2: text_eos_embed injected, n_past=47 +22:35:02.842 TTS Simplex Phase2: audio_bos injected, n_past=48, starting final generation +22:35:02.979 TTS Simplex Phase2: yield 25 tokens 到 T2W +22:35:03.042 TTS Simplex Phase2: EOS at step 19 (final end) +22:35:03.042 TTS Simplex: chunk 结束,tts_token_buffer 剩余 5 tokens (保留等下一个 chunk) +22:35:03.042 TTS Simplex: is_final_text_chunk=true, flush 剩余 5 tokens 从 tts_token_buffer +22:35:03.042 TTS Simplex: generated 55 audio tokens for chunk 0 +22:35:03.042 TTS Simplex: chunk 0 first tokens: [1487 4218 4137 4137 4218 ], last tokens: [1707 4218 4218 4218 4137 ] +22:35:03.042 TTS Simplex: updated tts_n_past_accumulated=67, total_generated_tokens=55 +22:35:03.044 TTS: finished processing all chunks +22:35:03.044 TTS: 单工模式轮次结束,下一轮 round_idx=1 +22:35:03.044 TTS: sent is_final=true to T2W queue (turn end) +22:35:05.068 🎉 首响时间 (First Audio Response): 4166ms +22:35:05.068 T2W线程: wav_0.wav | 0.84s audio | 2362.3ms inference | RTF=2.81 | t=4166ms +22:35:07.264 T2W线程: wav_1.wav | 1.00s audio | 2195.4ms inference | RTF=2.20 | t=6362ms +22:35:09.294 T2W线程: wav_2.wav | 0.48s audio | 2029.6ms inference | RTF=4.23 | t=8392ms +22:35:09.295 T2W线程: 写入结束标记 ./tools/omni/output/round_000/tts_wav/generation_done.flag (last_wav=2) +22:35:09.295 T2W线程: 轮次结束后更新输出目录为 ./tools/omni/output/round_001/tts_wav +22:22:35:35:09.09390 .T2W(C++) 线程: 停止 +390 omni_stop_threads: stop signals sent +tts thread end +t2w thread end diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_windows_cpu_prompted/full_merged.wav b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_windows_cpu_prompted/full_merged.wav new file mode 100644 index 000000000..aea33974b Binary files /dev/null and b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_windows_cpu_prompted/full_merged.wav differ diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_windows_cpu_prompted/full_report.json b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_windows_cpu_prompted/full_report.json new file mode 100644 index 000000000..d18a7b8a1 --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_windows_cpu_prompted/full_report.json @@ -0,0 +1,107 @@ +{ + "scope": "standalone MiniCPM-o 4.5 GGUF audio+image input to text+speech on native-Windows-11-HX370-CPU", + "status": "scoped_complete_path_pass", + "expected_placement": "cpu", + "quality": "synthetic red-square/tone response not established as semantically correct", + "model_revision": "db25077c33951fe163b42986fba0132e279872a2", + "artifacts": { + "MiniCPM-o-4_5-Q4_K_M.gguf": { + "bytes": 5026714400, + "sha256": "1237a97ee081b8abebc47aa7dad565701e8f5f904cdc92f6723ac4281bbc0932" + }, + "audio/MiniCPM-o-4_5-audio-F16.gguf": { + "bytes": 660167904, + "sha256": "d5b188ac7feaf98e17175c3f9bd14bf269301bfd187439fdaa3e3a494fc32ef7" + }, + "vision/MiniCPM-o-4_5-vision-F16.gguf": { + "bytes": 1095113184, + "sha256": "1453678cc4e4fe18de241952962e234f265cb8dda780773526103ab8ba82f421" + }, + "tts/MiniCPM-o-4_5-tts-F16.gguf": { + "bytes": 1157244416, + "sha256": "c7be3748a863dd6966ae7eed42600b7f41ca67affb03729ff245247f0e5ea088" + }, + "tts/MiniCPM-o-4_5-projector-F16.gguf": { + "bytes": 14948640, + "sha256": "4b1b5b377358a5e594a304ff6ea5d52df606a9ba7d886c4299d232f0c67dd1fd" + }, + "token2wav-gguf/encoder.gguf": { + "bytes": 151339008, + "sha256": "7f8d265da594eaf5e1de2db8f5f1867dbcb0bb75ef5878fadf2952347116f4d0" + }, + "token2wav-gguf/flow_matching.gguf": { + "bytes": 458250240, + "sha256": "eda6069f3edeb5dd3a87fbf2aedb2ddd1b46f3273926c4fcf09b24476a39cab8" + }, + "token2wav-gguf/flow_extra.gguf": { + "bytes": 13663328, + "sha256": "c67611aa7d02500fe395a7798bf0bfdfb55c74d37ba93934ca74d82b4e63f78d" + }, + "token2wav-gguf/hifigan2.gguf": { + "bytes": 83242816, + "sha256": "1b8b3bf5d8d3066aeee4324fdcdd41aefce170d0ee907645858de408d82835c2" + }, + "token2wav-gguf/prompt_cache.gguf": { + "bytes": 211613152, + "sha256": "81fe6f541ebe0b67db06a1e395df928da47991dc9637c2cf47d6c59d5b979f2c" + } + }, + "runtime_binary_sha256": "55eb866533dabe7e09ceba2c9174060b950b35a214f231e6908c55dce5ed78e8", + "input_image_sha256": "22c7ccea466a3f551c512045e6316c7597408d4e0a20205502f55784d977aa8d", + "input_audio_sha256": "14ee147cbf2ce9afd9e32c8c8228d7cfe11985cd7e63456b2ad33871492aefcc", + "response_text": "The square in the image is red.", + "audio_chunks": [ + { + "name": "wav_0.wav", + "frames": 20160, + "sha256": "2812ea0d95d10c7184d281a647e7224ba5bde33b9473d61c442dd102e4363dd4" + }, + { + "name": "wav_1.wav", + "frames": 24000, + "sha256": "ab883970fcd3c4aa21d4fd162a5a6872d9c464acb3cea1bbb38458d643399b00" + }, + { + "name": "wav_2.wav", + "frames": 11520, + "sha256": "2b08ae682bc38ade63cb4deb469dd906a9532f1579e507bc1cfcdc0a15150aea" + } + ], + "audio_frames": 55680, + "audio_duration_s": 2.32, + "audio_rms_pcm16": 2182.9840220727683, + "pcm_sha256": "8de1b8306907577948b85131e5af2296bd276da4427c5f7559d91790eb8fb837", + "merged_wav_sha256": "8ed51412beaf2291cc13e566f9f35dea9e5d817c655135c698d7275f62b0228b", + "peak_rss_kib_from_time": null, + "wall_clock_from_time": null, + "sampled_process_profile": { + "command": [ + "C:\\Users\\zhout\\w2\\minicpmo_cpp_cpu_prompt\\llama-omni-cli.exe", + "-m", + "C:\\Users\\zhout\\w2\\models\\MiniCPM-o-4_5-gguf\\MiniCPM-o-4_5-Q4_K_M.gguf", + "-ngl", + "0", + "-c", + "2048", + "--omni", + "--t2w-device", + "cpu", + "--t2w-wait-seconds", + "900", + "--ref-audio", + "C:\\Users\\zhout\\w2\\minicpmo_cpp_cpu_prompt\\default_ref_audio.wav", + "--test", + "C:\\Users\\zhout\\w2\\minicpmo_cpp_cpu_prompt\\fixture_", + "2" + ], + "cwd": "C:\\Users\\zhout\\w2\\minicpmo_cpp_cpu_prompt", + "exit_code": 0, + "wall_s": 24.658903300063685, + "memory_sample_interval_ms": 100, + "memory_samples": 244, + "peak_sampled_rss_bytes": 13107912704, + "peak_sampled_private_bytes": 13307936768, + "measurement_note": "sampled process values, not guaranteed loading peaks" + }, + "upstream_merge_name_mismatch": true +} diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_windows_cpu_prompted/output_asr.json b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_windows_cpu_prompted/output_asr.json new file mode 100644 index 000000000..c4981d5a9 --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_windows_cpu_prompted/output_asr.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": "8ed51412beaf2291cc13e566f9f35dea9e5d817c655135c698d7275f62b0228b", + "input_sample_rate": 24000, + "input_duration_s": 2.32, + "reference_text": "The square in the image is red.", + "transcript": "The square in the image is red.", + "word_error_rate": 0.0, + "asr_load_s": 0.749306199955754, + "asr_inference_s": 0.9661948999855667 +} diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_windows_cpu_prompted/output_asr.log b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_windows_cpu_prompted/output_asr.log new file mode 100644 index 000000000..9bcffeda3 --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_windows_cpu_prompted/output_asr.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": "8ed51412beaf2291cc13e566f9f35dea9e5d817c655135c698d7275f62b0228b", + "input_sample_rate": 24000, + "input_duration_s": 2.32, + "reference_text": "The square in the image is red.", + "transcript": "The square in the image is red.", + "word_error_rate": 0.0, + "asr_load_s": 0.749306199955754, + "asr_inference_s": 0.9661948999855667 +} diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_windows_cpu_prompted/round_000/llm_debug/chunk_0/llm_text.txt b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_windows_cpu_prompted/round_000/llm_debug/chunk_0/llm_text.txt new file mode 100644 index 000000000..a42002cc4 --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_windows_cpu_prompted/round_000/llm_debug/chunk_0/llm_text.txt @@ -0,0 +1 @@ +The square in the image is red. \ No newline at end of file diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_windows_cpu_prompted/round_000/tts_wav/audio_tokens_chunk_0.bin b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_windows_cpu_prompted/round_000/tts_wav/audio_tokens_chunk_0.bin new file mode 100644 index 000000000..8cc8593c9 Binary files /dev/null and b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_windows_cpu_prompted/round_000/tts_wav/audio_tokens_chunk_0.bin differ diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_windows_cpu_prompted/round_000/tts_wav/audio_tokens_chunk_0.txt b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_windows_cpu_prompted/round_000/tts_wav/audio_tokens_chunk_0.txt new file mode 100644 index 000000000..9bd1c8270 --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_windows_cpu_prompted/round_000/tts_wav/audio_tokens_chunk_0.txt @@ -0,0 +1 @@ +1487,4218,4137,4137,4218,2112,2004,2989,65,5401,6454,3618,573,672,1457,194,440,926,6050,6058,5336,4387,6180,2209,2753,1276,1034,2303,1638,4311,2393,4578,957,4758,879,1763,4442,4923,1845,2182,4369,6050,5270,2195,737,32,885,73,4380,2922,1707,4218,4218,4218,4137 diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_windows_cpu_prompted/round_000/tts_wav/generation_done.flag b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_windows_cpu_prompted/round_000/tts_wav/generation_done.flag new file mode 100644 index 000000000..0cfbf0888 --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_windows_cpu_prompted/round_000/tts_wav/generation_done.flag @@ -0,0 +1 @@ +2 diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_windows_cpu_prompted/round_000/tts_wav/wav_0.wav b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_windows_cpu_prompted/round_000/tts_wav/wav_0.wav new file mode 100644 index 000000000..f38c6d9e8 Binary files /dev/null and b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_windows_cpu_prompted/round_000/tts_wav/wav_0.wav differ diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_windows_cpu_prompted/round_000/tts_wav/wav_1.wav b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_windows_cpu_prompted/round_000/tts_wav/wav_1.wav new file mode 100644 index 000000000..70016b2d7 Binary files /dev/null and b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_windows_cpu_prompted/round_000/tts_wav/wav_1.wav differ diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_windows_cpu_prompted/round_000/tts_wav/wav_2.wav b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_windows_cpu_prompted/round_000/tts_wav/wav_2.wav new file mode 100644 index 000000000..9b75d69d9 Binary files /dev/null and b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_windows_cpu_prompted/round_000/tts_wav/wav_2.wav differ diff --git a/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_windows_cpu_prompted/round_000/tts_wav/wav_timing.txt b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_windows_cpu_prompted/round_000/tts_wav/wav_timing.txt new file mode 100644 index 000000000..478e4b1af --- /dev/null +++ b/benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_windows_cpu_prompted/round_000/tts_wav/wav_timing.txt @@ -0,0 +1,3 @@ +# WAV file generation timing log +# Format: chunk_index, elapsed_time_ms (since stream_decode start), file_size_bytes, request_duration_ms +# Time 0 is when stream_decode() function starts 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 c1093e105..74642b3e0 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 and a bounded Omni whole-session stage on native Windows CPU and Radeon 890M, native Windows CPU Qwen3-TTS text-to-WAV profiles through both standalone PyTorch and a bounded Omni whole-session stage, and a hybrid CPU+Radeon 890M Qwen3-TTS profile likewise repeated through a bounded Omni whole-session stage. A separate pinned GGUF MiniCPM-o run adds one combined synthetic image+audio to text+speech path on WSL CPU and native Windows CPU; the latter is a standalone C++ route, not an Omni stage. Profiling completion does not imply full release qualification. +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 and a bounded Omni whole-session stage on native Windows CPU and Radeon 890M, native Windows CPU Qwen3-TTS text-to-WAV profiles through both standalone PyTorch and a bounded Omni whole-session stage, and a hybrid CPU+Radeon 890M Qwen3-TTS profile likewise repeated through a bounded Omni whole-session stage. A separate pinned GGUF MiniCPM-o route adds combined image+audio to text+speech runs on WSL CPU, native Windows CPU and native Windows Radeon 890M+CPU. On the latter two, the same spoken visual question was answered correctly with identical language token IDs. Those C++ routes are standalone, outside Omni. Profiling completion does not imply full release qualification. ## 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: Omni Spark text | scoped E2E: Omni CPU text → complete WAV | NOT E2E | scoped E2E: standalone GGUF image+audio → text+speech | 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: Omni Spark text | scoped E2E: Omni Radeon talker/codec + CPU predictor | NOT E2E | NOT E2E | NOT E2E | +| PC HX370 + Radeon 890M / Windows worker | scoped E2E: Omni Spark text | scoped E2E: Omni Radeon talker/codec + CPU predictor | NOT E2E | scoped E2E: standalone Radeon+CPU image+audio → text+speech | 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 | @@ -33,7 +33,7 @@ NOT E2E means no complete device/model workload was verified. “Scoped E2E” i | PC HX370: CPU / native Windows | Spark-X2.5 | SCOPED_E2E_OMNI_COMPLETE_REQUEST | The pinned Spark-X2.5-1.7B Q4_K_M GGUF ran in native Windows llama.cpp CPU (`-dev none -ngl 0`) as a whole-session Omni StageRuntime/StagePool backend. `Paris` and the correct `1511` inventory answer passed; one warmup plus 20 serial complete requests were 20/20 correct, nearest-rank wall p50/p95 6.93/7.05 s. The public AsyncOmni short request passed. The stage verifies artifact hashes and CPU placement (0/29 layers offloaded), reserves 4 GiB host RAM, emits a terminal text event and releases reservation after in-flight cancellation. The separate prior standalone profile was 6.65/6.86 s. No vLLM CPU attention repair, incremental stream, restart-after-cancel, loading peak or sustained power/thermal gate is claimed. | Validate broader text/token quality, streaming and cancellation recovery, memory peak and sustained load; [Omni raw evidence](../../../e2e_expansion_20260923/evidence/spark_omni_llamacpp/README.md), [standalone evidence](../../../e2e_expansion_20260923/evidence/spark_radeon890m_llamacpp/README.md). | | PC HX370: CPU / native Windows | Qwen3-TTS 0.6B CustomVoice | SCOPED_E2E_OMNI_COMPLETE_REQUEST | The pinned 0.6B CustomVoice BF16/SDPA checkpoint ran wholly on CPU through an isolated Qwen wrapper worker owned by one bounded Omni StageRuntime stage. Two named 24 kHz WAVs matched the earlier standalone PCM SHA256 values exactly. One warmup + 20 serial complete Omni requests for 4.56 s of audio had 20/20 identical PCM and nearest-rank wall p50/p95 15.32/15.60 s (RTF 3.36/3.42); independent Whisper tiny.en ASR gave WER 0.20 on the first Omni WAV, an intelligibility proxy only. A public AsyncOmni audio request passed. The stage verified pinned weights/interpreter and CPU placement, reserved 10 GiB host RAM, rejected an insufficient 4 GiB demand before worker launch, and after in-flight cancellation emitted no stale output and returned the ledger to zero. Sampled process-tree private memory peaked at 5.39 GB, not a loading peak. Native vLLM CPU attention operators remain absent; playable streaming, post-cancel restart, broader speech quality, loading peak and sustained power/thermal behavior remain unverified. | Validate playable streaming and restart/recovery, broader voice quality, peak memory, concurrency and sustained behavior; [Omni raw evidence](../../../e2e_expansion_20260923/evidence/qwen_tts_omni_cpu/README.md), [standalone baseline](../../../e2e_expansion_20260923/evidence/qwen_tts_native_cpu/README.md). | | PC HX370: CPU / native Windows | Qwen3.8-27B | NOT_E2E_PROFILEABLE | The installed native Windows vLLM extension lacks cpu_attn_reshape_and_cache and cpu_attn_get_scheduler_metadata. The separate ORT CPU graph worker is not a whole-model text/TTS adapter; a qualified CPU build/binding is missing. | Supply and validate the missing matching artifact/backend, then run the complete specified workload. | -| PC HX370: CPU / native Windows | MiniCPM-o 4.5 | SCOPED_E2E_STANDALONE_COMPLETE_PATH | The pinned Q4_K_M language and F16 vision/audio/TTS/Token2Wav GGUF set completed **one combined synthetic image+tone → text+speech** request through a native Windows x86-64-v3 CPU C++ CLI. The verifier found actual index-1 image and audio prefill, nonempty text, a completion marker, and 50 contiguous nonzero 24 kHz WAV chunks (49.16 s audio). One cold process took 137.34 s; sampled RSS/private-byte maxima were 13.10/13.31 GB. The first generic cross-build exited 0 after 615.19 s with only 15 chunks and no completion marker; the CLI wait was patched to be bounded and to fail on timeout. The final text was not grounded in the red square/tone, and the test supplied no explicit input-description task; semantic quality is unqualified. This is a standalone CPU route, not native vLLM or an Omni StageRuntime. The optional upstream WAV merger still uses the wrong chunk names; the verifier assembled original PCM after completion. | Bind a full-session native CPU stage with admission and state/cancel semantics; validate prompted image/audio quality, speech intelligibility, streaming, loading peak, repeated requests and sustained thermal behavior. [Complete raw evidence](../../../e2e_expansion_20260923/evidence/minicpmo_cpp_windows_cpu/README.md), [failed first run](../../../e2e_expansion_20260923/evidence/minicpmo_cpp_windows_cpu_attempt1/README.md). | +| PC HX370: CPU / native Windows | MiniCPM-o 4.5 | SCOPED_E2E_STANDALONE_COMPLETE_PATH | The pinned Q4_K_M language and F16 vision/audio/TTS/Token2Wav GGUF set completed a combined synthetic JPEG plus spoken “What color is the square in the image?” input to text and nonzero speech on native Windows CPU. The correct answer, “The square in the image is red.”, used the same eight language token IDs as the Radeon hybrid; independent Whisper tiny.en ASR transcribed both the input and 2.32 s output with WER 0. One cold prompted request took 24.66 s, with 13.11 GB maximum sampled RSS. An earlier unprompted square+tone request produced generic text and 49.16 s of speech in 137.34 s; the first generic build exited 0 with incomplete audio and is preserved as a failure. This is a standalone C++ route, not native vLLM or Omni; one synthetic quality case is not general qualification. The optional upstream WAV merger still has a filename/timing bug, so verified chunks were assembled after completion. | Bind a whole-session native CPU Omni stage with admission/state/cancellation; validate real image/audio suites, playable streaming, loading peak, repeated latency and sustained thermal behavior. [Prompted CPU evidence](../../../e2e_expansion_20260923/evidence/minicpmo_cpp_windows_cpu_prompted/README.md), [unprompted evidence](../../../e2e_expansion_20260923/evidence/minicpmo_cpp_windows_cpu/README.md), [failed first run](../../../e2e_expansion_20260923/evidence/minicpmo_cpp_windows_cpu_attempt1/README.md). | | PC HX370: CPU / native Windows | InternVLA-A1 | SYNTHETIC_POLICY_PASS | The Place_Markpen checkpoint strict-loaded from a UNC path and the direct CPU policy produced finite `[1, 50, 32]` actions on synthetic zero observations/noise. Policy/output CPU placement was checked; one forward took 3.36 s. Relative L2 difference from WSL CPU was 1.08% (no task tolerance). This direct policy route does not require native vLLM CPU attention operators. | Validate real observations/reference actions, units/timestamps, memory and repeated latency before task qualification; [native evidence](../../../e2e_expansion_20260923/README.md). | | PC HX370 + RTX 5090 Laptop / WSL | Spark-X2.5 | PROFILE_COMPLETED | not fully qualified: reference-quality and remaining reliability/performance gates must be reviewed | Broaden only with a named workload/device/precision qualification. | | PC HX370 + RTX 5090 Laptop / WSL | Qwen3-TTS 0.6B CustomVoice | PROFILE_COMPLETED | not fully qualified: reference-quality and remaining reliability/performance gates must be reviewed | Resolve and measure playback stalls; run quality, interruption and thermal tests. | @@ -48,7 +48,7 @@ NOT E2E means no complete device/model workload was verified. “Scoped E2E” i | PC HX370 + Radeon 890M / Windows worker | Spark-X2.5 | SCOPED_E2E_OMNI_COMPLETE_REQUEST | The same pinned Spark-X2.5-1.7B Q4_K_M GGUF completed text prefill/decode through a bounded Omni whole-session stage with llama.cpp Vulkan1. The log identifies Radeon 890M and 29/29 layers offloaded there, rather than RTX 5090; an intentionally wrong device name was refused. `Paris` and `1511` passed; one warmup plus 20 serial complete requests were 20/20 correct, nearest-rank wall p50/p95 2.10/2.14 s. A public AsyncOmni request passed; an oversized context was rejected with a later correct request; in-flight cancellation produced no stale output and released the ledger. The prior standalone run was 2.18/2.20 s. No streaming, restart-after-cancel, GPU-memory peak or sustained power/thermal check is claimed. | Qualify public configuration, broader text/token quality, streaming and cancellation recovery, shared-RAM/GPU peak and sustained use; [Omni raw evidence](../../../e2e_expansion_20260923/evidence/spark_omni_llamacpp/README.md), [standalone evidence](../../../e2e_expansion_20260923/evidence/spark_radeon890m_llamacpp/README.md). | | PC HX370 + Radeon 890M / Windows worker | Qwen3-TTS 0.6B CustomVoice | SCOPED_E2E_OMNI_COMPLETE_REQUEST_HYBRID | The pinned Q8_0 CustomVoice talker, F16 codec and punctuation GGUFs completed two named text-to-WAV requests through an Omni whole-session CrispASR stage on native Windows. The runtime log identifies Radeon 890M Vulkan0 for talker/codec and the 432 MB code predictor pinned to CPU FP32; this is not all-Radeon or NPU execution. Both PCM hashes exactly match the earlier standalone outputs. Whisper tiny.en transcribed the first Omni WAV and both standalone WAVs exactly (WER 0 as an intelligibility proxy). One warmup plus 20 serial complete Omni requests for 2.56 s of audio had identical PCM and nearest-rank wall p50/p95 3.298/3.336 s (RTF 1.29/1.30). A public AsyncOmni audio request passed; cancellation drained the worker without stale output or remaining reservation. The earlier standalone profile was 3.310/3.345 s. The default Vulkan configuration previously fell back to CPU, all-Vulkan ran away to a 360-frame cap, and DirectML failed waveform quality. No playable stream, post-cancel restart, loading peak, broad speech quality or sustained power/thermal run is claimed. | Validate playable streaming, restart/recovery, broader voice quality, shared-RAM/GPU peak, concurrency and sustained real-time behavior before wider qualification; [Omni raw evidence](../../../e2e_expansion_20260923/evidence/qwen_tts_omni_hybrid/README.md), [standalone 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 | MiniCPM-o 4.5 | SCOPED_E2E_STANDALONE_COMPLETE_PATH_HYBRID | The pinned Q4_K_M/F16 GGUF set completed a **combined spoken question+image → text+speech** path through standalone C++ on native Windows. `GGML_VK_VISIBLE_DEVICES=1` exposed only Radeon 890M; logs show all 37 language layers and vision on Vulkan0, TTS weights at 0/21 GPU layers, and CPU Token2Wav/vocoder. The spoken “What color is the square in the image?” was independently transcribed with WER 0; the model answered “The square in the image is red.” with the same eight language token IDs as CPU, and the 2.56 s WAV was transcribed with WER 0. One cold prompted process took 18.63 s, sampled RSS 15.57 GB. A separate unprompted square+tone run completed 42 WAV chunks/41.96 s audio in 113.43 s. This is CPU+iGPU joint execution, not all-Radeon, NPU or an Omni stage; one synthetic quality case and one cold time are not release qualification. | Bind a full-session Omni stage with explicit shared-RAM/GPU admission and cancellation; validate real multimodal quality, playable streaming, loading peak, repeated/concurrent latency and sustained thermal behavior. [Prompted hybrid evidence](../../../e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m_prompted/README.md), [unprompted placement and raw run](../../../e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/README.md), [CPU parity](../../../e2e_expansion_20260923/evidence/minicpmo_cpp_windows_cpu_prompted/README.md). | | 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. | | PC HX370 + AMD NPU / Windows worker | Spark-X2.5 | COMPONENT_PASS; NOT_E2E_PROFILEABLE | The real 1.7B output head (RMS norm and full 131,072-logit projection) ran through Omni `external.graph.v1` with VitisAI: one fused NPU partition and seven CPU nodes per request. The A16W8 graph matched top-1 on four captured activations (full-logit SNR 55.43–56.81 dB). One warmup plus 20 serial repeated-input component requests gave p50/p95 10.21/12.44 ms, versus 17.97/20.29 ms for the original FP32 output head on the same Omni CPU stage. NPU startup was 18.21 s versus 4.48 s for FP32 CPU, and NPU worker peak RSS was 3.52 GiB versus 2.06 GiB. No full prefill/decode/KV/sampling, real handoff, power, or sustained run was verified. | Measure an actual vLLM-to-output-head handoff and whole-generation cost, state/cancellation, memory admission and quality before considering a split plan; [component evidence](../../../e2e_expansion_20260923/evidence/spark_amd_npu_output_head/README.md). | | PC HX370 + AMD NPU / 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. | diff --git a/docs/design/omni_edge_e2e_roadmap.md b/docs/design/omni_edge_e2e_roadmap.md index d360a081c..68573f70b 100644 --- a/docs/design/omni_edge_e2e_roadmap.md +++ b/docs/design/omni_edge_e2e_roadmap.md @@ -58,6 +58,20 @@ than input descriptions; the fixture supplied no explicit description task, so quality remains unqualified. These runs do not close the Omni stage, admission, cancellation, streaming or M4 video/real-observation gates. +The same GGUF set now also completes [native Windows Radeon 890M+CPU combined +input](../../benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m/README.md). +The runtime logged all 37 language layers and vision on the Radeon Vulkan +device, TTS weights with zero GPU layers, and CPU Token2Wav. A separate +[spoken visual question](../../benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_radeon890m_prompted/README.md) +about the red square returned the correct sentence and 2.56 s speech in one +18.63 s cold process; input and output ASR word error rates were both zero. +The [same prompted CPU run](../../benchmarks/edge_harness/results/e2e_expansion_20260923/evidence/minicpmo_cpp_windows_cpu_prompted/README.md) +returned identical text and eight language token IDs in 24.66 s, though speech +PCM differed. This advances the M4 desktop feasibility evidence for a +CPU+iGPU hybrid; neither the one-case quality check nor the standalone C++ +control path closes Omni integration, admission, streaming, real-input quality, +mobile artifacts or sustained profiling. + Native Windows HX370 CPU now also completes two Qwen3-TTS CustomVoice text-to-WAV requests through Qwen's standalone PyTorch wrapper using the pinned 0.6B checkpoint. A separate 1-warmup/20-measured serial profile of one short