画像やリンクが無効になっている可能性もあるのでご了承下さい。
はじめに
PBO2 の使用は諦めたハズだった。しかし、どうにも悔しいという感情が湧き出てきてしまったので再チャレンジ。
今回は Curve-Optimizer (以下 CO) の Negative 値を Google スプレッドシートで 1 ステップずつ記録する手法を取ってみた。
途中、ストレステストが完了してもリセットしてしまう原因と思しきエラーを発見した為、その対処を行ったら最終的になんとか「今のところ落ち無い」設定に行き着いた。
そんな訳で筆者が今回、PBO2 の設定を行った手順を記録として残しておこうと思う。
PC スペック
今回も変わらずなスペックで PBO2 の設定を行っていく。
尚、メモリは DDR4-3733 CL16 でガチガチにチューニング済。且つストレステストも完了済なので、メモリや Infinity-Fabric が原因のエラーは発生しない物として進める。
用意しておくソフトウェア
自分の所持している Ryzen 9 5950X の優先コアである★と●の付いたコアを把握する為に Ryzen Master を用いる。
CO 調整後のストレステストとして CoreCycler を用いる。バージョンは 0.7.9.2 の物を使用した。
CoreCycler で全コアエラー無しを達成後、更なるテストとベンチマークスコアを取得する為に Cinebench R20 を用いた。
R23 ではリセットが掛かる再現性を得られなかったので、R20 でないとダメだった。
別途 30 分程度のシングルスレッドな負荷を掛けたかったので Cinebench R23 も用いた。
PBO 設定
BIOS より以下の通りの設定を行った。
- PBO の Limit は PPT 142W として消費電力を TDP 105W 時と同等にしたい。
- TDC, EDC は多少実効クロックが伸びやすい様に盛る。
- Overdrive Scalar は AUTO でも x10 でもベンチスコアに大差が無かったので、安定性重視として AUTO に。
- CPU Boost Clock Override は 200MHz としてもそこまで上がることはないから 100MHz 設定にする。
設定した意図はこんな感じで。
その他設定
CPU の電圧である Vcore は AUTO のまま推奨。Offset をすると CO のセッティングが大幅に変わる場合があるので、取り敢えず避ける。
メモリを OC して vSoC を弄っている場合、SoC LLC の設定を行う。設定済の場合は Vdroop の加減を見て上方修正すること。
筆者の場合、Vdroop が発生した上で vSoC 1.000V が安定ラインなので、高負荷時でもこれを割らない Level 2 の設定を行った。
CO の調整マイルール
闇雲にやっていたら無駄が出そうだったので、事前にマイルールを決めておくことにした。
そのルールは……
- CoreCycler でエラーが発生したコアは Negative 値を序盤は 2、中盤以降は 1 削る。
- CoreCycler でエラーが発生しなかったコアは Negative 値を 1~2 増やす。
- 一度エラーが発生したコアに関しては、基本 Negative 値を増やす事はしない。
- 複数のコアで Negative を弄ってマシンが落ちてしまった場合は、値を一旦戻してから弄るコアの数を減らして再試行する。
- 中盤以降で Windows10 が起動しない、若しくは意図せずリセットが掛かってしまった場合、CCD#0 の★が付いたコアの Negative 値を 1 削る。
- CoreCycler でノーエラー達成後もクド過ぎる位に手動テストを行う。
Let’s Curve-Optimizer Tuning…!!
今回、CO 調整に関しての記録は以下の画像となる。957x2295 ピクセルという大きめの画像なので見づらいとは思うがなんとかこれで。
画像の装飾に関する説明。
- 赤背景のコア = CoreCycler でエラーが出たコア
- 紫背景のコア = ヤバいエラーが見つかったコア
- 最上段黄色背景 = ★が付いたコア
- 最上段灰色背景 = ●が付いたコア
- 薄い赤背景 = OS が落ちた時の設定
- 緑背景 = CoreCycler でノーエラー達成時の設定
- 太字 = 1 ステップ前から変化のあったポイント
右端 3 つのセルは CoreCycler のセッティング若しくはコメント。Time は 1 コア辺りに負荷を掛ける時間を秒で示す。
(画像はクリックしてポップアップさせたあと、再度画像クリックで拡大表示されてホイールスクロールが効く)
と言う事でトータル 102 ステップの試行を行うことで、筆者が安定したと思い込んでいる設定が出来た。
この設定を導き出す為に掛かった日数は 3 日。実作業 30 時間ほどだろうか。辛かった。けど今回は心を折らずに頑張った。
ちょっとした注意点としては CoreCycler を SSE モードの Huge というデフォ設定でノーエラーだったとしても、負荷の異なる設定に変えればエラーがでる可能性があると言う事。
幾らか試した感じだと、SSE モードの Huge ノーエラー達成後、SSE モードの Large を実行するとエラーが良く出た。ちなみに Large は CPU 向けというよりもメモリのストレステストで良く使われる物なので CPU 負荷としては低め。
AVX や AVX2 のモードへと負荷を上げてもエラーが出づらい感じがしたので、この 2 つは殆ど使っていない。
手動ストレステストについて
筆者が所持する Ryzen 9 5950X 固有の問題となるが、Cinebench R20 の Single を実行した直後にマシンが落ちる事が多発していた。
よって Multi 実行後にすぐ Single を実行する―― だとか、Single を実行したら直ぐに ESC を押してキャンセル。再度 Single を実行するという事をひたすら繰り返すなど行う必要があった。
この手順が最も再現性のある操作だった為だ。
要は CCD#0 の★か●の付いたコアに低~中程度の半端な負荷が掛かる事が原因。
忌まわしき WHEA-Logger 18 再来
なんとなくでイベントログを眺めつつ、気まぐれで「WHEA」という 4 文字で検索を掛けたところ、あの忌まわしき WHEA-Logger 18 を見つけてしまった。
このログ自体、2 つしか出ていなかったので相当の試行が必要なのかもだが……
ログに示される「プロセッサ APIC ID : 2」が原因で発生した物。
APIC ID という物は Ryzen の場合、2 で割って余りを切り捨てた物がそのまま物理コアを示す。
今回の場合、APIC ID 2 は Core#1 を示すので CCD#0 内の●が付いたコアという事になる。なんとも厄介な話しだ。
これが判明した 85 回目の試行以降は使用ソフトにかかわらず、マシンが落ちた場合は Core#1 の Negative 値を削る方向とした。
幸いにも Core#1 の Negative 値を削る程にマシンが落ちる現象が再現し辛くなるのが体感できて、最終的には 2 時間くらい手動でポチポチ負荷を掛けていても落ちることは無かった。
あとはお祈り
最後に CoreCycler で 1 コアあたり 2 分の負荷を 4 周させてノーエラー達成。Cinebench R20 Single 実行を 300 回くらいやってもマシンが落ちることはなかった。
それでも「たまたま落ち無かっただけ」なんていう可能性もあるので、現在は常用しながらマシンが落ち無いことを祈りつつというステータスとなっている。
CO チューニング後の Cinebench R20
PPT 142W という設定なので、高負荷時システム消費電力の実測は PBO2 設定前後で全く同じ 244W を示した。
その上で Multi のスコアが 7.4% の上昇をしているので、ワットパフォーマンスが上昇している事を示す。
それでいて Single も 3 ポイント上昇しているので、シングルスレッド処理能力は維持したままということになる。
CPU と VRM の温度比較
CO の設定は Negative なので各コアの動作電圧が下がる。その為か CPU の発熱は定格時よりも下がった。
VRM も定格時より下がったが、TDC, EDC を増やした分だけ負荷が上がって発熱量も増えるかと思ってたがそうでもないようで。
おわりに
個人的に目標としていたシングルスレッド処理能力を維持しつつ、マルチスレッド処理能力を向上 = ワットパフォーマンスを向上させる事は実現出来た。
安定性に関しては今まで行ったチューニングよりも段違いに安定はしているので、先述の通り、あとは落ち無いことを祈って使っていきたいと思う。
CO チューニングを Per Core で行うのはコア数が多いほど大変な作業になるのは分かっていたが、流石に今回は記録しながらという事もあってかなりの疲労感があった。
もうこの辺りで落ちないでくれると嬉しいな……
というか、低電圧耐性のないハズレ石だとかなり苦労するようで悲しい限りだ。
その後
2021/03/29 19:32
ベンチマーク環境の Windows10 を起動し、Cinebench やら CoreCycler ポチポチしても落ち無いから MaxxMem2 を起動してメモリの速度を計測していた。
Read だけにチェックを入れてポチポチしていたら遂に落ちた。3/26 に設定が終わってから 3 日目の出来事だった。
本記事の手順通りに Core#1 の Negative 値を 1 から 0 に削り、再度 CoreCycler の Huge で全コアクリア後 Large でもクリアするように調整も行った。
結果としては Cinebench R20 Multi が微減の 10400~10500 程度。Single は 640 をなんとか維持。
マルチスレッド処理能力はもうちょっと何とかならないかなーと PPT を 142 から 156 という TDP 115W 相当へ変更。
これにより Cinebench R20 Multi が 10832 に、Single が 640 を維持なんて結果になった。
OCCT 大を回したときのシステム消費電力は 264W となり、PPT 142 の時よりも +20W となる。ワットパフォーマンスはこれでも定格動作より上だったので、このまま継続して常用環境で落ちるまで使っていこうと思う。
2021/04/07 10:50
ベンチマーク環境で立ち上げて Cinebench R23 を起動した瞬間にプツんと逝ってしまった。リセットが掛かってしまってイベントログを見ても KP41 しか残っていなかったから今回の場合、PBO2 の設定が原因としか思えない物。
該当する CCD#0 の Core#1 は既に Negative 値は 0。ここから 1 つ緩めたら Postive 1 にしなければいけない。
しかし、これ以上緩めるとシングルスレッド処理能力が定格以下になることは明白であったため、これ以上の使用は不可能と判断。
5950X は定格で使用せざるを得ない状態になった。
なんだか悔しいのでメモリの動作を DDR4-3733 から DDR4-3800 に上げておいた。少しでもパフォーマンスアップを…… と。
コメント
こんにちわー
私もDH+5950X持ちなので参考にさせていただきましたが
Dynamic OC Switcherつかって 高負荷時には固定OC使用してますね
こちらを参考にして
https://bbs.kakaku.com/bbs/K0001320670/SortID=24019286/#tab
電圧 1.25
全コア 45.00倍指定
PBOは autoで 低負荷時にはPBOが有効化される感じです
Curve Optimyzerの値は
CCD0が★●がnegative 5 上位3と4番目のコアがnegative7 他negative20
CCD1が★●がnegative15 他がnegative20
ほとんどの場合PBOモードと固定OCモードを切り替わるTDCのアンペア値がデフォルトの場合(この数値をいじればモードの切り替えの負荷値を変更できるぽい)
CCD1に負荷が掛かるような場合はすぐに固定OCに移行するので
CCD1の値はnegativeの数値を大幅にマイナス出来る感じです
Curve Optimyzerの最適な数値を出すのはぶっちさんの様に大変な作業を伴うので
めんどくさいんですよね
私は諦めました(笑)
有用なコメントありがとうございます!
全く同じ所を見た事があります。個人的にはどうも PBO AUTO で PPT やらが上限に張り付くところが許容出来なかったので、Dynamic OC Switcher の使用は見送りました。
PBO2 を設定する上でのコンセプトが「定格動作以上のワッパ」でしたので、手動で Curve-Optimizer の値を詰めきるしかなかったのですorz
これだけやっても、うちの 5950X はあまり宜しくない個体の様で、定格以上のワッパを維持したまま安定させるに至らず現在は定格動作です(つД`)
同じく安定性を求めて格闘してきたものです!
こちらの構成は, Ryzen 7 5800XにVetroo v240という240mm簡易水冷ですが, miniITXケースなのでストックでは余裕の90℃オーバー. そのため, PBO2で省電力化を計りました.
現在は基本Autoで
PPT 120W
Thermal Throttling 85℃
Curve Optimizerが
☆, 〇コア -5
その他コア -23
という設定でなんとか安定して動作しています. サーマルスロットリングの温度を下げたのは負けたような気がしますが, そこまで動作クロックが下がるわけでもないので許容しています.
やはりPBO2でOCすると軽負荷での安定性を検証するのが難しいですね. Prime95やCinebenchでの負荷テストは全コア-20でも通ったのですが, アイドル状態で突然ブルスクという事態が連発. 特に, 良コアの電圧を絞り過ぎると低負荷時の安定性が著しく失われるようです. 現在は各コアごとというより良コアとその他でしか設定を煮詰めていないですが, 時間と検証方法が確立されれば各コアごとの最良設定を見つけていきたいです.
コメントありがとうございます!
個々に求める物へも柔軟に対応出来るのは嬉しいところですよね。
自分も最初は表示されるクロックを気にしたり、消費電力や温度云々と格闘する日々でした。
しかし、今はそこまで性能を求める方向のチューンをしても体感し辛いし、出来たとしても「慣れて分からなくなる」程度なので定格動作に戻った次第です。
そもそも優コアの CO 値が 0 や Positive でも落ちてしまうというハズレ具合に泣かされた気もします。
動作温度に関しては目に見えて分かる物ですし、パーツの寿命にも若干関わりますから、性能面で多少の犠牲を払っても時間が経てば「慣れ」ますし、仰るとおり「許容」出来るかどうかが鍵かと思います。
PBO2 を適用した低負荷時の安定性に関しては、実際に普段通り使って行く他難しい物があると思うので、根気よく…… という感じでしょうか。
対象スレッドに指定パーセントの負荷を掛けるツールなんかも見かけて試しましたが、どうにも再現性が得られずお手上げでした。
返信ありがとうございます. 許容なんて言っていたのに, あれから沼にはまりましたorz
ゲームが最適な負荷テストだと気づき, 4, 50の設定を試していました. 上の設定は安定していなかったです.
そして残念ながら, こちらでも-0設定でエラーを吐くコアが二つもありました.
現在は
PPT 95W, Thermalthrottling 80℃
C0 -10 C1 -30 C2 -30 C3 -30 C4 +3 C5 -25 C6 -3 C7 +3 (C5, C7が良コア)
でようやく安定している…と思います. C1からC3, C5は一度もエラーが出たことない優秀な子たちです.
いろいろな設定でテストしてびっくりしたのですが, ECO設定でもC4がWHEA-Loggerのエラーを吐きました. 相当出来の悪い子なようです. あと, 優秀なコアは-30で普通に安定しているようです. 著者様の一度もエラーの出ていないコアも, 案外すんなりと-30で通るかもしれません.