画像やリンクが無効になっている可能性もあるのでご了承下さい。
はじめに
Zen2 以降は「Ryzen は定格こそ至上」なんて考えで「SenseMI 流石ですわー!!」と称賛していたが、PBO2 (Precision Boost Override 2) こと Curve-Optimizer (以下 CO と略) の機能が面白そうだったので、初代 Zen 以来となる CPU のオーバークロックに手を出すこととなった。
PBO2 って
元々 PBO (Precision Boost Override) という CPU と VRM が消費出来る電力関連の制御を緩めることで動作クロックをブーストさせる機能があった。
そこへ更に Curve-Optimizer なんて機能が追加された。これによりコア毎に Magnitude という単位で電圧設定をする事で、コアが使える電力に余裕を持たせ、その分クロックを高く動作させることが出来るようになった。
各コアは「動作温度、CPU ソケットの電力、VRM の電力」から自分で判断してクロックをブースト (Precision Boost) してくれるので、比較的安定したオーバークロックが実現出来る。
PBO + CO = PBO2 ということで、これを設定するには PBO で PPT, TDC, EDC の 3 つの値を設定し、更に CO の項目で各コア若しくは全コアに対して電圧を「上げる (Positive)」のか「下げる (Negative)」かの 2 択と Magnitude で表現される数値の入力となる。
今回設定する Ryzen 9 5950X は 16 コアなので、最大 35 個の項目を弄る事になる。結構面倒に思えるかも知れないが、それが楽しい所でもある。
PC スペック
今回 PBO2 の設定を詰めていく環境はこの通り。
メモリは DDR4-3733 まで OC してサブタイミングも限界まで詰めた状態となっている。
用意する物
CPU が動作しているクロックや動作温度、PPT や TDC, EDC の値を監視出来るものとして HWiNFO を用意しておきたい。
この HWiNFO の Sensor を起動させた状態で負荷を掛けつつ、クロックのブースト具合だとか動作温度を見て色々判断する。
優先コアを把握する為、Ryzen Master をインストールしておく。
実際のパフォーマンスはどんなもんかと指標にするベンチマークも 1~2 個用意しておく。
先ずは定番の Cinebench。R15 と R20 か R23 の何れかで 2 つ入れておくと便利。
R20 以降はシングルスコアを出すのに時間がかかるので、R15 で済ますといった感じで。
そして CPU-Z の Benchmark 機能も使える。短時間で結果が出るがスコアはブレやすい。しかし、パフォーマンスの傾向が手っ取り早く掴めるので、Cinebench 実行前に使えたりもする。
これは使用自体自己責任で―― となるが、1 コアずつ負荷を掛けてブーストした状態を作りやすくなる BoostTester も用いた。
実行ファイルをダウンロードして実行するだけで順番にコア 1 つずつ負荷を掛けてくれる。その時のクロックを HWiNFO の Sensor で監視するという流れ。
最後に安定した壊れても良いクリーンな Windows10 環境。
これは以前、記事にしたときに作成した USB ブートな Windows10 Home をそのまま利用した。
Windows10 インストール後に Chipset Driver と Radeon Software だけをインストールした状態なので、ベンチマークを阻害しない環境となっている。
こうした環境を作れない場合、システムドライブのバックアップを確実に行っておく。
PBO の設定
筆者の場合は CPU の消費電力がガツンと上がるのは好みじゃ無いので TDP 125W 相当 +α な設定を行ってみた。
Ryzen 9 5950X デフォルトの PPT は 142 なので、TDP の 105 で割った 1.352 を 125 に掛ける。すると 169 になるけど奇数はなんかアレだったので 168 にした。
同じ様な計算を TDC と EDC でも行い、ちょーっと盛った数値を入力した。
CO の設定
Ryzen Master を起動し、自身が使っている CPU の優先コアを確認してメモっておく。
筆者の Ryzen 9 5950X はコア 1 と 12 に ★ なので優先。コア 2 と 13 が ● なので準優先とでもいうのかな。
実際に BIOS で設定を行う際、コアは 0 から数える物なのでそれぞれ -1 してメモること。
CO を設定していく時のお約束として、上記で調べた CCD0 側の優先コアは Negative 方向に下げすぎない事というのがある。
優先コアはその通り優先して使用されるので、CCD の中でも質の良いコアに割り当てられる。イコールとして高クロックなブーストにも耐えられる認識なので、あまり電圧を下げすぎるとパワー不足でマシンが落ちてしまう。
反面、コアの質が優先コアよりも劣っているコアに関しては、さほど大きな仕事が割り振られる頻度も少ないし動作クロックも伸びてこないので Magnitude 値を下げて電圧を抑え、CPU のコア全体で使える電力に余裕を与え、その余力分を優先コアたちの糧と出来る。
つまりトータルで消費する電力は変わらないが、全てのコアが均等に電力を使うのでは無く、優先コアに比重を置いた使い方になるので性能が上がるというお話になる。
ということで CCD0 の優先コアと準優先コアは少し Negative 方向に設定。それ以外のコアは割と大きく Negative に設定。
CCD1 側の優先コアと準優先コアは筆者なりに CCD0 側の物よりももう少し下げちゃうような感じに試行錯誤していく事とした。
CO の設定値を詰めていく
BIOS に入り CCD0 側の優先コア、準優先コアである C00 と C01 は Negative 5 とし、それ以外全てを Negative 10~15 程度とした。
Windows10 を起動し、HWiNFO の Sensor を出して BoostTester を実行。0~15 のコア全てを 3~4 回ブーストさせたとき、動作クロックの最大値をみて「CCD0 は全コア 5,000MHz 以上、CCD1 側は全コア 4,900MHz 以上」になるまで各コアの CO の Negative を増減させていく。
最初は大まかに Negative 値を 2 ステップで増減、後半では 1 ステップずつの調整になった。
(大体イイ感じにブースト出来る様になった図)
ブーストクロックが目標を達したらベンチマーク各種を実行し、スコアを記録しておく。
ブーストクロックが高いから高パフォーマンスと言うことは無いので、この先はパフォーマンス重視の調整に方向転換する。
CO の Negative 値を変更して Windows10 を起動。ベンチマークを取ってスコアを記録する。
これを自身が納得行くまで何時間でも繰り返す。
途中、ある程度気に入ったスコアを出す設定値があれば BIOS の Profile に設定を記録しておくと色々便利。
詰めきった感のある設定
余り今回の設定に関しては知識も経験も無い事から 2 日くらい調整に要した。
その結果がこれ。
ここからどこか 1 つでも数値 1 変えるだけでブーストの挙動も変わるしパフォーマンスも落ちる感じなので、疲れたし一区切りということで。
あれこれチューニングした結果の Cinebench
結果が分かりやすい Cinebench R20 のスコアを見てその成果を確認。
うちの Ryzen 9 5950X はいわゆる「ハズレ個体」とでも言うべき物か、1usmus 氏の CTR 2.0 の判定で BROZE なアレなもんだから定格で 10,000pts に到達出来ない。
PBO のみの設定を施す事でやっと 10,000pts 越え。
CO で更にチューニングすることで 10,947pts にまで伸びた。定格比 10.3% の性能向上。単純 PBO 比で 6.9% の性能向上をはたすことが出来た。
マルチは伸ばすことが容易だけど、「マルチを伸ばしつつシングルも伸ばす」事がなかなか骨の折れる作業だった。
現に PBO のみの適用はマルチが伸びるだけでシングルが落ちてしまっていた。
これが CO を適用する事でシングルまでをも向上させることが出来た。
消費電力に関して
ピークの消費電力を計測する方法としては OCCT の「データサイズ大、AVX2、エクストリームモード、負荷安定化」を実行した際の物をワットモニターで確認をした。システム消費電力と言うことになる。
結果としては……
- 定格時ピーク 244W に。IDLE は 92.2W。
- PBO 適用時ピーク 274W。IDLE 時は 92.3W。
- PBO2 (PBO + CO) 適用時ピーク 274W。IDLE 時は 92.3W。
上記のようになった。
先述のように CO は PBO で設定された電力設定の枠内で上手いこと電力配分して性能向上を果たしているので、PBO と PBO2 ではピークの消費電力は全く同じ事となる。
CO 設定する事でワットパフォーマンスが大きく向上する事が良く分かる。
ワットパフォーマンスに関して
Cinebench R20 Multi のスコアを OCCT で計測したピークの消費電力値で割った物をパフォーマンス値とした。値は大きい方がワットパフォーマンスが良いと言う事になる。
現状、筆者設定では Ryzen 9 5950X 定格動作に PBO2 のワットパフォーマンスが勝ることは敵わなかった。
しかし、非常に近い値に迫っているので今現在は PBO2 を適用した状態で常用している。
CO をチューニングする上ではこうしたワットパフォーマンス値を定義し、定格の値にどれだけ近づけることが出来るかどうかなんていう調整をしていくのも良い指標になるかなと思われる。
一応のストレステスト
PBO2 によるオーバークロックは単純に高負荷を掛ければ良い物でもないが、現状は「とりあえず」やっておくべきかな…… でやっておいた。
OCCT を用いて 1 時間の高負荷状態とした結果はエラー無し。
CPU 温度となる Tdie は 76.8 度と Tjmax まで余裕有り。VRM も 62 度程度なので問題は無いだろう。
動作クロックも暫く放っておいたので、IDLE 時に勝手にブーストしてボチボチイイ感じの物となっていた。
今後はとりあえず常用中のクロック変動と不定期な負荷でプツンと OS が落ち無いことを祈っておく。
メモリをオーバークロックしている場合の注意事項
メモリを手動でオーバークロックしている場合には vSoC もある程度手を入れているかと思われる。
PBO2 の設定を行うことにより CPU や VRM の負荷も相まって vSoC の Vdroop (電圧低下) が起きてしまう。
今更 vSoC を盛る事はしたくないので、SoC LLC で対応する事とした。
筆者環境の場合、SoC LLC 2 と設定する事で PBO2 設定以前と変わらない vSoC 供給を得ることが出来た。
おわりに
CO チューニング中は手順が悪いからかどうか分からないけど、日に 100 回は再起動してテストを繰り返していたと思う。大袈裟な話しでなくて本当に。
最終的に満足行くセッティングが出来たのでよかった物の、いい加減ちょっと疲れてしまった。面白い部分もあったので楽しめたから良いが。
今後は 1usmus 氏の CTR で CO の Magnitude 値を自動調整 (?) なりやってもらうか、自力で更なるワッパの向上を目指していきたいなーと思う。
疲れた。
2021/03/29 17:50 追記
2021/03/29 現在では、以下の記事内容が最新の設定となっている。
コメント