2.5 KiB
MiraTTS Vulkan GPU validation
Local validation: 2026-09-05, Windows, RTX 3090, Vulkan device 1.
The generator now uses the selected Vulkan execution context instead of a CPU fallback. Its decoder uses F32 projection precision, grouped flash attention (materialized grouped K/V heads), and F32 input to the output projection. DirectSetRows KV updates and compact logits remain enabled.
The previous GPU configuration truncated the short test to 0.74 seconds. Projection precision alone and attention-layout changes alone did not resolve that failure in local probes. This is a model-scoped configuration fix, not a claim that an individual upstream Vulkan kernel has been conclusively diagnosed.
Long-lived offline session
| Request | Q8 wall ms | BF16 wall ms | Audio seconds |
|---|---|---|---|
| Cold | 1632.78 | 1286.46 | 5.12 |
| Repeat | 884.67 | 923.20 | 5.12 |
| Different prompt | 902.05 | 926.29 | 5.12 |
| Long-form | 4957.44 | 3108.20 | 15.36 |
| Repeat after long-form | 933.39 | 1007.46 | 5.12 |
The three identical requests have identical audio hashes within each precision. These fixtures are token-capped; their duration is not evidence of complete prompt coverage. Timing excludes process startup/model loading and is not a controlled cross-backend performance comparison.
Streaming
| Precision/request | Wall ms | First event ms | Events | Audio seconds |
|---|---|---|---|---|
| Q8 cold | 3770.73 | 1437.21 | 4 | 20.02 |
| Q8 repeat | 3717.18 | 1375.11 | 4 | 20.02 |
| BF16 cold | 4202.34 | 1686.40 | 4 | 20.60 |
| BF16 repeat | 3986.38 | 1459.62 | 4 | 20.60 |
Repeated streaming audio hashes match. Both precisions pass
tests/mira_tts/validate_bench.py with their offline/streaming summaries.
Use --model-spec-override model_specs/mira_tts.json for the streaming fixture's
chunking options, as in the test README.
Full short sentence
Text: "Hello, this is a native Mira TTS test."
Reference: assets/resources/b.wav, seed 1234, default CLI token budget.
| Precision | Generation ms | Audio seconds |
|---|---|---|
| Q8 | 1154.30 | 5.56 |
| BF16 | 1363.06 | 6.60 |
Qwen3-ASR recognizes the complete sentence from both outputs (including Mira
and TTS). This is a transcription smoke check, not perceptual quality parity.
Samples and benchmark JSON/logs are in the local sibling outputs directory,
with names MiraTTS-q8-Vulkan-GPU.wav, MiraTTS-bf16-Vulkan-GPU.wav, and
vulkan-gpu-{q8,bf16}-{offline,streaming}.
CUDA waveform parity and other Vulkan vendors/devices are not claimed.