2014/11 の Top500 には、久しぶりに Intel 等の巨大企業ではないベンチャー
の独自開発によるプロセッサがエントリーしました。 KEK に設置された
ExaScaler-1 「睡蓮」です。 Dual Xeon の普通のノードに、
PEZY-SC なる独自開発の MIMD 1024 コアプロセッサを2つ載せた
ボードを4枚搭載したたシステムです。
PEZY-SC は動作クロック 733MHz, 倍精度ピーク演算性能 1.5TF、
チップ自体の消費電力は 65W と発表されています。製造プロセスは
TSMC の28 HPM で、我々が GRAPE-X の試作に使ってものと同じ、
電力あたり性能も大差ありません。GRAPE-X では、若干低電圧側に
ふった動作で 30GF/W を実現しています。
さらに、 2014/11 の Green 500 リストでは、4.954Gflops/W を達成、
残念ながらトップは 5.272GF/W を達成した GSI (AMD FirePro S9150)に
もっていかれましたが、堂々の世界2位を達成しました。
このシステムは何重もの意味で驚異的といえるでしょう。
-
小規模なベンチャー(社員20人以下ときいています)で、会社設立から4年で
1024 コアの MIMD プロセッサチップという、大メーカーでも実現していな
い超メニーコアシステムの開発に成功し、実際に Linpack を動作させたこ
と
-
単に MIMD メニーコアチップを開発した、というだけでなく、それが
世界最高クラスの電力あたり性能をもっていること。
-
その性能が名目のものではなく現実のアプリケーションで達成可能である
ことを HPL の電力性能
で 2014/6 段階で世界一であった TSUBAME-KFC の値を上回ることで実証
したこと
PEZY-SC が超メニーコアでの MIMD というなんだか大変そうなアーキテクチャ
で同じテクノロジーでの GPGPU 等を上回る高いチップあたり性能、電力あた
り性能を実現したことは私には驚きでしたが、実際のチップ設計をみてみると
当然の結果であることがわかります。
まず、1024 コア、倍精度浮動小数点演算器でもその数、という膨大な演算器を
もちながら、チップサイズは 400平方ミリ程度に抑えており、トランジスタ利
用効率が高いことがわかります。NVIDIA の GK110 Kepler は550平方ミリで倍
精度の演算器の数はほぼ同じ960個です。もちろん、汎用CPUでは演算器の数は
はるかに少なくなり、22nm テクノロジーで600平方ミリを超える 18コア
Haswellでも 288個にとどまります。
このように、1024コアの MIMD という極端な設計で、チップサイズを小さくで
きたのは、要するに1コアが単純で小さいからです。ハードウェア・マルチス
レッドにして、スレッド内での命令間依存関係をあらかじめ解決することで、
複雑なデコーダやスケジューラが不要なアーキテクチャにしているようです。
もっとも、1024コアに命令、データを供給するために、命令キャッシュもデー
タキャッシュも階層的になっています。なので、ハードウェアで多数のスレッ
ドがあっても、性能をだすためにはあまり大きくない最内側ループの命令セク
ションを共有できるようなコードでないと難しいのでは?と想像されます。
これは要するに多くのコアがほぼ同じ動作をするということですから、SIMD
でもいいんでは?という気が個人的にはしなくもありません。
が、アプリケーションを書く側から見ると、MIMD で階層キャッシュでスレッド
で動く、という馴染み深い構成のほうが安心できるし、性能がでるかどうかは
ともかく数千スレッド発生させれば並列化はできるわけで、アプリケーション
が書けそうな気がする、というのはやはり極めて大きな「売り」であると思い
ます。我々が昨年度まで検討していた「加速部」では
次期フラッグシップシステムに係るシステム検討ワーキンググループ中間取りまとめ
で、
-
幾つかの重要な社会的・科学的課題の達成において有効活用が期待できるが,現時点では,それ以外の課題における有効活用に限界がある。
-
消費電力については,基本的に妥当である。
-
技術自体の実現可能性は十分に見込まれるが,開発・製造経費が多額であり,システムとして競争力を持つためには広い需要を得る必要がある。
と、使い道がないという烙印をおされたわけですが、MIMD で階層キャッシュ
で普通にプログラム動きますというと、上のような評価を受けることもなさそ
うです。
まあその、キャッシュベースの MIMD システムは、実際に理論ピークに近い性
能をだそうと思うと大変そうではありますが、多様なアプリケーションが
とりあえずは動く、というのは大きいと思います。
試作した GRAPE-X を 400平方ミリで作れば4000コアくらいはいっ
て、トランジスタ効率では3-4倍、電力効率は実力ではどのへんだろう?と
いうところです。
とはいえ、PEZY-SC のある意味重要な点は、コア内 SIMD を採用しないで、そ
の逆にコア数を極限まで増やしている、ということです。これによって私が
121 で書いたワイドSIMDの問題を回避し、アプリケーション
開発の困難さを著しくさげていることは本質的に重要です。アプリケーション
からコンパイラにいたる、ソフトウェアの全ての階層で、やるべきことが
大きく減り、より本質的な問題に取り組めるようになるからです。
また、1コアが物理的に小さいため、データ移動の距離が小さく、電力性能を
上げやすい、というのも、コア内ワイドSIMDに比べて有利です。
超メニーコアアーキテクチャの方向は色々ありえるわけですが、現在主流の
コア数、コア内 SIMD 幅を同時に広げていく方向はおそらくもっとも効率の低
い、近い将来に破綻するアプローチであり、コア内でのSIMD 幅は考え直す必
要がある、ということを前節に書いたわけですが、実際に考え直す(というか、
始めからそんなものは採用しない)のが確かに効果的であることを
PEZY-SC は示しているように思います。
まだ、電力性能を大きく改善する余地はあるようにも見えますので、来年6月には 8-10 GF/W 程度を実現することを期待します。