Skip to content

Abyss v1.3.82 — 8 GB GPU でも動く・prompt がまとめて読める(issue #23)、CUDA の VRAM 予約を 1.5 GB に

Choose a tag to compare

@zephel01 zephel01 released this 30 Oct 23:19
· 88 commits to main since this release

8 GB クラスの GPU(issue #23: RTX A2000 Laptop 8 GB + メモリ 64 GB)への対応と、大きい CUDA カードの VRAM 不足の修正です。
まとめのページ: docs/SMALL-VRAM.ja.md(English)。

  • エキスパートの置き場(pool)が route より小さくても起動します。 GLM-5.3-Flash / Ornith は毎層 8 個のエキスパートを使います。
    以前は層あたり 8 個分の置き場がないと起動を拒否していましたが、いまは 4 個(STRATA_GLM_POOL_FLOOR)あれば動きます。
    足りない分は予備枠・scratch 枠と CPU レーンが受け持ちます。4 未満の拒否文には「何 MB 足りないか」と対処
    (--max-context、--kv q4_0、IQ4_XS の dense pack)が出ます。
  • 小さい置き場でも prompt をまとめて(chunk で)読みます。 以前は各層に 13 個を残したため、9 個程度の置き場では
    prompt が 1 トークンずつでした。いまは prompt の間だけ 4 個を残して残りを貸します(STRATA_GLM_PREFILL_KEEP)。
  • CPU がリンクより十分速いときは、CPU レーンが RAM 層のエキスパートを全部受け持ちます(STRATA_GLM_LANE_LEAN、4 倍)。
    置き場が落ち着いてから切り替わり、ヒット率が落ちたら戻ります。OCuLink / Gen4 x4 の箱や Gen5 x16 の R9700 は変わりません。
  • CUDA も 12 GB を超えるカードでは VRAM を 1.5 GB 空けておきます(HIP は v1.3.68 から同じ。以前は 700 MB)。
    RTX 5090 で DeepSeek V4.1 UD-IQ2_XXS を --max-context 65536 で動かすと、--bench が prompt の attention で、
    DSpark 付きのコーディング実行が MMQ のバッファで out of memory になっていました。12 GB 以下のカードは 700 MB のままです。
  • bench/ref に Ornith-1.5-122B IQ3_XXS-B(16G64G 版)の品質参照を追加(--bench の品質チェックが効きます)。

実測(RTX 5090、PCIe Gen4 x4、メモリ 94 GB。8 GB 機は報告者のログと同じ大きさの置き場を STRATA_GLM_POOL_GB で与えて再現):

v1.3.81 v1.3.82
Ornith-1.5-122B IQ3_XXS-B、置き場 1.45 GB — prompt 2K / 8K 46 tok/s(1 トークンずつ) 356 / 347 tok/s
同 — decode / 品質(16 GB 実行との KL) 48.3 tok/s / 0.0073 45.5 tok/s / 0.0073
GLM-5.3-Flash Maya-S-v2、置き場 1.2 GB(層あたり 4 個) 起動拒否 起動、decode 9.1 tok/s(SSD 律速)、KL 0.039
GLM-5.3-Flash、32 GB(既定のまま) decode 64.6 / 8K prompt 1105 64.1 / 1099(誤差内)
DeepSeek V4.1 UD-IQ2_XXS、64K 文脈 --bench out of memory で停止 decode 23.1 tok/s、8K prompt 357、KL 0.0086
同 + DSpark、コーディング 8 問 out of memory 64.9 tok/s

ノート PC のカードはリンクも CPU も違うので、同じ置き場でも数値は下がります。prompt の伸び(約 7.7 倍)が要点です。

更新: ダッシュボードの About > Update、または git pull のあと ./setup.sh(変わったところだけ再コンパイル)。


8 GB-class GPUs (issue #23: an RTX A2000 Laptop 8 GB + 64 GB RAM) and a VRAM fix for big CUDA cards.
One page for it: docs/SMALL-VRAM.md (日本語).

  • The expert pool may hold fewer slots a layer than a route. GLM-5.3-Flash and Ornith route 8 experts a token per
    layer; the engine used to refuse to start below 8 slots a layer. It now starts with 4 (STRATA_GLM_POOL_FLOOR): the
    rest of a route runs from spare / scratch slots and the CPU lane. The refusal below 4 says how many MB are short and
    what frees them (--max-context, --kv q4_0, the IQ4_XS dense pack).
  • Prompts in chunks on a small pool. The prompt path left every layer 13 slots, so a pool of ~9 read prompts token
    by token. Such a pool now keeps 4 while a prompt runs and lends the rest (STRATA_GLM_PREFILL_KEEP).
  • The CPU lane takes every RAM-tier expert when it is much faster than the link (STRATA_GLM_LANE_LEAN, 4x), once
    the pool has settled, and steps back when the hit rate falls. OCuLink / Gen4 x4 boxes and an R9700 on Gen5 x16 are
    unchanged.
  • CUDA keeps 1.5 GB of VRAM free on cards over 12 GB (as HIP since v1.3.68; 700 MB before). An RTX 5090 running
    DeepSeek V4.1 UD-IQ2_XXS at --max-context 65536 ran out of VRAM: --bench in the prompt attention, a coding run
    with the DSpark drafter in its MMQ buffers. Cards of 12 GB or less keep 700 MB.
  • bench/ref: a quality reference for Ornith-1.5-122B IQ3_XXS-B (the 16G64G quant), so --bench checks it.

Measured (RTX 5090, PCIe Gen4 x4, 94 GB RAM; the 8 GB cases get the reporter's pool size via STRATA_GLM_POOL_GB):

v1.3.81 v1.3.82
Ornith-1.5-122B IQ3_XXS-B, 1.45 GB pool - prompt 2K / 8K 46 tok/s (token by token) 356 / 347 tok/s
the same - decode / quality (KL vs a 16 GB run) 48.3 tok/s / 0.0073 45.5 tok/s / 0.0073
GLM-5.3-Flash Maya-S-v2, 1.2 GB pool (4 slots a layer) refused starts, decode 9.1 tok/s (SSD-bound), KL 0.039
GLM-5.3-Flash, 32 GB (defaults) decode 64.6 / 8K prompt 1105 64.1 / 1099 (within noise)
DeepSeek V4.1 UD-IQ2_XXS, 64K context, --bench stopped: out of memory decode 23.1 tok/s, 8K prompt 357, KL 0.0086
the same + DSpark, 8 coding tasks out of memory 64.9 tok/s

A laptop card has a narrower link and a different CPU, so expect lower numbers on the same pool; the prompt's ~7.7x
is the point.

Update: the dashboard's About > Update, or git pull then ./setup.sh (recompiles only what changed).