RTX 3060の最適な電力制約を検討する
はじめに
最近RTX 5090を欲しいと思いつつ、575Wの消費電力は色々と怖いので450Wぐらいで動かせたら多少安心できそうと思うようになった。
しかし、電力制約はどうやって設定変更できるんだっけ?BIOSから?まあ買う前に調べればいいやと思っていたのだが、いつも参考にさせていただいているやかもち@ちもろぐさんの投稿で、電力制約の変更が簡単にできることがわかった。
上記の通り、Ubuntuでも簡単に変更することができた。
この記事では、再起動時に設定を自動的に変更する方法と、RTX 3060での最適な電力制約についての検討をまとめる。
環境
電力制約の確認・設定
やかもち@ちもろぐさんの投稿を参考に、Ubuntuでのコマンドを備忘録的にまとめておく。
- 現状の電力制約の確認
デフォルトの電力制約は170Wであることがわかる。
$ nvidia-smi
Mon Sep 22 09:51:29 2025
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 580.65.06 Driver Version: 580.65.06 CUDA Version: 13.0 |
+-----------------------------------------+------------------------+----------------------+
| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+========================+======================|
| 0 NVIDIA GeForce RTX 3060 On | 00000000:01:00.0 Off | N/A |
| 97% 67C P2 50W / 170W | 1403MiB / 12288MiB | 0% Default |
| | | N/A |
+-----------------------------------------+------------------------+----------------------+
+-----------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=========================================================================================|
| 0 N/A N/A 251265 C .../AI/ComfyUI/.venv/bin/python3 1336MiB |
| 0 N/A N/A 277135 G /usr/lib/xorg/Xorg 4MiB |
+-----------------------------------------------------------------------------------------+
- 電力制約の設定可能範囲の確認
$ nvidia-smi -q -d POWER
==============NVSMI LOG==============
Timestamp : Mon Sep 22 10:59:09 2025
Driver Version : 580.65.06
CUDA Version : 13.0
Attached GPUs : 1
GPU 00000000:01:00.0
GPU Power Readings
Average Power Draw : 20.85 W
Instantaneous Power Draw : 20.90 W
Current Power Limit : 170.00 W
Requested Power Limit : 170.00 W
Default Power Limit : 170.00 W
Min Power Limit : 100.00 W
Max Power Limit : 212.00 W
Power Samples
Duration : 105.53 sec
Number of Samples : 119
Max : 21.93 W
Min : 20.83 W
Avg : 21.27 W
GPU Memory Power Readings
Average Power Draw : N/A
Instantaneous Power Draw : N/A
Module Power Readings
Average Power Draw : N/A
Instantaneous Power Draw : N/A
Current Power Limit : N/A
Requested Power Limit : N/A
Default Power Limit : N/A
Min Power Limit : N/A
Max Power Limit : N/A
- 電力制約の設定
100W〜212Wまで設定できるらしいので、試しに120Wに設定してみる。
$ sudo nvidia-smi -pl 120
[sudo] gosrum のパスワード:
Power limit for GPU 00000000:01:00.0 was set to 120.00 W from 120.00 W.
All done.
再度チェックする。
$ nvidia-smi
Mon Sep 22 11:24:40 2025
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 580.65.06 Driver Version: 580.65.06 CUDA Version: 13.0 |
+-----------------------------------------+------------------------+----------------------+
| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+========================+======================|
| 0 NVIDIA GeForce RTX 3060 On | 00000000:01:00.0 Off | N/A |
| 89% 67C P2 120W / 120W | 11069MiB / 12288MiB | 100% Default |
| | | N/A |
+-----------------------------------------+------------------------+----------------------+
+-----------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=========================================================================================|
| 0 N/A N/A 251265 C .../AI/ComfyUI/.venv/bin/python3 11002MiB |
| 0 N/A N/A 277135 G /usr/lib/xorg/Xorg 4MiB |
+-----------------------------------------------------------------------------------------+
以上で電力制約を120Wに設定することができた。ComfyUIでの動画生成中に電力を120W以下に抑えられていることがわかる。
電力制約の自動設定方法
上記の設定では、再起動後にデフォルトの電力制約値に戻ってしまう。
そのため、ここでは再起動後も設定を継続させるための方法を書き留めておく。
初期設定
- サービスファイルの作成
# サービスファイルの作成前に、nvidia-smiのフルパスを確認する
$ which nvidia-smi
/usr/bin/nvidia-smi
# 確認したパスを使ってサービスファイルを作成する
$ sudo nano /etc/systemd/system/nvidia-power-limit.service
[Unit]
Description=NVIDIA GPU Power Limit
After=multi-user.target
[Service]
Type=oneshot
ExecStart=/usr/bin/nvidia-smi -pl 120
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
- サービスを有効化・開始
$ sudo systemctl enable nvidia-power-limit.service
$ sudo systemctl start nvidia-power-limit.service
更新時
値を更新するときは、下記のコマンドを実行すれば良い。
- サービスファイルの修正
$ sudo nano /etc/systemd/system/nvidia-power-limit.service
[Unit]
Description=NVIDIA GPU Power Limit
After=multi-user.target
[Service]
Type=oneshot
ExecStart=/usr/bin/nvidia-smi -pl 150 # 120 → 150 に変更
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
- systemd に変更を反映し、サービスを再起動
$ sudo systemctl daemon-reload
$ sudo systemctl restart nvidia-power-limit.service
以上で、再起動後も設定が自動的に反映されるようになった。
最適な電力制約値の検討
デフォルトの170Wをベースラインとしたときの、Wan2.2-Animate-14Bの動画生成時間を計測し、2つのグラフをプロットしたものが下記の図である。
生成時間の電力制約依存性
- 誤差の範囲内だと思うが、170Wよりも160Wの方が生成時間が短かった。
- 150Wぐらいまでは、ほぼパフォーマンスが変化していない。
電力量の電力制約依存性
- 同じタスクをこなすのに必要な電力量(電気代)は、電力制約を小さくするほど単調に減少する。
結論
今回計測した値から、タイプごとに設定すべき電力消費量をまとめた。
タイプ | 電力消費量 |
---|---|
とにかく電気代を抑えたい | 100W〜110W |
バランスタイプ | 120W〜140W |
パフォーマンス重視 | 150W〜160W |
私はとりあえず120Wに設定することにした。今後速さが気になるようになったら150Wまで上げるかも知れない。寝てる間にガチャを回す場合等は100Wでも良さそう。
まとめ
本記事では、下記についてまとめました。
-
UbuntuでNVIDIA GPUの電力制約を確認・設定する方法
-
再起動時の自動設定方法
-
RTX 3060の最適な電力制約の検討
電力が心配でRTX 5090を買うのを敬遠していたのですが、450Wぐらいまで電力を抑えられれば少しだけ安心して使えるようになると思い、俄然買いたいという気持ちが強くなりました。
まあDGX Sparkのレビューを見るまではさすがに買わないと思いますが、他の選択肢として狙っているRTX 5070Ti Superの発売まで待てるかが心配になってきました。
ここまで見ていただきありがとうございました。次回もぜひ、よろしくお願いします。
Discussion