2016 Fiscal Year Annual Research Report
浮動小数点関数計算のハードウェアアシストに関する研究
Project/Area Number |
16H02795
|
Research Institution | Kyoto University |
Principal Investigator |
高木 直史 京都大学, 情報学研究科, 教授 (10171422)
|
Co-Investigator(Kenkyū-buntansha) |
高木 一義 京都大学, 情報学研究科, 准教授 (70273844)
|
Project Period (FY) |
2016-04-01 – 2020-03-31
|
Keywords | 計算機システム / 関数計算 / 浮動小数点演算 / FPGA / 指数・対数関数計算 |
Outline of Annual Research Achievements |
浮動小数点演算標準 IEEE754-2008では、指数関数、対数関数、三角関数等を「正確に丸めるべき関数」、すなわち、定められた精度で正確に計算すべき関数として推奨している。これを受け、関数計算ライブラリの開発、修正が行われているが、倍精度の関数値を通常の倍精度浮動小数点演算器等を用いてソフトウェアで計算するには、多大な計算時間と消費エネルギーを要する。本研究は、これらの関数を高速にエネルギー効率よく計算するためのハードウェアアシスト手法を開発することを目的としている。今年度は、研究を進めるために必要な環境を整備するとともに、指数関数系および対数関数系の関数について、FPGA(Field Programmable Gate Array)実現向きの専用計算回路の構成法を開発した。 1) 指数関数系および対数関数系の関数について、関数の性質を利用し、テーブル参照による引数の範囲縮小と縮小された引数に対する多項式近似(テーラー展開)による関数計算を組み合わせた、FPGA実現向きの専用計算回路の構成法を開発した。正確丸めのために非常に高精度の計算を要する「丸め困難入力」への対処法として、テーブル参照により丸め補正が必要かどうかを判定することにより、計算の精度を抑えて乗算器等のサイズを小さくする手法を提案した。 2) 多倍精度浮動小数点演算ライブラリexflibを用い、計算の中間結果に必要な精度(ビット長)を解析するための環境を整備した。 3) FPGAを内蔵したプログラマブルSoCを搭載した評価ボードを購入するとともに、FPGAベンダーが提供する高位合成ツールを導入し、無償のFPGA設計ツールと合わせて、FPGAの設計環境、評価環境を整備した。
|
Current Status of Research Progress |
Current Status of Research Progress
2: Research has progressed on the whole more than it was originally planned.
Reason
研究を進めるために必要な環境の整備は、順調に進展した。計算の中間結果に必要な精度(ビット長)を解析するための環境は、当初は、数式処理ソフトウェアを用いる予定であったが、京都大学で開発された多倍精度浮動小数点演算ライブラリexflibを用いることとした。FPGAの設計環境は、東京大学大規模集積システム設計教育研究センター(VDEC)が提供する回路設計用CADツールおよびFPGAベンダーが提供する無償のFPGA設計ツールに加え、FPGAベンダーが提供する有償の高位合成ツールを導入することにより、より容易に設計が行えるようにした。 指数関数系および対数関数系の関数に対するFPGA実現向きの専用計算回路の構成法の開発は、ほぼ順調に進展した。対数関数系の関数については、開発した構成法の評価まで完了した。指数関数系の関数については、開発した構成法をFPGAボードを用いて評価中である。提案した「丸め困難入力」への対処法は、正弦関数・余弦関数の計算でも有効なことを確認した。
|
Strategy for Future Research Activity |
指数関数系の関数について、開発した構成法のFPGAボードを用いた評価を完了するとともに、指数関数系および対数関数系の関数についてFPGA実現向きの専用計算回路の構成法を洗練する。 平成29年度には、当初の予定通り、べき乗計算系およびべき乗根計算系の関数について、FPGA実現向きの専用計算回路の構成法を開発する。提案した「丸め困難入力」への対処法の適用を検討する。また、当初の予定を前倒しして、正弦関数および余弦関数について、FPGA実現向きの専用計算回路の構成法を開発に着手する。
|
Research Products
(1 results)