0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Qwen3.5:9bの1kトークンは0.7Wh、RTX 4070で187W実測

0
Last updated at Posted at 2026-11-10

ローカル LLM の電気代が気になる方へ。

RTX 4070 で Qwen 3.5:9b を回したとき、1,000 トークンの生成に 0.708 Wh を消費しました。GPU 単体の平均は 187.5W。J/token は 2.55 です。26 ¥/kWh で換算すると、1,000 トークンあたり約 0.018 円。1 回の返答で使うであろう 1k〜2k トークンを現実的なコストに置き直す目的で、nvidia-smi に 500 ms 間隔で記録を取らせた記録です。

正直、動かし始めは「ワットなんて最初から表示されてるし、わざわざ測ることでもないだろう」と思っていました。測ってみて、電気代より先に J/token という単位のありがたみに殴られた、という順の記事です。

Qwen 3.5:9b の 1k トークンは 0.7Wh、RTX 4070 で 187W 実測 — GPU 平均 187W / 1kトークン 0.7Wh / 2.55 J/token

qwen3.5:9b は、1,500 トークン生成で 187.5W

まず結果を置きます。計測は 2 回。

モデルは qwen3.5:9b (Ollama、temperature 0、think off)。生成トークン数は 1,500。nvidia-smi -lms 500 で GPU の power.draw を記録し、GPU 使用率 20% 以上のサンプル平均を取りました。

model tok/s GPU 平均 J/token Wh/1k トークン
qwen3.5:9b (run1) 73.6 187.5W 2.55 0.708
qwen3.5:9b (run2) 74.4 183.0W 2.46 0.683
qwen3.5:35b-a3b 10.2 21.6W — 無効

run1 と run2 の差は 4.5W / 0.025 Wh。平均を取ると、1k トークンの生成で約 0.7 Wh。2.55 J/token です。

RTX 4070 の公称 TDP は 200W なので、187.5W は 93% の負荷に相当します。VRAM 12GB に 9B (Q4_K_M) が綺麗に載って、GPU 使用率がほぼ 100% で貼り付いた状態の値です。

35B-A3B の 21.6W は、省電力ではなく「GPU が待機しているだけ」

同じ日に 35B-A3B (qwen3.5:35b-a3b) も計測しました。結果は 10.2 tok/s / 21.6W。

表面だけ見ると「9B より省電力」に見えますが、これは誤読です。恥ずかしながら、最初に数字を眺めたときは「35B のほうが電気も食わないのか、えらいな」と素直に思いました。

35B-A3B は VRAM 12GB に収まらず、CPU にオフロードされています。計算の大半は CPU 側で、GPU はほぼ待機状態 (21.6W) です。nvidia-smi で測った値は、GPU がやった仕事の電力であって、計算全体の電力ではありません。J/token が「無効」になっているのは、この分母ずれを隠さないためです。

本記事は GPU 単体の値だけを扱うので、35B-A3B の値はこれ以上は使いません。「軽量 9B のほうが、GPU 全体を使い切る」逆転の数字として表に残しておきます。

1k トークンの電気代は、約 0.018 円

J/token の 2.55 を、Wh/1k トークンに直すと 0.708 Wh。日本の家庭向け電力単価の目安 26 ¥/kWh で掛け合わせると、1,000 トークンあたり約 0.018 円です。

実感に置き直します。

  • 1 回の返答で 2,000 トークン使ったとして、約 0.037 円
  • 1 日 100 返答回しても、約 3.7 円
  • 1 ヶ月、毎日 100 返答回し続けて、約 111 円

これは GPU 単体の値で、CPU・メモリ・電源ロス・ディスプレイ・冷却ファンの電力は含みません。壁コンセントの値ではない点は、本記事の重要な前提です。それでも、GPU の計算部分だけ見れば「クラウド LLM の API を叩いているつもりの金額」とは、別の桁で動くのが分かる水準です。

参考に、Claude Code Max の月額 $200 (約 30,000 円) で言うと、本記事の 9B の 1k トークンコストの約 160 万倍です。もちろん 9B と Claude のモデル規模は全く違うので、ただの価格比較としての参考値です。「同じ質の返答」ではないことは念押しします。

逆の方向で考えると、月額 30,000 円を 1k トークン 0.018 円で割れば、約 16.6 億トークンを 9B で生成できる計算になります。1 ヶ月 30 日 × 24 時間を 73 tok/s でぶん回しても約 1.9 億トークンなので、現実的には GPU の稼働時間のほうが先に上限に当たります。「コストが安い代わりに、使える時間に上限がある」の構造です。クラウド LLM と手元 LLM は、課金軸が「クエリ単価」と「時間 × 速度」で違います。

なぜ 93% 負荷が張り付くのか

GPU 使用率 100% 近くで平均 187.5W、という数字は、「VRAM に綺麗に収まる」+「ボトルネックが GPU 計算にある」の 2 条件が揃うと出ます。

  • 9B は Q4_K_M 量子化で約 5.4GB。KV キャッシュを足しても 12GB 内に収まります
  • CPU オフロードが発生しないので、PCIe 経由のメモリ転送の待ちがありません
  • 1,500 トークンの連続生成は、推論ループが途切れないので GPU がアイドルに落ちません

逆に、CPU オフロードが入ったり、プロンプトを 1 文字ずつ送るような使い方だと、GPU 使用率は上下して、平均電力はこれより下がります。「アイドル時間を減らすほど、電力は高く、J/token は小さくなる」逆比例の関係です。

nvidia-smi -lms 500 の 500ms 間隔は、GPU の瞬間値をそれなりに拾える粒度です。1 秒間隔だと、1,500 トークンの生成 (約 20 秒) で 20 サンプルしか取れず、山と谷が平均に混ざります。500ms で約 40 サンプル取れると、負荷が張り付いた区間の平均を安定させられます。

J/token は、W より扱いやすい

ローカル LLM の電力の話は、W (ワット) で語られがちです。「35B は 42W、9B は 187W」のように。

ただ、W は瞬間値であって、推論の「仕事量に対する電力」ではありません。生成速度が遅ければ、同じ W でも電力は多く使います。

J/token (ジュール毎トークン) は、1 トークン生成するのに使ったエネルギーの絶対量です。本記事では 2.55 J/token。

この値は、tok/s と W から次の式で出ます。

J/token = W / tok/s
       = 187.5 / 73.6
       = 2.547...

tok/s が倍になっても、W が倍にならないなら J/token は下がります。つまり、量子化や投機的デコードで速度を上げる施策は、速度の数字と同じだけ「エネルギー効率」を押し上げます。この視点は、電気代の月額比較より、実装選定の判断材料として使えます。

既公開記事との棲み分け

本記事と、同じ RTX 4070 で測った既公開 2 本の役割を整理しておきます。

記事 軸 代表値
Qwen 35B は平均 42W で動く 35B・4 パターン 平均 42W、構成差を見る
RTX 4070 で 90 日連続稼働の電気代を気温別に測った 季節積算 夏と冬で約 2 倍差
本記事 (9B の 1k トークンは 0.7Wh) 瞬間値・J/token 187.5W、0.708 Wh

35B 側は平均 42W。9B は平均 187.5W で、35B のほうが低く見えるのは「ほとんどが CPU 計算で、GPU 側は小さい」ためです。本記事と並べて読むと、GPU の電力計だけで「ローカル LLM の電気代」を語る怖さが見えてきます。

計測を再現する最小構成

同じ計測を手元で回すのに、特別なツールは要りません。Ollama と nvidia-smi だけで足ります。

# 別ターミナルで power.draw を記録
nvidia-smi \
  --query-gpu=timestamp,power.draw,utilization.gpu \
  --format=csv -lms 500 > power.csv &

# 1,500 トークンを生成 (temperature 0, think off)
ollama run qwen3.5:9b \
  --format json \
  "<<<プロンプト>>>"

# 記録を止める
kill %1

生成後、power.csv から utilization.gpu が 20% 以上の行を取り出して、power.draw の平均を取ります。tok/s は Ollama の --verbose でも返るし、生成した JSON を見ても分かります。J/token は W / tok/s。Wh/1k トークンは (J/token × 1000) / 3600 で換算できます。

nvidia-smi の timestamp は秒まで出せますが、ms が欲しい場合は --query-gpu に timestamp 以外のオプションを足すか、カラムの先頭に date -Ins を挟む方法があります。本記事ではサンプリング間隔 500ms で十分だったので、timestamp は秒単位のまま使っています。

実測範囲と限界

  • GPU 単体の値、CPU・メモリ・電源ロスは含みません (壁コンセントの値ではない)
  • 35B-A3B の値は無効です (CPU オフロード、GPU は待機)
  • 1,500 トークン生成 × 2 回の実測。長い生成 (10k トークン等) では放熱で平均が下がる可能性があります
  • nvidia-smi 500ms 間隔、GPU 使用率 20% 以上のサンプルで平均。プロンプト処理の短い山は平均に入りにくい設計です
  • 計測前の待機電力は 9.3W。この分は差し引いていません (サンプリング対象外)
  • 単価 26 ¥/kWh は 2026 年時点の日本の家庭向け目安。契約で異なります

まとめ

  • RTX 4070 で Qwen 3.5:9b を回したとき、GPU 単体の平均は 187.5W、1k トークンの生成に約 0.708 Wh を使いました
  • J/token は 2.55、1k トークンの電気代は約 0.018 円 (26 ¥/kWh 換算)
  • GPU 使用率はほぼ 100% で貼り付き、VRAM 12GB に 9B (Q4_K_M) が収まる状態の値です
  • 35B-A3B の 21.6W は CPU オフロードによる GPU 待機で、J/token は無効扱いです
  • GPU 単体の値で、壁コンセントの値ではありません

測定条件

本記事は iris-lab/experiments/045-local-llm-power-draw/README.md の実測結果と、Ollama および nvidia-smi 公式ドキュメントの再構成です。新規実測は行っていません。

  • 計測日: 2026-10-21
  • 環境: RTX 4070 12GB、Ollama、Salad 停止、待機電力 9.3W
  • 設定: temperature 0、think off、1,500 トークン生成
  • 計測: nvidia-smi -lms 500 で power.draw を記録、GPU 使用率 20% 以上のサンプル平均
  • 対象: qwen3.5:9b (Ollama、Q4_K_M)、qwen3.5:35b-a3b (比較用、35B-A3B は無効値)

続きはこちら

同じ RTX 4070 で、2 フラグ (CPU-MoE / KV 量子化) と速度・品質のトレードオフを 7 問の品質チェックつきで並べた記事があります。瞬間値を見た次は、速度と品質を見るのが順です。

ローカルLLMを2フラグで34.6 tok/s


RAG・MCP・ローカルLLM を実際に動かして測った記事を書いています。続きが気になる方は Qiita でフォロー してもらえると、次の記事が届きます。

本書では、Qwen 35B を RTX 4070 で動かすための設定・測定・運用を一通り扱いました。第4章「計測の作法」で、本記事のような瞬間値を取る前に汚れを避けるための作り方 (tok/s の測り方、VRAM の状態管理) を書いています。

RTX 4070 で動かすローカル LLM 実践ガイド

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?