Matt Corallo
982533fc0c
vulkan: Block-load Q3_K/Q6_K block data and subtract on 32b ints (llama/23056)
...
Q2_K/Q3_K/Q6_K do much better when using MMVQ on Intel BMG even
though they're only 2-byte aligned, and Q3_K still wins on
NVIDIA as well.
mesa isn't all that great at coalescing back-to-back loads from
alternating arrays, so we force it instead. Further, we can do
subtraction directly on a full int32_t rather than an i8vec4
with bit twiddling because the high bit is always free to start.
On Intel BMG on mesa, the switch to MMVQ provides an immediate
~57% perf increase in tg128 for unsloth/Qwen3.5-9B-GGUF:Q3_K and
~78% perf increase in tg128 for unsloth/Qwen3.5-9B-GGUF:Q6_K.
The futher switch to block loads leads to a ~24% perf increase in
tg128 for unsloth/Qwen3.5-9B-GGUF:Q3_K and a ~48% perf increase in
tg128 for unsloth/Qwen3.5-9B-GGUF:Q6_K.
Finally, Xe2 wins on MMVQ even for small k, so we take the NVIDIA
override for K quants on Xe2 as well.
2026-06-08 14:36:36 +03:00
..
2026-05-29 09:47:30 +03:00
2025-11-17 21:05:46 +02:00
2026-02-15 21:44:37 +02:00
2025-12-12 17:53:04 +02:00
2025-10-12 11:16:23 +03:00
2025-10-12 11:16:23 +03:00
2025-12-12 17:53:04 +02:00
2025-10-12 11:16:23 +03:00
2025-12-12 17:53:04 +02:00
2025-12-12 17:53:04 +02:00
2025-12-12 17:53:04 +02:00
2025-10-12 11:16:23 +03:00
2026-05-29 09:47:30 +03:00
2025-10-12 11:16:23 +03:00
2026-05-25 12:26:07 +03:00
2025-10-12 11:16:23 +03:00
2026-05-29 09:47:30 +03:00
2025-10-12 11:16:23 +03:00
2026-04-30 11:29:07 +03:00
2026-04-30 11:29:08 +03:00
2025-12-12 17:53:04 +02:00
2026-05-25 12:26:07 +03:00
2025-10-12 11:16:23 +03:00
2025-10-12 11:16:23 +03:00
2025-12-31 17:52:09 +02:00
2026-01-14 09:11:59 +02:00
2026-01-14 09:11:59 +02:00
2026-01-14 09:11:59 +02:00
2025-10-12 11:16:23 +03:00
2026-05-29 09:47:30 +03:00
2026-05-29 09:47:30 +03:00
2025-10-12 11:16:23 +03:00
2025-10-12 11:16:23 +03:00
2025-10-12 11:16:23 +03:00
2025-10-12 11:16:23 +03:00
2025-10-12 11:16:23 +03:00
2025-10-12 11:16:23 +03:00
2025-10-12 11:16:23 +03:00
2025-10-12 11:16:23 +03:00
2025-10-12 11:16:23 +03:00
2025-10-12 11:16:23 +03:00
2025-11-09 23:38:03 +02:00
2026-04-30 11:29:07 +03:00
2026-04-30 11:29:05 +03:00
2025-11-09 23:38:03 +02:00
2025-10-12 11:16:23 +03:00
2025-10-12 11:16:23 +03:00
2025-10-12 11:16:23 +03:00
2025-11-09 23:38:03 +02:00
2025-10-12 11:16:23 +03:00
2025-10-12 11:16:23 +03:00
2025-11-09 23:38:03 +02:00
2025-10-12 11:16:23 +03:00
2025-10-12 11:16:23 +03:00
2025-10-12 11:16:23 +03:00
2026-04-30 11:29:08 +03:00
2025-10-12 11:16:23 +03:00
2026-03-16 13:10:15 +02:00
2026-04-30 11:29:08 +03:00
2025-12-12 17:53:04 +02:00
2026-06-08 14:36:36 +03:00
2026-06-08 14:36:36 +03:00
2026-06-08 14:36:36 +03:00
2026-06-08 14:36:36 +03:00
2026-03-16 13:10:15 +02:00
2026-05-14 21:26:48 +03:00
2026-01-30 15:56:40 +02:00
2026-05-14 21:26:48 +03:00
2025-12-12 17:53:04 +02:00
2026-05-29 09:47:30 +03:00
2026-05-25 12:26:07 +03:00
2025-10-12 11:16:23 +03:00
2025-10-12 11:16:23 +03:00
2025-10-12 11:16:23 +03:00
2025-10-12 11:16:23 +03:00
2025-10-12 11:16:23 +03:00
2025-10-12 11:16:23 +03:00
2026-04-30 11:29:08 +03:00
2025-12-31 17:52:09 +02:00
2025-12-12 17:53:12 +02:00
2025-10-12 11:16:23 +03:00
2025-12-18 08:20:56 +02:00
2026-04-30 11:29:08 +03:00
2026-03-29 15:04:36 +03:00
2025-10-12 11:16:23 +03:00
2025-10-12 11:16:23 +03:00
2025-10-12 11:16:23 +03:00
2026-04-30 11:29:08 +03:00
2026-05-25 12:26:07 +03:00
2026-03-16 13:10:15 +02:00
2025-10-12 11:16:23 +03:00
2026-04-30 11:29:08 +03:00
2024-12-08 20:14:35 +02:00
2026-02-27 20:57:58 +02:00
2026-04-30 11:29:04 +03:00
2026-01-14 09:11:59 +02:00
2026-01-14 09:11:59 +02:00
2026-01-14 09:11:59 +02:00
2026-01-14 09:11:59 +02:00
2026-01-14 09:11:59 +02:00
2026-01-14 09:11:59 +02:00
2026-01-14 09:11:59 +02:00
2025-11-17 21:05:46 +02:00
2025-11-17 21:05:46 +02:00
2026-04-30 11:29:04 +03:00
2026-01-14 09:11:59 +02:00
2026-04-30 11:29:04 +03:00
2026-04-30 11:29:04 +03:00
2026-01-14 09:11:59 +02:00
2026-05-29 09:47:30 +03:00
2026-06-08 14:36:36 +03:00
2026-01-14 09:11:59 +02:00
2026-05-29 09:47:30 +03:00
2026-04-30 11:29:22 +03:00
2026-02-27 20:57:58 +02:00
2026-04-30 11:29:04 +03:00
2026-04-30 11:29:04 +03:00
2026-05-14 21:26:48 +03:00
2026-02-27 20:57:58 +02:00
2025-10-12 11:16:23 +03:00
2026-04-30 11:29:08 +03:00
2025-11-17 21:05:46 +02:00
2025-10-12 11:16:23 +03:00
2025-10-12 11:16:23 +03:00
2025-10-12 11:16:23 +03:00
2025-12-12 17:53:20 +02:00
2025-10-12 11:16:23 +03:00
2026-01-14 09:11:59 +02:00
2025-10-12 11:16:23 +03:00
2025-10-12 11:16:23 +03:00
2025-10-12 11:16:23 +03:00
2025-10-12 11:16:23 +03:00
2025-10-12 11:16:23 +03:00
2025-10-12 11:16:23 +03:00
2026-02-08 09:29:10 +02:00
2025-10-12 11:16:23 +03:00
2026-05-25 12:26:07 +03:00
2026-04-30 11:29:08 +03:00
2026-02-08 09:29:10 +02:00
2026-02-08 09:29:10 +02:00
2026-02-08 09:29:10 +02:00
2026-05-25 12:26:07 +03:00
2026-02-08 09:29:10 +02:00
2025-12-12 17:53:04 +02:00
2025-10-12 11:16:23 +03:00
2026-03-16 13:10:15 +02:00
2025-10-12 11:16:23 +03:00
2025-10-12 11:16:23 +03:00
2025-10-12 11:16:23 +03:00
2025-10-12 11:16:23 +03:00
2026-05-25 12:26:07 +03:00
2025-10-12 11:16:23 +03:00
2025-12-18 08:20:56 +02:00
2025-12-18 08:20:56 +02:00
2025-12-18 08:20:56 +02:00
2025-12-18 08:20:56 +02:00
2025-10-12 11:16:23 +03:00
2025-12-12 17:53:04 +02:00
2025-12-12 17:53:20 +02:00
2025-10-12 11:16:23 +03:00
2025-10-12 11:16:23 +03:00
2026-05-25 12:26:07 +03:00
2026-01-14 09:11:59 +02:00
2025-12-12 17:53:04 +02:00
2025-10-12 11:16:23 +03:00
2025-12-12 17:53:08 +02:00
2025-12-12 17:53:08 +02:00
2025-10-12 11:16:23 +03:00
2025-10-12 11:16:23 +03:00
2025-10-12 11:16:23 +03:00
2025-10-12 11:16:23 +03:00
2025-12-12 17:53:15 +02:00
2026-01-14 09:11:59 +02:00
2025-12-12 17:53:19 +02:00
2026-04-30 11:29:08 +03:00
2025-12-12 17:53:04 +02:00
2026-05-29 09:47:30 +03:00
2025-12-31 17:52:09 +02:00
2025-10-12 11:16:23 +03:00
2026-06-08 14:36:36 +03:00
2024-12-18 12:52:16 +02:00
2025-03-27 11:06:03 +02:00
2025-12-31 17:52:09 +02:00