研究実績の概要 |
浮動小数点演算における精度低下の検出を行うことで、数値計算の信頼性向上を目標として始めた研究であるが、特定の演算での著しい精度低下が、最終的な結果にどれだけの影響を与えるかは不明なため、各変数の持つ精度を追跡することで最終的な結果の精度を求めることを考えた。しかし、これは、前進誤差解析と同じであり、厳密に行うと有効桁がないという結果に陥る。そこで、精度を実用的に求めるために緩和した精度を求めるアルゴリズムを検討した。先行研究(1994-HPC-53, V.94, pp.27-33, 1994)では、多くのケースで近い精度を提示できるアルゴリズムが示されているが、幾つかのケースでは、かなり厳しい予測となっている。そこで、変数ごとに、1.桁落ちした絶対回数が多くなるにつれ影響度を弱める;2.現在の有効桁数がすでに少ない時は、影響度を弱める;3.演算回数に対して桁落ちした回数を示す桁落ち率を導入し、桁落ち率が高く有効桁数が少ない場合は影響度を弱める;の3つのアルゴリズムを考え、ソフトウェアシミュレーションを用いて評価を行った。これにより、3のアルゴリズムが良好な結果を示した。また、反復解法では、近似解の計算精度が悪くても真値との比較が正しければ良く、プログラム中に変数の精度を回復させる指示を入れることで、正しく見積もられることも示した。しかし、当初予定の、仮数部の一部に情報を格納してこのアルゴリズムを実現するには、情報量が大きく、実際の変数とは別領域に情報を格納する必要が生じた。このため、ハードウェア化を目標としていたが、ハードウェアに閉じたインプリメントは不可能と考え、アルゴリズムをサポートするハードウェア構成を検討し、その実現性を検討した。実際に、チップを作成して実測する予定であったが、試作したチップに不具合があり、開発過程で得られたCADによるデータで、評価を行った。
|