色々作文の季節でもあるので、専用器と汎用(といっても GRAPE-DR ぐらいの)
機の利害得失を考えてみます。ここでは、計算機の性能構成要素として重要な
演算性能、ローカルメモリバンド幅、ネットワーク性能のうち、演算性能だけ
を考えます。
GRAPE-6 では、250nm、 14mm角のチップにまあ大体60演算するという勘定の
パイプラインを6本いれてます。そうすると大体
360個の演算器です。 GRAPE-DR は、90nm、18mm角で、倍精度だとクロックあ
たり 512 演算の勘定です。トランジスタ数は大体20倍で、演算数は1.5倍ですか
ら、15倍程度損をしている計算です。
GRAPE-DR では 25x50 ビットの乗算器をいれて、単精度だと性能が倍になるよ
うにしています。あまりハードウェア追加しないで、この乗算器を25ビットの
単精度乗算器2つにすると、単精度のスループットを倍精度の4倍にできます。
単精度演算に関しては、ちゃんと作ってあれば GRAPE-6 に比べた損は4倍程度
ということです。
まあ、ちゃんと作ってあれば、というのは、 GRAPE-DR はそんなにちゃんと作っ
てない、ということでもあります。上に述べたように単精度演算ではハードウェ
アの効率が 1/2 になりますし、また、逆数平方根近似用のハードウェアをもっ
てないので初期値推定に余計なサイクルが必要です。また、全部のサイクルで
乗算器と加算器がフルに動くわけではないので、相互作用計算に関しては実行
効率の差は演算器の数の差よりさらに大きいなります。
逆数平方根近似命令ですが、これは、例えばニュートン反復1回で24ビット精
度がでるように13ビット精度くらいをだす、というのが普通の実装です。で、
近似命令を実行するハードウェア自体は、浮動小数点演算器と同じスループッ
トをもつようにするのが普通だと思います。
良く考えてみると、重力計算とかではどうせ1相互作用に 16 サイクルとかか
かり、その中で平方根計算は1度だけなので、殆どのサイクルで平方根演算用
のハードウェアは遊んでいてなんだかもったいないです。有効に使うには、
このユニットを複数のプロセッサで共有すればよいわけです。例えば16個で共
有するなら、ニュートン反復ではなく区分多項式近似で逆数平方根を
計算するようなユニットをつけてもハードウェアの増加は 2-3% です。
そうすると、ニュートン反復なしですむのでわずかな追加ハードウェアで相互
作用計算機については追加ハードウェアよりかなり大きな性能向上が実現でき
ます。
と、これは余談です。要点は、単精度のプログラム可能ハードウェアと、相対
誤差単精度のGRAPE-6 を比べると、トランジスタ効率ではおそらく 4-8倍程度
の差は避けられない、ということです。
計算精度を落とすとこの差はもちろんさらに大きくなり、例えば相対精度 10
ビット程度にすればさらには5倍程度差が広がり、40倍前後となります。
電力当り性能は2年で2倍にしかならないので、40倍の差は10年に相当する
巨大な差です。
ちなみに、 90nm の GRAPE-DR を同じ 90nm の例えば Athlon 64 (Prescott
Pentium 4 と比べるのはあまり意味がある比較とはいいがたいので)と比べると、
プロセッサチップだけでは GRAPE-DR は大体単精度で 8Gflops/W、Athlon 64
3500+ の90nm 版では TDP 67Wで同じ単精度で 8.8Gflops なので 0.132
Gflops/W となり、60倍ほど違う計算です。あまり効率のよくない GRAPE-DR に
比べると GRAPE-6 のトランジスタ効率は 8倍なので、GRAPE-6 のような単精度
での専用プロセッサでは 500倍程度、精度を落としたものなら3000倍程度同じ
テクノロジーでのx86 プロセッサに比べて電力当り性能を上げることができる
ということです。
32nm の Westmere-EP ではこれが E5620 でTDP80W で、2.4GHz 115.2Gflops な
ので 1.44 Gflops/W と 11 倍で、 65, 45, 32 と3世代なので 1世代当り2.2
倍というところです。ここ10年間では Intel でも1世代2年なので、500倍の違
いは17年、3000倍だと22年というなんだか意味がわからないほど長い時間に対
応します。これに対して、60倍だと10年ちょっとです。まあ、この計算はちょっ
と楽観的に過ぎるところがあって、その理由はホスト側の電力を勘定にいれて
いないことです。専用プロセッサやアクセラレータの場合、どうしてもホスト
側があるので電力効率は半分程度になります。なので、低精度GRAPE、単精度
GRAPE、GRAPE-DR で20年、15年、8年というところになるわけです。GPU は総合
的には電力当り性能を x86 CPU の倍程度にできるので、それに比べると低精度
GRAPE、単精度GRAPE、GRAPE-DR で16年、11年、6年です。
16年の差というのは、構造化 ASIC や FPGA で 10-100 倍電力効率が悪くても
余裕でなんとかなる数字です。まあ、そういうわけで現在は低精度GRAPEを
eASIC で、というのをやっているわけです。単精度になると11年なので FPGA
ではだめ、構造化 ASIC で微妙、というところ、GRAPE-DR は FPGA や構造化
ASIC ではだめで、カスタム LSI でないと電力性能、価格性能比で意味がありません。
8年だと、4年遅れのテクノロジーを使ってもまだ4年先まで追いつかれないわけ
で良いのですが、6年だと4年遅れだと2年しか先がありません。まあ、実際に
90nm の GRAPE-DR は 28nm の GPU とほぼ同等の電力当り性能になってます。
最大でも5年に1度しかチップを作れない研究プロジェクトで、4 年遅れのテク
ノロジーで2年毎にテクノロジーが変わる GPU に比べて良い数字を5年間維持す
るには GRAPE-DR に比べて3倍トランジスタ効率を上げる必要があることになり
ます。GRAPE-DR のプロセッサエレメントのレイアウト図をみてみると、まあ、
3倍は無理でも倍なら簡単です。28nm で具体的な数字にしてみると、GRAPE-DR
と同じくらいのチップサイズ、1/3 をeDRAM に使うとするとトランジスタ数は
8倍、演算器数は実効的に 16 倍、クロック 700MHz くらいとして倍精度
6Tflops、単精度だと12 Tflops、消費電力は 60-70W のものをチップとしては
2012 年、システムを 2014年くらいに動かす、倍精度でシステムとして
50Gflops/W、HPL で 20-30Gflops/W で、その頃の GPU がHPL で現在の4倍と
して 4Gflops/W なのに比べて7倍くらいが実現可能、という計算ですね。まあ、5年
間くらいは優位を維持できるわけです。
まあ、その、 HPL で2014年に20-30Gflops/W、というのは実際上はちょっと無
理で、それは単純にホスト計算機の速度が追いつかないからです。ホスト計算
機に対して電力当り性能は5-6倍程度なので、2014年にはいいところ
10Gflops/W です。その後ホストを更新すれば最終的には 30Gflops/W 程度ま
で、というのが、その、皮算用ですね。
上のは 2011 年度くらいになんか予算がつけば、の皮算用で、現実問題
としては早くても 2013 年くらいまで予算がつきそうにない、というのが問題
です。「要望」ででていた来年の次世代スーパーコンピューター関連予算はB
評価だったようです。そもそも文部科学省が要望にいれたものがあまりに巨額
に過ぎる現実的とはいいがたいものであったこともあって、文部科学省の要望
にはA評価がないのですが、 B になった以上補正予算をいれても若干の減額と
なるでしょう。そうすると神戸に建設中の「京」本体にほとんどのお金がいっ
て、それ以外のアプリケーション開発とかは減り、次世代の次のハードウェア
開発なんてのは全くなし、という状況がしばらくは続きそうです。