【悲報】 AMD RyzenのL3 Cacheの大半を見失った件 【Windows11】

まあ、話題になってる件、わたしの場合は5950XのPCをWindows11にアップグレードした翌日に問題を目にして、

あと1日はやく気づいてたら…!

となったのだけど、アップグレードしてしまったものはしょうがないし、せっかくなので実際のとこどうなの、というのを調べてみた。




使うのはいつもの自作プログラムで、環境は以下の通り。

CPURyzen9 5950X
RAMG.skill F4-3600C19D-32GVRB
GPURadeon RX460
SSDPlextor M9PeGN 1TB
M/BGigabyte B550 AORUS Master
冷却Fractal Design Celsius+ S28 Prisma
電源Seasonic FOCUS PX-750
ケースFractal Design Define 7 Compact Light Tempered Glass


Windows11のバージョンはこんな感じ。
windows11_20211009_5950x_01.png



キャッシュ・メモリのレイテンシ



まずはレイテンシから。最初はキャッシュの構造の見やすい少し規則性のあるアクセスパターンから。

5950Xは一つのコアから見えるL3キャッシュは32MBなので、Windows10ではそのぐらいまでレイテンシが低い状態が続き、まあこれが想定される状態なのだけど、Windows11では2MB(2048KB)ぐらいから急激にレイテンシが上昇し、メモリアクセスと変わらない感じになってしまっている。

Windows11_20211009_Ryzen5950X_RAMCache_01.png



完全ランダムアクセスの場合も同様で、Windows11では2MB(2048KB)以降でキャッシュが見えなくなっているみたい。

Windows11_20211009_Ryzen5950X_RAMCache_02.png




キャッシュ・メモリ帯域



今度はシングルスレッドの帯域。

Windows10では32MBまでL3キャッシュによると思われる高い帯域が持続するが、Windows11では2MB(2048KB)以降メモリアクセスと同等に向かっていくような感じになってしまっている。

Windows11_20211009_Ryzen5950X_RAMCache_04.png



最後にマルチスレッドの帯域。

Ryzen9 5950Xは2CCDなので合計64MBのL3キャッシュがあり、Windows10ではそのぐらいまで高い帯域を維持できている。

一方、Windows11では16MBぐらいでストンと落ちてしまっていて、それ以降のL3キャッシュが見えていないかのよう。

Windows11_20211009_Ryzen5950X_RAMCache_03.png



というわけで、Windows11ではRyzenのL3キャッシュを見失うという事態が見事に再現してしまった。

L3キャッシュが完全に見えていないわけではなさそうだが、大半がうまく使えていないという不思議な状態になっているように見える。

というかキャッシュって完全にハードウェア的なものだと思っていたので、OSの影響を受けるものだというのを不覚にも知らなかった…。いったいなにが起こっているんだ…。



Windows 10への戻し方



正直これまでこの「OSを戻す」機能を使ったことはなかったのだけど、ちょっと性能が落ちるのは嫌なので、はじめてお世話になってしまった。

せっかくなのでやり方を記載しておく。

「設定」 > 「システム」> 「回復」 と進み、「復元」ボタンをクリック。

windows11_20211009_5950x_02.png

元に戻す理由を聞かれるが、「Windows10のほうが高速だった」でよかった気がするけど、結果にあまりにびっくりしていたときだったのでぼうっとしてて余計なことを書いてしまった。

windows11_20211009_5950x_03.png

アップデートをチェックしますか? と聞かれるけど、「行わない」

windows11_20211009_5950x_04.png

そして「Windows10に復元する」をクリック。

windows11_20211009_5950x_05.png

すると再起動してWindows10へのロールバックが開始される。時間はそれなりにかかるが、あっさりWindows10環境が返ってきた、初めてロールバックしたのでなかなか驚いた。(この記事はロールバックしたWindows10で書いている)



というわけでRyzen CPUをお使いの方は、Windows11はもうしばらく待ったほうがいいかもしれない。

この問題については、幸い今月中にはこの問題の修正パッチが配布されるらしいので、それを待って5950XのPCも再度Windows11に移行する予定。
スポンサーサイト



コメントの投稿

非公開コメント

No title

相変わらずAMDはこういうのが多いのがなんだかなぁって感じ。Intel以上にソフトはダメダメだった記憶はあるのですが、なぜリリースされるまで気づかないのか。。。

No title

いや普通にMicrosoftにやらかしでしょ何言ってんだ

XP時代だったか、新しいCPUの2次キャッシュ容量を認識出来なくて
応急処置としてboot.iniに設定した過去が有るから今回もそれと同じでしょう

「相変わらずAMD・・・」って言ってるヤツ、考え方逆だろ。馬鹿なヤツもいるもんだ。恥ずかしげもなくこんなこと書けるのだから馬鹿なわけだけれども。

No title

UEFI CPPC2 問題ってのもあるらしい。
こっちはパッチという記事もあればBIOSupdateって記事もあるんだが。はてさて。

相変わらずくんアホすぎるな
これAPUではどうなんだろ
試してみるか

No title

家の3950Xも人柱でクリーンインストールで11にしてみました
VBS無効なのですが、全体的2%ほどの性能低下が見られ、
4本同時にエンコードすると40%ほど性能低下する事もありました。
今月中に修正されるようなのでそれ待ちです

XPの時に8コアのbulldozerだと起動すらしないバグを思い出しました

No title

これはNUMAの問題な気がします。正確にはryzenでマルチプロセッサをしているわけではないですが、1プロセッサ内でccdが複数つながる構造上、同じことが起きます。
OSのスケジューラーはなるべくL3キャッシュを共有できる同じccd内のコアに同一プロセスのタスクを振らなければならないのに、Windows11ではそこが未実装なんじゃないかなと。
あるプロセスがどのcpuコアにアサインされてるかをWindows10と11で比べると違いが見えてきそうです。

【悲報】相変わらずくん、ソフトの開発元がわからないのに技術者気取り

No title

別に反論する気は無かったので反応してませんでしたが、あまりにも酷いので一言言わせてもらいます。

相変わらずと書いたのは私ですが、最初に書いてからこれを書くまで一つも書いておりません。
貴方が手当たり次第に馬鹿にしている相手は全て別人です。
会話をする気も無くただ暴言吐くのは意味の無いことです。

AMDにケチを付けられたのでぶち切れた(理解不能)と思われますが、正直見苦しいので、公の場所には書くことの意味をお考えください、
ここはrigaya氏のブログであり5chでは有りません。

私はOCNの固定IPから記載しているので、どうしてもと言われるのであれば、rigaya氏にでも聞いてください、ログにIP残ってると思うので。
別にAMDが嫌いな訳でも無くIntel大好きでもありません、現に私も5950Xを使っていますので。

No title

ボロクソに言われてイライラしてるのはわかるがもう少し他人にわかりやすく同情を持って接する書き方をするべきでは
感情的になってる時点でrigaya氏はおろか他の誰も味方になってくれんぞ

No title

BIOSでHyperThreding OFF、Core数=1に設定して同じ実験してみてほしい

No title

“というかキャッシュって完全にハードウェア的なものだと思っていたので、OSの影響を受けるものだというのを不覚にも知らなかった…。”これね。キャッシュってソフトからは見えないはずなんだけどなあ。ブコメだとキャッシュへのアクセス方法はプログラマブルだからOSで設定が必要、とのことなのでOSが悪いのかな

No title

Ryzen第3世代の8物理コア毎にL3キャッシュが独立している構造とWindows11のスケジューラの組み合わせの問題ですね。
異なるL3キャッシュ配下のコアを跨ぐようにスケジューリングされるとキャッシュが効果を発揮できないという。

記事ありがとうございます!

危うく11にアプデするとこでした
MicrosoftがIntelと共同で開発してる時点で予想してましたがやはりまた嫌がらせきましたねー

No title

たくさんのコメントありがとうございます。

やはりOSのキャッシュ構成の認識が影響するものなのですね。

Ryzen特有の部分というとやはりL3キャッシュがCCX/CCDで分割な構成なので、そのあたりの認識をWindows11側がミスしてるのかもしれませんね。

タスク(スレッド)の割り当てがCCDをまたいでしまっているのではというご指摘をいただきましたが、今回のプログラムに関してはその影響ではないと思っています。

この測定プログラムでは明示的に1スレッドづつコアへの割り振りをOSに指示しています(SetThreadAffinityMask)。なので、各スレッドは指定のコアに固定されているはずです。これがプログラム(あるいはOS)の不具合によりちゃんと固定できていないと、測定結果がもっと暴れる(きれいな線が出ない)のですが、今回は比較的ちゃんと線が出ている(多少は暴れてますが、あのぐらいはバックグラウンドタスクの影響で出てしまいます)ので、スレッドの固定は問題なくできているだろうと判断しています。

もちろん、通常のプログラムではスレッドのコア割り当ては行ったりしないと思いますので、もしWindows11がCCX/CCDを正常に認識できなくなっていれば、おっしゃるようにさらにペナルティが発生すると思います。
プロフィール

rigaya

Author:rigaya
アニメとか見たり、エンコードしたり。
連絡先(@を半角にしてください!)
rigaya34589@live.jp
github

最新記事
最新コメント
カテゴリ
月別アーカイブ
カウンター
検索フォーム
いろいろ
公開中のAviutlプラグインとかのダウンロード

○Aviutlプラグイン
x264guiEx 2.xx (ミラー)
- x264を使用したH264出力
- x264guiExの導入>
- x264.exeはこちら>

x265guiEx (ミラー)
- x265を使用したH.265/HEVC出力
- x265.exeはこちら>

QSVEnc + QSVEncC (ミラー)
- QuickSyncVideoによるH264出力
- QSVEncCはコマンドライン版
- QSVEncC 導入/使用方法>
- QSVEncCオプション一覧>

NVEnc + NVEncC (ミラー)
- NVIDIAのNVEncによるH264出力
- NVEncCオプション一覧>

VCEEnc + VCEEncC (ミラー)
- AMDのVCEによるH.264出力
- VCEEncCオプション一覧>

svtAV1guiEx (ミラー)
- SVT-AV1によるAV1出力

ffmpegOut (ミラー)
- ffmpeg/avconvを使用した出力

自動フィールドシフト (ミラー)
- SSE2~AVX2による高速化版
- オリジナル: aji様

エッジレベル調整MT (ミラー)
- エッジレベル調整の並列化/高速化
- SSE2~AVX対応
- オリジナル: まじぽか太郎様

バンディング低減MT (ミラー)
- SSE2~AVX2による高速化版
- オリジナル: まじぽか太郎様

PMD_MT (ミラー)
- SSE2~FMA3による高速化版
- オリジナル: スレ48≫989氏

透過性ロゴ (ミラー)
- SSE2~FMA3によるSIMD版
- オリジナル: MakKi氏

AviutlColor (ミラー)
- BT.2020nc向け色変換プラグイン
- BT.709/BT.601向けも同梱

○その他
x264afs (ミラー)
- x264のafs対応版

aui_indexer (ミラー使い方>)
- lsmashinput.aui/m2v.auiの
 インデックス事前・一括生成

auc_export (ミラー使い方>)
- Aviutl Controlの
 エクスポートプラグイン版
 エクスポートをコマンドから

aup_reseter (ミラー)
- aupプロジェクトファイルの
 終了フラグを一括リセット

CheckBitrate (ミラー, 使い方, ソース)
- ビットレート分布の分析(HEVC対応)

チャプター変換 (ミラー使い方>)
- nero/appleチャプター形式変換

エッジレベル調整 (avisynth)
- Avisynth用エッジレベル調整

メモリ・キャッシュ速度測定
- スレッド数を変えて測定

○ビルドしたものとか
L-SMASH (ミラー)
x264 (ミラー)
x265 (ミラー)

○その他
サンプル動画
その他

○読みもの (ミラー)
Aviutl/x264guiExの色変換
動画関連ダウンロードリンク集
簡易インストーラの概要

○更新停止・公開終了
改造版x264gui
x264guiEx 0.xx
RSSリンクの表示
リンク
QRコード
QR