TaihuLightのハードウェア
TaihuLightのプロセサを開発したのは、Shanghai High Performance IC Design Centerである。この開発プロジェクトは、10PFlops級のスパコンを作るためのアーキテクチャ研究ということで2006年に開始された。
最初の3年は、各種のアプリケーションの分析を行い、メニーコアのShenweiアーキテクチャの提案を行い、アーキテクチャや性能、プログラミングモデルのロードマップの策定を行った。その結果、作られたのが2011年に完成したSunway BlueLightに使われたSW1600プロセサである。そして、ロードマップに従って、2016年に完成したのがSunway TaihuLightスパコンとそれに使われたSW26010プロセサであるという。
TaihuLightが解くべきターゲットのアプリケーションは、空間的、時間的にマルチスケールの問題、複数のコンポーネントが相互作用を持つ問題、物理的な性質から負荷バランスが悪い問題など、解きにくい問題を解くことに重点が置かれている。
それを実現するアーキテクチャとしては、コア数の増大、簡素なマイクロアーキテクチャ、性能、電力、効率を追求するものを目指したという。
主要なアプリケーションの分析結果を次の表に示す。取り上げたアプリケーションは、行列乗算のDGEMM、疎行列の乗算のSPMV、高速フーリエ変換を行うFFT、天体の重力相互作用などを計算するNbody、暗号化のAES、グラフのサーチを行うBF-Searchである。そして、次の表では、必要な計算量とメモリアクセス回数、それらの比(演算回数/メモリアクセス回数)を纏めている。
DGEMMの演算回数はO(n3)、メモリアクセス回数はO(n2)であり、結果として演算回数/メモリアクセス回数はO(n)となる。つまり、行列のサイズnが大きくなると、それに比例して1回のメモリアクセスで実行できる演算数が増加する。このため、計算規模の割にはメモリバンド幅は小さくても良い。
一方、SPMVの場合は計算量もメモリアクセス回数もO(n)であり、大量の計算を行うためには、それに比例したメモリバンド幅が必要になる。このため、ピーク演算性能の高いTaihuLightでは、メモリバンド幅が律速になり演算性能は余ってしまう。
グラフ処理のBF-Searchも計算とメモリアクセス回数の比がO(1)の問題である。
そして、FFT、Nbody、AESはこの比がO(log(n))の問題であり、LINPACKとSPMVの中間となる性質の問題である。
SW26010プロセサは、次のような構造になっている。図の左上にManagement Processing Element(MPE)、右上にComputing Processing Element(CPE)のクラスタが描かれている。そして、チップ内のエレメントを接続するNetwork on Chipがあり、下側にIntelligent Memory Processing Element(IMPE)があり、IMPE経由でメインメモリが接続されている。また、チップ内ネットワークから、他のチップに接続するSystem Interface(SI)が出ている。
アーキテクチャ的に、MPEの個数やCPEクラスタの個数やサイズなどはフレキシブルに変えることができるが、SW26010チップでは、MPEの数は4個、CPEクラスタの数も4個、IMPEも4個である。そして、CPEクラスタのサイズは8×8である。これらのプロセシングエレメント間を接続するチップ内ネットワークはクロスバ構造となっている。
CPEクラスタは8×8のアレイとなっており、2次元メッシュネットワークで接続されている。そして、各CPEにはスイッチが付いており、クレディットベースのワームホールルーティングを行う。
CPEクラスタの下側にはクラスタコントローラが描かれている。クラスタコントローラは、DMAを行うストリーミングエンジン、CPE間の同期を高速に実行する機構、MPEのキャッシュとのコヒーレンシを維持する機構などが入っている。