⚡️

RTX 3060の最適な電力制約を検討する

に公開

はじめに

最近RTX 5090を欲しいと思いつつ、575Wの消費電力は色々と怖いので450Wぐらいで動かせたら多少安心できそうと思うようになった。

しかし、電力制約はどうやって設定変更できるんだっけ?BIOSから?まあ買う前に調べればいいやと思っていたのだが、いつも参考にさせていただいているやかもち@ちもろぐさんの投稿で、電力制約の変更が簡単にできることがわかった。

https://x.com/gosrum/status/1969744945050468767

上記の通り、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
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
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