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
  • Ryan He@lemmy.mistyreverie.orgOPM
    link
    fedilink
    arrow-up
    1
    ·
    14 days ago

    換成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.so

    model 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。