ALH84001

私的コラム&雑記(&メモ)

最近の気になった話題(2020年第27週)

2020-07-05 | 興味深かった話題

IBM BlueGene/QのCPUがオープンソースに

Big Blue Open Sources The Core Inside BlueGene/Q Supercomputers - TheNextPlatform
A2i, A2i Docs - GitHub

 POWERアーキテクチャーのオープン化OpenPOWERを進めるIBMが一環としてBlueGene/Q(BG/Q)で使用されたA2コアをA2iとしてVHDLでCreative Commonsライセンスでオープンソース化した(※注:出典によって「PowerA2」などとする記事もあるが、IBMのリリースには単に「A2」としか記載がない)。

 BG/QについてはASCIIの大原氏の記事などに詳しいが、2012年6月に「京」を退けてTop500首位に立った米エネルギー省LLNLのHPCである。「世界1位のスパコンのCPUがオープンソース化」といえば大事のように聞こえるが、そもそもBG/L・BG/Pからのコンセプトが安価・低消費電力なプロセッサーを大量に並べて超並列で動かすというものなので、CPUコア単体での性能は大したものではないので注意が必要である。

 A2は2イシューのIn-order実行パイプラインで、4スレッドをインフライトで実行できる。1コアあたりのシングルスレッド性能は低い代わりにトランジスタ予算が小さくて済み、多コアを1チップに集積しマルチプロセス・マルチスレッド処理に特化している。
 BG/Qの先代BG/L・BG/Pは組込用PowerPC440を使っていたが、PPC440とA2を比較すると恐らくIPC(サイクルあたりの性能)はPPC440の方が上で高クロック動作させることでパフォーマンスを稼いでいた(BG/Lの700 MHz・BG/Pの850 MHzに対しBG/Qは1.6 GHz)。その他のPowerPC440に対する優位性としてはマルチプロセッサーサポート・SMT4などが挙げられる。
 恐らくBG/Qの演算性能のキモはQXP浮動小数点コプロセッサー(FP64 x 4-way)で、CPUコア自体はQXPに命令とデータを供給し続けることができればよかったのだろう。ちなみに今回のA2のオープンソース化には浮動小数点コプロセッサーは含まれていない。

 A2はもともと「Wirespeed Processor」ことPowerENネットワークプロセッサーで使用されたCPUコアであるが、同種のプロセッサーとしては旧Sun Microsystemsが2005年に製品化した「UltraSPARC T1」が挙げられる。UltraSPARC T1はA2と同様2イシュー・In-order実行で8-core/32-threadで製品化されたが、後継のUltraSPARC T2と共にOpenSPARC T1OpenSPARC T2としてVerilogがGPLv2ライセンスでオープンソース提供されている。

 A2のソースコード公開は、A2を何かに組み込みたいという人や学習用途には朗報だが、大騒ぎするほどのことではないと思う。
 IBMのOpenPOWERで命令セットが公開された時も悪用を恐れて騒いでいるニュースメディアもいたが命令セットもA2もそれ単体では大した影響力はない。類似のオープンソースコアとしてはOpenSPARC T2がある(が、ビジネス的に影響があったなどという話はない)し、15段パイプライン・4命令イシュー・Out-of-Order実行のRISC-V BOOMv3がオープンソース公開されている状況では、A2の影響は極めて限定的だと思う。

Preferred Networks MN-3a

 先日発表されたGreen500でPreferred Networks MN-3aがトップになったという話題があったが、MN-3aおよびMN-Coreについては昨年11月にWikiChipが報じている
 個人的に驚いたのはGreen500 = HP LINPACKを実行できるという点で、恥ずかしながら、てっきりGoogleのTPUのようなマシンラーニング用のプロセッサーだと勘違いしていた(というか、WikiChipの書きっぷりだとそのように読める気がする)。

 PE(Processor Element)x4個とMAU(Matrix Arithmetic Unit??)x1個でMAB(Matrix Arithmetic Block)が構成され、1チップには計512個のMAB・1パッケージには4チップ(計2048 MAB)が集積されている。
 個人的には高いパフォーマンスを実現できた秘訣が知りたいところである。膨大な演算ユニットが搭載されているので理論上のピークパフォーマンスが高いのは理解できるが、他のNPU・GPUだとホストCPUとのリンクに広帯域・キャッシュコヒーレンシ可能なリンクを採用したり(例:NVLink・OpenCAPI)・メモリー帯域を確保したり(例:HBM2・GDDR6)といった工夫(?)が見られるが、それらしい説明が無いので、どのようにして高い性能を実現しているのか興味がある。

 ちなみに、このプロセッサーには「GRAPE-PFN2」と刻印がある通り神戸大の牧野教授と研究グループ(ゴードンベル賞を7回も受賞している)と東大の平木敬名誉教授が関わっているそうである。ちなみに牧野教授の個人ページによれば実行効率はまだ41%だそうである。

 

Comment    この記事についてブログを書く
« 自宅NAS構築計画:HPE Micros... | TOP | 漫画書評『その着せ替え人形... »

post a comment

Recent Entries | 興味深かった話題