菖蒲と皐月のPEZY-SCnpプロセサ

菖蒲と皐月にアクセラレータとして使用されているPEZY-SCnpプロセサは、日本のPEZY Computingが開発したメニーコアプロセサである。なお、npは電源ノイズなどを低減した新パッケージ版で、使用しているチップはPEZY-SCと同じものであるので、区別を必要としない場合は、以下ではPEZY-SCと呼ぶことにする。

PEZY-SCプロセサは28nmプロセスで製造され、1024個のコアを集積するメニーコアプロセサである。各コア(PE)は8スレッドを実行し、32bitの単精度浮動小数点演算の場合は毎サイクル4演算を実行することができる。64bitの倍精度演算の場合は、半分の2演算/サイクルとなる。

公称クロックは733MHzで、倍精度の場合は、2×733MHz×1024=1500GFlopsのピーク演算性能を持つ。ただし、TOP500の登録値はRmax(PEZY-SCとXeonのFlops値の合計)が1533.460TFlopsとなっており、PEZY-SCのクロックは733MHzより低く設定されているようである。これはTOP500のランクアップよりもMFlops/Wを改善してGreen500の1位を狙うという設定と思われる。それでも菖蒲はLINPACKで1.001PFlopをマークし、TOP500で93位にランクインしている。

PEZY-SCnpプロセサの構成

右上に書かれたPE(Processor Element:コア)は、8スレッドを実行するコアで、サイクルあたり4個の単精度浮動小数点演算を行うことができる。そして、2KBの命令キャッシュと16KBのローカルストレージを持っている。

次の階層は「Village」と呼ばれ、4個のPEと2PEごとの2KBのL1データキャッシュを持っている。その次の階層は「City」と呼ばれ、4個のVillageと64KBのL2データキャッシュ、32KBの命令キャッシュと除算、平方根計算を行なう「Special Function Unit」を含んでいる。その上の階層が、16個のCityを含む「Prefecture」である。Prefectureには16個のCityと2MBの3次データキャッシュ、128KBの3次命令キャッシュが含まれている。このPE-Village-City-Prefectureの4階層の構造で1024コアを集積している。

PEZY-SCはPrefecture単位でメモリマネジメントユニット(MMU)を持っているが、コアごとにはMMUは持たず、コア面積を小さく抑えている

PEZY-SCのPEは演算用のプロセサコアであるが、PEZY-SCは、制御用のプロセサとしてARM926EJSを2コア搭載している。そして、8チャネルのDDR4 DRAMインタフェースとx8のPCI Express 3.0を4本とその他のI/Oインタフェースを持っている。

使用プロセスはTSMCの28HPMプロセスでチップサイズは21mm×19.6mm(411.6平方mm)となっている。

PEZYグループのExaScalerの開発したZettaScaler-1.6システムはXeonプロセサに4台のPEZY-SCnpアクセラレータを付け、これを計算ノードとして、MellanoxのFDRのInfiniBandアダプタとInfiniBandスイッチを使って接続している。そして、全体を不活性液体であるフロリナートに浸漬して液冷している。液体で熱を運ぶので、空冷に比べると運べる熱が3桁多く、高密度の実装が可能となっている。

次の写真はISC 2016で展示されたZettaScaler-1.6システムで、本物の液浸槽はステンレスで作られているが、これは展示用に中が見えるようにアクリルで作ったもので、フロリナートは入っていない。縦方向の棒状のものがブリックと呼ぶユニットで、白いヒートシンクが付いているのがXeon CPU、その上下の合計4個の黒いヒートシンクがPEZY-SCnpチップである。このボードがブリックに4枚含まれ、液浸槽には4×4の16ブリックが収容できる。

つまり、1液浸層で64Xeon+256PEZY-SCnpで、512Xeonコアと262,144PEが含まれる。そして、菖蒲システムには、この液浸槽が5台使用されている。

ISC 2016で展示されたZettaScaler-1.6システム。本物の液浸槽ではなく、アクリルで作った展示用のケースで内部のブリックが見えるようになっている