最近の話題 2014年8月23日

1.HawellのTSXにバグ

  2014年8月12日のAnandTechが,HaswellのトランザクションメモリサポートのためのTSX命令にバグがあり,機能をディスエーブルして出荷と報じています。

  色々なタイミングが重ならないと起こらないようですが,TSX命令を使うと,予期しない動作を引き起こす場合があるとのことです。つまり,ハングやメモリコラプションがおこるかも知れません。

  TSXはトランザクションメモリをサポートする命令で,トランザクションメモリはロックを使わず排他制御ができるので,データベースなどのトランザクション処理に威力を発揮すると期待されているのですが,一方,すぐにも使いたいというユーザはそれほど多くはなく,TSXが使えなくても,Haswellの売れ行きに大きな影響はないと見られえています。

  TSXは,トランサクションを実行中の書き込みは,コア内に溜めて外には出さず,トランザクションが正常に終了すると,書き溜めた全部のデータを,他のプロセサからのメモリアクセスに割り込まれることなしに,一括してメモリに書き込むという難しい動作が要求されます。筆者の経験でも,難しい動作の最中に,緊急度の高い非同期の事象が起こるというのは,検証も難しく,バグの温床です。

  新しいプロセサにバグが見つかるのはつきものですが,このバグはマイクロコードの修正では直せず,IntelはTSXの機能をディスエーブルして出荷するとのことです。BIOSで逃げれば,開発用には使えるという話もありますが,多分,性能はガタ落ちになるのでしょう。

  Intelによれば,どうしてもTSXが要るユーザはHaswell-EXまで待ってくれとのことですが,それが何時になるのか,まだ,分かりません。

2.Bitcoinのマイニング用LSI Goldstrike 1

  2014年8月14日のEE Timesが,Hot Chips 26で発表されたCoinTerra社のGoldstrike1について報じています。

  Bitcoinはブロックチェインといって,次々と承認された取引の情報を追加してブロックの記録を伸ばしていくのですが,このブロックを伸ばす権利を得るためには暗号クイズを解く必要があります。このクイズは,現在のブロックの情報と,追加する取引の情報に,Nonceという32bitのデータを加えて,それをSHA-256という1方向ハッシュ関数で2回ハッシュします。この結果の256bitの値の最上位の16bitが全て0になるNonceを見つければ正解です。

  しかし,量子コンピュータがあれば別ですが,Nonceの値を変えてハッシュを計算してみるという方法しか解き方は知られていません。SHA-256の出力は,事実上,ランダムなビット列ですから,頭の16bitが0になるのは,平均的に2の16乗回に一回です。つまり,平均的に65536回のハッシュを計算する必要があります。

  ただし,正解を見つけるのは競争なので,途中までやったところで,他のグループが正解を見つけてしまうと無駄になってしまうので,競合状況によっては,正解を得るまでにはもっと多くの計算回数が必要になります。

  これを高速に実行するのがGoldstrike1で,120個のHashエンジンを持ち,1.05GHzクロックで動作し,各エンジンは,パイプラインで1Hash/cycleなので,全体では120×1.05=126GHash/sの性能を持っています。このチップはGlobal Foundriesの28nmプロセスで作られており,37.5mm角のパッケージに4個搭載されているので,チップは11.5mm角といった感じです。電源は0.7Vと低いのですが,大量のハッシュエンジンの動作率が高いので,パッケージの消費電力は約500Wとのことで,コールドヘッドを付けて水冷しています。

  そして,このチップを4個,4Uの筐体に入れたものを,デスクサイド筐体のように立てて置いたのがTerraMinerというマイニング用サーバです。

  CoinTerraは,Goldstrike1 LSI,TerraMinerボックスの販売と,データセンターに設置したTerraMinerでマイニングを請け負うというビジネスを始めていますが,いずれもドルベースの値段です。まあ,Global Foundriesにしても,TerraMinerボックスを作るEMSも,設置するデータセンターもBitcoinではなくてドルでの支払いを要求するでしょうから,ビジネスとしては,やむを得ないところでしょう。

3.富士通が次世代スパコンプロセサSPARC64 XIfxを発表

  2014年8月18日のマイナビが,Hot Chips 26における富士通のSPARC64 XIfxの発表を報じています。このプロセサは,100PFlops級のスパコンがターゲットで,10PFlopsの京からExaに向かう中間ステップという位置づけです。

  SPARC64 XIfx(以下,11fxと略す)は20nmプロセスで作られ,計算コア32個とアシスタントコアと呼ぶコアを2個,合計34コアという多コアのプロセサです。クロックは2.2GHzと発表されましたが,チップサイズや消費電力は明らかにされていません。推測でチップサイズは「SPARC64 Xは587.5mm2であったが,SPARC64 XIfxは20nmプロセスであるので,これよりは小さくなっているのではないかと思われる。」と書いたのですが,牧野先生のブログで,700mm2を超えることが明らかになっている,知らないのかとお叱りを受けました。

  計算コアは,これまでのSPARC64のSIMDは128bit幅で64bitの倍精度浮動小数点MADを2並列だったのですが,これを256bit幅に拡張して,4並列として,チップ全体の演算性能を1.1TFlopsに引き上げています。それから,これまでのSPARC64は単精度にしても演算数は増えなかったのですが,11fxでは,Intel CPUなどと同様に,単精度なら2倍の演算ができるようになりました。

  SIMDのロードストアは,連続アドレスのアクセスしかできず,メモリアクセスがやりにくいのですが,11fxでは,2〜7という限定された値ですが,飛び飛びのストライドアクセスサポートされました。また,レジスタに書いておいたアドレスのリストに従ってメモリをアクセスする間接アクセスもサポートされました。間接アクセスは,どのくらい速いのかは分かりませんが,便利な命令であることは確かです。

  スパコンの場合,計算コアで割り込みの処理などをやらせると,実行時間がばらつくOSジッタという問題がでますから,京の場合も16計算ノードに1つのIOノードを置いていました。11fxでは,アシスタントコアとして,これをチップ内に取り入れました。その結果,34コアとなったわけです。

  これだけ多数のコアをどのように繋いでキャッシュコヒーレンシを取っているのか興味深いところですが,内部的には17コアと12MBのL2$,4個のHMCのまとまりをCore Memory Group(CMG)と呼び,2個のCMGをチップ内で繋いだ形になっています。2つのCMGの間はディレクトリベースのコヒーレンス制御を使うccNUMA構成となっており,QPIでXeonを2個つないだような形です。この部分はバンド幅が細く,アクセス時間も伸びるので,プロセスは1つのCMGにバインドすることを勧めています。

  それから京の場合は,6次元メッシュ/トーラスを構成するICCチップは外付けであったのですが,11fxでは,これも内蔵しました。また,Tofu2のリンクの速度も12.5GB/s×2と2.5倍になりました。

  さらに大きな変更は,メインメモリにMicronのHMCを採用したことです。これにより,メモリバンド幅はin/outそれぞれ240GB/sとなり,合計では480GB/s/1.1TFlopsで,0.44B/Flopを確保しています。ただし,

  性能的には各種のベンチマークの平均で,コアあたりで,前世代の9fxの1.7倍とのことです。

inserted by FC2 system