研究課題/領域番号 |
22500051
|
研究機関 | 広島市立大学 |
研究代表者 |
北村 俊明 広島市立大学, 情報科学研究科, 教授 (10324683)
|
キーワード | 計算機アーキテクチャ / 計算精度低下検出 / 桁落ち / 情報埋没 / 計算誤り / 長精度計算 / 大規模数値計算 |
研究概要 |
本年度の研究目標として以下の3点を計画し、各々の成果は以下のとおりである。 1.実アプリ走行によるシステムの改良点抽出と評価 高エネルギー加速器研究機構の石川正先生、湯浅富久子先生から提供いただいたワークロードを実行し、試作システムでの性能的な問題点を見つけ出し改良を加えた。具体的には、浮動小数点除算の出現頻度がかなり高く、簡単なradix2除算器からradix4除算器にすることで実行速度を向上させた。また、ローカルメモリとベクトルレジスタ間のスループット向上のためバスを倍増させた。 2.本システム利用を容易にするサポートシステムの開発検討 本システムを使用するためには、ライブラリ形式のベクトル命令やデータ転送処理を用いて対象プログラムを書き直す必要がある。これを自動化するべく、コンパイラ開発のインフラストラクチャであるCOINSを用いてプログラム変換システムを作成した。プログラム中のループに着目してベクトル化を行ない、本システムのライブラリ呼び出しに変換を行う。簡単なループについては、変換を行えることを検証した。 3.QEMUを用いた計算誤り検出機構の検討 プログラムの書き換えが行なえれば本システムを使用することができるが、バイナリーで配布されているような市販のプログラムでは計算誤りを検出することができない。このため、仮想マシンQEMUの命令変換機構を用いて浮動小数点加減算だけを対象としてエミュレーションすることで検出を行うシステムを開発した。これにより、表計算ソフトにおいても条件が悪ければ桁落ちが発生していることが検出でき、その他でも、画面の描画においても発生していることが分かった。ただし、検出処理を徹底的に最適化したが、対象命令以外の命令も変換して実行しているため実行速度の向上は難しいことが分かった。
|
現在までの達成度 (区分) |
現在までの達成度 (区分)
2: おおむね順調に進展している
理由
計算誤り検出機構を装備した倍精度/4倍精度浮動小数点加算器を論理設計し、浮動小数点乗除算器も含めて、これらを多数用いたベクトル演算型アクセラレータをFPGAボードに実装し、このアクセラレータを利用するためのソフトウェアライブラリを用意することで試作システムを作成できたが、処理速度ではまだ改良の余地がある。また、ソースプログラムの変更できない場合に対してQEMUを用いる方法も検証できた。
|
今後の研究の推進方策 |
QEMUを用いた方法は、実行するプロセッサに仮想的に実行するプロセッサのレジスタ数より充分多いレジスタがあれば高速化の方法もあるが、現状ではそのような前提を考えにくいため、これでの高速化は凍結する。ベクトル演算型アクセラレータでどの程度の処理性能が得られるか、FPGAを用いた試作システムをベースにASIC化を行ない、最新のテクノロジーでの性能を見積って実用化の目処を開きたい また、計算誤りの発生を検出するという当初の目的は達成できたが、その誤りが最終的な計算結果にどの程度影響を及ぼすのかと言う点疑問点が出て来ている。同じように桁落ちが発生しても、高エネ研ワークロードのように最終結果が大幅に間違うケースもあれば、表計算ソフトでの標準偏差計算のように最終結果はほぼ正しい場合もある。計算誤りを計算ごとに監視するだけでなく、計算全体での有効桁数管理と言う観点へ研究を進めて行きたい。
|