Repository navigation
D3D12 backend v0.5.5 - fast CPU code on every PC (runtime CPU dispatch)
D3D12 backend v0.5.5 - fast CPU code on every PC (runtime CPU dispatch)
Windows x64, DirectX 12. On llama.cpp master 7592b61 (2026-11-10). Contains everything of v0.5.4.
What is new in v0.5.5
- The CPU code picks the best instruction set when the program starts. Until now every CPU part was plain x86-64 so it would run on any PC. This zip carries 14 variants of the CPU backend in the
cpu\folder (ggml-cpu-x64,sse42,sandybridge,ivybridge,piledriver,haswell,skylakex,cascadelake,cooperlake,cannonlake,icelake,sapphirerapids,zen4,alderlake). At start ggml checks what the CPU supports and loads the best matching one; an old CPU gets the plainx64one. Unzip the whole zip and keep thecpufolder next to the exes. - Smaller zip, shared DLLs. The exes are small launchers that use the
libllama*.dllandggml*.dllfiles of the zip, so the zip is 47.7 MB (v0.5.4: 73.8 MB).vla-cli.exe(robot models) stays the static build of v0.5.4. - Fix in this layout:
llama-serverno longer hangs at exit after--helpor--version(a static destructor joined a thread while the DLL was unloading; the object is now never destroyed). - Upstream base and backend are unchanged from v0.5.4.
Speed on a Radeon AI PRO R9700 (DirectX 12, zip smoke)
| Model | Tool | Result |
|---|---|---|
Clover-35B-A3B-Preview Q4_K_M, -ngl 99 -lm none -fa 1 |
llama-bench | pp512 646.82 t/s, tg128 63.69 t/s |
| Clover-35B-A3B-Preview Q4_K_M | llama-perplexity | PPL 4.2676 |
| diffusiongemma-26B-A4B-it Q4_K_M | llama-diffusion-cli | 498.47 ms per step |
| LLaDA-MoE-7B-A1B-Instruct Q4_K_M | llama-diffusion-cli, block 32, 32 steps | 56.45 ms per step |
Models that run fully on the GPU do not get faster from the CPU variants (D3D12 A/B, Clover Q4_K_M: pp512 690.09 -> 697.71 t/s, tg128 67.16 -> 67.54 t/s, one run each, inside the run-to-run spread). The smoke numbers are one run each on a warm card.
Speed when the CPU does the work (Ryzen 7 5700G, 8 threads, -ngl 0, DX12 build, exp1088, one run each)
| Model | Metric | v0.5.4 (plain x86-64) | v0.5.5 (best CPU variant, haswell here) |
|---|---|---|---|
| qwen2.5-0.5b-instruct Q4_0 | pp512 | 48.21 t/s | 747.44 t/s |
| qwen2.5-0.5b-instruct Q4_0 | tg128 | 35.73 t/s | 91.17 t/s |
| Clover-35B-A3B-Preview Q4_K_M | pp512 | 10.63 t/s | 65.47 t/s |
| Clover-35B-A3B-Preview Q4_K_M | tg64 | 5.12 t/s | 8.50 t/s |
CPU-only numbers move from run to run (an earlier run of the Clover model gave pp512 87.61 t/s with the variants).
Tested
- Radeon AI PRO R9700: every shipped exe of this zip (llama-server, llama-mtmd-cli, llama-cli, llama-completion, llama-perplexity, llama-bench, test-backend-ops, llama-diffusion-cli, llama-clover-diffusion, vla-cli with all 5 robot models): 15/15 steps pass, no NaN/Inf, the CPU backend loaded from
cpu\ggml-cpu-<variant>.dll. Zip SHA-256376bcefe66385cb16261ac4a53cd4b8872c0a31d5e026def1ebb2ba7624a3595. - llama-server also answered a chat request on the dispatch layout (qwen2.5-0.5b-instruct Q4_0, D3D12 build, "The capital of France is Paris.").
- The .bat files were not run in the test; they call the tested exes. Other GPUs were not tested with this zip.