Ryzen 9 5950X で Curve-Optimizer をチューニングしていく様子をまとめた

PC
この記事は約10分で読めます。
スポンサーリンク
 PBO2 の設定はオーバークロックにあたるので、自己責任の上で使用する必要がある。何があっても泣かない。

はじめに

 PBO2 の使用は諦めたハズだった。しかし、どうにも悔しいという感情が湧き出てきてしまったので再チャレンジ
 今回は Curve-Optimizer (以下 CO) の Negative 値を Google スプレッドシートで 1 ステップずつ記録する手法を取ってみた。

 途中、ストレステストが完了してもリセットしてしまう原因と思しきエラーを発見した為、その対処を行ったら最終的になんとか「今のところ落ち無い」設定に行き着いた。

 そんな訳で筆者が今回、PBO2 の設定を行った手順を記録として残しておこうと思う。

PC スペック

 今回も変わらずなスペックで PBO2 の設定を行っていく。

 尚、メモリは DDR4-3733 CL16 でガチガチにチューニング済。且つストレステストも完了済なので、メモリや Infinity-Fabric が原因のエラーは発生しない物として進める。

用意しておくソフトウェア

 自分の所持している Ryzen 9 5950X の優先コアである★と●の付いたコアを把握する為に Ryzen Master を用いる。

オーバークロック制御用AMD Ryzen Masterユーティリティ

 CO 調整後のストレステストとして CoreCycler を用いる。バージョンは 0.7.9.2 の物を使用した。

Releases · sp00n/corecycler
Stability test script for PBO & Curve Optimizer stability testing on AMD Ryzen processors - sp00n/corecycler

 CoreCycler で全コアエラー無しを達成後、更なるテストとベンチマークスコアを取得する為に Cinebench R20 を用いた。
 R23 ではリセットが掛かる再現性を得られなかったので、R20 でないとダメだった。

Download MAXON Cinebench R20
Download the all newCinebench.  Cinebench is a real-world cross-platform test suite that evaluates your computer's hardware capabilities. Improvements to Cinebe...

 別途 30 分程度のシングルスレッドな負荷を掛けたかったので Cinebench R23 も用いた。

Maxon - 3D for the Real World

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 のセッティングが大幅に変わる場合があるので、取り敢えず避ける

 ストレステスト完了後に Offset で +0.00625~0.01250V 程度までなら多少のパフォーマンス低下と引き換えに安定性が得られる場合もあるので、個々のさじ加減でお好みというのもある。

 メモリを 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 の★か●の付いたコアに低~中程度の半端な負荷が掛かる事が原因。

 何度も繰り返す必要があったので、UWSC というソフトを用いて回数指定の自動化を行い、100~200 回くらいは繰り返し実行させていた。

忌まわしき 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 に上げておいた。少しでもパフォーマンスアップを…… と。

スポンサーリンク
著者プロフィール
ぶっち

本格的に PC へ触れ始めてたのは 1990 年位から。
興味は PC 全般。OS は Windows と Linux などを嗜む。
プログラマやネットワークエンジニアを経てフリーに活動している 2 児の父なアラフォーのおじさんです。

ぶっちをフォローする
ぶっちろぐ

コメント

  1. こんにちわー

    私も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 はあまり宜しくない個体の様で、定格以上のワッパを維持したまま安定させるに至らず現在は定格動作です(つД`)

タイトルとURLをコピーしました