Previous ToC Next

8. 専用計算機は?(2005/12/25)

ここまで他人事のようにスーパーコンピューターのことを色々あげつらってき たわけですが、では牧野は何をしているか、というのを書いてみましょう。

牧野は GRAPE-1 から重力多体問題のための専用計算機の開発にかかわってきまし た。宇宙の大抵の構造は星とか暗黒物質とかが集まって、お互いの重力を受け て運動していることによってできています。従って、そういう運動をニュート ンの運動方程式で表して、それを数値積分すればいろんなことがわかります。

単純な計算法では時間ステップ毎に全部の粒子の間の重力を計算してそれぞれ 合計するので計算量が粒子数の2乗に比例して増えます。実際にはもうちょっ と大変で、星団では中心部で星の密度があがるとか、あるいは2つの粒子(星) が近接遭遇した時には短い時間刻みが必要になるとかいろんなことがあり、安 直な計算法では最悪粒子数の 4 乗くらいで計算時間が増えることになります。

もっとも、この辺はどういう系を扱うかでも変わってきて、例えば宇宙の非常 に広い領域の構造形成を計算して、1つの粒子が銀河系くらいに対応する、と いう場合には、時間刻みが数100万年とかで良くて宇宙の始まりから現在まで が数千ステップで計算できますし、銀河中心でブラックホールの回りの星、と いうと時間刻みが日のオーダーまで短くなることもあります。

そういうわけで、必要な計算法や計算精度も扱いたい問題によって全然違うの ですが、一つ共通なことは、ほとんどどんな方法を使うにしても、星同士の重 力を計算する必要がある、ということです。

と書くと若干嘘で、例えば重力ポテンシャルを格子を切ってポアソン方程式を 解くことによって求めて、それを数値微分して重力を求める、という方法もあ ります。 空間分解能のが格子サイズで決まるので、使える問題が限らる、と いうことが昔はありましたが、適応的に必要な分解能に応じて場所によって格 子サイズを変える、という方法も色々研究されています。が、まあ、かなりい ろんな方法が、星同士の重力が高速に計算出来れば高速に実行できるようにな るわけです。

GRAPE の考え方は、上の 事情に基づいて、粒子同士の重力計算だけを高速に行うハードウェアを作る、 ということです。 これは、ある意味で、ベクトル計算機の最初のアイディア と同じように、なるべく簡単なハードウェアで演算器を有効に使うことを目指 したもの、ということができます。ベクトル計算機との違いは、ベクトル計算 機の考え方は多数の IC を使うと浮動小数点演算器1つができる、という時期 のものだったのに対して、 GRAPE は1つ、あるいは多数の演算器が1つの LSI に集積できるようになった時期のものだ、ということです。

GRAPE プロジェクトが始まったのは 1989 年のことです。これはちょうど何度 か話題にしたインテル i860 がでてきたころで、1チップで倍精度浮動小数点 演算が可能になった時期です。 i860 はマイクロプロセッサですが、演算器 だけがはいった LSI も Analog Devices, Weitek, LSI Logic, TI といったい くつかのメーカーからでていました。これらはどれも基本的には演算器がはいっ ているだけで、 入力 2 本と出力 1 本をもつ、というものです。 Weitek の 場合には色々なバリエーションがあり、 80386 のコプロセッサとして使える もの等もありました。 TI 8847 は初期の Sun SPARC のどれかで浮動小数点プ ロセッサとして使われていました。

これらの演算器 LSI を多数使って高い性能を出す、ということを考えると、 重要なことは演算器 LSI 以外の余計なものを可能な限り減らす、ということ です。例えば普通に並列計算機を作るなら、演算器 LSI 1つにマイクロプロセッ サをつけ、メモリをつけ、それでできたノード計算機同士の通信のためのなん かハードウェアをつけ、というわけで、大きなプリント基板1枚に演算器 1 つ くらいしかのらないわけです。そうすると、全体の値段の中で演算 LSI の部 分は小さくて効率が悪くなります。そういうのではなくて、基板1枚で演算器 を何十個も使って、さらにそれらの演算器が全部なるべく高い効率で動いて欲 しい、というのが一つの要求です。

もうひとつのもっと実際的な要求は、 GRAPE プロジェクトの関係者に計算機 ハードウェアやアーキテクチャの専門家は誰もいなくて、デジタル回路の知識 は学部での学生実験程度のしかなかったので、そういう程度で作れるものでな いといけなかった、ということです。

もちろん、最大の要因は、こういうのができますよ、という提案をしてきた国 立天文台(当時は野辺山)の近田さんの書いた絵がそういうのだった、というこ とです。近田さんは野辺山のミリ波電波干渉計のための専用計算機 FX を作った中 心人物で、FX は 100 GOPS (giga operations per second) と、ビット長が短 いとはいえ完成当時のスーパーコンピューターをはるかに超える演算能力をもっ ていました。同じようなことを理論シミュレーションでもすれば?というのが 近田さんの提案で、それにのったのが東大駒場のグループであった、というこ とです。

近田さんは具体例として粒子間の重力計算をする専用パイプラインハードウェ アのブロック図を書いていました。 これは要するにまさに我々が必要として いたものだったわけです。

専用パイプラインハードウェアとは、要するにある演算の順番通りに演算器を 配線して、クロック毎に結果が1つでてくるようなものです。重力計算の場合 には最初に座標の引き算をして、次に距離の 2 乗を計算、その -1.5 乗を計 算、距離のベクトルと掛け算して力の3成分を計算、最後にそれを積算、とい うような具合になります。最後が積算なので、いくつかの粒子からの力を合計 してから結果を回収すればいい、ということになります。また、メモリユニッ ト自体を1サイクルで1粒子データがでてくるように作っておけば、非常に簡単 な回路でメモリはすみます。連続アドレスでのアクセスしかしないくて、キャッ シュとか面倒なことを考える必要は一切ありません。また、座標と質量の4語 の読み出しに対する数十演算するので、演算性能を上げるのに大きなメモリバ ンド幅も必要ありません。

というわけで、 1989/90 年に語長が短くて演算を ROM テーブルでやる GRAPE-1 と、浮動小数点演算を使った GRAPE-2 を作りました。といっても牧 野は主に横で見物してただけで実際のハードウェアは主に今は千葉大学の教授 になった伊藤君がやっています。これらが結構色々研究にも使えるので、もっ と速いのを専用 LSI で作ったのが GRAPE-3 と 4、それらをさらに新しい半導 体技術を使うことで高速化したのが GRAPE-5, 6 ということになります。

GRAPE-6 では大体 60 演算する演算パイプラインを 6 本1チップにいれて、ク ロック毎に360 演算、 90 MHz クロックで動作することで 30Gflops 以上のピー ク性能を出しています。メモリバンド幅は 720 MB/s であり、クロック当り1 語です。これは、パイプライン 6 本がメモリから受け取る粒子データは共通 であり、さらに各パイプラインが 8 個の粒子への力を同時に(というか8サイ クル毎に切換えながら)計算することで必要なメモリバンド幅を減らしていま す。同じピーク性能のベクトルプロセッサなら 120GB/s 程度のメモリバンド 幅を必要としますから、 1/100 以下ですましているわけです。

GRAPE-6 では、メモリバンド幅を減らす、という意味ではパイプライン構造は あまり寄与していません。重要なのは、1粒子のデータを多数の粒子への重力 を計算することで再利用している、ということです。しかし、1チップに多数 の演算器をいれてトランジスタを最大限に有効に使う、という意味ではパイプ ライン構造の寄与は大きいです。まず、制御回路等は一切不要だし、さらに プログラム可能なら必ず必要になるレジスタファイルもない、さらにはやる演 算が決まっているのでそこで必要な最低限まで演算精度を落としてトランジス タを節約することもできます。 GRAPE-6 では、そのあたりの工夫で演算器の 数を 5-10 倍程度には増やしています。

いずれにしても、 GRAPE-6 ではチップ当りの性能がチップ完成当時のマイク ロプロセッサに比べると 50 倍近く、現在でも数倍の性能になっており、消費 電力当りでは現在でも数十倍です。半導体技術は進んでいるので、同様な設計 で例えば 90nm 技術で作るとパイプライン数で 8 倍、クロック速度で 2-3 倍 にはでき、 1 Tflops 前後の性能を 1 チップで実現できます。

では、そういうのを作ればいいではないか、と思うわけですが、そう簡単には いかない、というのが本題です。長い長い前置きですみません。

問題は、 LSI チップを開発するのにかかる人手とコストがどんどん上がって いる、ということです。

GRAPE-4 では 2 つチップを開発し(全機能が1チップでは入らなかったためで すが)、それぞれ 1500万円程度の費用でした。回路図入力は泰地君と私で、 テストベクタも東大側で作成しました。基本的には配置配線以降が LSI Logic の仕事でした。現在作っている GRAPE-DR では、配置配線以降だけで数億円の コストがかかっています。しかも、これは人件費が安くて優秀なエンジニアが 使えるオフショア開発をして、の話です。

高くなっている理由ですが、トランジスタの数は数百倍になっているのだから 設計が大変なのはやむをえない、という面もなくはないですが、割合いろんな 本当なら計算機ができそうなことを人間がする羽目になっているから、という 面のほうが実は多いように思われます。この辺は研究開発の余地が十分にある ところと思います。が、とりあえず、現状はそうなっています。

もうちょっと詳しくいうと、ウェーハサイズが大きくなったとかマスク枚数が とてつもなく増えたとかいう理由で、設計ができてから試作までのコストが上 がっている分というのもかなり大きいです。が、それ以上に設計自体のコスト が上がっていることは間違いありません。

この、初期コストの高騰のために、専用計算機は現実的な解ではなくなってき ています。これは単純な話で、天文の理論計算(の内結構一部)しかできない計 算機に 10億とか 20 億の予算くれといってもなかなか無理があるからです。

もっと需要が大きい分野であれば、専用計算機は成り立つのですが、現在の LSI の開発コストではこれまでの天文計算専用の GRAPE を専用 LSI を開発し て作るのは困難になりました。

では、どういう方策があるでしょうか?
Previous ToC Next