Previous | ToC | Next |
改めて書くまでもありませんが、以下は牧野個人の見解であり AICS の見解を代表 するものではありません。
本稿では、この TaihuLight の意義を少し考えたいと思います。
まず、この「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点で驚異的といえます
ここで特に重要なのは電力性能とチップあたり性能です。製造テクノロジーは 明らかになっていないのですが、おそらく 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 が低いからといって劣っているとはいえな いのではないでしょうか?
Previous | ToC | Next |