@misc{oai:ir.soken.ac.jp:00001657, author = {小池, 邦昭 and コイケ, クニアキ and KOIKE, Kuniaki}, month = {2016-02-17}, note = {本論文では超並列準汎用計算機GRAPE-DRの制御回路(GRAPE-DR制御プロセッサ)の
開発およびそれを用いて実行した重力多体問題シミュレーションと密行列のLU分解の性
能について述べる。論文申請者はGRAPE-DR用の制御モデルを考案し、それを実回路と
してGRAPE-DRボード上に実装した。この制御モデルでは制御プロセッサ側で
GRAPE-DRプロセッサへの命令投入・データ転送・結果回収、さらにはホストへの転送
およびホストからのデータ転送をすべて並行に行い、パイプライン的に行うことを可能に
した。これは従来の付加的なプロセッサでは実現されていなかった。この並行動作を行う
ために、制御回路では単一のマイクロプロセッサではなく、各部に専用の制御回路を実装
し、これらを並列に動作させる。これによりGRAPE-DRプロセッサとのインタフェース
周波数が200MHzとなる低速の動作で、GRAPE-DRプロセッサとの通信において総計
6.775GB/sのバンド幅のデータフローを処理することに成功した。
 重力相互作用は到達距離が無限大であるため、重力多体問題のシミュレーションでは単
純な方法では計算量が粒子数の2乗に比例して増大するという問題がある。もちろん、ツ
リー法等で計算量のオーダーをO(N logN)程度にできるが、それでも計算量が非常に多
い。重力計算部分を高速に計算するハードウェアであるGRAvity piPE(GRAPE)を汎用の
計算機(ホスト計算機)に接続し、これを用いて重力の計算時間を短縮するという方法は非
常に有効であり、広く用いられてきた。
 しかし、GRAPEのような専用計算機を製作するためには計算を行うための専用LSIを
開発する必要がある。この開発コストが製造プロセスの微細化に従って増大したため、新
規の開発は困難になっている。一方、重力相互作用にはSingle Instruction Multi Data
(SIMD)計算機も高い性能を実現できる。SIMD型計算機は多数の演算器を同じ命令で実行
する計算機であり、現在一般的になっているMIMD型計算機に比べて同じトランジスタ数
で多数の演算器を実現可能なため、1990年頃まではいくつかの成功例があった。
しかしながらこのようなSIMD型計算機は1990年代以降新規開発がない。これは、
SIMD型計算機における通信の帯域幅の問題のためである。1990年代以降、多数の浮動小
数点演算器が1チップのLSIに集積できるようになったため、その多数の演算器にデータ
を供給するための外部メモリとの通信帯域が不足するようになった。また多数の演算
器を1チップに集積して演算性能が向上すると、チップ間通信に必要な帯域幅も増大する。こ
のために現状では1990年頃まで開発されていたようなアーキテクチャのSIMD型の計算
機は開発が困難になっている。
 重力相互作用で相互作用している多体系の相互作用計算では多数の粒子から多数の粒
子への力を計算するので、外部メモリへの必要な通信速度を計算速度に比べて小さくでき
る。また密行列演算も計算量は行列のサイズの3乗程に対してデータ量は2乗なので、計
算量に比べて通信量を小さくできる。このような通信量に対して計算量が大きい応用に特
化したアーキテクチャにすれば、必要な外部メモリへの通信帯域を削減できる。
このような形でSIMD型の計算機を改良し、これをGRAPEと同じように重力計算等に
使うのがGRAPE-DRの基本的なアイディアである。このアイディアに基づいてSINGプ
ロセッサチップが開発された。このSINGプロセッサチップは演算に512個の簡略化した
プロセッサコアを集積し、500MHz駆動で単精度で512Gflops、倍精度で256Gflopsの性
能値を持つ。各演算器はスループット1の倍精度浮動小数点加算器とスループット1/2の
倍精度浮動小数点乗算器(単精度乗算時のスループットは1となる)、32ワードのレジスタ
ファイル、256ワードのローカルメモリ、整数ALUから構成されている。SINGプロセッサ
チップは命令実行サイクルごとに外部バスから命令を供給されて動作する。また、デー
タの入出力ポートも単純な同期インタフェースであり、メモリやI/Oバスを直結できない。
 GRAPE-DRプロセッサボードはSINGプロセッサ、FPGA、オンボードメモリ
(DDR2-SDRAM)から構成され、SINGプロセッサの制御回路はFPGA上に実装される。
制御プロセッサはSINGプロセッサへのデータ入出力インタフェース、オンボードメモリ
インタフェース、ホストインタフェースを搭載してSINGプロセッサと外部メモリ及びホ
スト計算機とのデータのやり取りを制御する。そのために、制御プロセッサは命令コント
ローラ、外部メモリインタフェース、ホスト側とSINGプロセッサ側とのデータ変換回路
およびSINGプロセッサ間の結果縮約回路から構成されている。命令コントローラはホス
ト計算機からの計算起動指令でSINGプロセッサへ送出する命令列を生成する。外部メモ
リインタフェースはオンボードメモリへの書き込みおよび読み込みを制御する。データ変
換回路は、ホスト側の64ビットのデータをSINGプロセッサ側の72ビットデータに変換
し、同様に逆の変換も行う。プロセッサ間結果縮約回路はプロセッサボード上の4つの
SINGプロセッサの出力した結果を縮約して、結果回収に必要なデータ量を削減するとと
もにPCI Expressリンクの帯域幅を有効に利用できるようにする。ホスト側とのインタフ
ェース回路と高速シリアルリンクについては既存の回路を使用した。
 重力相互作用ライブラリはHermite積分法に対応した重力相互作用計算をSINGプロセ
ッサ上で計算するためのホスト計算機側のライブラリである。SINGプロセッサの動作周
波数が333MHz、粒子数がN=262144の場合に重力相互作用での演算性能は377Gflops
となった。これは通信を無視した場合の漸近性能の88%となる。
 密行列のブロック化LU分解は行列積が計算時間の大部分を占めるため、行列積の部分
をSINGプロセッサ上で実行することにより、密行列のLU分解をホスト計算機のみで実
行する場合に比べて大幅に加速することができる。SINGプロセッサの動作周波数が
400MHzの場合で、密行列の乗算性能は行列サイズが34816行2048列の行列と2048行
34816行の行列積の場合に、635Gflopsと理論ピーク性能の79.3%の性能値となった。行
列データの転送と計算実行を並行して行えるようにしたため、行列乗算では比較的小さな
行列でも高い実効性能を出すことに成功した。SINGプロセッサ用に最適化した密行列乗
算ライブラリを用いてLINPACKベンチマークの性能評価を行った。その結果、LU分解
全体では433Gflopsと理論ピークの54%の性能値となった。
 このように重力多体問題および密行列LU分解といった実際のアプリケーションで高い
理論ピーク性能に対する実効性能を達成し、準汎用型のアクセラレータの実用性を実証した。, 総研大甲第1319号}, title = {Development of Control Processor for Multipurpose Computer GRAPE-DR and its Performance Evaluation}, year = {} }