【悲報】 AMD RyzenのL3 Cacheの大半を見失った件 【Windows11】
まあ、話題になってる件、わたしの場合は5950XのPCをWindows11にアップグレードした翌日に問題を目にして、
あと1日はやく気づいてたら…!
となったのだけど、アップグレードしてしまったものはしょうがないし、せっかくなので実際のとこどうなの、というのを調べてみた。
使うのはいつもの自作プログラムで、環境は以下の通り。
Windows11のバージョンはこんな感じ。
キャッシュ・メモリのレイテンシ
まずはレイテンシから。最初はキャッシュの構造の見やすい少し規則性のあるアクセスパターンから。
5950Xは一つのコアから見えるL3キャッシュは32MBなので、Windows10ではそのぐらいまでレイテンシが低い状態が続き、まあこれが想定される状態なのだけど、Windows11では2MB(2048KB)ぐらいから急激にレイテンシが上昇し、メモリアクセスと変わらない感じになってしまっている。
完全ランダムアクセスの場合も同様で、Windows11では2MB(2048KB)以降でキャッシュが見えなくなっているみたい。
キャッシュ・メモリ帯域
今度はシングルスレッドの帯域。
Windows10では32MBまでL3キャッシュによると思われる高い帯域が持続するが、Windows11では2MB(2048KB)以降メモリアクセスと同等に向かっていくような感じになってしまっている。
最後にマルチスレッドの帯域。
Ryzen9 5950Xは2CCDなので合計64MBのL3キャッシュがあり、Windows10ではそのぐらいまで高い帯域を維持できている。
一方、Windows11では16MBぐらいでストンと落ちてしまっていて、それ以降のL3キャッシュが見えていないかのよう。
というわけで、Windows11ではRyzenのL3キャッシュを見失うという事態が見事に再現してしまった。
L3キャッシュが完全に見えていないわけではなさそうだが、大半がうまく使えていないという不思議な状態になっているように見える。
というかキャッシュって完全にハードウェア的なものだと思っていたので、OSの影響を受けるものだというのを不覚にも知らなかった…。いったいなにが起こっているんだ…。
Windows 10への戻し方
正直これまでこの「OSを戻す」機能を使ったことはなかったのだけど、ちょっと性能が落ちるのは嫌なので、はじめてお世話になってしまった。
せっかくなのでやり方を記載しておく。
「設定」 > 「システム」> 「回復」 と進み、「復元」ボタンをクリック。
元に戻す理由を聞かれるが、「Windows10のほうが高速だった」でよかった気がするけど、結果にあまりにびっくりしていたときだったのでぼうっとしてて余計なことを書いてしまった。
アップデートをチェックしますか? と聞かれるけど、「行わない」
そして「Windows10に復元する」をクリック。
すると再起動してWindows10へのロールバックが開始される。時間はそれなりにかかるが、あっさりWindows10環境が返ってきた、初めてロールバックしたのでなかなか驚いた。(この記事はロールバックしたWindows10で書いている)
というわけでRyzen CPUをお使いの方は、Windows11はもうしばらく待ったほうがいいかもしれない。
この問題については、幸い今月中にはこの問題の修正パッチが配布されるらしいので、それを待って5950XのPCも再度Windows11に移行する予定。
あと1日はやく気づいてたら…!
となったのだけど、アップグレードしてしまったものはしょうがないし、せっかくなので実際のとこどうなの、というのを調べてみた。
使うのはいつもの自作プログラムで、環境は以下の通り。
CPU | Ryzen9 5950X |
---|---|
RAM | G.skill F4-3600C19D-32GVRB |
GPU | Radeon RX460 |
SSD | Plextor M9PeGN 1TB |
M/B | Gigabyte B550 AORUS Master |
冷却 | Fractal Design Celsius+ S28 Prisma |
電源 | Seasonic FOCUS PX-750 |
ケース | Fractal Design Define 7 Compact Light Tempered Glass |
Windows11のバージョンはこんな感じ。
キャッシュ・メモリのレイテンシ
まずはレイテンシから。最初はキャッシュの構造の見やすい少し規則性のあるアクセスパターンから。
5950Xは一つのコアから見えるL3キャッシュは32MBなので、Windows10ではそのぐらいまでレイテンシが低い状態が続き、まあこれが想定される状態なのだけど、Windows11では2MB(2048KB)ぐらいから急激にレイテンシが上昇し、メモリアクセスと変わらない感じになってしまっている。
完全ランダムアクセスの場合も同様で、Windows11では2MB(2048KB)以降でキャッシュが見えなくなっているみたい。
キャッシュ・メモリ帯域
今度はシングルスレッドの帯域。
Windows10では32MBまでL3キャッシュによると思われる高い帯域が持続するが、Windows11では2MB(2048KB)以降メモリアクセスと同等に向かっていくような感じになってしまっている。
最後にマルチスレッドの帯域。
Ryzen9 5950Xは2CCDなので合計64MBのL3キャッシュがあり、Windows10ではそのぐらいまで高い帯域を維持できている。
一方、Windows11では16MBぐらいでストンと落ちてしまっていて、それ以降のL3キャッシュが見えていないかのよう。
というわけで、Windows11ではRyzenのL3キャッシュを見失うという事態が見事に再現してしまった。
L3キャッシュが完全に見えていないわけではなさそうだが、大半がうまく使えていないという不思議な状態になっているように見える。
というかキャッシュって完全にハードウェア的なものだと思っていたので、OSの影響を受けるものだというのを不覚にも知らなかった…。いったいなにが起こっているんだ…。
Windows 10への戻し方
正直これまでこの「OSを戻す」機能を使ったことはなかったのだけど、ちょっと性能が落ちるのは嫌なので、はじめてお世話になってしまった。
せっかくなのでやり方を記載しておく。
「設定」 > 「システム」> 「回復」 と進み、「復元」ボタンをクリック。
元に戻す理由を聞かれるが、「Windows10のほうが高速だった」でよかった気がするけど、結果にあまりにびっくりしていたときだったのでぼうっとしてて余計なことを書いてしまった。
アップデートをチェックしますか? と聞かれるけど、「行わない」
そして「Windows10に復元する」をクリック。
すると再起動してWindows10へのロールバックが開始される。時間はそれなりにかかるが、あっさりWindows10環境が返ってきた、初めてロールバックしたのでなかなか驚いた。(この記事はロールバックしたWindows10で書いている)
というわけでRyzen CPUをお使いの方は、Windows11はもうしばらく待ったほうがいいかもしれない。
この問題については、幸い今月中にはこの問題の修正パッチが配布されるらしいので、それを待って5950XのPCも再度Windows11に移行する予定。