UbuntuでGPUの消費電力を制限して温度を下げる

GPUに負荷をかけると想像以上に発熱し、PCケースによっては排熱が追いつかない場合がある。

また、GPUを増設したい場合に電源容量が不足している場合、無理やり増設してしまうと電力不足でPC落ちてしまう可能性がある。

GPUのTDPを制限する方法を調べてみた所、nvidia-smiで簡単に出来ることが分かった。

TITAN RTXはデフォルトだと280W

nvidia-smiでpower limitを行う。

もしGPUを複数台積んでいればidも指定する。

-pl, –power-limit=POWER_LIMIT

Specifies maximum power limit in watts. Accepts integer and floating point numbers. Only on supported devices from Kepler family. Requires administrator privileges. Value needs to be between Min and Max Power Limit as reported by nvidia-smi.

-i, –id=ID

Display data for a single specified GPU. The specified id may be the GPU’s 0-based index in the natural enumeration returned by the driver, the GPU’s board serial number, the GPU’s UUID, or the GPU’s PCI bus ID (as domain:bus:device.function in hex). It is recommended that users desiring consistency use either UUID or PCI bus ID, since device enumeration ordering is not guaranteed to be consistent between reboots and board serial number might be shared between multiple GPUs on the same board.

試しに1割減らしてみる。

$ sudo nvidia-smi -i 0 -pl 252
Power limit for GPU 00000000:19:00.0 was set to 252.00 W from 280.00 W.
All done.

ちゃんと変更された

tensorflowでEfficientNetを動かしている途中で電力制限を書けてみたが、特に学習速度が変わることは無かった。

ゲームやマイニングだと性能に影響が出るのかも?

再起動すると設定が戻るので、/etc/rc.localやcrontabに登録しておくと起動時に変更されて手間が省ける。

参考

NVIDIA System Management Interface
A command line utility to help manage and monitor NVIDIA GPU devices.

コメント

タイトルとURLをコピーしました