Repository navigation
Description
Summary
On a GTX 1070 (Pascal, sm_61) running a self-built prism-branch Vulkan binary, the integer-dot decode kernel landed on the branch fixes PTQ1_0 decode dramatically (0.81 -> 15.3 tok/s, i.e. the b10709 release -> prism HEAD, -fa on). But prompt processing is stuck at ~16 tok/s steady-state regardless of every config lever tried. The same codebase on an AMD BC-250 (RDNA1, no coopmat, no int dot) reports pp512 = 95 tok/s, so the gap on this NVIDIA device (~6x) looks to be fp16-compute + proprietary-driver-related rather than config.
Hardware / software
- GPU: NVIDIA GeForce GTX 1070 8 GB (Pascal, sm_61), driver 535.98 (Win10 22H2)
- Device line (self-built prism HEAD):
- Build: prism branch HEAD as of 2026-09-23 (contains
mul_mat_vecq_ptq1_0.comp/dequant_pq2_0.comp), MinGW ucrt64 gcc 16.2, Ninja,-DGGML_VULKAN=ON -DCMAKE_BUILD_TYPE=Release, glslc 2026.3 - Model:
Ternary-Bonsai-2-27B-PTQ1_0.gguf(5.53 GiB, qwen35 arch) - Host: Xeon E5-2680 v4 (14C/28T), 128 GB RAM
Results
llama-bench -m Ternary-Bonsai-2-27B-PTQ1_0.gguf -ngl 99 -p 512 -n 4 -r 2:
Server-side (llama-server, -fa on -ctk/-ctv q4_0 --kv-mean-center -c 16384): a 2,839-token prompt prefilled at 15.25 tok/s; short 18-token prompts ~4.8 tok/s (≈3 s per-request fixed overhead: graph build + template).
Observations
- The pp64 = 27 t/s figure is the attention-light, small-batch case; steady-state (pp512 and pp2048 both) is a flat ~16 tok/s.
- Decode on this device is now good (15.3 tok/s bench, ~11 t/s server) thanks to the int-dot mat-vec — this report is purely about the batched path.
- With
fp16: 0, the batchedmul_matdequant path runs f32 throughout (matmul_ptq1_0_f32); NVIDIA proprietary Vulkan on Pascal is legacy. The BC-250 numbers (pp512 95 t/s, same prism code, fp16 supported + RADV/Mesa) suggest fp16 compute + driver compiler explain most of the 6x. - Correctness verified on this setup (chat + vision; kv-mean-center calibration round-trips cleanly) — performance report only.
Ask
- Is there a roadmap item for a batched PTQ1_0 path that helps devices without fp16 compute (e.g. an MMQ-style q8_1 matmul pipeline analogous to the int-dot mat-vec that landed for decode, or an explicit f32 batched kernel tuning pass)?
- Worth checking whether something specific in the current batched path regresses NVIDIA old-gen: with attention amortized at pp2048 the slope is flat at 16, which looks like pure matmul throughput rather than attention.
- Happy to test candidate builds on this device (bench +
test-backend-opsruns, PPL checks) if useful.
Environment for reproducibility: Win10 22H2, driver 535.98, -ngl 99, FA on, q4_0 KV with fork's --kv-mean-center bias file.
Activity