Greedy decode on HRX0 gives different output across identical runs (same seed, temperature 0, fresh process). The same runs on Vulkan0 are identical every time.
Repro (strixhalo, llama.cpp pin 83e1c41, HRX build): run the command below 5 times and compare the md5 of each output.
llama-completion -m Qwen3-0.6B-Q4_K_M.gguf --device HRX0 -ngl 99 -c 2048 -n 24 --temp 0 --seed 1 -no-cnv -p "The capital of France is"
| run set (5 runs each, Qwen3-0.6B Q4_K_M) |
distinct outputs |
| default |
2 (4 × 460e86, 1 × d2a6c4) |
GGML_HRX_DISABLE_DISPATCH=decode_split |
1 |
GGML_HRX_DISABLE_DISPATCH=fused |
1 |
ZAYA1-8B Q4_K_M behaves the same way: 2 of 3 runs identical. Prefill is unaffected, and perplexity at batch 512 is stable.
Where. With the decode-split dispatch disabled the output is deterministic, so it comes from flash_attention_decode_split_next_q8 (context under 2048, so the multi-pass path from #123 isn't involved). Two readings, not yet told apart:
What would tell them apart: the logits of two differing runs at the first divergent step. A difference around 1e-3 means rounding; larger means a real race. A fixed-order reduction would make it deterministic either way.
Found while A/B-testing a ZAYA graph change on HRX: the change looked like it altered HRX decode output until repeated identical runs showed the baseline varies too.
Greedy decode on
HRX0gives different output across identical runs (same seed, temperature 0, fresh process). The same runs onVulkan0are identical every time.Repro (strixhalo, llama.cpp pin
83e1c41, HRX build): run the command below 5 times and compare the md5 of each output.460e86, 1 ×d2a6c4)GGML_HRX_DISABLE_DISPATCH=decode_splitGGML_HRX_DISABLE_DISPATCH=fusedZAYA1-8B Q4_K_M behaves the same way: 2 of 3 runs identical. Prefill is unaffected, and perplexity at batch 512 is stable.
Where. With the decode-split dispatch disabled the output is deterministic, so it comes from
flash_attention_decode_split_next_q8(context under 2048, so the multi-pass path from #123 isn't involved). Two readings, not yet told apart:What would tell them apart: the logits of two differing runs at the first divergent step. A difference around 1e-3 means rounding; larger means a real race. A fixed-order reduction would make it deterministic either way.
Found while A/B-testing a ZAYA graph change on HRX: the change looked like it altered HRX decode output until repeated identical runs showed the baseline varies too.