改めて書くまでもありませんが、以下は牧野個人の見解であり AICS の見解を代表
するものではありません。
2016年6月の Top 500 では、中国の ShenWei TaihuLight システムが、ピーク
性能 125PF、HPL 性能 93PF と驚異的な数値を叩き出して同じ中国の
Tianhe-2 が 2013年6月から守っていた1位の数値を3年ぶりに書き換え、6期連
続で中国設置のマシンがトップとなりました。
本稿では、この TaihuLight の意義を少し考えたいと思います。
まず、TaihuLight で使われているプロセッサは Tianhe-2 と異なり、設計か
ら(おそらくファブまで)純粋に中国製です。Tianhe-2 はXeon + Xeon Phi
(KNC) だったわけですが、TaihuLight は ShenWei SW26010 という中国
Jiangnnn Computing Lab 設計のプロセッサです。これで、単一チップ3TF、4
万チップからなるシステムを構築し、HPL 効率74%を実現したわけです。また、
電力性能も 6.05Gflops/W と、PEZY/Zettascaler の SHOUBU, SATSUKIの2シス
テムに続く3位にはいりました。
まず、この「74%」という数字を、最近のいくつかのシステムと比べてみます。
まず、2-5位はこんな感じです。
Tianhe-2 62%
Titan 65%
Seqoia 85%
K 93%
「京」は驚異的に高いですが、TaihuLight はアクセラレータ付きの
Tianhe-2, Titan に比べて上という立派な数値です。アクセラレータなし
の Xeon システムは
Trinity (E5-2698v3) 73%
で、おそるべきことに TaihuLight の SW26010 プロセッサは HPL で
Hawell Xeon を上回る効率を実現しています。また、大幅にスケジュール遅延
していた KNL Xeon Phi (7200 系)がついに Top500 に登場しましたが、これ
は
Stanpede-KNL (Xeon Phi 7250) 55%
また、現行の PEZY-SCnp は
SHOUBU 65%
というところです。まあその GRAPE-DR は59%しかいかなかったのであんまり
人のことをあげつらうのもどうかと思いますが、 TaihuLight の 74% は
驚異的なものであることはわかっていただけると思います。
この性能が HPL だけで、他のアプリケーション等では使いものにならない、
ということなら「直線番長」(どこかで誰かで別のマシンについていっていた
言葉ですが)とかいえるかもしれないのですが、まだマシン全体は完成してい
なかったであろう4月時点でゴードンベル賞に5チームがエントリし、
3チームがファイナリストに選ばれました。2002年に地球シミュレータで
3チームがファイナリストにはいり、受賞もしたことが思い出されます。
ファイナリストのアプリケーションは物性、気候、海洋といったところで、ま
あその割合スケールしやすいものを選んでいるようにも見えるしTSUBAME や
「京」がやってきたところを真似しているようにも見えなくもないですが、そ
ういうやり方をしたということも含めて賞をとるということに対して戦略的な
アプローチをしているようにもみえます。 Tianhe-2 ではファイナリストに
はいったことはあったのですが明らかに問題のあるアプローチだったのに
比べて、長足の進歩といえます。
ここまでをまとめると、 TaihuLight は以下の4点で驚異的といえます
-
125PF のピーク性能を実現した。これは中国以外のシステムで最高性能の
ORNL Titan の4倍弱にあたります。
-
74% とかなり高いHPL効率と、従って 93PFと中国以外のシステムで最高性
能の ORLN Titan の5倍以上の性能を実現した。
-
電力性能においても、 PEZY-SC システムにつぐ 6.05Gflops/W を実現した。
-
HPL 以外の実アプリケーションでも、ゴードンベル賞ファイナリストに
3エントリが選ばれるなど、大きな成果をあげている。
2010年11月の Tianhe-1A に始まり、中国のマシンが Top 1 になることは多い
のですが、これまでは Top 1 になったのは AMD の GPU や Intel Xeon Phiを
使ったマシンであり、予算と電力さえあればどこでも構築できるものでした。
ところが、 TaihuLight は中国の独自開発で、電力性能、チップあたり性能で
世界最先端を実現することで世界一の性能を達成したものです。つまり、お金
で世界一になったわけではなくて、少なくとも HPL 及びいくつかのアプリケー
ションに関する限り、技術力で世界トップレベルであることを示したわけです。
ここで特に重要なのは電力性能とチップあたり性能です。製造テクノロジーは
明らかになっていないのですが、おそらく 28nm から 20nm レベルと思われま
す。ネット情報では総トランジスタ数 37億、チップ面積 550 ないし 700平方
ミリとなっています。一方、 Broadwell Xeon は最大の HCC コアで
72億トランジスタ、456平方ミリです。Intel の技術は面積あたりのトランジ
スタ数は必ずしも多くはないので、2世代違ってトランジスタ数2倍、面積が若
干減る、というのはまあそんなところと思います。少なくとも 20nm
以下ではありません。また、 NVIDIA GK110 は 28nm テクノロジー、600平方
ミリ以下で 71億トランジスタです。なので、40nm という可能性もあります
(そういう情報もでているようです)。
そうすると、巨大チップとはいえ 28nm かそれ以前のテクノロジー、わずか
37億トランジスタと NVIDIA GK110 の半分程度のトランジスタ数でより高いピー
ク性能と高い実行効率を実現したわけです。
チップ構成をみていくと、基本ユニットは 64 個の単純なプロセッサと1個の
ある程度複雑なプロセッサのペアで、これが4ユニットで1チップ、
単純なプロセッサのほうは 4SIMD のFPUを1つだけもつ構成です。
これにより 1024個のFPUを持ち、1.5GHz 動作で3TFを実現しています。
これを例えば富士通の 20nm での FX100 に使われているプロセッサと比べる
と、これは 2GHz、4SIMD x 2 の32コアで、演算器の数としては TaihuLight
の 1/4で、クロックがちょっと高いので 1/3 の1TFを実現しました。これは
チップ面積 700平方ミリを超える巨大チップであり、それに応じて性能あたり
は高価なシステムになっているわけです。これは Intel KNL も同様で、
14nm の巨大チップでやっと演算器 1024個以上、ピーク性能 3TF 以上を実現
しました。
TaihuLight の演算プロセッサの大きな特徴は、命令キャッシュはあるけれど
データキャッシュはないことです。その代わりに 64KB のスクラッチパッドメモリがつ
いています。 PEZY-SC ではコヒーレンシのない階層キャッシュだったわけで
すが、それよりさらに極端な設計になっています。
極端な設計にすることで、トランジスタ効率をあげて最新とはいいがたいテク
ノロジーで多くの演算器を集積し、高いピーク性能と高い電力性能を実現した
だけでなく、高い HPL 効率まで実現したわけです。
階層キャッシュは、アプリケーションをチューニングする、という観点からは
極めてたちの悪い代物で、必要な時に必要な場所にデータをもってくる、とい
うことを明示的に行うことができません。例えば行列乗算のような、規則的な
演算の繰り返しにできるものでも、深い階層キャッシュでは適切な演算アルゴ
リズムを実現できない、ということも現実に発生します。また、深い階層キャッ
シュでは、通常下にいくほどキャッシュサイズが大きく、バンド幅が小さくな
るため、多重ブロック化をしないと性能がでません。一方、大容量で高速の
スクラッチパッドメモリだけをもつ構成では、メモリ階層が2つしかないため
にブロック化は単純であり、最内側ループ長も長くとれるために性能を出すこ
とが容易です。
もちろん、キャッシュがない、ということは、「普通に書いただけ」のプログ
ラムではまるで性能がでない、ということをおそらくは意味しています。しか
し、これはメニーコアで階層キャッシュでも「普通に書いただけ」では1コア
しか使わないしSIMD化もされなくてろくな性能はでないわけで、この時にには
大きいほうのコアが使われるならあまり変わりません。
世の中には複雑で大がかりなものを作るほうが偉いみたいな考え方があり、汎用マ
ルチコアはコヒーレントキャッシュでないといけないということになっていま
すが、それではどうにもならなくなる、とうことを 70コア近い Xeon Phi は
示しています。まあ実際、KNLには4分割して18コア程度で使うモードが搭載さ
れている模様です。これを超えて、256コア、1024 コアと増やすには、コヒー
レンシをやめるかキャッシュ自体を廃止してローカルメモリにするかが必須で
あり、キャッシュとローカルメモリの両方をもつ PEZY-SC とローカルメモリ
だけにした SW26010 はその意味で真に実用性のある超メニーコアの最先端に
あり、日米の大企業は遅れをとっているといってよいと思います。
牧野の意見としては、データキャッシュと並んで廃止するべきものは小規模コアの MIMD
動作であり、これを排除し、ローカルメモリをもつSIMDメニーコアとすること
でさらなる省電力、高性能化とアプリケーション開発の容易化を実現できるし、
方向はそちらということがほぼ明らかになりつつあると考えます。
なお、非常に興味深い設計上の選択として、DDR3 メモリでチップあたり
137GB/s のメモリバンド幅、B/F が 0.05 しかない(「京」の 1/10)ことがあ
げられます。もちろん、適当な高速メモリがなかったからということと思いま
すが、それでも HPL やいくつかの実アプリケーションで十分な性能を実現で
きることを示したわけです。何をどうやっても性能がでないことで悪名を
轟かせた KNC 辺りに比べて、B/F が低いからといって劣っているとはいえな
いのではないでしょうか?