🐋

Ryzen + 128 GB で DeepSeek-R1 671B 1.58bit(130GB) 味見(0.4 toks/sec)

に公開

猫も杓子も DeepSeek-R1

https://www.reddit.com/r/LocalLLaMA/comments/1ibbloy/158bit_deepseek_r1_131gb_dynamic_gguf/

1.58bit 版(130GB)を味見しました.

HW

  • Ryzen 3950X
  • DDR4 3200MT/s 128GB
  • Linux(Ubuntu)
  • Gen4 NVMe disk(2 GB/s くらいはでる)

kswapd(メモリスワップ)発生しつつも, 動きました.

https://x.com/syoyo/status/1885777923430625284

仮想メモリ全体では 150 GB くらい使う模様.

llama_perf_sampler_print:    sampling time =      23.62 ms /   286 runs   (    0.08 ms per token, 12109.92 tokens per second)
llama_perf_context_print:        load time =  139922.68 ms
llama_perf_context_print: prompt eval time =  421935.55 ms /    15 tokens (28129.04 ms per token,     0.04 tokens per second)
llama_perf_context_print:        eval time =  719826.03 ms /   277 runs   ( 2598.65 ms per token,     0.38 tokens per second)
llama_perf_context_print:       total time = 1145131.18 ms /   292 tokens

ただ 0.4 toks/sec くらい. 実用に使うには難しいですね. より高速な NVMe にしたり, NVMe 複数用意して swap 領域を stripe した NVMe 領域にする手もあるでしょうが, よくて 0.6 toks/sec くらいまでの性能向上でしょうか.

M4 Max では実用に使えるくらいの 5 toks/sec くらいでるらしい(メモリ帯域 500GB/s)ので, メモリ帯域の差がそのまま出ている感じですかね(DDR4 は 20~40 GB/s くらい)
DDR5 使ったとしても, たぶんよくて性能向上は二倍(DDR5 は 40~80 GB/s くらい)です.

あと, 最初の参考にした reddit 投稿では 2 x H100 では 14 toks/sec(single user inference ) 出るとあります.
H100 は bandwidth 3.3 TB/s ですから, 2xH100 では 6.6 TB/s.

H100 では bandhwidth ほどの差がでていないのが気になります(30~40 toks/sec くらいでてほしい).

とりあえず 1 人対応(バッチ処理や複数ユーザー同時対応せず, single user とのインタラクション)であれば CPU 系で bandwidth 高いアーキが効率よい感じですかね.
(やはり富岳...!!!)

現時点では M2 Ultra や M4 Max, これからであれば Strix Halo(Ryzen AI Max. 256GB/s), GB10(NVIDIA DIGITS. 500GB/s)あたりに期待でしょうか.

その他

8 x M4 Mac mini 64GB で DeepSeek-R1 671B 4bit が 5 toks/sec

https://blog.exolabs.net/day-2/

Discussion