目次]   [1ページ目] [前ページ] [次ページ]  [Q&A
科学技術計算分科会「サイエンティフィック・コンピューティングの最前線」

「GRAPE-DRとスーパーコンピューティングの未来」


(3/8)

3. GRAPEとその発展
  我々は GRAPE[2];[3] の開発を 1989年に始めた。これはちょうど i860 が発表されたのと同じ年であり、1チップLSI で浮動小数点演算が可能になった時期の数年後、技術的には複数の浮動小数点演算器を 1チップに集積できるようになってきた頃である。GRAPE(GRAvity piPE)の基本的な考えは、天文学における重力多体問題のシミュレーションの中でもっとも計算量の多い部分、つまり粒子間の重力相互作用の計算機だけを専門に行うデジタル回路を作る、というものであった。

  粒子間重力はニュートン重力で、粒子間の距離の 2乗に反比例する。単純な計算法では、粒子が N個あると一つの粒子の加速度は他の N-1個の粒子からの重力の合計になる。このために、計算量は粒子数の 2乗に比例する。ツリー法や高速多重極展開法といった方法で計算量を O(N logN)や O(N)に減らすことも可能である。しかし、重力多体問題では相互作用が引力であるために 2つの粒子がいくらでも近付くことができる。また、重力不安定のために様々な空間構造が発達する。このため、粒子によって軌道運動のタイムスケールが大きく違い、粒子毎に独立に軌道積分の時間刻み幅を変化させるような方法が必要になる。この場合には、ツリー法等の有効な利用はそれほど簡単ではない。また、ツリー法や高速多重極展開法でも、近くにある粒子同士の相互作用は直接計算される。このため、粒子間相互作用を直接計算するようなハードウェアがあれば、これらの方法も高速化できる。

  ハードウェアは、パイプライン構成としてそれぞれの演算器が 1種類の演算しか行わないようにした。これには、プログラムによる制御が簡単になる、回路の大半が演算器になって並列動作するので高い性能を実現できる、演算毎に演算精度を最適化することで回路規模が小さくなる、計算の中間結果をメモリやレジスタに書き戻す必要がなくなるので高速のメモリが不要になる等の多数の利点がある。もちろん、これは、複数の演算回路を使った回路が容易に構成できるようになった時代、すなわち、前節の表現ではマイクロプロセッサの発展が第二期に入る前後にのみ可能であった。この意味で、我々は非常に良いタイミングで GRAPEの開発を始めた。数年後であれば、浮動小数点LSI を並べた回路ではマイクロプロセッサ 1つよりも高い性能を出すのは難しくなったし、逆に数年前では数十の演算回路を並べた回路は簡単に作れるものではなかった。

  最初の GRAPE-1は、計算精度を落として、粒子座標を固定小数点 16ビット、その後の計算を対数表現 8ビット、最終段の重力の積算を固定小数点 48ビットでするものであった。これは、基本的には、我々のグループが初めて作るデジタル回路であったのでなるべく簡単なものにしたかったからである。しかし、この過程で、問題によってはこのような低い精度で良く、通常の倍精度浮動小数点演算が必要なわけではないということを発見した。さらに、どの程度の語長が必要かを決定するための理論的なモデルも構築できた。GRAPE-1 は当時修士課程1年だった伊藤が設計、製作をした。

  問題によっては高い精度が必要である。そのために、浮動小数点演算チップを使った GRAPE-2を GRAPE-1に続いて開発した。これも伊藤が中心になった。これらの開発過程は[4] に描かれている。

  GRAPE-1,2の計算速度はそれぞれ 308Mflops, 51Mflopsであり、当時の最高速のスーパーコンピューターに比べると 1/10〜1/100 の程度である。しかし、開発コストは 10〜100万円程度でありスーパーコンピューターの価格の 1万分の1 から千分の1 の間である。当時の東大大型計算機センターのスーパーコンピューターの使用料は 1時間 1万円程度なので、数十時間分のコストである。1ヶ月程度動けば元がとれることになるが、GRAPE-2はその後 3年ほど使われた。

  1990年には GRAPE-3の開発を始めた。これは、精度が低い GRAPE-1をベースに LSI化を試みたものである。GRAPE-1に比べて若干精度をあげた演算回路を 1μmルールでデザインした 11mm角のチップに収め、20MHz動作させて 760Mflopsの速度を実現した。24チップをラッピングボードに収めたものを作ったが、これはクロック 10MHz程度でしか動作しなかったので 1ボードの理論ピーク性能は 9.12Gflops、このボードを 2枚並列動作させるシステムで 18.2Gflopsの理論ピーク性能を実現した。これは GRAPE-1の 60倍であり、GRAPE-3が完成した 1991年当時のスーパーコンピューターの性能にほぼ匹敵する。

  GRAPE-3の成功により、さらに多数のチップを並列動作させる GRAPE-4の開発に必要な予算を獲得できた。これは GRAPE-2並の精度で、約20個の浮動小数点演算回路を 1チップに収めた。32MHzのクロックで動作し、640Mflopsの速度となる。ボード 1枚に 48チップを収納した。これらのチップは 1つのメモリユニットを共有し、全てのチップが同じ粒子データを受け取る。それぞれが違う粒子への重力を計算することで並列計算をする。さらに、36枚のボードが並列計算をする。ボード間の並列動作は、基本的には別の粒子から同じ粒子セットへの力を計算することによる。このため、一つの粒子への力は多数のボードに分散して求まる。これを合計する回路を別につけることで、ホスト計算機との通信量を削減した。GRAPE-4 の完成は1995 年である。ピーク性能は 1Tflops を超えるものになり、同時期の航技研数値風洞を含め、どのスーパーコンピューターよりも高速となった。総予算は 2.5億であり、典型的なスーパーコンピューターの価格の 1/10以下である。

  GRAPE-3は、コピーを作りたいという研究者が多かったためにプリント基板化した量産版を設計し、製造・販売を委託した。これは 8チップであるが 20MHzで動作し、6Gflopsのピーク性能をもつ。100枚近くが製造され、世界中(主にヨーロッパ)で使われた。

  1996年及び 1997年に、GRAPE-3及び4 の後継である 5と6 の開発を始めた。6では 0.25μmルールを使うことで60 演算のパイプラインを 6本 1チップに集積し、90MHz動作させることで 32Gflopsのピーク性能を実現し、2048チップを並列動作させて 64Tflopsのピーク性能を実現した。

  また、GRAPEの考え方をタンパク質折り畳みシミュレーションのような分子動力学シミュレーションに応用することも 1992年頃から始めた。これは GRAPE-6とほぼ同時期に完成した理研 MDM(理論ピーク性能 75Tflops)からさらに 2006年に完成した Protein Explorerに引き継がれている。後者のピーク演算能力 1Pflopsであり、現在世界最高速である。

  以上の GRAPEの発展を見ると、前節で述べたマイクロプロセッサ発展の停滞期と丁度重なる時期に半導体技術の発展を直接演算性能の向上に使ってきたことがわかる。これが可能であったのは以下の理由による。
  • パイプライン構成のため多数の演算器を必要とした。制御回路も不要であった。
  • 同じくパイプライン構成のため、高速なメモリが不要であった。
  • 複数のパイプラインが単一のメモリに接続できるので、メモリバンド幅の必要量がさらに小さくなった。
  • 仮想多重パイプライン(ハードウェアマルチスレッドとほぼ同じ)により 1つの物理パイプラインを速度が遅い複数のパイプラインに見せることで、さらにメモリバンド幅の必要量を下げることができた。
要するに、演算器の数を増やしてもメモリバンド幅を増やす必要がなかったのである。

目次]   [1ページ目] [前ページ] [次ページ]  [Q&A

All Rights Reserved, Copyright©サイエンティフィック・システム研究会 2007