GLM-4.7-Flash / Vulkan RADV / PP512 TG128 / depth 1024 / KV f16
AMD Strix Halo 128GB · llama.cpp b9747 / d6d89958 / Vulkan RADV
- generation:
- 67.0 tokens/s
- prompt processing (prefill):
- 889.1 tokens/s
- quant:
- UD-Q4_K_XL (GGUF)
- kv:
- F16
- flash attention:
- on
- mtp (multi-token prediction):
- off
Reported by the source; GPU count, offloading and concurrent requests can change these figures. Prompt-processing speed is input throughput, not time to first token. Check the full setup before comparing.
First-party measurements by Mikke Zavala, July 31 to August 1, 2026. Source: https://github.com/mikkezavala/llm-bench/blob/8577ff5c944abcf239fdc5b2185ac50510bc6e48/data/results.jsonl . Campaign description: https://github.com/mikkezavala/llm-bench/blob/8577ff5c944abcf239fdc5b2185ac50510bc6e48/README.md . Repository snapshot 8577ff5c944abcf239fdc5b2185ac50510bc6e48, recovered October 14, 2026. This report covers GLM-4.7-Flash UD-Q4_K_XL on Vulkan RADV; all 50 native phase records for this model/backend are retained. Headline values use the f16/f16 KV baseline at depth 1024: PP512 889.111849 tokens/s and separate TG128 67.035806 tokens/s. These are independent synthetic tests, not one request. No measured TTFT is available. Hardware: source identifies AMD Ryzen AI MAX+ 395 with Radeon 8060S, gfx1151, and 128 GB unified system memory. Exact physical CPU/GPU core counts, machine model, OS/kernel, driver/ROCm version, clocks, power limits, temperatures, storage, swap and competing load are unreported. The eight threads are a benchmark setting, not a physical-core count. Unified system RAM is not dedicated VRAM. No measured resident/peak memory or disk-file size is supplied. Native model_size 17510693376 bytes counts model tensor storage; it is not measured RAM use or the whole GGUF file size. Native parameter count 29943393920. Model artifact: https://huggingface.co/unsloth/GLM-4.7-Flash-GGUF/blob/0d32489ecb9db6d2a4fc93bd27ef01519f95474d/GLM-4.7-Flash-UD-Q4_K_XL.gguf . Raw model_filename retains the HF repository, tested snapshot prefix and exact filename after removal of the local cache directory. The published prefix resolves through HF metadata to full revision 0d32489ecb9db6d2a4fc93bd27ef01519f95474d; the exact filename is present in that revision. This is source-bound tested-snapshot provenance, not a current-reference substitute. No weight bytes were downloaded and no actual-run file hash is available. The publisher quant label is UD-Q4_K_XL; native model_type is "deepseek2 30B.A3B Q4_K - Medium", which alone does not distinguish the two GLM quant variants. Runtime: llama.cpp build 9747 / d6d899580dcf0e50a3d14453d3d082f6ed050450, Vulkan RADV. The printed hash resolves to the named upstream commit. Build number 1 for ROCm is preserved as printed, not replaced with an inferred release. Local modifications, compiler flags and binary hash remain unknown. Every row logs batch 1024, microbatch 512, 8 threads, CPU mask 0x0, CPU strict false, poll 50, GPU layers -1, CPU-MoE 0, layer split, main GPU 0, automatic devices, tensor_split 0.00 and no tensor buffer override. Flash attention=1, KV offload and operation offload enabled, mmap true, direct I/O false, embeddings false, no_host false and fit_target/fit_min_ctx both 0. K/V types vary below. Exact original command, process priority, delay, NUMA options and warmup switch are not retained. GPU quantity: one, established from run-bound inventory and pinned selection code. get_gpu_info in https://github.com/ggml-org/llama.cpp/blob/d6d899580dcf0e50a3d14453d3d082f6ed050450/tools/llama-bench/llama-bench.cpp iterates all registered GPU and IGPU devices and appends every description without deduplication. Each raw row has exactly one description: Radeon 8060S Graphics (RADV STRIX_HALO). It is not merely a processor-brand inference. With devices=auto, https://github.com/ggml-org/llama.cpp/blob/d6d899580dcf0e50a3d14453d3d082f6ed050450/src/llama.cpp selects that recognized GPU/IGPU; https://github.com/ggml-org/llama.cpp/blob/d6d899580dcf0e50a3d14453d3d082f6ed050450/src/llama-model.cpp maps GPU layers -1 to all layers. Successful native results and the single non-CPU backend support GPU execution. Exact tensor fallback and GPU utilization are unmeasured. tensor_split 0.00 alone is not quantity evidence: the serializer truncates trailing zero entries. Native timing: the pinned llama-bench code above uses std::chrono::high_resolution_clock in nanoseconds around only the selected prompt or generation test. Model loading, optional warmup, and initial depth processing or restored depth state precede the timer. Prompt processing decodes random token IDs in batches, then synchronizes once; generation executes 128 serial one-token decode calls, synchronizing each. These are synthetic token IDs, not sampled text or an application accuracy test. Each test requests context depth + prompt + generation tokens before internal padding; actual allocated context is unpublished. Existing depth is not part of the PP numerator. Depth state may be restored between compatible tests; this is not evidence of a cold application request. Warmup is the upstream default but its actual invocation is unknown. No speculative decoding is involved in this benchmark path. Every cell has one recorded repetition, with raw nanosecond sample available in the source. Native rate is 1e9 times measured prompt-or-generation tokens divided by elapsed nanoseconds; the exact avg_ts field is preserved below. Printed zero standard deviation reflects one repetition and gives no estimate of run-to-run variance. Runs are sequential, not randomized; thermal drift is uncontrolled. Backend builds differ, so ROCm/Vulkan differences cannot be attributed solely to backend. PP512/PP1024 at shallow depths must not be conflated with PP2048 at deep depths. All rates below are tokens/s; K/V cache quantization is separate from model quantization. Depth 1024, KV f16/f16: PP512 889.111849; PP1024 771.171391; TG128 67.035806. Depth 1024, KV f16/q8_0: PP512 884.800274; PP1024 771.764419; TG128 66.885737. Depth 1024, KV f16/q4_0: PP512 887.814678; PP1024 774.478216; TG128 66.699172. Depth 1024, KV q8_0/q8_0: PP512 657.21313; PP1024 556.012797; TG128 62.876937. Depth 1024, KV q4_0/q4_0: PP512 684.381618; PP1024 575.498666; TG128 60.237522. Depth 2048, KV f16/f16: PP512 746.784316; PP1024 651.466616; TG128 64.374917. Depth 2048, KV f16/q8_0: PP512 714.622143; PP1024 656.827935; TG128 64.022435. Depth 2048, KV f16/q4_0: PP512 743.832447; PP1024 652.453534; TG128 63.865259. Depth 2048, KV q8_0/q8_0: PP512 451.888593; PP1024 415.881209; TG128 58.020389. Depth 2048, KV q4_0/q4_0: PP512 464.509347; PP1024 430.38724; TG128 53.966561. Depth 16384, KV f16/f16: PP2048 203.927358; TG128 40.422869. Depth 16384, KV f16/q8_0: PP2048 204.081275; TG128 40.408333. Depth 16384, KV f16/q4_0: PP2048 204.218716; TG128 40.932013. Depth 16384, KV q8_0/q8_0: PP2048 96.15551; TG128 26.894236. Depth 16384, KV q4_0/q4_0: PP2048 103.524398; TG128 22.01396. Depth 32768, KV f16/f16: PP2048 117.745818; TG128 28.432538. Depth 32768, KV f16/q8_0: PP2048 118.230814; TG128 28.493995. Depth 32768, KV f16/q4_0: PP2048 117.544618; TG128 28.46978. Depth 32768, KV q8_0/q8_0: PP2048 51.319663; TG128 16.101115. Depth 32768, KV q4_0/q4_0: PP2048 56.676835; TG128 12.521439. Structured rates are rounded to 0.1 t/s; exact source values are retained above.