最近の話題 2008年9月6日

1.SunのRockの発表

   2008年8月26日のHotChipsの,大トリの発表はSunのRockの発表です。この発表スライドがWebに公開されています。RockについてはISSCCの発表と,その場で発表者に聞いた話をもとに2月16日の話題に紹介していますが,ISSCCでテクノロジ関係の学会であり,アーキテクチャ的な側面はあまりカバーされておらず,アーキテクチャの学会発表は今回が初めてです。

  Rockは16コアで,各コアが2スレッドのSMTというのが普通に言われている話ですが,実は,この2スレッドのSMTそれぞれが2スレッドのVMT(Vertical Multi-Thread)が出来る構造になっています。これは発表を聞いたときには分からず,発表の後に発表者を囲んでの質問をして,やっと,各コアがアーキテクチャレジスタを4組備えていることが分かりました。

 そして,Rockのスカウトスレッドですが,スライドにあるように,Scout,EXE,SST(Simultaneous Speculative Threading)という3つのモードがありますが,私は,EXEモードが一番重要だと思います。EXEモードで実行中のスレッドがキャッシュミスなどのレーテンシの長い命令にぶつかると,そのスレッドのアーキテクチャ状態はチェックポイントとしてフリーズし,ペアとなっているVMTのスレッド(EXEスレッド)にアーキテクチャ状態をコピー(ゼロサイクルで)して,EXEスレッドは,その次の命令から走り始めます。ここでキャッシュミスしたロード命令が書き込むレジスタにはNT(Not There)フラグを立てます。

 それから,EXEスレッドはキャッシュミスがなかったかのように実行を進めますが,NTフラグの立ったレジスタを入力オペランドとする命令は,結果を格納するレジスタにもNTフラグを立て,また,この命令をDeferred Queueに格納します。そして,元のキャッシュミスのデータが戻ってくると,EXEスレッドは,Deferred Queueに溜まった命令を実行パイプに突っ込んで処理します。このDeferred Queueの命令が捌けると,もともメインスレッドを終了し,EXEスレッドを新たなメインスレッドとしてjoinします。

 このように処理を行うと,キャッシュミスのデータをL2$に取りに行っている間に,そのデータと依存関係にない命令をやってしまえます。また,EXEスレッドでも次のロード命令を出し,それがキャッシュをミスするとL2$やメインメモリアクセスが始まり,プリフェッチ効果があります。但し,このように多重にキャッシュミスを処理するには一つのNTフラグでは足りず,2つのNTフラグをもっています。

 また,このような処理を矛盾なく行うため,EXEスレッドのストア要求は他のプロセサから見えるキャッシュには書き込まず,ストアキューに要求をバッファし,joinするときに書き込みを行って他のプロセサから見えるようにします。また,ロードもEXEスレッドがフェッチしてきたキャッシュラインにはSビットを立て,このSビットの立っているラインが追い出されたり,インバリデートされると,矛盾が生じる場合があるので,EXEスレッドの実行結果をキャンセルして,元のスレッドのチェックポイントに戻って実行を続けます。

 この動作は,殆ど,トランザクションメモリで必要な動作と同じで,EXEスレッドの開始がトランザクションの開始命令,終了がコミット命令という違いです。但し,書き込み要求を溜めるのがL2$のWrite Bufferと言っていたような気もするので,L1$はグローバリービジブルではなくなるような動作をするのかも知れません。

 性能効果としては,発表スライドにありますが,TPCCの場合,Scoutによるプリフェッチ効果だけでIPCが40%向上となっています。TPCCはキャッシュミスが多いので効きが大きいプログラムではありますが,大きな性能改善効果です。

2.富士通のSPARC64 Zと[

  2008年8月26日のHotCHipsのサーバチップのセッションで,富士通はSPARC64 Zプロセサを発表しました。65nmプロセスで4コアを集積し,前世代からコア数を倍増しています。内蔵のL2$は6MBです。

  同じサーバチップのセッションで発表されたIntelのTukwilaは今年の終わり,SunのRockは来年後半の出荷ですが,富士通のこのチップは,2月23日の話題で紹介したJAXA向けのスパコンに使用されていますし,汎用サーバとしても7月19日の話題で紹介したように 既に出荷しているチップです。

  チップサイズは20.31x20.86mmというサイズで,トランジスタ数は600M,クロックは2.5GHzで最大消費電力は135Wとなっています。

  前世代と比べての改善点としては,SPARC64 Yは,キャッシュミスなどをきっかけにスレッドを切り替えるVMTだったのですが,今回はSMTになり並列実行性能が改善されています。また,マルチコアで一つのdoループ分担するような場合の性能を改善するため,ハードウェアバリアを実装しています。これによりバリア同期の時間が約60nsとなり,ソフトでの同期に比べて10倍の性能と述べています。その他にも浮動小数点積和演算のレーテンシを7サイクルから6サイクルに短縮するなどの改善が行われています。

  また,SPARC64は業界トップレベルの高信頼を売り物にするサーバチップですが,レジスタウィンドウを必要とするSPARCアーキでは巨大となる整数レジスタファイルにECCを適用して耐ソフトエラー性を改善しています。

  それから,SPARC Enterpriseサーバ用は4CPUチップで4chのメモリを共用しているのに対して,HPC用のFX1では1チップで2chのメモリを使う構成としてメモリバンド幅を強化しています。このメモリバンド幅の増強によりSPECマークの平均で15%程度性能が上がるという性能比較を示していました。

  そして,最後に予稿集にないスライドで,次世代のVenusと呼ぶコードネームで開発中の次世代ペタスケールサーバ用のCPUチップのハイレベル諸元を公開しました。それによると,SPARC64 [となると思われる次世代チップは,45nmプロセスを使用し,8コアを集積。そして,HPC-ACEと呼ぶSIMD機構を搭載してチップ当たり128GFlopsとのことです。これから計算するとコアあたり16GFlopsです。SPARC64 Zはコアあたり10GFlopsですから1.6倍にしかなっていません。従って,SIMDは4積和演算を行うもので,クロックは2GHzと考えられます。

  また,ペタスケールシステム用と言っていますので,富士通が担当する次期日の丸スパコンのスカラ部にはこのCPUが使われると思われます。

3.続々NVIDIA GPU不良問題

  先週も紹介したNVIDIAのGPUの不良問題ですが,The InquirerにCharlie Demerjian氏が力作の三部作のレポート(その1)を掲載しています。基本的には,先週紹介したのと同じですが,バンプの電流許容量が高い鉛の多いバンプを使ったが,共晶ハンダより機械的に弱い。機械的な強度を増すアンダーフィル材料がチップが高温になると軟化して,全ての力が高鉛バンプに掛かり,チップ側でバンプが破損するというメカニズムとしています。

  一般にバンプの断面積に比べると,バンプからチップの中への接続の配線の断面積の方がずっと小さく,材料の違いを考慮しても,バンプの電流容量が問題にはならないと思いますが,チップと基板の熱膨張率の違いからバンプにせん断応力が掛かり,アンダーフィルの軟化と相俟って問題が生じたという記述は説得力があります。

  しかし,これはチップのパッケージのプロには良く知られた話で,加熱と冷却を繰り返すサーマルサイクルや急激な温度変化を掛けるサーマルショックは標準的な評価試験です。このような問題は,これらの評価で見つかる筈で,何故,見つからなかったのかが疑問です。

4.ASC Blue WatersをIBMが正式受注

  2008年9月4日のThe Inquirerが,NCSAに設置されるASC Blue WatersっをIBMが正式に受注し,価格は$208Mと報じています。DARPAのHPCSプロジェクトで開発してきたPERCSテクノロジを使い,CPUはPOWER7プロセサでシステム全体では20万コアだそうです。完成は2011年の予定です。Blue Watersについては7月19日の話題で紹介しています。

  システムの価格は$208Mですが,HPCSのPhase-1〜3でIBMが受け取る開発費の合計も,これと同じ程度なので,全体としては$400M程度とも言えます。