最近の話題 2010年9月18日

1.IDFでのSandy Bridgeの発表

  9月13日から15日にかけて開催されたIDFで,Sandy Bridgeのマイクロアーキがかなり明らかになってきました。マイクロアーキに関して,詳しいのは9月16日のPC Watchの後藤さんの記事9月14日のEE Timesの記事です。これらの記事をベースに重要なポイントをまとめてみます。

  まず,登場時期ですが,2011年1Hには1ソケット,2Hに2ソケットで,4ソケットのハイエンドサーバ向けのEXは2012年初頭になる予定です。今回,詳細が発表されたのは1ソケット版で,QPI無のバージョンです。

  まず,大きな改良点として,従来の32KBのL1命令$に加えて約1.5KuOPの容量のuOPキャッシュを備えています。従来もuOPの命令バッファにループデテクタを備えて,デコードされた命令の再利用を行っていたのですが,キャッシュ化でそれが強化されています。uOPへの変換回数が減るので,省エネにも効くという効果がありあます。また,分岐予測ミスも大幅に削減と書かれていますが,詳細は分かりません。

  そして,従来は命令の実行結果を一時的に格納するRetirement Register Fileと,アーキテクチャレジスタファイルを別個に持ち,命令がリタイアする時点でRetirement RegFileからアーキRegFileにデータを移すという制御でしたが,これを一つのPhysical RegFileに纏め,ポインタの付け替えで同等の効果を得る構造に変わっています。多数ビット(AVX化で256ビットになった)のデータ移動は消費エネルギーが大きいので,省エネが目的です。AMDのBobcatコアでも同様の構造になっており,データ移動を減らすというのは,最近のマイクロアーキの方向性です。

  実行ユニットでは従来の128ビットのSSE2から,256ビットのAVXに強化されたのが大きな改良です。構造としてはFP MULとFP ADDのパイプが描かれており,MULADDをやるようには見えません。もう一つ大きいのがNehalemではPort2がInteger Load,Port3がStore Addressだったのですが,それがPort2,3ともにLoadとStore Addressができるように描かれています。IntegerのLoadが2個並列にできるようになるのは効果があります。FPのmoveは明確に描かれていませんが,Port0,5で変わっていないようです。但し,AVX化で幅は256ビットに拡張されているのでしょう。

  Perlmutter氏のキーノートでは,AVXで性能が倍増したので,ジェスチャー認識などができるようになったとアピールしていました。

  また,GPUを内蔵し,CPUと3次キャッシュを共有する構造になりました。CPUからどのように見えるのかは分かりませんが,AMDのOntarioやLlanoはI/OレベルでGPUを付けているのに比べると,少なくともデータのやり取りは高速になります。GPUの規模はEUと呼ばれる汎用シェーダが12個(6個のバージョンもある)という噂です。なお,このGPUはDirect X10.1レベルでX11には対応していません。

  また,OpenCL 1.1をサポートするとのことで,このGPUは汎用計算にも使えるようになります。しかし,32ビット×12ではAVXの1.5倍のビット幅で,ターボ時でも1.3GHz程度のクロックと言われており,まあ,クロックはCPUの半分かそれ以下なので,CPUコア1個分程度の性能しかなく,それほど強力な助っ人ということにはなりそうにありません。

  4個のCPUコアとGPU,そしてメモリコントローラなどは32バイト幅の4つのリングバスで接続されています。Nehlem EX,Westmere EXでもリングバスは使われていますが,私の理解では,従来は集中アービトレーションだったのですが,今回はリクエスト,グラント,スヌープなどの制御も 各制御リングで行う分散制御に変えたそうです。EE Timesでは,3GHz動作時に,接続あたり96GB/sのバンド幅,1クロックで1ストップと書かれています。また,9月16日のThe Registerの記事によると,CPUコアとLLCはそれぞれ1ストップのようです。とすると,GPU,IMC,PCIe+DMIなどの接続も必要であり,4コアチップでも少なくとも11ストップはありそうです。また,EETimesでは,このリングは最大20コアを接続できるとのことで,フルリングを回るのは26〜31クロックかかるとなっています。3GHz×32Bで96GB/sは良いのですが,フルリングのレーテンシはどういう計算かは良く分かりません。

  今回公表されたブロック図ではメモリはDDR3×2チャネルで,I/OはPCIe2.0 x16とDMIが出ています。また,GPU以外にビデオのエンコーダ,デコーダなども積んでいます。

  電源ドメインは,CPUコア,GPU,メモリコントローラやI/Oの3つで,CPUコアにはパワーゲートが付いているようです。そして,GPUが同一チップに載ったことから,CPUとGPU間でも電力を融通してターボブーストができるようになりました。また,チップの熱容量を利用して,10〜20秒ならTDPを超えるレベルのブーストを行えるようになっています。 

2.Hot Chips 22で富士通がICCを発表

  2010年8月24日のHot Chipsにおいて富士通は,「京」スパコンの計算ノード間の接続を行うICCチップについて発表を行いました。

  「京」スパコンのインタコネクトは,12ノードがTofuユニットという単位を構成し,それが3次元トーラス接続されています。正確な計算ノード数は公表されていませんが,SPARC64 [fxチップは128GFlopsで,LINPACKで10PFlopsということから9万ノード程度で,Tofuユニットは7500個程度と考えられます。

  Tofuユニットの12個の計算ノードはx,y,z方向に2x3x2の配置で,2個の軸はメッシュ,3個のy軸はトーラス接続になっており,ToFuユニット間の接続は,ユニット内の対応する位置にあるノードがそれぞれ3Dトーラスとなるように接続されています。ということで,各計算ノードは10本の接続ポートを持っています。

  そして,今回発表のICCはSPARC64 [fxプロセサに1対1に接続されるチップで,この10本の接続ポートと2ポートのPCIexpressが出ています。富士通の65nmプロセスを使い,18.2×18.1oというサイズで,48Mゲートと12MbitのSRAMを集積しています。

  ノード間を接続するポートですが,物理的には6.25Gbps×8本で,8B10Bコーディングを使っているので,データ転送速度は5GB/sとなっています。これが送受の各方向にあります。なお,CPUとの接続も同じチャネルが4本あり,PCIexpressも同じバンド幅のものを2本使っているようです。

  そしてICCは通信を処理するCommunication Engineを4個持っており,CPUとの間で4つのRDMA転送を同時に行うことができるようになっています。そして,ICCは10本の他ノード接続ポートとCommunication Engine4個との間を接続するクロスバを持っています。

  トーラス接続なので,隣接以外のノードとの通信は中間ノードを経由して行く必要があり,これらの通信はクロスバで処理され,Communication Engineを使用するのはCPUが送り元か受け元になる場合だけと考えらえます。

3.Hot Chips 22でIBMがPOWER7 HUB Moduleを発表

  2010年8月24日のHot ChipsにおいてIBMは,BlueWatersスパコンの計算ノード間の接続を行うPOWER7 HUBモジュールについて発表を行いました。

  このHUBモジュールはHUBチップとノード間の通信用に使う光モジュールを搭載したMCMで,HUBチップはIBMの45nmプロセスで作られ,26.7×21.8oという巨大チップです。

  BlueWatersのシステム形態は4個のPOWER7 CPUチップを搭載したMCMが基本単位で,これを8個搭載した2Uの薄型サーバをHPCノードと呼んでいます。そしてHPCノードを4台まとめたものをスーパーノードと呼び,多数のスーパーノードを接続したものがシステムとなります。

  HUBモジュールは24GB/sのリンクを4本持ち,MCM内の各POWER7 CPUと1対1接続されています。BlueWatersの接続形態は「京」スパコンとは,大きく異なっています。HPCノード内の8個のHUBは24GB/s×2の電気のリンクで完全結合され,各HUBからスーパーノード内の他の3個のHPCノードの計24個のHUBにそれぞれ6GB/s×2の光リンクで接続されています。

  そして,各HUBから他のスーパーノード接続用の12GB/s×2の光リンクが16本出ており,スーパーノード全体では,これが512本あることになります。これをそれぞれ別のスーパーノードに繋ぐと最大では513スーパーノードのシステムが作れるという構成です。このような構成になっているので,一つのPOWER7から他のpower7への通信は,最大でも4個のHUBモジュールを経由するだけであり,3Dトーラスと比較すると大幅にスイッチの経由数が少なくなっています。

  POWER7 CPUはチップあたり256GFlopsなので,MCMあたり1TFlops,HPCノードは8TFlops,スーパーノードは32TFlopsです。これを513個つなぐと,ピーク性能は16pflopsあまりということで,10PFlops程度と言われるBlueWatersの性能範囲をカバーできます。

  IBMのHUMモジュールの凄いところは,富士通のICCはチップの総I/Oバンド幅は160GB/sですが,IBMのHUBモジュールの総I/Oバンド幅は1.128TB/sと7倍のバンド幅を持っている点です。ただし,富士通のICCは128GFlopsのCPU 1個を分担するだけですが,IBMのHUBはPOWER7 4個で1TFlopsを分担する必要があるので,Flopsあたりのバンド幅ではIBMの方が若干少なめです。しかし,4CPUチップ内の通信は内部で閉じている点を考えると,まあ,差が無いと言えると思います。

  また,もう一つ凄いのは,IBMのHUBモジュールは,HUBチップと10Gbpsの速度の12芯光ファイバの送受信モジュール(多分)56個を一つのMCMに搭載している点です。POWER7 MCMもそうですが,「京」スパコンと比較すると圧倒的な高密度で,実力の差を感じます。

 

inserted by FC2 system