第2回ソフトエラー勉強会レポート
高性能コンピューティング最大の脅威となる「ソフトエラー」

ソフトエラー勉強会の案内板(なぜか「研究会」となっている)

8月27日~28日 開催
会場 福岡システムLSI総合開発センター



高い信頼性を要求する分野における半導体チップの違い

 航空宇宙システムや自動車、医療機器などがシステムとして高い信頼性を要求されることは一般的に知られている。これらのシステムに使われる半導体チップの製造には最先端のプロセス技術ではなく、どちらかというと熟成したプロセス技術を使うことが多い。熟成したプロセス技術で製造した半導体チップは信頼性のデータが充実しており、一定水準の信頼性を保証しやすい。また熟成したプロセスは設計マージンを取りやすいので、信頼性を高めやすい。

 ところが、最先端のプロセス技術による最高性能の半導体チップを使いつつ、非常に高い信頼性を要求するシステムがある。それが「高性能コンピューティング(HPC:High Performance Computing)」の分野だ。

 高性能コンピューティング(HPC)の分野では、ソフトエラー対策がきわめて重要であり、避けて通れない課題になっている。8月27日~28日に福岡県福岡市で開催された「第2回ソフトエラー(などのLSIにおける放射線効果)に関する勉強会」では、「TOP500」で知られる世界トップクラスのスーパーコンピュータにとってソフトエラーが重大な脅威であることが、富士通と富士通セミコンダクターの共同研究チームから改めて示された。

 ソフトエラーとは一過性のエラー(故障または不良)で、電源を再投入したり、リセットをかけたり、演算結果を取り消して再実行したりすると、たいていは正常に動作する。ソフトエラーが厄介なのは、ハードウェアもソフトウェアも正常であることだ。ハードウェアの故障であれば、ボードを交換すればよい。ソフトウェアのバグであれば、修正すればよい。ところがソフトエラーはこれらすべてが正常な状態で、なおかつシステムが稼働している途中で発生する。HPCのように24時間365日の稼働を前提とするシステムでは、ソフトエラーは重大な脅威なのである。

●TFLOPSとPFLOPSの大きな差異
高性能コンピューティング(HPC)における不良率の例

 富士通は日本が誇るスーパーコンピュータ「京(けい)」を例に、ソフトエラーの脅威を具体的に明らかにした。「京」の論理演算性能は11.28PFLOPS(ペタフロップス)、LINPACK性能は10.51PFLOPSに達する。2011年6月と11月の「TOP500」で「京」は世界1位に輝いた。2012年6月に公表された最新のTOP500でも世界2位の性能を維持している。

 「京」を初めとする最新世代のスーパーコンピュータは、10PF~20PFの性能を目標とする。ここで最大の脅威となるのが、ソフトエラーだ。参考のために示されたのが、少し前の世代のテラフロップス・スーパーコンピュータにおける不良率のデータである。例えば「Cray XT3/XT4」は、1TFLOPS(テラフロップス)当たりで1日に0.1回~1回のエラーが発生する。この不良率で演算性能を10PFLOPSに拡張すると、1日になんと1,000回~1万回ものエラーが発生することになるのだ。平均不良間隔(MTBF:Mean Time Between Failure)に換算するとわずか9秒~1分30秒という驚くべき短さである。

 これが何を意味するかというと、単純にテラフロップス級の高性能コンピュータを拡張したのでは、ペタフロップス級の高性能コンピュータはまともに稼働すらできない、ということだ。稼働し始めてもすぐにエラーを発生する、とんでもない代物になってしまう。


●10PFLOPSの実現に必要な信頼性とは

 以上のことから、実用的な10PFLOPSコンピュータの実現には、半導体チップの段階で非常に低い不良率が求められる。それでは、どの程度の不良率を達成すべきなのか。スーパーコンピュータ「京」の場合、筐体1個が102個の計算ノードを収容しており、864個の筐体がある。計算ノード数の合計は88,128ノードになる。おおよそ9万ノードと考えよう。LINPACKベンチマークの実行時間は29.5時間だったので、余裕を見て計算時間を33.3時間と仮定する。

 約9万ノードの計算ノードが33.3時間稼働して、10PFLOPSの性能を発揮し、なおかつ90%の成功率で計算を完了させる。このためには、1計算ノード当たりの不良率を36FIT(Failure In Time)以下に抑えなければならない。

 ここでFIT(フィット)とは、10の9乗時間(10億時間)当たりの不良発生率を示す単位である。1年間は8,760時間なので1万時間と粗く見積もると、10億時間とは10万年に相当する。10万年で36回の不良発生が許されるとすると、粗く平均して約3,000年に1回の不良発生となる。気が遠くなるような長さである。言い換えると、スーパーコンピュータ「京」は物凄く高い信頼性を実現しているということになる。

 ちなみに2012年6月のTOP500で上位3システムのLINPACK性能はトップ「Sequoia(セコイア)」が16.32PFLOPS、2位「京」が10.51PFLOPS、3位「Mira(ミラ)」が8.15PFLOPSである。半導体チップのCPUコア数でみると、順に157万2,864コア、70万5,024コア、78万6,432コアとなっている。

10PFLOPSの高性能コンピュータが達成すべき信頼性2012年6月時点のTOP500上位5システムスーパーコンピュータ「京」における1計算ノードの構成

●高性能コンピューティング(HPC)のソフトエラー対策

 高性能コンピューティング(HPC)を実現する半導体チップでソフトエラー対策が強く求められるのは、キャッシュ(SRAM)とロジックである。

 SRAMのソフトエラー対策で最も一般的なのは、誤り訂正符号(ECC:Error Correction Code)の導入である。例えば64bitのデータに対して8bitのパリティビットを付加すると、1bitの誤り訂正と2bitの誤り検出を実行できる。

富士通が開発したソフトエラー耐性を備えるラッチ「SEILA」の効果

 ロジックのソフトエラー対策には回路レベルの対策やセルレベルの対策などがある。システムおよび回路レベルの対策には、冗長回路と、エラー検出・リトライがある。冗長回路はロジック回路を二重化あるいは三重化することで、エラーを発生しにくくする。エラー検出・リトライは、エラーを検出したら演算結果をいったん消去し、演算をやり直す。ソフトエラーは基本的には一過性の不良なので、リトライによって不良を回避できる(ここではソフトエラーは連続して発生しないとの前提が存在する)。

 セルレベルの対策には、ラッチ内部に冗長回路を設けた「DICE(Dual Interlocked storage Cell)」が良く使われている。ただし微細化の進展によって最近ではDICEの効果が弱くなってきており、代替技術が求められるようになってきた。例えば富士通では「SEILA(Soft Error Immune Latch)」と呼ぶラッチ回路を開発した。


●ソフトエラーがエクサスケールの前に立ち塞がる

 現在、国内外では次世代のスーパーコンピュータ「エクサスケール」の開発が検討、あるいは具体的に進められている。現在の高性能コンピューティングにおける性能向上トレンドを外挿すると、2018年~2019年頃には「1EF(エキサフロップス)=1,000PF」の性能を有するスーパーコンピュータが登場することになる。

 このような超高性能コンピューティングを実現する計算ノードでは、CPUチップのキャッシュ容量は2次キャッシュで50MBにも達すると予想されている。

スーパーコンピュータの性能推移SPARCプロセッサにおける2次キャッシュ容量の推移

 設計仕様としては消費電力の低減が極めて重要視されるので、電源電圧の低下と動作周波数の低下が必須条件となる。すなわち性能を高めるにはCPUのコア数を大幅に増やしたメニイコアのCPUチップが計算ノードとして搭載される。トランジスタ数は1,000億個を超えるだろう。

 ソフトエラーの観点から見ると、電源電圧の低下はソフトエラー発生率の増大を招く。一方で動作周波数の低下は、組み合わせロジック回路におけるソフトエラー発生率を低下させる。

TOP500におけるLINPACKベンチマーク実行時間の推移

 問題なのはLINPACKベンチマーク時間の増大である。現在のトレンドを外挿すると、エクサスケールコンピューティングにおけるベンチマーク時間は140時間に達するという。計算ノード数が約10万ノードで10PFLOPSのスーパーコンピュータとあまり変わらないとしても、90%の成功率で140時間の計算時間を故障せずに実行するには、1計算ノード当たりの不良率をわずか7.5FITに下げる必要がある。10PFのスーパーコンピュータが36FITだったので、およそ5分の1に半導体チップのソフトエラー発生率を下げなければならない。

 現在のソフトエラー対策技術の延長では、このように極めて低い不良率を達成することは不可能に近い。次世代のHPCには、何らかの技術的なブレークスルーが必要な段階にきている。


(2012年 9月 3日)

[Reported by 福田 昭]