概要
Google DeepMindが2026年4月に公開した軽量オンデバイス向けモデル「Gemma 4 E4B-it」を用いて、自作ゲーミングPC(RTX 4060 Ti + Ryzen 7 7700X)と、2019年発売のビジネスノートPC「ThinkPad E495」との間で、ローカル推論のtokens/secを比較した。結果、デスクトップCPU(Zen 4)がGPU(RTX 4060 Ti)をわずかに上回るという興味深い逆転現象が観測された一方、E495のCPU(Zen+世代)は両者を大きく下回った。本稿では、その差を生んだ要因について、公開情報から確認できる範囲で考察する。ただし、内部処理の詳細までは検証できていない点が多く、断定的な結論は避け、仮説の提示にとどめる。
そもそもビズネス用PCは推論で使用するべきでないというのは留意したうえで実施。
1. はじめに
近年、パラメータ数を絞り込んだLLMをローカル環境(PCやスマートフォン)で直接実行する動きが広がっている。Googleが2026年4月2日に公開したGemma 4シリーズもその流れに位置づけられ、E2B/E4B/12B/26B A4B/31Bという5サイズが用意されている。このうちE4Bは「実効(effective)パラメータ数」で約4.5B相当とされ、Per-Layer Embeddings(PLE)という仕組みにより、ディスク上のパラメータ規模に対して実行時のメモリ・計算負荷を抑える設計になっている。つまりE4Bは、もともと「非力な端末でも動かす」ことを想定して作られたモデルである。
以前、自作PC(RTX 4060 Ti + Ryzen 7 7700X構成)のスペック紹介記事を投稿した。今回はその対極として、2019年発売のエントリー〜ミドルクラスのビジネスノートPCである ThinkPad E495 を用意し、「オンデバイス向けを謳うモデルは、実際にどれくらい非力なマシンまで許容できるのか」を確認することを目的とした。
2. 検証環境
2.1 モデル・推論条件
| 項目 | 内容 |
|---|---|
| モデル | google/gemma-4-E4B-it(ローカル保存済みのモデルをlocal_files_only=Trueで読み込み) |
| 推論ライブラリ | Hugging Face Transformers |
| データ型 | torch.bfloat16 |
| 入力トークン数 | 38 |
| max_new_tokens | 512 |
| 測定範囲 |
model.generate()のみ(モデルロードやCUDA初期化の時間は含まない) |
2.2 比較対象マシン
| # | マシン | CPU/GPU | 備考 |
|---|---|---|---|
| A | 自作PC(GPU実行) | NVIDIA GeForce RTX 4060 Ti | 前回記事で紹介した構成 |
| B | 自作PC(CPU実行) | AMD Ryzen 7 7700X(Zen 4) | 同一機でGPUを使わず実行したものと推定 |
| C | ThinkPad E495(CPU実行) | AMD Ryzen 3000シリーズ Mobile(Zen+, 型番未確認) | 検証機 |
※ B・Cの機種特定は、実行ログに残るAMD64 Family X Model Y Stepping Zという文字列(WindowsのCPUID由来の識別子)から、AMDの世代とCPUID範囲の対応関係を突き合わせて推定したものである。ログに機種名そのものが記録されているわけではないため、状況証拠による推定である点に留意されたい。特にCについては、E495が採用するRyzen 3 3200U/Ryzen 5 3500U/Ryzen 7 3700Uのいずれであるかまでは、この情報だけからは判別できない。正確な型番を記事に明記する場合は、タスクマネージャーやwmic cpu get name等で別途確認することを推奨する。
3. 結果
| マシン | デバイス | 推論時間 | 生成速度 |
|---|---|---|---|
| A(自作PC) | GPU (RTX 4060 Ti) | 186.838秒 | 2.740 tokens/sec |
| B(自作PC) | CPU (Ryzen 7 7700X 推定) | 163.019秒 | 3.141 tokens/sec |
| C(E495) | CPU (Ryzen 3000 Mobile 推定) | 588.127秒 | 0.871 tokens/sec |
いずれも入力38トークン・生成512トークン(max_new_tokens到達)で揃っており、条件面での比較可能性は担保されていると考えられる。
4. 考察
4.1 デスクトップCPU(B)がGPU(A)をわずかに上回った点について
直感的にはGPUの方が高速になりそうだが、今回はCPU実行の方がわずかに速いという結果になった。可能性のひとつとして、Ryzen 7000シリーズ(Zen 4、Bの推定CPU)はAVX-512に加え、bfloat16演算専用のavx512_bf16命令をハードウェアレベルでサポートしていることが挙げられる。一方、AVX-512に対応しないCPUでbfloat16推論を行うと、内部的にfloat32へのキャスト処理を挟むためfloat32推論より遅くなる事例が実際に報告されている。Zen 4がこの専用命令を持つことは、CPU側が想定より健闘した一因になり得ると考えられる。
ただし、これはあくまで一つの仮説である。GPU側が相対的に振るわなかった理由については、
- バッチサイズ1・生成トークン数512という条件下でのカーネル起動オーバーヘッド
- Gemma 4が採用するハイブリッドアテンション(ローカルスライディングウィンドウ+グローバルアテンション)や投機的デコード用のドラフトモデル構成が、使用したTransformers実装上でどの程度最適化されていたか
など複数の要因が考えられるものの、gemma4_e4b_it_speed_test.py側のgenerate()呼び出し設定(KVキャッシュの扱い、サンプリング設定など)を確認しない限り、原因を一つに絞り込むことはできない。この点は推測の域を出ておらず、要検証である。
4.2 E495(C)が大きく劣った点について
Cは他の2条件と比べて生成速度が約1/3〜1/4程度に留まった。要因として考えられるのは、
- E495が搭載するZen+世代のCPUはAVX-512命令セット自体を持たない
- そのため上記のbfloat16→float32変換のオーバーヘッドが、Zen 4以上に大きく効いた可能性がある
- さらにモバイル向け設計(TDP15W前後)であり、デスクトップ向けCPU(Ryzen 7 7700XはTDP105W級)と比べて演算リソースそのものが少ない
という複数の要因が重なった結果と考えられる。ただし、これらの寄与度を切り分けるには、同一CPUでfloat32実行した場合の速度など、追加の比較データが必要である。本稿の時点ではその検証を行っていないため、あくまで複合的な仮説の提示にとどめる。
4.3 本検証の限界
- 各条件とも試行回数が1回のみであり、実行ごとのばらつき(サーマルスロットリング、バックグラウンドプロセスの影響等)は考慮していない。
- B・Cの機種特定はCPUID由来の間接的な推定であり、実行ログに機種名そのものの記録はない。
- 推論スクリプトの内部実装(
generate()のパラメータ、KVキャッシュ設定など)を確認できておらず、速度差の原因を完全に切り分けられていない。 - E495側の正確なCPUグレード(Ryzen 3/5/7 3x00U)は未確認である。
5. まとめ
Gemma 4 E4B-itをローカル環境で実行した結果、自作PC(RTX 4060 Ti / Ryzen 7 7700X)ではCPU・GPUともに毎秒2〜3トークン程度の生成速度が得られたのに対し、2019年発売のビジネスノートPC ThinkPad E495 では約0.87 tokens/secと、実用速度としてはかなり厳しい結果となった。E4Bは「実効パラメータ約4.5B」というオンデバイス志向のモデルではあるが、Zen+世代のようにAVX-512非対応かつ低TDPのCPUでは、bfloat16精度での推論は依然として重い処理になり得ると考えられる。今回の検証は限定的なものであり、CPU型番の確定や、float32実行との比較、複数回試行によるばらつきの評価など、今後検証すべき課題は多く残っている。
参考
- 前回記事:このPC構成、実際どうなの?—RTX 4060 TiとRyzen 7 7700Xで挑む!
- Gemma 4 モデルカード(Google AI for Developers)
- google/gemma-4-E4B-it(Hugging Face)
- AMD Zen 4 AVX-512 Performance Analysis(Phoronix)
- Bfloat16 CPU inference speed is too slow on AMD cpu(PyTorch Forums)
