tl;dr,要看結論拉到下方
/llama-b11946/llama-bench -m gemma-4-26B-A4B-it-UD-Q4_K_XL.gguf
-ngl 99
-fa 1
-p 512,2048,8192
-n 128
-b 2048
-ub 256,512,1024,2048
-d 0,4096,16384
-r 5
-o md
ggml_cuda_init: found 1 CUDA devices (Total VRAM: 32126 MiB):
Device 0: NVIDIA RTX PRO 4500 Blackwell, compute capability 12.0, VMM: yes, VRAM: 32126 MiB
load_backend: loaded CUDA backend from /home/ryan/llama-b11946/libggml-cuda.so
load_backend: loaded RPC backend from /home/ryan/llama-b11946/libggml-rpc.so
load_backend: loaded CPU backend from /home/ryan/llama-b11946/libggml-cpu-zen4.so
| model | size | params | backend | ngl | n_ubatch | fa | test | t/s |
|---|---|---|---|---|---|---|---|---|
| gemma4 26B.A4B Q4_K - Medium | 15.83 GiB | 25.23 B | CUDA | 99 | 256 | 1 | pp512 | 4755.08 ± 64.46 |
| gemma4 26B.A4B Q4_K - Medium | 15.83 GiB | 25.23 B | CUDA | 99 | 256 | 1 | pp2048 | 4637.57 ± 75.57 |
| gemma4 26B.A4B Q4_K - Medium | 15.83 GiB | 25.23 B | CUDA | 99 | 256 | 1 | pp8192 | 4531.96 ± 63.84 |
| gemma4 26B.A4B Q4_K - Medium | 15.83 GiB | 25.23 B | CUDA | 99 | 256 | 1 | tg128 | 159.49 ± 0.06 |
| gemma4 26B.A4B Q4_K - Medium | 15.83 GiB | 25.23 B | CUDA | 99 | 256 | 1 | pp512 @ d4096 | 4620.48 ± 29.35 |
| gemma4 26B.A4B Q4_K - Medium | 15.83 GiB | 25.23 B | CUDA | 99 | 256 | 1 | pp2048 @ d4096 | 4470.94 ± 22.35 |
| gemma4 26B.A4B Q4_K - Medium | 15.83 GiB | 25.23 B | CUDA | 99 | 256 | 1 | pp8192 @ d4096 | 4369.79 ± 5.58 |
| gemma4 26B.A4B Q4_K - Medium | 15.83 GiB | 25.23 B | CUDA | 99 | 256 | 1 | tg128 @ d4096 | 153.64 ± 0.15 |
| gemma4 26B.A4B Q4_K - Medium | 15.83 GiB | 25.23 B | CUDA | 99 | 256 | 1 | pp512 @ d16384 | 4169.38 ± 30.15 |
| gemma4 26B.A4B Q4_K - Medium | 15.83 GiB | 25.23 B | CUDA | 99 | 256 | 1 | pp2048 @ d16384 | 3999.19 ± 10.15 |
| gemma4 26B.A4B Q4_K - Medium | 15.83 GiB | 25.23 B | CUDA | 99 | 256 | 1 | pp8192 @ d16384 | 3776.75 ± 6.78 |
| gemma4 26B.A4B Q4_K - Medium | 15.83 GiB | 25.23 B | CUDA | 99 | 256 | 1 | tg128 @ d16384 | 145.70 ± 0.14 |
| gemma4 26B.A4B Q4_K - Medium | 15.83 GiB | 25.23 B | CUDA | 99 | 512 | 1 | pp512 | 6499.06 ± 63.36 |
| gemma4 26B.A4B Q4_K - Medium | 15.83 GiB | 25.23 B | CUDA | 99 | 512 | 1 | pp2048 | 6431.76 ± 65.32 |
| gemma4 26B.A4B Q4_K - Medium | 15.83 GiB | 25.23 B | CUDA | 99 | 512 | 1 | pp8192 | 6217.80 ± 28.36 |
| gemma4 26B.A4B Q4_K - Medium | 15.83 GiB | 25.23 B | CUDA | 99 | 512 | 1 | tg128 | 162.80 ± 0.03 |
| gemma4 26B.A4B Q4_K - Medium | 15.83 GiB | 25.23 B | CUDA | 99 | 512 | 1 | pp512 @ d4096 | 6316.24 ± 85.72 |
| gemma4 26B.A4B Q4_K - Medium | 15.83 GiB | 25.23 B | CUDA | 99 | 512 | 1 | pp2048 @ d4096 | 6158.21 ± 16.21 |
| gemma4 26B.A4B Q4_K - Medium | 15.83 GiB | 25.23 B | CUDA | 99 | 512 | 1 | pp8192 @ d4096 | 5932.15 ± 8.08 |
| gemma4 26B.A4B Q4_K - Medium | 15.83 GiB | 25.23 B | CUDA | 99 | 512 | 1 | tg128 @ d4096 | 152.77 ± 0.11 |
| gemma4 26B.A4B Q4_K - Medium | 15.83 GiB | 25.23 B | CUDA | 99 | 512 | 1 | pp512 @ d16384 | 5486.53 ± 40.19 |
| gemma4 26B.A4B Q4_K - Medium | 15.83 GiB | 25.23 B | CUDA | 99 | 512 | 1 | pp2048 @ d16384 | 5312.43 ± 8.07 |
| gemma4 26B.A4B Q4_K - Medium | 15.83 GiB | 25.23 B | CUDA | 99 | 512 | 1 | pp8192 @ d16384 | 5011.88 ± 4.82 |
| gemma4 26B.A4B Q4_K - Medium | 15.83 GiB | 25.23 B | CUDA | 99 | 512 | 1 | tg128 @ d16384 | 145.28 ± 0.16 |
| gemma4 26B.A4B Q4_K - Medium | 15.83 GiB | 25.23 B | CUDA | 99 | 1024 | 1 | pp512 | 6430.43 ± 71.26 |
| gemma4 26B.A4B Q4_K - Medium | 15.83 GiB | 25.23 B | CUDA | 99 | 1024 | 1 | pp2048 | 8071.60 ± 48.35 |
| gemma4 26B.A4B Q4_K - Medium | 15.83 GiB | 25.23 B | CUDA | 99 | 1024 | 1 | pp8192 | 7755.18 ± 22.30 |
| gemma4 26B.A4B Q4_K - Medium | 15.83 GiB | 25.23 B | CUDA | 99 | 1024 | 1 | tg128 | 162.47 ± 0.03 |
| gemma4 26B.A4B Q4_K - Medium | 15.83 GiB | 25.23 B | CUDA | 99 | 1024 | 1 | pp512 @ d4096 | 6244.92 ± 99.64 |
| gemma4 26B.A4B Q4_K - Medium | 15.83 GiB | 25.23 B | CUDA | 99 | 1024 | 1 | pp2048 @ d4096 | 7631.04 ± 23.78 |
| gemma4 26B.A4B Q4_K - Medium | 15.83 GiB | 25.23 B | CUDA | 99 | 1024 | 1 | pp8192 @ d4096 | 7330.22 ± 6.79 |
| gemma4 26B.A4B Q4_K - Medium | 15.83 GiB | 25.23 B | CUDA | 99 | 1024 | 1 | tg128 @ d4096 | 152.53 ± 0.12 |
| gemma4 26B.A4B Q4_K - Medium | 15.83 GiB | 25.23 B | CUDA | 99 | 1024 | 1 | pp512 @ d16384 | 5416.47 ± 50.72 |
| gemma4 26B.A4B Q4_K - Medium | 15.83 GiB | 25.23 B | CUDA | 99 | 1024 | 1 | pp2048 @ d16384 | 6381.09 ± 11.67 |
| gemma4 26B.A4B Q4_K - Medium | 15.83 GiB | 25.23 B | CUDA | 99 | 1024 | 1 | pp8192 @ d16384 | 6069.16 ± 3.84 |
| gemma4 26B.A4B Q4_K - Medium | 15.83 GiB | 25.23 B | CUDA | 99 | 1024 | 1 | tg128 @ d16384 | 145.20 ± 0.13 |
| gemma4 26B.A4B Q4_K - Medium | 15.83 GiB | 25.23 B | CUDA | 99 | 2048 | 1 | pp512 | 6385.39 ± 87.19 |
| gemma4 26B.A4B Q4_K - Medium | 15.83 GiB | 25.23 B | CUDA | 99 | 2048 | 1 | pp2048 | 8847.48 ± 20.69 |
| gemma4 26B.A4B Q4_K - Medium | 15.83 GiB | 25.23 B | CUDA | 99 | 2048 | 1 | pp8192 | 8450.55 ± 7.60 |
| gemma4 26B.A4B Q4_K - Medium | 15.83 GiB | 25.23 B | CUDA | 99 | 2048 | 1 | tg128 | 162.35 ± 0.02 |
| gemma4 26B.A4B Q4_K - Medium | 15.83 GiB | 25.23 B | CUDA | 99 | 2048 | 1 | pp512 @ d4096 | 6167.37 ± 139.15 |
| gemma4 26B.A4B Q4_K - Medium | 15.83 GiB | 25.23 B | CUDA | 99 | 2048 | 1 | pp2048 @ d4096 | 8133.37 ± 20.77 |
| gemma4 26B.A4B Q4_K - Medium | 15.83 GiB | 25.23 B | CUDA | 99 | 2048 | 1 | pp8192 @ d4096 | 7917.81 ± 6.04 |
| gemma4 26B.A4B Q4_K - Medium | 15.83 GiB | 25.23 B | CUDA | 99 | 2048 | 1 | tg128 @ d4096 | 152.43 ± 0.12 |
| gemma4 26B.A4B Q4_K - Medium | 15.83 GiB | 25.23 B | CUDA | 99 | 2048 | 1 | pp512 @ d16384 | 5341.96 ± 97.21 |
| gemma4 26B.A4B Q4_K - Medium | 15.83 GiB | 25.23 B | CUDA | 99 | 2048 | 1 | pp2048 @ d16384 | 6711.26 ± 17.46 |
| gemma4 26B.A4B Q4_K - Medium | 15.83 GiB | 25.23 B | CUDA | 99 | 2048 | 1 | pp8192 @ d16384 | 6531.30 ± 1.77 |
| gemma4 26B.A4B Q4_K - Medium | 15.83 GiB | 25.23 B | CUDA | 99 | 2048 | 1 | tg128 @ d16384 | 145.13 ± 0.15 |
換成Gemma 4 31B
./llama-b11946/llama-bench -m gemma-4-31B-it-qat-UD-Q4_K_XL.gguf -ngl 99 -fa 1 -p 512,2048,8192 -n 128 -b 2048 -ub 25$ ,512,1024,2048 -d 0,4096,16384 -r 5 -o md
ggml_cuda_init: found 1 CUDA devices (Total VRAM: 32126 MiB):
Device 0: NVIDIA RTX PRO 4500 Blackwell, compute capability 12.0, VMM: yes, VRAM: 32126 MiB
load_backend: loaded CUDA backend from /home/ryan/llama-b11946/libggml-cuda.so
load_backend: loaded RPC backend from /home/ryan/llama-b11946/libggml-rpc.so
load_backend: loaded CPU backend from /home/ryan/llama-b11946/libggml-cpu-zen4.somodel size params backend ngl n_ubatch fa test t/s gemma4 31B Q4_0 16.09 GiB 30.70 B CUDA 99 256 1 pp512 1969.76 ± 1.69 gemma4 31B Q4_0 16.09 GiB 30.70 B CUDA 99 256 1 pp2048 1908.50 ± 1.86 gemma4 31B Q4_0 16.09 GiB 30.70 B CUDA 99 256 1 pp8192 1794.44 ± 7.13 gemma4 31B Q4_0 16.09 GiB 30.70 B CUDA 99 256 1 tg128 42.37 ± 0.01 gemma4 31B Q4_0 16.09 GiB 30.70 B CUDA 99 256 1 pp512 @ d4096 1813.26 ± 5.69 gemma4 31B Q4_0 16.09 GiB 30.70 B CUDA 99 256 1 pp2048 @ d4096 1753.69 ± 0.59 gemma4 31B Q4_0 16.09 GiB 30.70 B CUDA 99 256 1 pp8192 @ d4096 1646.64 ± 3.75 gemma4 31B Q4_0 16.09 GiB 30.70 B CUDA 99 256 1 tg128 @ d4096 39.99 ± 0.01 gemma4 31B Q4_0 16.09 GiB 30.70 B CUDA 99 256 1 pp512 @ d16384 1419.54 ± 3.06 gemma4 31B Q4_0 16.09 GiB 30.70 B CUDA 99 256 1 pp2048 @ d16384 1384.22 ± 0.29 gemma4 31B Q4_0 16.09 GiB 30.70 B CUDA 99 256 1 pp8192 @ d16384 1298.97 ± 1.38 gemma4 31B Q4_0 16.09 GiB 30.70 B CUDA 99 256 1 tg128 @ d16384 38.09 ± 0.01 gemma4 31B Q4_0 16.09 GiB 30.70 B CUDA 99 512 1 pp512 1929.71 ± 1.88 gemma4 31B Q4_0 16.09 GiB 30.70 B CUDA 99 512 1 pp2048 1880.64 ± 1.09 gemma4 31B Q4_0 16.09 GiB 30.70 B CUDA 99 512 1 pp8192 1788.48 ± 1.06 gemma4 31B Q4_0 16.09 GiB 30.70 B CUDA 99 512 1 tg128 42.52 ± 0.00 gemma4 31B Q4_0 16.09 GiB 30.70 B CUDA 99 512 1 pp512 @ d4096 1816.59 ± 4.58 gemma4 31B Q4_0 16.09 GiB 30.70 B CUDA 99 512 1 pp2048 @ d4096 1769.73 ± 0.88 gemma4 31B Q4_0 16.09 GiB 30.70 B CUDA 99 512 1 pp8192 @ d4096 1671.12 ± 0.52 gemma4 31B Q4_0 16.09 GiB 30.70 B CUDA 99 512 1 tg128 @ d4096 39.93 ± 0.01 gemma4 31B Q4_0 16.09 GiB 30.70 B CUDA 99 512 1 pp512 @ d16384 1492.13 ± 4.15 gemma4 31B Q4_0 16.09 GiB 30.70 B CUDA 99 512 1 pp2048 @ d16384 1457.76 ± 0.66 gemma4 31B Q4_0 16.09 GiB 30.70 B CUDA 99 512 1 pp8192 @ d16384 1387.63 ± 0.13 gemma4 31B Q4_0 16.09 GiB 30.70 B CUDA 99 512 1 tg128 @ d16384 38.07 ± 0.01 gemma4 31B Q4_0 16.09 GiB 30.70 B CUDA 99 1024 1 pp512 1920.71 ± 2.66 gemma4 31B Q4_0 16.09 GiB 30.70 B CUDA 99 1024 1 pp2048 1909.75 ± 1.02 gemma4 31B Q4_0 16.09 GiB 30.70 B CUDA 99 1024 1 pp8192 1812.84 ± 0.60 gemma4 31B Q4_0 16.09 GiB 30.70 B CUDA 99 1024 1 tg128 42.51 ± 0.01 gemma4 31B Q4_0 16.09 GiB 30.70 B CUDA 99 1024 1 pp512 @ d4096 1806.39 ± 15.47 gemma4 31B Q4_0 16.09 GiB 30.70 B CUDA 99 1024 1 pp2048 @ d4096 1789.10 ± 1.14 gemma4 31B Q4_0 16.09 GiB 30.70 B CUDA 99 1024 1 pp8192 @ d4096 1704.34 ± 0.58 gemma4 31B Q4_0 16.09 GiB 30.70 B CUDA 99 1024 1 tg128 @ d4096 39.93 ± 0.01 gemma4 31B Q4_0 16.09 GiB 30.70 B CUDA 99 1024 1 pp512 @ d16384 1482.96 ± 9.88 gemma4 31B Q4_0 16.09 GiB 30.70 B CUDA 99 1024 1 pp2048 @ d16384 1490.44 ± 1.40 gemma4 31B Q4_0 16.09 GiB 30.70 B CUDA 99 1024 1 pp8192 @ d16384 1415.65 ± 0.43 gemma4 31B Q4_0 16.09 GiB 30.70 B CUDA 99 1024 1 tg128 @ d16384 38.06 ± 0.01 gemma4 31B Q4_0 16.09 GiB 30.70 B CUDA 99 2048 1 pp512 1918.92 ± 2.04 gemma4 31B Q4_0 16.09 GiB 30.70 B CUDA 99 2048 1 pp2048 1895.71 ± 0.91 gemma4 31B Q4_0 16.09 GiB 30.70 B CUDA 99 2048 1 pp8192 1786.91 ± 0.29 gemma4 31B Q4_0 16.09 GiB 30.70 B CUDA 99 2048 1 tg128 42.50 ± 0.00 gemma4 31B Q4_0 16.09 GiB 30.70 B CUDA 99 2048 1 pp512 @ d4096 1794.37 ± 35.05 gemma4 31B Q4_0 16.09 GiB 30.70 B CUDA 99 2048 1 pp2048 @ d4096 1752.69 ± 0.64 gemma4 31B Q4_0 16.09 GiB 30.70 B CUDA 99 2048 1 pp8192 @ d4096 1682.18 ± 0.31 gemma4 31B Q4_0 16.09 GiB 30.70 B CUDA 99 2048 1 tg128 @ d4096 39.92 ± 0.01 gemma4 31B Q4_0 16.09 GiB 30.70 B CUDA 99 2048 1 pp512 @ d16384 1478.80 ± 24.32 gemma4 31B Q4_0 16.09 GiB 30.70 B CUDA 99 2048 1 pp2048 @ d16384 1484.30 ± 0.93 gemma4 31B Q4_0 16.09 GiB 30.70 B CUDA 99 2048 1 pp8192 @ d16384 1420.42 ± 0.80 gemma4 31B Q4_0 16.09 GiB 30.70 B CUDA 99 2048 1 tg128 @ d16384 38.07 ± 0.01 build: 8ca4060b7 (11946)
下面是Claude的分析
結果解讀
這組數據很穩定(標準差多在 1 以內),而且正好回答了你上一個問題。
1. 這個 dense 模型的 tg 已接近頻寬上限
dense 模型每生成 1 個 token 要讀完整份權重:
- 16.09 GiB ≈ 17.3 GB,乘上 42.5 t/s ≈ 734 GB/s
- 約為 896 GB/s 規格頻寬的 82%
實測通常很難到 100%,所以這張卡在這個模型上幾乎沒有再榨的空間。
對照 26B-A4B:我先前粗估它只用到約 390 GB/s(約 4 成多),差距很大。這支持先前的推測:MoE 的 tg 受限於 expert 路由與 kernel 開銷,而非頻寬。不過 390 是粗估值,結論方向可信,數字別當精確值。
2. ub 幾乎沒有影響
pp2048 在 ub 256 到 2048 之間只落在 1885 到 1910 之間,差距在 2% 內。這和 MoE 的結果(ub 256 到 2048 差了 1.86 倍)形成鮮明對比。
合理的解釋是:dense 的矩陣乘法本來就能用很小的 batch 餵飽 Tensor Core,不需要更大的 ub。MoE 則是每個 expert 分到的 token 很少,要靠大 ub 才能湊出足夠的批次。這是推論,但與兩組數據吻合。
在 d16384 時,ub 512 以上(約 1485~1490)比 ub 256(約 1420)略好,但幅度只有 5% 左右,用預設的 512 就夠了。
3. 長上下文衰減
項目 d0 d16384 衰減 pp8192(ub 2048) 1787 1420 約 -21% tg128 42.5 38.1 約 -10% 衰減比例和 26B-A4B 很接近(-23% 與 -11%),不過兩者的 attention 結構不同,這份數據不足以判斷原因。
4. 兩個模型並排
26B-A4B(MoE) 31B(dense) 倍率 pp2048(ub 2048) 8847 1896 約 4.7x tg128 162.4 42.5 約 3.8x MoE 的 tg 領先幅度(3.8x)低於它的活躍參數比(約 8 倍少),也呼應第 1 點:MoE 沒能把省下的頻寬完全轉成速度。
實務建議
- 要速度:26B-A4B 在這張卡上明顯快很多,日常互動與長 prompt 都更舒服。
- 要品質:31B 能以約 42 t/s 跑,對單人互動仍夠用,但長文 prefill(8K 約 4.5 秒)會明顯感覺到等待。
- 31B 想再提速:頻寬已近極限,只剩 speculative decoding 一途。可以用 26B-A4B 當 draft model 試試,兩者同為 Gemma 4 系列,詞表應相容,但接受率需要實測。
- llama-server 設定:31B 用預設
-ub 512即可,不必像 MoE 那樣特地調到 2048。
