Previous ToC Next

118. エクサはなぜ大変か(2014/4/25)

日記のは tw 仕様で読みにくいかもしれないので文体変えてまとめてみます。

エクサスケールスパコンが大変なのは何故か、という話です。

まず半導体の性能が上がらない、というのが最大の問題です。これまでのよう に18ヶ月での世代交代が進んだとしても、トランジスタ密度はその期間で2倍で す。昔と違って動作電圧が下がらないので、演算あたりの消費電力は単純には 3年で半分(フィーチャーサイズに比例)、つまり、10年で1/10弱にしかなりませ ん。しかも、18ヶ月での世代交代がかなり無理になってきていて、2019年に大 規模システム組むのは Intel 以外では 10nm でないと難しいと思われます。 Intel はさすがに 7nm になっているとと思いますが。そうすると、「京」が 2011年で45nm だったのから見ると4世代、1世代2年です。まあでも SX-6 が 150nm で製品 2001 年だから1世代2年は同じでIntel がちょっと速い時期があっ ただけかもしれません。1993年には 0.8um だから90年代は1.5年ちょっとでし た。

0.8um 5V から 150nm 1.8V (例えば)に変わると、トランジスタのダイナミッ ク消費電力は単純には 1/40 になるので、阿呆なことをしなければ計算機の電 力あたり性能は40倍になる計算です。但し、この時期は電力あたり性能の向上はもっと 低いものでした。 つまり、この時期はまだスパコンの消費電力増えても良かったわけです。

一方、150nm 1.8V から 45nm 0.9V では電力あたり性能は 13倍です。 これは、プロセッサアーキテクチャを演算あたりの消費電力が下がる側に ふる、つまり、演算器以外のコアロジックを単純化するとか SIMD 幅を増やす とかしないと消費電力が現実的な範囲に収まらなくなってくることを意味しま す。計算機の演算性能は ES の 40TF から「京」の10PFに250倍あげてますか ら、これがトランジスタの電力性能向上だけだとすると消費電力が10倍になっ てしまうからです。

さて、これがではエクサではどうなるかが問題です。10nm といってるものが実 質11だとしても、0.7V まで下げたとして電力性能は 45nm の6.8 倍にしかなり ません。なので、アーキテクチャで7倍あげて、エクサになって電力が「京」の 2倍にはいることになります。

じゃあ7倍かせげるか?というと、「京」と同じ 40nm 世代の GPU だっ て「京」の3倍もいかないわけでまともにやったのでは到底無理です。実際問題とし ては SIMD 幅をいくら増やしても2倍ちょっと改善すれば万歳というところです。

つまり、汎用プロセッサでものすごく SIMD 幅を増やしたもの (まあ要するに Intel MIC みたいなもの)でも、エクサスケールでは消費電力が 60-100MW になり、空調とか入れるともっと増えます。

これは原発0.1基分くらいで、関西電力の販売電力量は年間平均では 1700万KW、 つまり、17,000MW なので、その 0.3-0.6%にもなります。電気代だけで年間 100億円くらいです。

と、ここまでは3年前からわかっている話です。

しかし、ここにきて問題になってきているのは半導体ウェハの値段で、ずーっ と長い間面積あたりの値段が同じか下がる傾向だったのが、28nm から先はどん どん上がる、という話になっています。10nm だと28nm の 3倍くらいにはなり そうです。45nm に比べても同じです。クロックが同じとするとアーキテクチャ 同じだと面積あたり性能が16倍なので、チップの値段あたり性能が5倍にしかな りません。なんとかしてトランジスタあたりの性能を10倍あげてやっと値段が 倍で収まることになります。が、電力あたり性能と面積あたり性能はだいたい 比例していて、上の議論からまあ2倍ちょっとにしかなりません。つまり、普通 に考えると値段が10倍になってしまいます。

もっとも、「京」は富士通の社内プロセスだったので、TSMC のプロセス なら 10倍になってもまだたいしてことはないかもしれませんが、良品 率が相当高くないと大変なことになります。

GRAPE-X/PACS-G はどうかというと、28nm での試作結果がチップ単体30GF/W (まあ ちょっと無理してクロック落として低電圧でとかだけど)。 なので、チップ単体 2GF/W の「京」に比べると15倍、28nmで1世代進んでいることを考慮しアーキ テクチャで10倍は実現できたことになります。 面積効率も大体そんな感じでアーキテクチャで10倍程度です。まあ、メモリ は試作チップは小さいので、増やすと面積効率は落ちます。これは良品率にはあんまり 影響しないはずではあります。

まあその、エクサへの道にはハードウェアとして大変な道とそうでもないのと 色々ある、ということです。

Top500 では、最近20年間は Top 1 の性能は10年で500倍です。1000倍よりちょっ と少ないくらいでした。これに対して、電力増加は、1993 年を NWT じゃなく て T3D におくとまあ50倍です。このほとんどは ES の6MW までで食いつぶされ ています。

T3D から ES までは、性能 250倍、電力20倍、半導体の電力効率は40倍なので、 アーキテクチャの電力効率は1/3程度にさがっています。日議論した通り。これ に対して、ESから「京」へはアーキテクチャの電力効率は8倍と驚異的な向上を しています。ESが悪いから驚異的に見えるだけというところはありますが、 T3D に比べてもさらに 2.5倍です。T3D は B/F が現在の NEC SX-9 並みの 2.5 あり、「京」は 0.5なので電力性能のほとんどはここで決まっていると考 えられます。

さて、Top500 のトレンドからずれないためには2019年にエクサなのですが、10nm だとすると半導体の電力効率は7倍しか上がりません。なので、「京」並みの電 力にするだけでもアーキテクチャの電力効率を14倍にしなければならないわけです。 これには、 B/F を落とすことと、制御コアを単純にするか SIMD幅を増や すかその両方かで対応するしかありません。

メモリに HMC とか HBM とか使っても、トランジスタ自体の性能向上ほどは DRAM の転送性能の向上はないわけですから、結局 B/F は 0.05 程度まで落と す必要がでてきます。

制御コアは、商業ベースのプロセッサでは、同じ命令セットで単純にするのは 困難です。これは同じコア数で実行した時の性能が下がるからです。なので、 SIMD幅をどんどん増やすことになります。が、SIMD 幅を増やすと使いにくくな るし、使えるようにすると電力が増える、というのは以前書いた通りです。で はコア数を増やせばいいかというと、共有メモリでコア増やすのは共有メモリ ベクトルプロセッサと同じで 16 前後が限界で、それを大きく超えた KNC は破 綻しているのも不思議ではありません。次は1チップといってもNUMA 構成にな らざるを得ないわけです。まあそれだと何故1チップにするの?というところは あります。

この観点からは、チップ内 分散メモリ SIMD が電力性能的にはもっとも有利で す。メモリアクセス機構が単純なままですみ、また制御コアの数が圧倒的に少 ないからです。まあアプリケーションの実行効率に問題がでないかどうかは難 しいところです。が、例えば、差分法で境界のメッシュでは違う(通常低次の) スキームになる、といったケースでは、式は同じで係数の値だけが違う形に、 計算量が増えてもいいから書き直す、といった対応は可能です。多くの問題で、 問題の並列度は計算機の並列度よりはるかに大きいのに対して、処理の種類は 人間が書ける程度なので10とかせいぜい100とかです。なので、全体SIMDでやっ ても大した効率低下はないわけです。

というのが Danny Hillis の主張でした。

B/F 0.05 も、まあ頑張れば(人がというよりコード生成、アルゴリズム生成み たいなところで)なんとか対応できる話ではあります。なので、10nm, 20MW で エクサを、という話にはこの程度で十分で、まあできなくはない話なわけです。

では原理的にはどこまでいけるか、を最後にちょっと考えてみます。GRAPE-X のSIMD コアでも演算器自体の消費電力はまだコア全体の 1/4 程度です。これ はマイクロアーキテクチャの細かい修正で 1/3 程度まであげることはできると 思います。あと演算器を FMA にしてレジスタ等のポート数やセレクタの数を ちょっと減らすとかでも若干効率は向上します。(GRAPE-DR の演算器はFMAでは ないので)でも、でもまあ電力性能が1.5倍にはなかなかならないと思われます。 メモリやレジスタファイルの消費電力も見えているからです。

そうすると、28nm で 50GF/W、電圧がさらに低いほうにふって70GF/W という あたりが限界かなと思います。単精度に最適化すれば160-200 くらいまではい けるでしょう。

これを専用パイプラインの GRAPE-6 と比べると、GRAPE-6 は単精度倍精度混 合演算で2GF/W でした。電圧 2.5V の 250nm プロセスです。28nm 0.9Vでは 70倍で、140GF/W、電圧下げて倍にできたとして 300GF/W です。つまり、 SIMDコアでも単精度専用に作るなら、専用パイプラインの半分くらいはいけるかも、 というところです。これはちょっと楽観的で、 1/3 程度が現在的な気もしま す。

これは、専用機もそんなにメリットがなくなってくるところまで、プログラマ ブルな計算機の性能をあげても、エクサとかその先は厳しい、ということです。
Previous ToC Next