GPUの温度と性能低下

2017年10月17日

先日、GeForce GTX 1080 Tiを2枚積んだマシンを計算サーバとして追加導入しました。
新しいマシンで意気揚々と学習を回していたのですが、時間がたつにつれて学習速度が低下していったり、マルチGPU化しても性能が伸びなかったりかえって遅くなったりしてしまっていました。
このような症状を聞くと熱問題だろうと気づく方も多いかと思いますが、せっかくなので冷却が不十分なGPUがどういった挙動を示すか少し実験してみました。

実験内容

アプリケーション・計測方法

GPUに負荷をかけるためのアプリケーションとして、ひたすらcuBLASのSGEMM (n=m=k=8192) を実行し続けるプログラムを用意しました。
また、各種メトリクスの取得にはNVMLを使用し、およそ10-20ms程度ごとにGPU温度やコアクロックなどの情報を取得しています。

マシン構成

ミニタワーにXeon E5とGeForce GTX 1080 Ti 2枚を詰め込んだ構成です。

  • Intel Xeon E5-2620 v4
  • NVIDIA GeForce GTX 1080 Ti (x2)
    • 定格コアクロック: 1480 MHz
    • 理論ピーク性能 (FP32): 11 TFLOPS

実験結果

GPU0

およそ500秒ほどの間負荷をかけ続けた際のGPU温度とコアクロックの変動と、SGEMMのパフォーマンスは以下の図のようになっていました。

ぱっと見たところ説明のつけやすそうな遷移となっていて、おおよそ以下のような動作となっているようです。

  1. GPU温度 < 83℃: GPU Boost が効く。動作周波数は1800 MHzくらいまで上昇。
  2. GPU温度 = 83℃前後: GPU Boost の効きが悪くなり、動作周波数が定格クロック以上の範囲で細かく変動するようになる。
  3. GPU温度 < 90℃: GPU Boost が無効になる。動作周波数は定格 (1480 MHz) からほぼ動かない。
  4. GPU温度 = 90℃前後: 定格クロックを維持できなくなる。83℃前後のときのように、動作周波数が定格クロック以下の範囲で細かく変動するようになる。

GPU1

さて、このマシンにはGPUが2台乗っています。
普通に使っていた時の感覚だとなんとなくGPU1の方が性能が安定しないように感じていたのですが、計ってみると想像以上によくわからない挙動をしていました。
以下に、GPU0と同様に測定したGPU温度や動作周波数などの変動を示します。(温度の上昇が激しかったので、400秒ほどで打ち切っています。)

GPU0のときと比べて明らかにおかしな挙動となっているように見えます。
GPU温度が93℃以上になるとHW Slowdownが効き始めるような設定となっているのですが、その温度に達するまで(おそらくは達した後も)できるだけBoostしようとしているように見えます。
その結果、93℃に到達するとHW Slowdownでクロックを半分まで落とされ、多少落ち着いたらまたクロックを定格以上まで上げようとしているようです。

パフォーマンスについてもクロックと同様にあまり安定感のない結果となっていました。
また、時間当たりのSGEMM実行回数はGPU0の場合に比べて2-3%ほど少ないものとなっていました。

同時に動かす

(燃えない程度に)もっと温度を上げてみましょう。
2枚のGPUは隣り合って配置されているので、両方のGPUに負荷をかけるともっと温度が上がります。

GPU0

おおむね単体で動かしたときと似たような挙動となっています。

GPU1

120秒ぐらいまでは単体で動かしたときと似たような挙動となっていますが、そこからさらに温度が上がるため、それ以降はまた異なる挙動となっています。
94-95℃あたりでしばらく860 MHzを維持していたかと思うと、何かの拍子に諦めたかのように温度が90℃程度まで落ちるように動作周波数を下限 (139 MHz) まで落とすようです。
その後もGPU0につられて温度は上昇するのですが、基本的に139 MHzのままで、93℃付近でHW Slowdownにより一時的に動作周波数が半分になることを繰り返すようです。

これだけ性能が落ちるとなると、マルチGPU化しても遅い方のGPUに引っ張られ、かえって性能が低下してしまうのも納得ですね。

おわりに

GPUのクロックはもっと滑らかに変動するものかと思っていたのですが、実際に計ってみると想像を超えるようなぶれ方をしていました。
同一ノード内でもGPUごとにばらつきがあると、マルチGPUなワークロードでは単純なクロック低下以上の性能低下につながるので、全GPUが十分な性能を維持できるような環境を用意することが大切です。

Tags

About Author

hiragushi

Leave a Comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

Recent Comments

Social Media