Infoseek 楽天

正常なCPUがたまに“こっそり”計算ミスする「Mercurial core」とは何か 米Googleが21年に研究報告

ITmedia NEWS 2024年10月9日 8時0分

 米Googleに所属する研究者らが2021年に発表した論文「Cores that don’t count」は、大規模データセンターにおいて、一見正常に動作しているように見えるCPUコアが、実際には誤った計算結果を出力する「Mercurial core」と呼ばれる問題が発生していることを明らかにした研究報告である。

 従来、CPUコアは製造時のテストをパスすれば信頼できると考えられてきた。しかし、半導体の微細化が進み、CPUの構造が複雑化するにつれ、製造時には検出できない潜在的な欠陥が増えていることが明らかになってきた。これらの欠陥は使用中に顕在化し、静かにデータ破壊を引き起こす可能性がある。

 正常なCPUがまれに計算エラーを起こす。厄介なことに、このエラーは多くの場合“サイレント”であり、誤った計算結果が唯一の症状となる。そのためエラーが発生したことに気付くのが非常に難しい。エラーが検出されずに後続の計算に影響を与え、被害が拡大するケースもある。

 研究者らはこの問題を「計算実行エラー」(Computational Execution Errors、CEE)と呼んでいる。調査によると、大規模サーバ群では数千台に数個の割合でCEEが発生しているとのこと。これは単なるランダムなハードウェアエラーの増加ではなく、特定のコアに集中して発生する傾向がある。

 CEEの原因としては、いくつかの要因が考えられている。まず、CPUの規模と複雑性の継続的な増加が挙げられる。シリコン製造プロセスの微細化により、エラーの許容範囲が狭まり、製造後の潜在的な故障リスクが高まっている可能性がある。また、積層技術などの新しい製造手法の導入により、複雑性と製造リスクが増大している。

 さらに、CPUが共有レジスタファイルを中心とした個別のアクセラレータの集合体へと進化していることも、問題を複雑化させている。これにより、特定の動作のみに影響を与える故障が発生しやすくなり、検証すべき動作の範囲が広がっている。温度、周波数、電圧も重要な要因だが、その影響は一様ではない。

 今回の問題に対処するため、研究者らは3つのアプローチを提案している。それは、検出、隔離、緩和である。

 検出については、自動化された監視メカニズムと人間による調査の組み合わせが有効だとしている。自動化されたスクリーニングメカニズムを定期的に実行することで、多くの問題を早期に発見できる。しかし、新しいタイプのCEEは人間の介入なしには見つけにくいため、生産サービスを運用する人々による調査も重要な役割を果たす。

 隔離については、問題のあるコアを特定し、スケジューリングから除外する方法を提案している。これにより、誤った計算結果が広がることを防ぎ、さらなる分析を可能にする。緩和策としては、アプリケーション固有のメカニズム、効率的なチェックポインティング、コスト効率の高い検出方法などが挙げられている。

 Source and Image Credits: Peter H. Hochschild Paul Jack Turner Jeffrey C. Mogul Rama Krishna Govindaraju Parthasarathy Ranganathan David E Culler Amin Vahdat. Cores that don’t count

 ※ちょっと昔のInnovative Tech:このコーナーでは、2014年から先端テクノロジーの研究を論文単位で記事にしているWebメディア「Seamless」(シームレス)を主宰する山下裕毅氏が執筆。通常は新規性の高い科学論文を解説しているが、ここでは番外編として“ちょっと昔”に発表された個性的な科学論文を取り上げる。X: @shiropen2

この記事の関連ニュース