Sunway SW 26010プロセサ

太湖之光システムはSW 26010というプロセサを使っている。SWはSunwayの略と考えられる。SunwayプロセサはShenweiと書かれることもあり、中国語では神威と書かれる場合と申威と書かれることもあるようである。

Dongarraレポートに掲載されたShenweiプロセサの写真

Shenweiプロセサは、最初の世代が2006年に作られており、10年の歴史がある。第2世代が2008年、そして第3世代は65nmプロセスを使って2010年に作られている。この第3世代チップは16コアを集積している。

そして今回、93PFlopsを出してTOP500の1位となった太湖之光システムで使われているSW 26010プロセサであるが、TOP500のリストでは260コアのプロセサと書かれている。TOP500の賞状の授与に登壇した無錫スパコンセンターのDeputy Directorで清華大学の准教授のHaohuan Fu氏にもインタビューして、半導体プロセスは何nmで、どこのFabを使っているのかを質問したのであるが、知らないとのことであった。

TOP500の主催者の1人であるJack Dongarra教授のレポートによると、SW 26010のブロック図は次の図のようになっている。

SW 26010のブロック図(出典:Dongarraレポート)

SW 26010には、CPEと書かれた計算コアが8×8の64個並び、それにMPEと書かれた制御用のコアとメモリコントローラが付いている。このグループが4セット有るので、合計では256個のCPEと4個のMPEがある。MPEはCPEのスーパーセットで同じ計算ができるので、260コアというカウントになっている。

CPEは8個の倍精度浮動小数点演算/サイクル、MPEは16個の倍精度浮動小数点演算/サイクルの演算能力を持ち、クロックは1.45GHzである。したがってSW 26010 1個のピーク演算性能は、(8×256+16×4)×1.45=3,062.4GFlopsとなる。

CPEは計算用に特化したコアで、12KBのL1命令キャッシュと64KBのスクラッチパッドメモリ(Scratch Pad Memory:SPM)を持つだけという簡素な構成である。演算するデータがSPMにある場合は高速にアクセスできるが、SPMに入っていないデータは64CPEグループに接続された8GBのDDR3 DRAMにアクセスすることになり、大幅に性能が落ちてしまう。このため、高性能を発揮するためには、使うデータを事前にプリフェッチしてSPMに置いておくことが必須になると思われる。SPMとDDR3 DRAMの間でデータを転送するDMAなどがあると思われるが、かなりプログラミングは難しいのではないかと思われる。

制御用のMPEは32KBのL1命令キャッシュと、32KBのL1データキャッシュ、256KBのL2キャッシュを持っている。また、MPEではOSを動かしていると考えられ、MPEは割り込みやページ単位のメモリマネジメントをサポートする汎用プロセサであると考えられる。なお、Dongarraレポートでは、SW 26010のコアはOut-of-Orderと書かれているが、ハードウェアが大きくなるのでCPEがOut-of-Orderアーキテクチャであるというのは考えにくい。ちなみに、PEZY-SCのPEはIn-Order実行である。一方、MPEの方はOut-of-Orderとなっている可能性は十分ある。

SW 26010は65コアのグループが4個あるという構成になっており、それぞれのグループがメモリインタフェースを持ち、それぞれに8GBのDDR3 DRAMを接続している。

なお、この図では4個の65コアのグループをNetwork on Chipで接続する1チップLSIとして描かれているが、SW 26010は4個の65コアチップをマルチチップのパッケージに搭載して260コアのパーツとしているという説もあり、どちらが正しいのかは不明である。