Intelプロセッサの不安定性による「Oodle」展開失敗現象
(radgametools.com)- 第13世代・第14世代 Intel Coreプロセッサ のハードウェア不安定性により、Unreal Engineベースのゲームで Oodle Data の展開失敗 やクラッシュが発生する可能性がある
- 代表的なエラーは
DecompressShader(): Could not decompress shader (GetShaderCompressionFormat=Oodle)で、問題は Oodle 自体というより、CPU を強く使うマルチスレッド処理全般に関連している - Adobe Premiere、RealBench、CineBench、Prime95、Handbrake、Visual Studio などでもクラッシュが発生する可能性があり、CPU が原因でも
out of video memoryのような GPU エラーに見えることがある - Intel は、複数の問題が重なってチップ内部の クロック信号回路が急速に劣化 することを原因として確認しており、すでに物理的に劣化した部品は交換が必要
- 2024年10月1日時点で、損傷を引き起こす動作条件を避ける BIOSアップデート の配布が始まっているため、症状が現れる前に適用する必要がある
ゲームクラッシュとして現れるCPUの不安定性
- 13xxx・14xxx シリーズの 第13世代および第14世代 Intel Coreプロセッサ のハードウェア問題は、一般的なシステム不安定性につながる可能性がある
- Unreal Engineベースのゲームでは、Oodle Data の展開失敗やクラッシュが発生することがある
- 代表的なエラー:
DecompressShader(): Could not decompress shader (GetShaderCompressionFormat=Oodle)
- 代表的なエラー:
- この現象は Oodle に限ったものではない
- プロセッサを複数スレッドで強く使用するプログラムでも、クラッシュや予測不能な動作を示す可能性がある
- Adobe Premiere、RealBench、CineBench、Prime95、Handbrake、Visual Studio などでもクラッシュが確認されている
- CPU が原因でも GPU の問題のように見えるメッセージが表示されることがある
- 例: 誤った
out of video memoryエラー
- 例: 誤った
原因と必要な対処
- Intel は根本原因を チップ内部のクロック信号回路の急速な劣化 と確認している
- 複数の問題が重なって回路損傷が発生する
- 損傷はチップ自体の 物理的な摩耗 であり、一度進行すると元に戻せない
- すでに劣化が発生した部品は交換が必要
- 交換手順は こちらの案内 に整理されている
- 2024年10月1日時点で、回路損傷を引き起こす動作条件を避ける新しい BIOSアップデート の配布が始まっている
- 完成品ノートPCやデスクトップPCでは、メーカーがこの回避策を含む BIOS アップデートを配布中、またはまもなく配布予定
- 自作PCは、マザーボードメーカーのWebサイトで更新済み BIOS イメージを確認する必要がある
- 症状が現れる前に BIOS アップデートを適用する必要がある
- クラッシュが始まった後では、ソフトウェアで解決するには手遅れになる
1件のコメント
Hacker News のコメント
AMD Threadripper 3970X を初期導入したときに経験した出来事を思い出す: https://forum.level1techs.com/t/amd-threadripper-3970x-under...
HN での議論: https://news.ycombinator.com/item?id=22382946
結局、数か月にわたって AMD と一緒に問題を調査し、マザーボードと CPU をやり取りする手間について AMD は十分に補償してくれたが、その後は AMD が提供したカスタム BIOS イメージで使い続けている。最終的には Gigabyte 側の問題だったように思う
欠陥のある 13900K を受け取ったが、少なくとも自分の場合は標準の PL1/PL2 設定でも問題が出ていたと確認できる
そのシステムで強化学習を動かしていたところクラッシュが続き、かなり長い間原因を探したが、別の PC で使っていた 13700KF に CPU を交換したら問題は解消した
Intel に RMA を依頼したところ、使っている MSI マザーボードは Linux をサポートしていないと言われ、サポートを有効にするマイクロコードがある Intel 公式 GitHub リポジトリを送ったところ担当者が変わった。その瞬間、Intel が RMA をできるだけ避けようとしているのは明らかに見えたが、幸いヨーロッパ在住だったので地域の消費者保護機関を通じて RMA を進めた
その間にオンライン販売店で 7950X とマザーボードのセット割引を見つけて購入し、既存のマザーボードと RMA で受け取った 13900K は中古で売却した。Intel が一部のデータサイエンスプロジェクトを支援していたので Intel を使っていたが、もう二度と Intel は買わないつもりだ
セキュリティ問題を減らすにはハイパースレッディングを切り、今度はメモリ破損問題を減らすにはターボモードも切る必要がありそうだ
サイドチャネル攻撃を避けるために C ステートも切り、スケジューラの問題を避けるために効率コアも切っていくと、いつの間にか 20 年前の機能構成に戻ってしまう :P
最近、i9 149KF と Asus Formula マザーボードで新しいシステムを組んだ。VFIO システムとして Windows を動かし、ゲームもする目的だった
安定して動かすまでの過程は悪夢で、マザーボードのデフォルト設定は何一つまともに合っていなかった。ゲームはクラッシュし、カーネルと Emacs のコンパイルも失敗した
最終的に、6GHz チップのターボを 5.4GHz に制限し、最大電力とスロットリング温度を 90°C に制限する設定を有効にする必要があった
今は安定しているようで、スロットリングなしに 5.4GHz を維持しながら 4K 解像度 120fps でゲームを楽しめている。ただし、金を払って買った広告上の数値どおりには、どんな設定でも動かせないという点が引っかかる
最初はあり得ないと思ったが、Intel によればこのチップでは正常らしい: 「プロセッサは最大 100°C をサポートしており、それより低い温度は正常で想定範囲内です」
https://community.intel.com/t5/Processors/i9-14900K-temperat...
それでも本当におかしい。一方では、宣伝され代金を払った性能を当然受け取るべきだが、他方で CPU を 90〜100°C で運用するのは正気ではないように感じる。Intel がかなり追い込まれているという印象を受ける。どんな冷却構成を使っているのか気になる
昔 ISP が「最大 X Mbps」として売っていたやり方と同じだ。このチップも「最大 6.00GHz」までターボブーストすると言っている
実質的には自動オーバークロックで、自分が経験したように、時にはその速度を安定して出せないこともある。チップによっては決して「最大 6.00GHz」で動作しないものもあるだろうが、嘘ではない。「最大」だからだ
ただし CPU 負荷が 40% を超えるのも見たことがなく、ベンチマークソフトも走らせていない。5.4GHz で 90°C というのは自分のプロセッサで見ているものとはかなり違うので、どんな冷却装置を使っているのか気になる。より高いクロックでも、自分が CPU をそこまで強く追い込んでいないだけかもしれない
Raymond Chenの古典的な記事を思い出す: https://devblogs.microsoft.com/oldnewthing/20050412-47/?p=35...
xor eax, eaxのような基本命令さえ間違っていると知らせれば、デバッグが難しいサポート依頼を減らせたはずなのにこの状況には見覚えがある。昔の Pentium III 1.13GHzを思い出す
https://www.tomshardware.com/reviews/intel-admits-problems-p...
Zstdでもハードウェア問題に定期的に遭遇する。しばしばデコンプレッサーが、ネットワークから入ってきたデータと最初に相互作用するコンポーネントになる
今回のように、デコンプレッサーはチェックサムの使用有無に関係なくビット反転に非常に敏感なので、同じホストで動いている他のプロセスより先にハードウェア問題に気づくことが多い
Zstdは元データのチェックサムだけを含めることに決めたが、これはデータ整合性を保証するには十分だ。ただし圧縮データが破損しているかは確認できないため、破損の原因がデコンプレッサーである可能性を排除しにくくなる
このページは他の公開ページからリンクされていないようなので、エラーログの「oodle」を追跡しようとしたユーザーからの望ましくない不満に対応するために作られたページのように見える。2006年のSQLiteのときと似ている [1]
[1] https://news.ycombinator.com/item?id=36302805
https://www.radgametools.com/granny.html
https://www.radgametools.com/iggy.htm
https://www.radgametools.com/milesperf.htm
まったく驚かない
以前4790K用にASUS TUFボードを買った理由は、基本的なものが欲しく、オーバークロックや調整には興味がなかったからだ。ところがBIOSの考えは違っていた
オーバークロックを避けようとするだけでも大量の設定を手動で指定する必要があり、RAMタイミングを設定し、BIOSの各項目を確認して、何らかの形でオーバークロックしていないか見なければならなかった。「optimal」設定は、バス速度倍率の調整のような攻撃的な変更を有効にしてしまった
Asusマザーボードで似たようなことを経験した。自動チューニングのせいで不安定になり、コンパイラがクラッシュし、普通に使うにはBIOSを手動で設定する必要があった
問題はSuperIOがクーラーを制御する方式のせいでさらに悪化していると思う。クラッシュが100°Cの温度急上昇と結びついていたからだ。ファンを上げる速度は遅すぎ、下げる速度は速すぎる
Linuxではユーザー空間からこれを調整できる。しかし実際には、温度のような遅行指標ではなく、電圧レギュレータのような先行指標が上昇局面を制御すべきだ。あるいはLinuxのp-stateコントローラーが電力レベルを予測し、より高いファン速度を設定することもできる
デフォルトのファンカーブは効果がなく、常に揺れ動いていて煩わしい。単一のPコア温度が頻繁に跳ね、ファンが落ち着きなく反応する
立ち上がり時間を長くするとファン動作が滑らかになると読んだが、上の経験を見ると、それがプロセッサの故障を引き起こす可能性もありそうだ