ディープラーニング(以下DL)で長時間学習を続けていると、エアコンをつけていてもPC回りが”モワーっ”として困ってしまいます。
それを避けるために、夏場はGPUの電力制限をして使っていました。
最近になって「どのくらい性能おちているんだろうか?」と気になったので、簡単に計測してみました。
計測環境
・OS:Ubuntu 22.04.3 LTS
・GPU:RTX3090
計測手法
・パラメータ、seedともに固定で、完全に同じ結果となるように調整済のモデルで、学習時間及び終了時のGPU温度を測定(3回の平均)
・GPU温度が45度以下に下がったら開始
・温度、消費電力共にソフトウェア読み(nvidia-smiの出力)
・modelはTransformer1層の簡単なもの
計測結果は・・・
(注)厳密な計測ではありません
fig.1 電力制限下での平均学習時間と終了時温度
Power Limit | ave time | ave temperature | time (relrative) | temp (relative) |
---|---|---|---|---|
350 | 7.61 | 67.67 | 1.0 | 1.00 |
300 | 7.67 | 67.67 | 1.01 | 1.00 |
250 | 7.57 | 66.33 | 0.99 | 0.98 |
200 | 7.45 | 62.33 | 0.98 | 0.92 |
150 | 8.56 | 55 | 1.12 | 0.81 |
120 | 21.75 | 50 | 2.86 | 0.74 |
fig.2 学習中の温度と消費電力グラフ
V_1から数字順に350,300,250,200,150,120ワット制限です。
横軸は学習時間です。(エポック数は同じ)
上記結果からの推論
- 多少の電力制限はDLには殆ど影響しない
電力制限は主にゲーム向け機能から効き始める? - むしろ多少制限した方がDL的には早くなるかも?
サンプル数不足なので間違っているかもしれません - 制限しすぎると当然DLの性能も落ちる
- モデルの大きさ?により、最大消費電力が異なる
上記例だと260W、下記例だと350W
fig.3 大きいモデルの温度と消費電力(Transformer10層)
fig.2に比べて温度、消費電力共に上がっていますが、電力制限による傾向は変わっていません。
むしろfig2よりもわかりやすいと思います。
350Wフル稼働と250W制限下で学習時間に殆ど差がでていません!
もちろん温度はかなり下がっています。
むしろ200Wでも(消費電力の低下を考慮すると)十分なくらいだと思います。
結論
DLする場合は、絶対に電力制限すべき!
電力制限しないと、DLに関係ない部分で電気を熱に変換して捨てているだけになりますねw
250W程度なら、4090の2枚刺しとか夢見てしまいます。
ああ、A6000Adaが欲しい