Raspberry Pi 5上でGemma4および複数の他モデルをベンチマーク

Reddit r/LocalLLaMA / 2026/4/6

💬 オピニオンDeveloper Stack & InfrastructureSignals & Early TrendsTools & Practical UsageModels & Research

要点

  • 著者はRaspberry Pi 5でGemma4およびいくつかの他のLLMをベンチマークし、ストレージをUSB経由で接続した場合と公式のM.2 HAT(PCIe)経由で接続した場合の推論/テキスト生成性能を比較している。
  • USB3からPCIeに切り替えることで、SSDの読み取りスループットが約2.2倍(読み取り速度がほぼ倍増)となり、スワップ付きでモデルを提供する場合におけるトークン/秒の推定で1.5倍〜2倍の改善につながる。
  • 試験構成は、標準のRaspberry Pi OS Lite(Trixie)、公式のアクティブクーラー、1TB SSDを使用し、スワップを半分、モデル格納を半分としている。さらに、プロンプト処理(pp512)とテキスト生成(tg128)の各ワークロードを切り替えて実行する。
  • PCIeによる性能向上は、PiのPCIe世代設定を調整(dtparam=pciex1_gen=3)することで得ており、同じHATを用いた他者の報告に近い最大レベルまでSSDの読み取りレートを引き上げている。
  • ベンチマークはllama.cppのllama-benchで、モデルサイズとコンテキスト長(約32kのコンテキストを含む)ごとに実施し、最小限のハードウェア調整での現実的な期待値を示している。
benchmarks of gemma4 and multiple others on Raspberry Pi5

皆さん、

これはアップデートです!数日前に、より大きなモデルを動かすためにSSDを使ったときのRaspberry Pi5の性能を示す投稿をしました。もっとも、当然のことながら、私が使っていたUSB3接続よりもPCIeの方が速いという指摘を何人かから受けたので、公式HATを購入しました。

結論(ネタバレ):予想通りです。読み取り速度が2倍になり、スワップを使うモデルでの推論とテキスト生成のtokens/secが1.5倍〜2倍向上しました。

セットアップを改めて書きます:

  • Raspberry Pi5(16GB RAM)
  • 公式アクティブクーラー
  • 公式M.2 HAT+ Standard
  • HAT経由で接続した1TB SSD
  • 標準のRaspberry Pi OS lite(Trixie)を使用

焦点はこの質問です:標準的な部品をいくつか買って、少しだけ工夫する程度で、どんな性能が期待できるのか? より大きいファン/クーラーをサードパーティから買う、オーバークロックやオーバーボルトをする、Orange Piのようなニッチな機器を買うこともできますが、そういう方向性ではありませんでした。そこで、標準のPiを選び、いじるのは最小限にして、同じことが多くの人にできるようにしました。

デフォルトではPiはGen2規格のPCIeインターフェースを使います(そのため、HAT使用時にSSDから得られた読み取り速度は約418MB/secでした)。dtparam=pciex1_gen=3をファイル「/boot/firmware/config.txt」に追記し、再起動してGen3を使えるようにしました。

SSDの読み取り速度は、(USBでの)360.18MB/secから2.2倍になり、HATを使って他の人が達成したのと同じように見える最大値まで上がりました。

$ sudo hdparm -t --direct /dev/nvme0n1p2 /dev/nvme0n1p2: Timing O_DIRECT disk reads: 2398 MB in 3.00 seconds = 798.72 MB/sec 

私のSSDは、半分をスワップ領域、半分をモデルの保存用パーティションにしています(ただし、これは他の場所でも構いません)。もちろん、RAMに収まるモデルならスワップは必要ありません。

私はこのコマンドで、すべてのモデルをベンチマークしました。プロンプト処理(pp512)とテキスト生成(tg128)を、0時点と(ほとんど全てで)32kコンテキスト時でテストしました:

$ llama.cpp/build/bin/llama-bench -r 2 --mmap 0 -d 0,32768 -m <all-models-as-GGUF> --progress | tee bench.txt 

以下は、アルファベット順にフィルタした結果です(例としてGLM4.7-Flashが、下層のdeepseek2アーキテクチャとして言及されていたため、名前を調整しています):

model size pp512 pp512 @ d32768 tg128 tg128 @ d32768
Bonsai 8B Q1_0 1.07 GiB 3.27 - 2.77 -
gemma3 12B-it Q8_0 11.64 GiB 12.88 3.34 1.00 0.66
gemma4 E2B-it Q8_0 4.69 GiB 41.76 12.64 4.52 2.50
gemma4 E4B-it Q8_0 7.62 GiB 22.16 9.44 2.28 1.53
gemma4 26B-A4B-it Q8_0 25.00 GiB 9.22 5.03 2.45 1.44
GLM-4.7-Flash 30B.A3B Q8_0 29.65 GiB 6.59 0.90 1.64 0.11
gpt-oss 20B IQ4_XS 11.39 GiB 9.13 2.71 4.77 1.36
gpt-oss 20B Q8_0 20.72 GiB 4.80 2.19 2.70 1.13
gpt-oss 120B Q8_0 59.02 GiB 5.11 1.77 1.95 0.79
kimi-linear 48B.A3B IQ1_M 10.17 GiB 8.67 2.78 4.24 0.58
mistral3 14B Q4_K_M 7.67 GiB 5.83 1.27 1.49 0.42
Qwen3-Coder 30B.A3B Q8_0 30.25 GiB 10.79 1.42 2.28 0.47
Qwen3.5 0.8B Q8_0 763.78 MiB 127.70 28.43 11.51 5.52
Qwen3.5 2B Q8_0 1.86 GiB 75.92 24.50 5.57 3.62
Qwen3.5 4B Q8_0 4.16 GiB 31.02 9.44 2.42 1.51
Qwen3.5 9B Q8_0 8.86 GiB 18.20 7.62 1.36 1.01
Qwen3.5 27B Q2_K_M 9.42 GiB 1.38 - 0.92 -
Qwen3.5 35B.A3B Q8_0 34.36 GiB 10.58 5.14 2.25 1.30
Qwen3.5 122B.A10B Q2_K_M 41.51 GiB 2.46 1.57 1.05 0.59
Qwen3.5 122B.A10B Q8_0 120.94 GiB 2.65 1.23 0.38 0.27

build: 8c60b8a2b (8544) & b7ad48ebd (8661 because of gemma4 )

完全を期すために、llama-benchの出力結果全文をコメント欄に載せます。

このリストにはBonsai8Bが含まれています。私はllama.cppのフォークをビルドして、それでテストしました。何か間違っているのかもしれませんし、計算がARM CPU向けに本当に最適化されていないのかもしれませんが、そこまでは分かりません。このモデルをこれ以上掘り下げるつもりはありませんが、入れてほしいと言われたので入れました。

いくつかの観察と所見:

  • CPU温度は、RAMに完全に収まる小型モデルではおよそ~75°Cでした
  • CPU温度は、Qwen3.5-35B.A3B.Q8_0のようなスワップが必要なモデルではおよそ~65°Cで、負荷は50〜100%の間で跳ねました
  • --> HATなしの以前のテストと比べて、RAMでは+5、スワップでは+15°Cです。これは、いまは風の通り道がより制限され、CPU負荷が高くなったためです
  • もう一つ意外性のない点:アクティブなパラメータが多いほど遅くなります。密なモデルは特に速度が厳しく、たとえばQwen3.5 27Bのようなものです。
  • ik_llamaをコンパイルしようとしましたがコードエラーで失敗したため、それをテストできず、まだ動くようにする時間もありませんでした。
  • 私のテストから必要なものを持っていってください。私はこの小さなポテトを手に入れられて嬉しいですし、いろいろ試すのが楽しみです。需要があれば、他のモデルもテストできます。

    質問があれば、コメントするか私に書いてください。 :)

    編集 2026-04-05: gpt-oss 120b に対する 32k-results を追加

    submitted by /u/honuvo
    [link] [comments]