Founder of https://mistyreverie.org/ Misskey instance.

Linuxer, Pythoner, Kickstarter Backer, PC Gamer. #FFXIV :14_WhiteMage: :14_Dancer: :14_Paladin: player. #gposers

個人檔案背景圖像是我在 #FF14 使用的主要角色。 https://mistyreverie.org/notes/a6nw5iglg6c600k2

打雜網管工程師&業餘Django+Vuejs工程師 #Taiwanese #Taiwan

  • 38 Posts
  • 1 Comment
Joined 1 year ago
cake
Cake day: June 30th, 2025

help-circle
  • 換成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。