CPU vs Vulkan on 2014 hardware: GGUF 6.6x slower than PyTorch on a non-AVX2 CPU, but 1.8-5.4x faster on an old iGPU
Hi Mohammed ๐
Thanks for the GGUF package โ one self-contained 1.35 GB file, no Python, and it produced correct Egyptian Arabic on the very first try on a 2014 laptop. I benchmarked it against the PyTorch path on the same machine and got results at both extremes, so I hope the numbers are useful.
Setup โ AMD A8 PRO-7600B R7 (4 cores, 2014, no AVX2/FMA, no CUDA), 14.9 GB RAM, Windows 10. Same Egyptian-Arabic text (43 chars), same 6.0 s reference clip + its transcript, --seed 42, --threads 4.
| Runtime | steps | wall time | RTF |
|---|---|---|---|
PyTorch voicetut_tts (fp32, MKL/oneDNN) |
8 | 115โ121 s | โ |
PyTorch voicetut_tts |
16 | 359 s | โ |
audio.cpp v0.9.2 CPU (voicetut-tts-q8_0.gguf) |
8 | 798.9 s | 208.7 |
| audio.cpp v0.9.2 Vulkan (Radeon R7 iGPU, UMA) | 8 | 66.6 s | 8.3 |
| audio.cpp v0.9.2 Vulkan | 16 | 66.9 s | 15.6 |
Two observations that surprised me:
- On the CPU path, ggml is 6.6x slower than Python/MKL here (RTF 208.7). My guess: the fast kernels assume AVX2/FMA and q8_0 dequantization on plain SSE is the bottleneck.
- On the same machine the Vulkan build is 1.8x faster than PyTorch at 8 steps and 5.4x faster at 16 steps โ even though the driver reports
fp16: 0, int dot: 0, matrix cores: none. Really nice work on that backend.
Questions
- Is AVX2 effectively required for the CPU path to beat the Python/MKL path? If so, would you consider a note in the README (e.g. "CPU-only without AVX2: prefer the Python package")? I'm happy to run more tests (fp32 GGUF, thread counts, 1/4/8 steps) and report back.
- My CLI wall time (~67 s) looks like it includes ~30 s of model load. Would
audiocpp_serverwith a resident model bring per-request time to ~35 s? I'm about to measure that too.
(And quietly still hoping for the Cairo-TTS weights ๐ โ my CPU-only environment has been ready since Oct 14; I also asked in the other discussion.)
Thanks again โ this package is the first thing that made TTS feel fast on this laptop.
โ Sami (16), Egypt
Short follow-up, @mohammedaly22 โ one new number and one question, no essay.
Resident audio.cpp server, Vulkan, 32 steps, same A8: a 2.4 s clip in 86.4 s wall (RTF around 36). Consistent with the 8- and 16-step numbers above, so no regression โ just confirming it scales with steps.
Question: is a non-AVX2 (SSE-only) CPU path on the roadmap, or is CPU-without-AVX2 out of scope? If it is out of scope, feel free to close this and I will leave it here. And if GitHub issues are a better place for reports like this, say so and I will move there.
โ Sami
ุงูุง ูุณุชุทูุน ุชุญู ูู ู ูุฏู cairo tts