性能は高い。が、熱い。
NUC6CAYHの更新として購入したNUC12WSHi5ですが、デフォルトのままではサーバ用としては消費電力が高すぎるので、UEFIから電力制限を行います。
- ●作ったはいいが、デフォルトだとブースト時に100Wも消費
- ●PBPとMTP
- ●テストするPBPとMTPの組み合わせパターン、環境
- ●PCMark10
- ●CINEBENCH(Multi)
- ●CINEBENCH(Sigle)
- ●PassMark
- ●CrystalDiskMark
- ●Amatsukaze(H.264エンコード)
- ●アイドル時の消費電力
- ●PBP/MTPの値を決める
●作ったはいいが、デフォルトだとブースト時に100Wも消費
NUC12WSHi5が搭載しているCPUはCore i5 1240Pというモバイル向けのCPUですが、仕様的には最大64Wまでとなっています。
●PBPとMTP
Intelの12世代以降のCPUではこれまでのPL1/PL2といった電力指標が変更されており、PBPとMTPという指標に変わっています。
私の理解としては、
PBP(Prosessor Base Power):CPUのパッケージが負荷が継続した際に許容される最大消費電力(従来のPL1と近い考え方、UEFI上ではPower Limit1と表示されるケースも)
MTP(max Turbo Power):CPUパッケージ/システム(冷却機構を含む)が一時的に許容できる最大消費電力。CPUのコアがブーストした場合はこちらの指標となる。MTPには許容される最大時間が規定されており、Tauと呼ばれる。(こちらはPL2と同様の考え方、UEFI上ではPower Limit2と表示されるケースも)
また、MTPはIntelが公開している仕様どおりですが、PBPに関してはシステム側が許容できればIntelの公開仕様から上げても問題ないようで、今回のNUC12WSHi5ではPBP=40Wとなっています。
(画像はMTPを変更中のため60となっていますが、デフォルト値は64となります)
●テストするPBPとMTPの組み合わせパターン、環境
前置きが終わったところでテストパターンを考えます。
NUC12WSHi5のデフォルト設定がPBP:MTP=40:64=1:1.6となっているため、以下2パターンの組み合わせでテストしました。
・パターン1(40W以下はPBP=MTPとなる組み合わせ)
PBP/MTP:
40/64
40/60
40/55
40/50
40/45
40/40
35/35
30/30
25/25
20/20
15/15
10/10
・パターン2(PBP=MTPを1.6で割り、デフォルトと比率を同じにした組み合わせ)
PBP/MTP:
40/64
38/60
34/55
31/50
28/45
25/40
22/35
19/30
16/25
13/20
9/15
6/10
なお、テスト環境は以下の通り。
・本体:NUC12WSHi5
・メモリ:Crucial DDR4-3200 SO-DIMM 64GB kit(32GBx2,CT2K32G4SFD832A)
・ストレージ:WD SN770 2TB (PCIe Gen4x4 M.2 SSD)
・使用ベンチマークソフト
-PCMark10
-CINEBENCH(Multi/Sigle)
-PassMark
-Amatsukaze(H.264エンコード、おおよそ24分の動画)
時間の関係で一回計測&消費電力は手動読みなので、測定誤差は存在します。
あくまで消費電力の傾向を把握し、PBP/MTPの組み合わせを決定するためのものなので
●PCMark10
・スコア/消費電力の比較
スコアは値が大きいほど高得点です。
消費電力が上下していますが、おそらく目視で読むタイミングのような気がします(以降の比較についても同様です)
パターン1/2ともに、PBP=25W前後、MTP=30W前後まではスコアが大きく変わらず、消費電力は1割ほど低減、それ以下は消費電力が一気に低減し、併せてスコアも大きく落ち込みます。PBP/MTP=6/10設定の場合は絞りすぎているようで、一気にスコアが落ち込んでいます。
・PPW(Performance-per-Watt)を考える
最大消費電力(ブースト時)、最小消費電力時(Tau経過後)それぞれで「1Wあたりで稼げているスコア」を算出してみました。
パターン1かつ40W以下制限の場合、Tau経過後も電力上限が変わらないためパターン2と比べて性能が稼げているようです。
逆に電力制限に余裕がある場合はパターン2のほうがよいのかと思いましたがそんなことはなく、ここは単純にPCMark10で測定される様々なアプリケーションの動作という観点に関しては、PBP/MTPを同値に制限したほうが良い、という結果になりました。
絶対的な性能が欲しい場合はデフォルト値で良いですがワッテージパフォーマンスを重視する場合、PBP/MTP=25/25もしくは16/25あたりに設定するのが良さそうです。
性能がもう少し欲しい場合は25/40あたりでしょうか。
●CINEBENCH(Multi)
・スコア/消費電力の比較
スコアが高いほうが高性能です。
パターン1はMTP=40Wまでは性能があまり下がりませんが、パターン2ではリニアに性能が低下していきます。
またCINEBENCHはCPU性能を中心に測るベンチマークのため、PBP=MTP設定となるパターン1では、40W以下では最小/最大消費電力が一致する挙動を取ります。
MTP=40Wの時点でピーク時から消費電力3割減といった感じです。
こちらもPBP/MTP=6/10では大きくスコアを割り込みます。
PCMark10と違い、純粋にCPUの消費電力制限がスコアに響いてくるベンチマークのため、パターン2では線形でスコアが落ち込んでいきます。
なお、PBP/MTP制限が厳しいとき、マルチコアの計測中はEコアのみ動作している、といったような挙動が見られました。
Pコアを動作させてしまうと電力制限枠を超えてしまうのかもしれません。
・PPWを考える
PPWを考えた場合、以外にも似通ったパターンとなりました。
ブースト時の電力効率を中心にするのであればMTP=25-35Wレンジ、
Tau経過後で考えるのであればMTP=50Wあたりがスイートスポットになります。
長時間CPUを専有するような作業(画像や動画の書き出しなど)をするのであれば、PBP/MTP=40/50、もしくは31/50といった、少し高めの設定をすると良さそうです。
しかし、最小電力時のPPWは大きく差がないため、消費電力を絞る目的でもう少し絞っても良いのかも。
●CINEBENCH(Sigle)
・スコア/消費電力の比較
スコアが高いほうが高性能です。
シングルコアの場合は消費電力が計測中ほぼ一定となったため、グラフは1つずつです。
パターン1ではMTP=25Wを切るところ、パターン2では35Wあたりから消費電力に変化が見られます。このあたりがPコア1コアだけを動作させる場合に電力制限に引っかかるかどうかの境界なのかと思います。
・PPWを考える
1コアのみ動作させた場合は電力制限にひっかかるポイントが可視化されます。
パターン1ではTau経過後の電力制限が変化しないため、15W以下で動作させた場合に一番PPWが良くなり、
パターン2ではTau経過後に電力制限が変化するため、PBP/MTP=16/25と、PBP=10~15Wとなる設定が一番PPWが高くなりました。
シングルコアの場合、どちらのパターンでもPBPが10~15Wとなっている場合にワッテージパフォーマンスが高くなる傾向となりました。(十分にCPU専有時間が長い場合、PBPの値が重要になってくるようです)
●PassMark
・スコア/消費電力の比較
パターン1、2ともにPBP=20W前後から急激にスコアが落ち込む結果となりました。
パターン2であればMTPが高くなる分(PBP=19WのときにMTPは30W)性能が高いかと思いましたが、あまりスコアは変わりません。
パターン1に関してはMTP=45Wを切るあたりから大きく電力が下がっています。
・PPWを考える
PBP=15W前後がスイートスポットのようです。
また、MTP=40W付近でも効率が良くなるようで、波のようなグラフとなりました。
PassMarkもPCMark10も様々な処理をさせるシステムの総合パフォーマンスを計測するベンチマークソフトですが、計測方法によって多少傾向が変わるようです。
●CrystalDiskMark
・スコア/消費電力の比較
SSDの読み込みにCPUパッケージの電力制限は関係があるのか?がポイントです。
基本はDMAなので関係ないはず、と思っていましたが、読み出しはMTP=10W、書き込みに関してはMTP=15W前後から転送性能が落ちる結果となりました。
今回のベンチマークに使用しているSN770はHMBのため、メインメモリの速度が必要=電力制限がかかる環境だとCPUパッケージに含まれるメモリコントローラが遅くなる?ために転送速度が遅くなっているのかもしれません。(電力制限の影響で十分な動作速度を出せない)
逆の言い方をすると、それ以上PBP/MTP設定の場合、SSDの速度低下はほぼ発生しませんでした。消費電力はゆるやかに下がりますが、PBP=30Wを切るあたりから、グラフの傾きが急になります。(併せて速度も低下していますが。)
・PPWを考える
転送速度が下がったとしても、それ以上に電力削減できたおかげでPPWの値は上昇する、といった現象が起きています。
Readはパターン1/2でほぼ傾向は変わらず、Writeではパターン1とパターン2でピークのポイントが変わるという設定によって違った傾向が現れる結果となりました。
●Amatsukaze(H.264エンコード)
・スコア/消費電力の比較
H.254へのエンコードはいつも使っているAmatsukazeで計測。いつもお世話になっております。エンコードはQSVを利用。
・エンコード時間(sec)はグラフが短いほうが高速(短時間で処理が完了する)
・エンコード速度(fps)はグラフが長いほうが高速(1秒あたりに処理できるフレームが多い)
となります。なお、パターン2のPBP/MTP=6/10Wに関しては、制限が強すぎるのかエンコードが完了できませんでした。
MTP=25W前後を境に指数関数的にエンコード時間が伸びて/fpsが下がっていきます。
消費電力に関してはPBP=25Wとなるあたりから大きく下がります。
なお、PBP/MTPの電力制限枠はCPUだけではなく、CPUパッケージ全体での制限のようで、かなりPBP/MTPを絞った場合、GPU側がボトルネックとなり、結果としてエンコード性能が大きく低下するという現象が発生しました。
・PPWを考える
PPWは電力量(Wh,エンコード終了までにかかった総電力量)と、1Wあたりのfpsの指標で比較しました。
・電力量はグラフが短いほど総エネルギーが少ない(=電気代が安くなる)
・fps/Wはグラフが長いほどパフォーマンスが高い
結果となります。
電力量はPBPの設定により大きく傾向が変わるようで、PBP=MTPとなるパターン1と、PBP:MTP比が一定の比率を保ったパターン2とで大きくグラフの傾向が変わりました。
パターン1はPBP/MTP=10/10W意外はゆるやかに下落(総電力量の減少)、10W設定のときのみ、所要時間増大に伴う電力量の増加が起きています。
パターン2であれば、PBP/MTP=25/40Wまではほぼ変わらず、それ以下の制限だと一気に値が悪化します。
また、実数字と見比べた場合において、パターン1に比べパターン2のほうが全体的に消費電力が増えていることも傾向として判明しました。
なおパターン1のPBP/MTP=10/10設定や、パターン2の6/10設定で電力量が増大しているのは、厳しすぎる電力制限のため、GPUが有効に性能を発揮できなく、結果としてQSVエンコードに時間がかかるといった現象によるものです。
(電力制限に余裕がある祭はCPUがボトルネックだが、電力制限が厳しい場合はGPU使用率がエンコード中は常時100%となる現象が確認された)
●アイドル時の消費電力
アイドル時の消費電力は若干PBP/MTP=40/64のデフォルト設定が高くなりましたが、それ意外の場合では概ね9-10Wとなりました。
ベンチマーク実行中は90Wを超えるような設定でも、どうやら遊んでいる時間は電力制限時とほぼ変わらない値となるようです。
●PBP/MTPの値を決める
いろいろなベンチ結果で消費電力とスコアの関係を見てきましたが
・ビジネスアプリを中心に雑多な使い方をする場合MTP25Wがスイートスポット
・CPUのみであれば少し高めのPBP/MTPを設定してやるとよいが、PBPの時間が長くなるためPBPの電力制限のほうが重要になる
・極端に絞らなければSSDの速度は落ちない
・CPU/GPUを同時に使うエンコードでは極端な電力制限はNG、PBP15W付近が効率は一番良い
メインで利用するのはAmatsukazeのため、AmatsukazeのPPWを重視しつつ、ジャンプホスト(出先からの接続用)やトランスコードにも利用するため
・PBP/MTP=19/30
・PBP/MTP=25/40
・PBP/MTP=30/30
の2つのパターンが候補になります。25/40、30/30のパターンにおいては、PPWはあまりよくありません。
しかしスコアがあまり下がらず、かつ消費電力はピークより低減している箇所となります。
まずは19/30Wで設定し、パフォーマンス不足を感じた場合に25/40や30/30の設定に変更したいと思います。
買ってから結構日数が経ってしまいましたが、やっと運用に入れます。。。