2016年8月1日月曜日

Z8700の性能コントロール検証


GPD WINの手動切り替えファン搭載によって、「どこまでファンレスで動かせるか」は気になるところですよね?「基本ファンレスで動くが、ゲーム時にファンをONにするとFPS向上」から「基本的にはファンをONにしないと高負荷な作業は無理」まで色々考えられますが、可能な限りファンレスで動かしたいものです。

実際のところはGPD WINそのものが届かないと確認しようもないですが、ファンレスで動かせる限度についてユーザー側でコントロールできる余地はあるかもしれません。つまり、Atom x7を定格よりクロックダウン(アンダークロック)させることで発熱や消費電力を下げられないか、というアプローチです。

GPD WINは元々Atom x5をファンレス駆動させるつもりで開発されていたものなので、クロックダウンにより発熱をx5程度まで低下させられればファンレスで常用できるかもしれません。

今回、手元にあるVOYO V3というAtom x7-Z8700搭載PCを使って軽く検証してみたいと思います。

※「GPD WIN」タグを付けてはいますが、GPD WINそのものに関する記事ではありません。

Atomのクロック周波数



まず、検証に入る前にAtom(というかIntel CPU)のクロック周波数制御についておさらいしたいと思います。

CPUのクロック周波数は
ベースクロック × 倍率
という式で表現され、EISTという技術により倍率を動的に変動させています。クロックは高いほど高性能で、低いほど低発熱・低消費電力なので、高負荷時のみ高倍率で動かすわけです。

そして、Atomにおいてはこの倍率を扱う上で以下の3つの概念が存在します。
  • 最低周波数(LFM)
  • 定格周波数(HFM)
  • バースト周波数
今回扱うAtom x7-Z8700では、ベースクロックが80MHz、定格倍率が20倍で定格周波数1600MHz=1.6GHzとなっています。最低周波数は6倍で480MHzです。

バースト周波数というのが特殊な概念で、これは「冷却能力の枠内で余裕があるときのオーバークロック周波数」といったものになっています。Z8700では30倍の2.4GHzです。

大雑把に言うと、低負荷時間が長くシステム全体が冷えているときなど、冷却能力に余裕があるときに負荷がかかったら定格以上にクロックを上げて性能を向上させよう、というのがバースト周波数です。

というわけで、Atomは負荷に応じてLFM〜バースト周波数まで80MHz刻みでクロック周波数が随時変化します(3段階変化ではなくベースクロック刻みです)。

ここで問題になるのが、「定格で動かし続けられるわけではない」という事実です。「余裕があるときのクロックアップ」であるバースト周波数が維持し続けられないのは自明ですが、高負荷が続くと定格周波数でさえ実際には維持できません。というのも、何十分・何時間と高負荷状態が続くのは一般的ではなく、その状態を冷やせるような冷却機構はオーバースペック過ぎるからです。

そのため、高負荷が続くといずれ定格周波数を段々と下回っていきますが、それでも冷却が追いつかなくなるとPCが落ちるか最悪壊れてしまうので、その場合サーマルスロットリングという機構が働き強制的に発熱を抑えます。

サーマルスロットリングは最適化機構というよりはどちらかというと安全装置のため、冷却能力の枠内でギリギリ性能を維持するというよりはガクッとLFM近辺まで下がってしまい性能への悪影響が大きいです。そのためできるだけ発生させたくなく、GPD WIN(の特にファンレスモード)において懸念されていることです。

であれば、バースト周波数、あるいは定格周波数を低下させることで、発熱を抑えてサーマルスロットリングを回避できるのでは?という考えが浮かぶわけです。

余談ですが、Core系のCPUに載っている技術はバーストではなくTurboBoostというものです。違いとしては、TurboBoostが上述の内容そのままCPU周りの負荷・発熱だけで動作するものである一方、AtomはGPUなどの周辺回路の負荷・発熱も考慮に含まれている点です。つまり、上記説明は厳密にはTurboBoostにおけるもので、バースト周波数は説明以上に複雑な制御だったりします。

本題に入る前に既にかなり長くなってて焦っています。


WindowsのCPU制御



ではどうやってクロックダウンするのか?というところですが、デスクトップPC(特にオーバークロック)の世界ではUEFIからTurboBoost倍率を変更します。しかし、一般的なメーカー製PC=モバイルPC(恐らくGPD WINを含む)ではUEFIに倍率変更機能が載っていないので、オーバークロックは当然のことクロックダウンも不可能です。

しかし、オーバークロックが主流?のPC業界ではあまり気にされませんが、クロックダウンであればWindows上で設定が可能です。

具体的には、「電源オプション」の「プロセッサの電源管理」になります。ここで、
  • プロセッサ パフォーマンスの向上モード → TurboBoost/バーストのON/OFF
  • 最大のプロセッサの状態 → 定格周波数
をそれぞれコントロールできます。メーカーの出荷時設定によってはこれらの設定項目が表示されない場合もありますが、レジストリ修正により表示させられます。

ややこしいのは、「最大のプロセッサの状態」の100%=定格の100%、であるので、これを100%未満にした時点でバーストが効きません。つまり、定格を落とした時点で定格以上の周波数で動くことがなくなってしまいます。ですので、Z8700において定格を1.44GHzにするといったことは可能でも、バースト周波数を2GHzにする、といったことはできません。


VOYO V3での検証


今回は、Z8700搭載のVOYO V3を使って「プロセッサの電源管理」の効果を確認したいと思います。ただ、CPUが同じとはいえ「GPD WINにおいてどれくらい発熱するか/発熱を低下させられるか」ということまでは残念ながら判断できないということを最初にお伝えしておきます。

その理由としては、
  • Z8700はGPU発熱のウェイトも大きいのでCPU調整だけでは制御しきれない
  • しかしながらFurMarkのようなソフトでGPUに人為的に負荷をかけるとGPUを優先するためCPUはスロットリングに関わらずクロックダウンしてしまう
  • 温度はVOYO V3の冷却能力依存なので比較にならない
といった点になります。ですので、温度周りについてはあくまで設定間の差異がこれくらいで、GPD WINにおいてもこうなる、というわけではありません。


バースト設定変更の有効化



VOYO V3では、上記のように「プロセッサ パフォーマンスの向上モード」が表示されていません。ですので、先ほどのチュートリアルに沿ってbe337238-0d82-4146-a960-4f3749d470c7のAttributesを2にします。


表示されました・・・ってあれ?「無効」「有効」以外に「アグレッシブ」「効率的に有効」「効率的にアグレッシブ」など複数項目がありますね?デフォルトは「アグレッシブ」でした。

軽く調べてみたところマイクロソフトの技術資料がヒットしましたが、これを読んでも全然ピンときませんでした。少なくともベンチマークにおいて「無効」以外の項目に大きな差異は見られなかったので、今回は「無効」とデフォルトだった「アグレッシブ」で検証しています。


検証項目


今回は以下の
  • バースト有効(「アグレッシブ」設定)
  • バースト無効(1600MHz・定格)
  • 90%(1440MHz・x5-Z8500定格同等)
  • 75%(1200MHz)
  • 50%(800MHz)
5条件において、PCMark8(Home Conventional)を実行し、
  • 平均クロック
  • 平均コア温度
  • 最高コア温度
  • サーマルスロットリング回数
  • スコア
の4点を確認したいと思います。

PCMark8を使った理由としては、3DMarkやOCCTなどではCPUとGPU片方にしか負荷を掛けられず、実使用に近いシチュエーションを作りづらかったためです。特に、OCCTのような100%負荷をかけ続ける系のソフトではCPU80℃前後をキープしつつ設定クロックから断続的にクロックダウンしていくだけだったので、条件別の結果比較にはあまり役立たない感じでした。

スロットリング、コア温度・クロックの推移にはHWiNFO64を使ってログを取りました。CPU温度60℃前後になった時点からPCMark8を開始し、完走までのログを取ります。

サーマルスロットリング回数はHWiNFOログ中のThermal ThrottlingがYesになった回数をカウントしています。


バースト有効


まずはデフォルト状態であるバースト有効時の結果です。


平均クロックはバースト周波数2400MHzを下回っていますが、これはPCMark8は総合ベンチマークソフトなので常にCPUに100%負荷をかけているわけではないためです。

HWiNFOを見る限り、コア温度が85℃に達するとクロックが1段階(80MHz)下がる、といった挙動になっているので、85℃が頭打ちですね。そして、段階的なクロックダウンでは対応しきれないのかサーマルスロットリングが7回記録されています。

PCMark8スコアは1434でした。同じCPUのSurface 3でのスコアが1487だったので、まあ妥当なところなんじゃないかなと思います。


バースト無効


次にバースト無効で、最大クロックが定格の1600MHzとなっているときの結果です。


最高コア温度は最大値の85℃で変わりませんが、平均コア温度は4℃低下しています。そして、サーマルスロットリングが無くなっています。

PCMark8スコアは1213でした。バースト有効時より15%程度しか低下していません。総合ベンチマークなのでディスク・GPU関連スコアの低下が無いことや、サーマルスロットリングが起こらなかったことでこの程度に収まっているのかもしれません。


90% / 75% / 50%


最後に、クロックダウン時の結果をまとめて載せていきます。


90%=1.44GHzはAtom x5定格想定のものですが、平均クロックはほぼ変わらないのに平均コア温度に加えて最高コア温度も最大値の85℃ではなく83℃に収まっています。一方で、75%では90%に対して平均クロック・スコアは下がる一方コア温度はほとんど低下していません。50%では、平均コア温度への影響は限定的ですが最高コア温度は最高値-10℃まで低下しています。

90%だけ飛び抜けて優秀な結果になっていますが、実は1日で全条件のテストができず、90%だけ別の日に実施したことが原因な気がします。事前に1回PCMark8を回すなど、スタート時のコア温度だけでなく筐体温度も大体イコールになるように調整したつもりなのですが・・・(言い訳)

PCMark8スコアはそれぞれ1129 / 1036 / 790でした。定格に対して93 / 85 / 65%ですね。こちらもクロックほどスコアは低下していません。クロックを下げるほど、CPU以外の性能が維持される分スコアの低下率は下がっています。

ただ、体感としてはやはり50%ではかなりもっさりに感じますね。例えばEdgeでのウェブページ描画速度などは露骨に遅くなっています。


まとめ


これまでの検証結果をまとめると上記のようになります。バーストの無効化でサーマルスロットリングが起きなくなっているのが目立ちますね。


また、バースト無効化やクロックダウンによって平均コア温度も低下しているので、長時間使用時に手持ちでの不快感低減が期待できます。実際、アルミ筐体のVOYO V3をPCMark実行中に触ってみたところ、ブースト有効時はとても持っていられない熱さでしたが、ブースト無効時は熱いことは熱いものの持ってはいられるかな、くらいでした。感覚なので個人差ありますが・・・


もちろん、クロックダウンによるパフォーマンスの低下はありますが、PCMark8のスコアを見る限りバースト無効化程度ならそこまで大きな低下は無さそうです。ただ、バーストにより瞬間的なクロックアップが無くなるため、FPSや処理速度というよりはレスポンス面で悪化する可能性はあります。

バースト周波数をコントロールできれば良いんですが、有効・無効しか選べないのでx5より高いx7の定格周波数は有利ですね。100%・90%の差異は僅かですが、少なくともx7ならどちらにも設定できます。

ただ、最終的にGPD WINにZ8750が採用された場合、バーストを切る以上バースト周波数しか違わないZ8700/Z8750の差異が出ない、というのはちょっと残念になります。もちろん常時切るわけではないのでバーストON+ファンONで性能差を出せますけどね。

今回はデスクトップのVOYO V3だったので計測できませんでしたが、クロック低下による消費電力低減も期待できます。もちろんクロックが低下した分処理の所要時間は増えるため、クロック低減分がそのままバッテリー持続時間に反映されるわけではないですが

ということで、GPD WINの冷却性能がどれほどのものかはわかりませんが、ユーザーの工夫である程度性能・発熱・消費電力をコントロールできそう、というお話でした。

VOYO V3が手元にあったことで気楽に始めてみたけど、もの凄く時間がかかった・・・

0 件のコメント:

コメントを投稿