Deep learning (ディープラーニング)用途を代表として、GPGPUとしての能力が高く、TESLAと比較してもコストパフォーマンスの良い「TITAN (タイタン) X」の引き合いが、かなり多くなってきております。
TITAN Xの処理能力に関しましては、人気の製品ということもあり、すでに検証されている方も多数おられるかと思いますので、今回はそこではなく、研究PCおてがら屋 事例PC-3875 のTITAN X 3枚構成に沿って、温度や消費電力量といった、見えづらい部分でありながら、注意が必要な部分についてレポートしてみたいと思います。
GeForce TITAN X を3枚搭載した検証機
・検証環境
チップセット | X99シリーズ |
CPU | Intel Core i7-5960X (水冷ユニットによる冷却) |
GPU | NVIDIA GeForce GTX TITAN X 12GB PCI-E x3枚 |
メモリ | 8GB DDR4 UDIMM × 8枚 |
電源ユニット | Enermax EMR1500EWT 1500W |
OS | Linux (Ubuntu 14.04) |
・測定方法、ツール
CPU:Prime95 (http://www.mersenne.org/)
GPU:
– CUDA 7.5 Toolkit (https://developer.nvidia.com/)
– VVIDIA Inspector (http://orbmu2k.de/l)
消費電力測定:Watts up? Pro (https://www.wattsupmeters.com/)
CPUはPrime95、GPUへはCUDA 7.5 Toolkitをインストールし、CUDAサンプルフォルダにありますnbodyをそれぞれのTITAN Xを明示的に指定し、順番に実施することで負荷をかけております。
各負荷テストは、おおよそ2分おきにCPU→GPU1枚目→GPU2枚目→GPU3枚目の順番にて実施し、負荷状態を約10分程続けたものとなります。
測定結果
1. 電圧変動 (図1)
まずは、上記の一連の作業をおこなった際の消費電力の推移です。消費電力計測は電源ユニットとコンセントの間にワットチェッカーを挟んだ状態での計測となります。
※クリックで拡大します
起動時に瞬間的に360W程度まであがりますが、アイドル状態でおおよそ150-160W程度となります。ここにCPUのみに負荷をかけた場合で270W程度となり、その後GPUを起動するごとに増えていっております。消費電力のピークは811.9Wでした。
グラフからGPU2~3枚目の負荷をかけても、それまでほど消費電力が上がらないようでしたので、負荷率を確認してみました(次項)。
2-1. GPU3枚負荷状態の使用率 (図2)
GPU3枚に負荷をかけた状態の使用率は下記のようなグラフになりました。
GPUへの負荷は常時かかっているわけではなく、細かく動いているのが確認できます。特に瞬間的ではありますが、GPU0のUsageが0%の部分もあります。そこで、GPUへの負荷が1枚の場合と2枚の場合についても確認しました。
2-2. GPU1枚負荷状態の負荷率 (図3)
GPU1へのみ負荷をかけています。
2-3. GPU2枚負荷状態の負荷率 (図4)
GPU1とGPU2へ負荷をかけています。
上記結果を見ますと、1枚目に負荷をかけた時点 (図3)である程度使用率の上下がありますが、2枚目に負荷がかかり始めるところで(図4)、3枚負荷時と同じような(図2)グラフになることが分かります (1枚だけの場合は、50%前後が下限でした)。
これより、今回確認した範囲では、複数枚でTITAN Xを同時稼働させた場合には、ある程度使用するGPUを切り替えながら動作しているとみられます。この動作自体は、今回テストで利用したプログラムに起因する問題である可能性もあるため、複数のGPUが使えないという事ではありませんが、複数枚にきちんと負荷がかかるような計算である場合は、今回計測した消費電力 (図1)を大きく超える可能性もあると思われます。
(図1)でみられるCPU負荷→GPU1枚追加時の消費電力の増加が270W→520W程度まであがっておりますので、GPU 1枚あたり250W程度となり、ここだけ見ればカタログスペック通りの数字とは言えますが、(図1)では530W近くまでグラフが動いております(カタログスペックより若干高め)。
これは、今回の消費電力計測は、コンセント-Watts up? Pro-電源ユニットと外部側で計測しており、電源ユニットの力率に関係している可能性があります。内部で必要とするカタログスペックの消費電力量の他、使用する電源ユニットの力率の要素によって、実際には、カタログスペックより大きな電力が必要になる可能性がございます。
結論1 (消費電力について)
実際にGPUを搭載して計算をさせる場合には、GPGPUカードのカタログスペックにある程度余裕を持たせた電源容量で検討して頂く必要がありそうです。
特に2CPUモデルや4枚導入を検討される場合、100V環境下での動作はかなりシビアになる可能性があり、可能であれば200V環境の構築も視野に入れて頂くのがよろしいかと思われます。
3. 温度について (図5)
同3GPU環境での温度計測のグラフになります。計測時の外気温は20℃程度(ケース前面部での計測)、計測ポイントは、ケース内部のGPU手前(ケース前面側)とケース外部のGPU排気口付近での計測となります。
電源オンに合わせて内部及び外部の温度が上がっていき、GPUの負荷をかけ始めた直後から外部の排気温度が一気に上がり、80℃手前あたりで上昇が止まっています。内部の温度はその後も多少上昇を続けますが最初の負荷をかけ始めた状態から10分程度で上昇も止まり、温度が安定しているのが確認できます。
今回は、3GPUに負荷をかけ10分程度で止めておりますので、止めたタイミングで排気側の温度が大きく下がり始めたのが見てとれるグラフとなっています。
なお、10分経過時の負荷状態は下記(図6)のようになります。
4. GPU3枚負荷、10分経過時の負荷率 (図6)
GPU3枚に負荷をかけ、10分経過時のグラフです。
GPUの温度は最大で86℃ を記録しております。
負荷のかかり方としてGPU1、GPU2の上下幅が大きい中、GPU0は変動が少なく、一定の負荷がかかっています。それに比例し、GPU0はFAN回転数 (使用率)が50%、GPU1、GPU2のFAN使用率は50%を割り込んでおります。これはグラフの経過を見ても一時的な物ではない事が確認できます。
上記から推測できることとして、負荷のかかり方、プログラム次第で温度はもう少し上がる可能性があります(実際に、今回構成のFAN速度に関してはまだ余裕がある様に見えます)。
また、今回は冬場の計測であった事もあり、外気温が20℃と比較的低い状況で計測しております。そのため、夏場などで外気温がより高くなる場合、今回の計測に差が上乗せされる可能性があります。
そうなると問題となるのは、今回の計測では10分程度の負荷で最大86℃を示しておりますが、外気温が25℃になった場合に、TITAN Xのカタログスペック上の最大温度である91℃に到達してしまう可能性があります。
結論2 (温度について)
負荷のかかり方、プログラム次第では、FANの回転数がさらに上がる形となるはずですが、当然ケース内の温度も外気温に影響を受けますので、実際には50℃近い空気を使って冷却される形になります。導入の際は、外気温も重要なファクターとなります。
以上、GPGPUの導入を検討されている方のご参考になれば幸いです。
参考資料 :
TITAN スペックシート
http://www.nvidia.co.jp/object/geforce-gtx-titan-x-jp.html#pdpContent=2
今回の検証に用いたPCと同スペックの事例はこちら: TITAN X 3枚搭載 VR開発環境構築用マシン | テグシス |