学位論文要旨



No 120863
著者(漢字) 濱田,剛
著者(英字)
著者(カナ) ハマダ,ツヨシ
標題(和) 多体シミュレーションのための再構成可能計算
標題(洋) Reconfigurable Computing for Many-Body Simulations
報告番号 120863
報告番号 甲20863
学位授与日 2006.03.01
学位種別 課程博士
学位種類 博士(学術)
学位記番号 博総合第619号
研究科 総合文化研究科
専攻 広域科学専攻
論文審査委員 主査: 東京大学 助教授 牧野,淳一郎
 東京大学 教授 江里口,良治
 東京大学 教授 川合,慧
 東京大学 助教授 蜂巣,泉
 東京大学 教授 伊藤,智義
内容要旨 要旨を表示する

本論文では,FPGA(Field Programmable Gate Array)を用いた多体シミュレーション用計算エンジン(FPGA-Based Computing Engine: FBCE)のための設計ソフトウェアについて述べる.これまで多体シミュレーション専用計算機は,重力多体シミュレーション用GRAPE(GRAvity piPE; Sugimoto et al. 1990)以外,開発例が少ない.これは,大幅に加速が必要な専用LSIの開発のために,膨大な費用と設計期間が必要であり,また,それを用途ごとに行う必要があるからである.

近年,非常に大規模なFPGAが使えるようになってきた.FPGAとはユーザが論理仕様をプログラミングすることにより,内部回路を変更可能なロジックデバイスである.現在100万ゲート相当の製品が入手可能である.このゲート数は,GRAPE-6のための専用LSIと同程度である.

FPGAを専用LSIの代わりに用いたFBCEは,専用機の利点をある程度確保しながら,多体シミュレーションにおいての汎用性を得ることができる.FPGAはプログラム可能であるので,複数の用途に用いたり,関数形を変えたりすることができる.

FBCEを多体シミュレーションの高速化に適用する場合の問題点は,設計作業が膨大なことである.プログラマはFPGAプロセッサの制御回路,データパス回路,ホストプロセッサでの通信・型変換ライブラリ等の膨大な量のハードウェアとソフトウェアを記述しなければならない.そのため,簡単な設計でも年単位の設計期間が必要となる.

本論文では,FBCEの用途を多体シミュレーションに限定することで,これら必要なハードウェア・ソフトウェアの全てを出力するソフトウェアを開発することが可能であることを示した.開発したソフトウェアはPGR(ProcessorGenerator for Reconfigurable systems)システムと名付けた.PGR システムはPGDL(PGR Description Language)ソースコードを入力として,(a) FPGA構成情報としてのハードウェア記述言語ソースコード,(b) アプリケーションプログラムがFBCEと通信するためのC言語ライブラリ,(c) FBCE機能検証用ソフトウェアエミュレータを出力する.FPGA構成情報はパラメータ化可能な演算器モジュールから構成される.これら演算器モジュールにはビット幅の小さい固定小数点形式演算器,浮動小数点形式演算器,および対数形式演算器を実装した.

PGRシステムがPGDL記述から,必要な全てのハードウェア・ソフトウェアを出力できる理由は,アプリケーションの範囲を多体シミュレーションに限定したからである.多体シミュレーションの場合,粒子間相互作用を高速に計算することで計算全体を大幅に高速化できる.つまりFBCEには粒子間相互作用の計算に特化したハードウェアを実装できれば良い.

PGRシステムは,粒子間相互作用を高速処理するためのパイプライン演算ユニットをFPGA内部に多数実装することに特化している.用途ごとに粒子間相互作用の関数形が異なるので,ユーザが粒子間相互作用をプログラミングして変更できるようにした.また,関数形が異なれば,アプリケーションプログラムとFBCEとの間でやり取りするデータの組み合わせもそれぞれ異なるので,ユーザがFBCE呼び出し用サブルーチンの引数形式をプログラミングして変更できるようにした.このようにすることで,PGRシステムを用いた場合,ユーザは演算器と演算器間の接続を指定程度の作業でパイプライン演算ユニットを設計できるようになる.

パイプライン演算ユニットは,個々の演算器を計算処理順に結合したデータフローグラフとして表現可能である.そのため,PGRにおけるパイプライン演算ユニットをプログラミングするための基本要素は演算器である.これは,従来のハードウェア記述言語によるプログラミングがLook-Up Table(LUT)やフリップフロップといった細粒度な構成要素を並列に組み合わせる作業だったのに対し,PGRでは演算器という粗粒度な構成要素を直列に組み合わせる作業になっている.これがPGRによるプログラミングが従来のハードウェア記述言語のそれに比べて劇的に作業効率を向上させることができた最大の理由である.

PGRでは設計の最適化を行うために,個々の演算器のビット幅をパラメータで変更できるようにした.パイプライン演算ユニットの設計では,どの部分にどの程度のビット幅,つまり演算精度を必要とするのかを細かく指定する必要がある.これは,演算精度の無駄が回路規模の無駄に大きく影響してしまうためである.従来の設計言語では,演算精度を変更するための労力が大きく,設計時間を増大させる原因となっていた.PGRではPGDL記述における演算器ビット幅をパラメータとすることで設計効率の向上を実現した.

同様にパイプライン演算ユニットの設計において,各演算器の最適なパイプラインステージ分割方法の決定作業もまた設計時間の大きな部分を占めている.PGRでは演算精度の場合と同様にパイプラインステージ数をパラメータとすることで設計効率の向上を実現した.

本論文では,PGRシステムを2種類の異なるFBCEで動作させた.2種類のFBCEは [1] Bioler-3 (千葉大学・理化学研究所共同開発),[2] Cray XD1 (Cray社開発)である.PGRシステムは別々のハードウェアに対してもPGDLソースコードを変更なしに適用できる.これは個々のハードウェアに依存した部分をハードウェア抽象化層の中に隠蔽するような工夫を考案したためである.ハードウェア抽象化層を個別にモジュールとして用意することで,異なるFBCE に対してPGRシステムを利用することができる.

本論文ではPGRシステムの応用例として重力相互作用計算回路及び,SPH(Smoothed Particle Hydrodynamics)相互作用計算回路のプログラミングを行った.

重力相互作用回路の場合,30行程度のPGDL記述を行うことでGRAPE-5相当の演算回路を実現することが可能であることを実証した.重力相互作用回路をBioler-3システムで動作させた場合,ピーク演算性能324ギガフロップスを達成することができた.同様にCray XD1システムで動作させた場合,ピーク演算性能45ギガフロップスを達成することができた.

SPH相互作用計算回路の場合,430行程度のPGDL記述を行うことで演算回路を実現することが可能であることを実証した.SPH相互作用計算回路の設計は重力相互作用回路の設計に比べて計算内容が非常に複雑であるため,これまで設計に成功していなかった.本論文は世界で初めてSPH相互作用計算回路の設計が可能であることを示した.

これまでFPGAを用いた多体シミュレーションの高速化は,プログラミング作業が膨大であることが原因で実用化が非常に困難であった.このような状況を,本論文ではPGRシステムを用いることで解決できることを示すとともに,多体シミュレーションの高速化に関する研究を大きく発展させた.

審査要旨 要旨を表示する

FPGA(Field Programmable Gate Array)は内部の論理回路を再構成可能なLSIであり、様々な応用でカスタムLSIの代わりに使われるようになってきている。FPGAの応用分野の1つに大規模な数値シミュレーションがある。特に、粒子系の相互作用計算のような、その部分を加速するだけで計算全体を加速できるような応用では、汎用計算機に比べて高い性能を実現することが期待できる。しかし、現在のところ、実用的な計算にFPGAが使われた例はほとんどない。その理由は、確かにLSIそのものを設計、製造する必要はないにせよ、システム全体としては開発に必要な背景知識、作業量が非常に大きいためである。これまでにFPGAを粒子系シミュレーションに応用する試みはいくつかあったが、年単位の時間がかかっていることが多い。

論文提出者は、ユーザーが相互作用計算のデータフローの仕様だけを指定すれば、必要な回路、ソフトウェアを全てその仕様から自動生成するシステムPGR(Processor Generator forReconfigurable systems)を開発した。ユーザーは、C言語類似の表現によってPGRが提供する演算器を並べ、演算精度、接続関係を指定するだけで良い。PGRは演算器の生成、パイプラインレジスタ等の配置等の必要なハードウェア記述の生成とソフトウェアの生成を行い、アプリケーションから呼べるライブラリを出力する。これのより、ユーザーの負担を大きく軽減できる。

主論文第1章は序論であり、以上のような研究の背景や従来の研究の問題点をまとめ、本研究の目的と意義を述べている。第2章では、従来のFPGAを使った計算システムの設計フローをまとめている。第3章では、本論文の主題であるPGRシステムの概念と実現の詳細がまとめられている。第4章では現在サポートされているFPGAボード、計算システムについてまとめられている。理研と千葉大の共同開発のBioler-3ボードと、Cray社のXD-1システムがサポートされており、同一のPGR記述からそれぞれのシステムで実行可能なプログラムが生成できる。5、6章では、PGRを使った記述の例として、重力相互作用計算パイプラインと、SPH法による流体計算のためのパイプラインの実装例がまとめられている。重力計算パイプラインは従来の方法で設計したものと同等以上の性能が得られている。また、汎用マイクロプロセッサの名目ピーク性能と比較しても、チップ当り10倍程度の性能が実現されている。SPHに関しては、従来の方法でシステム完成にいたった例がないので比較の対象がないが、演算回数で比較すると重力の場合に比べて1/2程度を実現しており、汎用プロセッサに比べて5-10倍程度の性能は実現されている。SPHについてはこれまでFPGAによる実現例がなく、世界で初めての成果である。

第7章では、いわゆるCベース設計などの、ハードウェア設計を容易にする他の手法との比較が行われる。Cベース設計は、詳細なハードウェア記述をHDLではなく手続き型の言語に近い表現で表すものであり、詳細なハードウェア設計を行い、さらに大量のソフトウェアを開発する必要があるのは従来の開発手法と同じである。これに対して、本論文で開発したPGRシステムでは、ユーザーは演算パイプラインの高水準の記述だけをすればよく、開発負担が大幅に小さくなっている。第8章は全体のまとめである。

以上を要するに、本論文はFPGAによる再構成可能計算という潜在的に広い応用がある重要な研究分野に対して、演算パイプラインの仕様記述だけから必要な再構成可能ハードウェアの詳細な設計とサポートソフトウェアを自動生成するシステムを構築することで従来は困難あるいは不可能であったアプリケーション開発を可能にするという大きな貢献をしたものであり、そのアプローチの有効性を世界で初めてSPH相互作用計算のためのパイプラインプロセッサをFPGAに実装し、流体計算を行うことで実証したという点で大きな意義がある。従って、本審査委員会は博士(学術)の学位を授与するにふさわしいものと認定する。

UTokyo Repositoryリンク