JP4861087B2 - 演算プログラム変換装置、演算プログラム変換プログラム、演算プログラム変換方法 - Google Patents

演算プログラム変換装置、演算プログラム変換プログラム、演算プログラム変換方法 Download PDF

Info

Publication number
JP4861087B2
JP4861087B2 JP2006207905A JP2006207905A JP4861087B2 JP 4861087 B2 JP4861087 B2 JP 4861087B2 JP 2006207905 A JP2006207905 A JP 2006207905A JP 2006207905 A JP2006207905 A JP 2006207905A JP 4861087 B2 JP4861087 B2 JP 4861087B2
Authority
JP
Japan
Prior art keywords
program
arithmetic
conversion
execution
target
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2006207905A
Other languages
English (en)
Other versions
JP2008033729A (ja
Inventor
和浩 松崎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2006207905A priority Critical patent/JP4861087B2/ja
Priority to US11/589,932 priority patent/US7933941B2/en
Publication of JP2008033729A publication Critical patent/JP2008033729A/ja
Application granted granted Critical
Publication of JP4861087B2 publication Critical patent/JP4861087B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation

Description

本発明は、演算プログラムにおける変数の型の変換を行う演算プログラム変換装置、演算プログラム変換プログラム、演算プログラム変換方法に関するものである。
信号処理関係(移動体通信、画像処理など)のアプリケーションにおいて、浮動小数点演算を使って、方式の検討や検証が行われている。従来のハードウェアの設計において、設計者は、方式検証された浮動小数点モデルのCプログラムのリファレンスから、HDL(Hardware Description Language)によるビット幅固定の整数演算へ、人手による変換を行っていた。
近年、固定小数点モデルのCプログラムからのRTL自動合成技術(高位合成技術)が実用化されつつある。ここで、固定小数点演算に関しては、固定小数点クラスライブラリが提供され、シミュレーションできる環境は整ってきている。
なお、本発明の関連ある従来技術として、複数の浮動小数点データの指数部の最大値を検出し、この最大値と入力された浮動小数点データの指数部との値との差分を求め、入力された浮動小数点データを差分だけシフトする固定小数点データ生成回路がある(例えば、特許文献1参照)。
特開2002−149397号公報
しかしながら、浮動小数点から固定小数点への変換は人手で行われており、機能が複雑になるにつれて、精度(SN比)を確保しつつ、コストの低い(ビット幅の小さい)固定小数点演算に変換することは、ますます難しくなり、非常に多くの時間と労力を必要としている。
本発明は上述した問題点を解決するためになされたものであり、演算プログラムにおける浮動小数点演算を、精度を保ちながら固定小数点演算に変換する演算プログラム変換装置、演算プログラム変換プログラム、演算プログラム変換方法を提供することを目的とする。
上述した課題を解決するため、本発明は、演算プログラムにおける変数の型の変換を行う演算プログラム変換装置であって、浮動小数点演算を行う演算プログラムにおける浮動小数点型の変数を対象変数とし、前記演算プログラムの実行時に対象変数の値の変化が履歴として出力されるように、前記演算プログラムの変更を行って第1プログラムとし、該第1プログラムの実行を行い、該実行により得られる履歴に基づいて対象変数の値の範囲を検出するプロファイル部と、前記プロファイル部により検出された対象変数の値の範囲に基づいて、対象変数を固定小数点型に変換するように、前記演算プログラムの変更を行って第2プログラムとし、該第2プログラムの実行を行い、該実行により得られる実行結果の精度が予め設定された所望精度を満たすか否かの判断を行う変換部とを備えたものである。
また、本発明に係る演算プログラム変換装置において、前記変換部は、前記第2プログラムの実行結果の精度が予め設定された所望精度を満たさないと判断した場合、所定の対象変数のビット幅を拡張するように前記第2プログラムの変更を行い、該第2プログラムの実行を行い、該実行により得られる実行結果の精度が予め設定された所望精度を満たすか否かの判断を行うことを特徴とする。
また、本発明に係る演算プログラム変換装置において、前記変換部は、前記第2プログラムの実行結果の精度が予め設定された所望精度を満たすと判断した場合、所定の対象変数のビット幅を削減するように前記第2プログラムの変更を行い、該第2プログラムの実行を行い、該実行により得られる実行結果の精度が予め設定された所望精度を満たすと判断した場合に、前記第2プログラムを出力することを特徴とする。
また、本発明に係る演算プログラム変換装置において、前記変換部は、前記第2プログラムの実行結果の精度が予め設定された所望精度を満たさないと判断した場合、所定の対象変数のビット幅を拡張するように前記第2プログラムの変更を行い、該第2プログラムの実行を行い、該実行により得られる実行結果の精度が予め設定された所望精度を満たすまで、前記所定の対象変数のビット幅を拡張、前記第2プログラムの変更、該第2プログラムの実行を繰り返すことを特徴とする。
また、本発明に係る演算プログラム変換装置において、前記変換部は、前記第2プログラムにおける演算単位の段毎に、所定の対象変数のビット幅を変化させるように前記第2プログラムの変更を行い、該第2プログラムの実行を行い、該実行により得られる実行結果の精度が予め設定された所望精度を満たすと判断し、かつ、前記ビット幅の変化による前記第2プログラム全体の演算の規模が削減されると判断した場合に前記第2プログラムを出力することを特徴とする。
また、本発明に係る演算プログラム変換装置において、前記プロファイル部は、前記演算プログラムが用いるパラメタの値毎に前記第1プログラムの実行を行い、前記パラメタの値毎の履歴をマージして対象変数毎の値の範囲を検出することを特徴とする。
また、本発明に係る演算プログラム変換装置において、前記変換部は、前記第1プログラムの実行により得られた実行結果と前記第2プログラムの実行により得られた実行結果とに基づいて前記精度を算出することを特徴とする。
また、本発明に係る演算プログラム変換装置において、前記プロファイル部は、前記演算プログラムが用いるパラメタの値の範囲毎に前記第1プログラムの実行を行い、前記パラメタの値の範囲毎の対象変数の値の範囲を検出し、前記変換部は、前記パラメタの値の範囲毎の対象変数の値の範囲に基づく対象変数のビットシフトを、前記演算プログラムに追加するように、前記演算プログラムの変更を行って前記第2プログラムとすることを特徴とする。
また、本発明に係る演算プログラム変換装置において、前記プロファイル部は、前記演算プログラムのうちハードウェア化を行う部分の変数を対象変数として指定することを特徴とする。
また、本発明は、演算プログラムにおける変数の型の変換をコンピュータに実行させる演算プログラム変換プログラムであって、浮動小数点演算を行う演算プログラムにおける浮動小数点型の変数を対象変数とし、前記演算プログラムの実行時に対象変数の値の変化が履歴として出力されるように、前記演算プログラムの変更を行って第1プログラムとし、該第1プログラムの実行を行い、該実行により得られる履歴に基づいて対象変数の値の範囲を検出するプロファイルステップと、前記プロファイルステップにより検出された対象変数の値の範囲に基づいて、対象変数を固定小数点型に変換するように、前記演算プログラムの変更を行って第2プログラムとし、該第2プログラムの実行を行い、該実行により得られる実行結果の精度が予め設定された所望精度を満たすか否かの判断を行う変換ステップとをコンピュータに実行させるものである。
また、本発明に係る演算プログラム変換プログラムにおいて、前記変換ステップは、前記第2プログラムの実行結果の精度が予め設定された所望精度を満たさないと判断した場合、所定の対象変数のビット幅を拡張するように前記第2プログラムの変更を行い、該第2プログラムの実行を行い、該実行により得られる実行結果の精度が予め設定された所望精度を満たすか否かの判断を行うことを特徴とする。
また、本発明に係る演算プログラム変換プログラムにおいて、前記変換ステップは、前記第2プログラムの実行結果の精度が予め設定された所望精度を満たすと判断した場合、所定の対象変数のビット幅を削減するように前記第2プログラムの変更を行い、該第2プログラムの実行を行い、該実行により得られる実行結果の精度が予め設定された所望精度を満たすと判断した場合に、前記第2プログラムを出力することを特徴とする。
また、本発明に係る演算プログラム変換プログラムにおいて、前記変換ステップは、前記第2プログラムの実行結果の精度が予め設定された所望精度を満たさないと判断した場合、所定の対象変数のビット幅を拡張するように前記第2プログラムの変更を行い、該第2プログラムの実行を行い、該実行により得られる実行結果の精度が予め設定された所望精度を満たすまで、前記所定の対象変数のビット幅を拡張、前記第2プログラムの変更、該第2プログラムの実行を繰り返すことを特徴とする。
また、本発明に係る演算プログラム変換プログラムにおいて、前記変換ステップは、前記第2プログラムにおける演算単位の段毎に、前記ビット幅を変化させるように前記第2プログラムの変更を行い、該第2プログラムの実行を行い、該実行により得られる実行結果の精度が予め設定された所望精度を満たすと判断し、かつ、前記ビット幅の変化による前記第2プログラム全体の演算の規模が削減されると判断した場合に前記第2プログラムを出力することを特徴とする。
また、本発明に係る演算プログラム変換プログラムにおいて、前記プロファイルステップは、前記演算プログラムが用いるパラメタの値毎に前記第1プログラムの実行を行い、前記パラメタの値毎の履歴をマージして対象変数毎の値の範囲を検出することを特徴とする。
また、本発明に係る演算プログラム変換プログラムにおいて、前記変換ステップは、前記第1プログラムの実行により得られた実行結果と前記第2プログラムの実行により得られた実行結果とに基づいて前記精度を算出することを特徴とする。
また、本発明に係る演算プログラム変換プログラムにおいて、前記プロファイルステップは、前記演算プログラムが用いるパラメタの値の範囲毎に前記第1プログラムの実行を行い、前記パラメタの値の範囲毎の対象変数の値の範囲を検出し、前記変換ステップは、前記パラメタの値の範囲毎の対象変数の値の範囲に基づく対象変数のビットシフトを、前記演算プログラムに追加するように、前記演算プログラムの変更を行って前記第2プログラムとすることを特徴とする。
また、本発明に係る演算プログラム変換プログラムにおいて、前記プロファイルステップは、前記演算プログラムのうちハードウェア化を行う部分の変数を対象変数として指定することを特徴とする。
また、本発明は、演算プログラムにおける変数の型の変換を行う演算プログラム変換方法であって、浮動小数点演算を行う演算プログラムにおける浮動小数点型の変数を対象変数とし、前記演算プログラムの実行時に対象変数の値の変化が履歴として出力されるように、前記演算プログラムの変更を行って第1プログラムとし、該第1プログラムの実行を行い、該実行により得られる履歴に基づいて対象変数の値の範囲を検出するプロファイルステップと、前記プロファイルステップにより検出された対象変数の値の範囲に基づいて、対象変数を固定小数点型に変換するように、前記演算プログラムの変更を行って第2プログラムとし、該第2プログラムの実行を行い、該実行により得られる実行結果の精度が予め設定された所望精度を満たすか否かの判断を行う変換ステップとを実行するものである。
本発明によれば、演算プログラムにおける浮動小数点演算を、所望精度を確保しながら固定小数点演算に変換することができる。
以下、本発明の実施の形態について図面を参照しつつ説明する。
まず、本実施の形態に係る演算プログラム変換装置の構成について説明する。
図1は、本実施の形態に係る演算プログラム変換装置の構成の一例を示すブロック図である。この演算プログラム変換装置は、変更部20、コンパイラ30、プロファイル部40、評価部50、指示部60、通知部70から構成される。なお、プロファイル部は、本実施の形態における変更部20、コンパイラ30、プロファイル部40、指示部60に対応する。また、変換部は、本実施の形態における変更部20、コンパイラ30、評価部50、指示部60に対応する。
変更部20には、対象プログラムが入力される。対象プログラムは、ハードウェア化などのために浮動小数点演算から固定小数点演算への変換が施されるプログラムである。つまり、対象プログラムの最初の状態は、浮動小数点演算アルゴリズムが記述されたものである。評価部50は、固定小数点ライブラリを持つ。固定小数点ライブラリは、固定小数点型を持つ。指示部60は、変更部20に指示情報を渡すことにより、対象プログラムの変更を指示する。
指示情報は、変数名、所望精度、初期ビット幅、変数ビット幅、自動変換、変換モードを含む。所望精度は、下限のSN比で表される。初期ビット幅は、全ての変数の下限ビット幅と上限ビット幅を示す。変数ビット幅は、変数毎のビット幅を示す。自動変換とは、浮動小数点演算から固定小数点演算への自動変換を行うか否かを示す。変換モードとは、全ての変数を下限ビット幅の固定小数点に一括変換してからビット幅の最適化を行う、全ての変数を上限ビット幅の固定小数点に一括変換してからビット幅の最適化を行う、などのモードを示す。
次に、本実施の形態に係る演算プログラム変換装置の動作について説明する。
図2は、本実施の形態に係る演算プログラム変換装置の動作の一例を示すフローチャートである。まず、指示部60は、入力された対象プログラムにおける浮動小数点型の変数のうち、固定小数点型に変換する変数を特定し、対象変数とする(S2)。ここで、固定小数点に変換する変数は、対象プログラムが全てハードウェア化される場合は全ての変数、対象プログラムの一部がハードウェア化される場合はハードウェア化の範囲における変数、予め設計者に指定された変数のいずれかである。
次に、指示部60は、対象プログラムをプロファイルプログラムに変換し、プロファイルを行うプロファイルステップを実行する(S4)。次に、指示部60は、対象プログラムの浮動小数点演算を固定小数点演算に変換する第1変換ステップ(変換ステップ)を実行し(S6)、このフローは終了する。
次に、処理S4におけるプロファイルステップについて説明する。
図3は、本実施の形態に係るプロファイルステップの動作の一例を示すフローチャートである。まず、指示部60は、対象プログラムが実行時に履歴情報を生成するように、対象プログラムを書き換える指示情報を、変更部20へ渡す(S11)。ここで、履歴情報は、対象変数の値であり、値の更新時に記録されるものである。変更部20は、指示情報に従って、対象プログラムを書き換え、プロファイルプログラムとする(S12)。
次に、コンパイラ30は、プロファイルプログラムのコンパイルを行い、プロファイルプログラムの実行形式を生成する(S13)。次に、プロファイル部40は、プロファイルプログラムへの入力パラメタ(テストパターン)や実行モードなどのパラメタ設定を行い(S14)、このパラメタ設定を用いてプロファイルプログラムの実行を行うことにより、実行結果と履歴情報を出力する(S15)。つまり、入力パラメタ毎の実行結果と履歴情報が出力される。次に、プロファイル部40は、全てのパラメタ設定に対応する実行が終了したか否かの判断を行う(S16)。
終了していない場合(S16,N)、処理S14へ戻り、プロファイル部40は、次のパラメタ設定を行う。一方、終了した場合(S16,Y)、プロファイル部40は、パラメタ設定毎の履歴情報から対象変数毎のプロファイル情報を生成する(S17)。ここで、プロファイル情報は、全てのパラメタ設定に対する対象変数の履歴情報をマージしたものであり、対象変数の最小値と最大値、対象変数の絶対値の最小値と最大値を示す。次に、プロファイル部40は、設計者からの指示に応じて、通知部70を用いて履歴情報やプロファイル情報の表示や印刷を行い(S18)、このフローを終了する。なお、プロファイル情報は、パラメタ設定毎に、記録されても良い。
上述したプロファイルステップによれば、浮動小数点演算における対象変数の値の範囲を取得することができる。
次に、処理S6における第1変換ステップについて説明する。
図4は、本実施の形態に係る第1変換ステップの動作の一例を示すフローチャートである。まず、予め所望精度(SN比、例えば、50dB)が設定される。また、指示部60は、プロファイル情報における最大値と最小値から上限ビット幅と下限ビット幅を決定する(S31)。上限ビット幅と下限ビット幅は、予め設計者により与えられても良い。
次に、指示部60は、対象プログラムの最後段(出力段)から順次、段を選択して対象段とし、対象段における変数を選択して対象変数とする(S32)。ここで、対象プログラムにおける演算単位を段とする。演算単位は、ハードウェア化により1つの演算器となる部分である。次に、指示部60は、プロファイル情報の最大値から整数部のビット幅を決定し、プロファイル情報の最小値から固定小数点の位置を決定することにより、固定小数点の型を決定し、ビット幅リストへ登録する(S33)。ビット幅リストには、変数毎のビット幅が記録される。次に、指示部60は、固定小数点の型を含む指示情報を変更部20へ渡すことにより、精度評価ステップを行う(S34)。次に、指示部60は、精度評価ステップにより得られた精度が所望精度を満足したか否かの判断を行う(S35)。
処理S35において、所望精度を満足しない場合(S35,No)、指示部60は、ビット幅が上限ビット幅であるか否かの判断を行う(S41)。ビット幅が上限でない場合(S41,No)、指示部60は、対象変数のビット幅を1ビット増加させ(S45)、処理S33へ戻る。一方、ビット幅が上限である場合(S41,Yes)、指示部60は、1つ前段を対象段とし、対象段の変数のビット幅を1ビット拡張させる(S42)。ここで、対象段の変数のビット幅が上限ビット幅であれば、指示部60は、更に1つ前段を対象段とし、対象段の変数のビット幅を1ビット拡張させる。
次に、指示部60は、このビット幅の拡張が可能であるか否かの判断を行う(S43)。ビット幅の拡張が不可能である場合(S43,No)、指示部60は、この変換方法により所望精度を満足することができないと判断し、第2変換ステップを行い(S44)、このフローは終了する。一方、ビット幅の拡張が可能である場合(S43,Yes)、処理S33へ戻り、引き続き対象段の別の対象変数の処理を行う。
また、処理S35において、所望精度を満足した場合(S35,Yes)、指示部60は、全ての対象変数の固定小数点への変換が完了したか否かの判断を行う(S51)。変換の完了していない変数がある場合(S51,No)、処理S32へ戻り、次の変数を選択する。一方、全ての変換が完了した場合(S51,Yes)、指示部60は、ビット幅を最適化するための最適化ステップを行い(S52)、このフローは終了する。
上述した第1変換ステップによれば、所望精度を確保しながら、対象変数を浮動小数点型から固定小数点型へ変換することができる。
次に、処理S34における精度評価ステップについて説明する。
図5は、本実施の形態に係る精度評価ステップの動作の一例を示すフローチャートである。まず、指示部60は、決定した固定小数点の型を含む指示情報を変更部20へ出力する(S61)。ここで、指示情報は、例えば、対象変数の定義において“double”型を“fixed16.4”型(整数部が16ビット、小数部が4ビット)に変更するように指示する。次に、変更部20は、指示情報に従って対象プログラムの変更を行う(S62)。次に、コンパイラ30は、変更部20により変更された対象プログラムのコンパイルを行い、実行形式に変換する(S63)。次に、評価部50は、対象プログラムの実行形式の実行を行い、実行結果を出力する(S65)。
次に、評価部50は、プロファイルステップにより得られた浮動小数点演算の実行結果と処理S65により得られた固定小数点演算の実行結果とから、精度(SN比)の計算を行い(S67)、このフローを終了する。ここで、精度は、例えば、誤差として算出され、プロファイルステップにより得られた浮動小数点演算の実行結果Aと処理S65により得られた固定小数点演算の実行結果Bとを用いて、誤差=((B−A)^2)/(A^2)を算出し、その平均として算出される。また、精度評価ステップにより得られた精度は、通知部70により表示や印刷が行われる。
上述した精度評価ステップによれば、変換前の浮動小数点演算と変換後の固定小数点演算の精度の劣化を評価することにより、所望精度を用いるビット幅の決定に用いることができる。
次に、処理S52における最適化ステップについて説明する。
図6は、本実施の形態に係る最適化ステップの動作の一例を示すフローチャートである。まず、指示部60は、最後段から順次、段を選択して対象段とし、対象段の変数を選択して対象変数とする(S72)。次に、指示部60は、ビット幅リストにおける対象変数の小数部のビット幅を1ビット拡張し、増減ビット幅リストに登録する(S73)。増減ビット幅リストには、変数毎のビット幅の増減が記録される。次に、指示部60は、対象段の1つ前段の変数のビット幅を1ビット削減し、増減ビット幅リストに登録する(S74)。次に、指示部60は、対象変数のビット幅を含む指示情報を変更部20へ渡すことにより、精度評価ステップを行う(S75)。次に、指示部60は、精度評価ステップにより得られた精度が所望精度を満足するか否かの判断を行う(S76)。
評価結果が所望精度を満足しない場合(S76,No)、指示部60は、削減したビット幅を元に戻して(1ビット拡張)、増減ビット幅リストに登録し(S79)、処理S74へ戻り、更に1つ前段のビット幅を1ビット削減する。一方、評価結果が所望精度を満足する場合(S76,Yes)、指示部60は、全ての変数の精度評価ステップが完了したか否かの判断を行う(S78)。
精度評価が完了していない変数がある場合(S78,No)、処理S74へ戻り、更に1つ前段のビット幅を1ビット削減する。一方、全ての変数の精度評価が完了した場合(S78,Yes)、指示部60は、ビット幅削減効果測定ステップを行い(S81)、削減効果があるか否かの判断を行う(S82)。
削減効果がない場合(S82,No)、処理S84へ移行する。一方、削減効果がある場合(S82,Yes)、指示部60は、暫定変数ビット幅リストの内容を変数ビット幅リストに反映する(S83)。次に、指示部60は、暫定変数ビット幅リストをクリアする(S84)。次に、指示部60は、全ての変数のビット幅削減効果測定ステップが完了したか否かの判断を行う(S85)。全ての変数のビット幅削減効果測定ステップが完了していない場合(S85,N)、処理S72へ戻り、指示部60は、次の対象変数、対象段を選択する。一方、全ての変数のビット幅削減効果測定ステップが完了した場合(S85,Y)、このフローは終了する。
次に、処理S81におけるビット幅削減効果測定ステップについて説明する。
ここで、指示部60は、変数毎に増減ビット幅リストを参照し、(削減ビット数−拡張ビット数)>0であれば、削減効果があると判断する。なお、本実施の形態において、ビット幅リストと増減ビット幅リストにおける値は、変数毎に記録されるとしたが、変数毎、演算器毎に記録されても良い。この場合、指示部60は、データフローグラフ等を用意して演算器のビット数を合算し、合算したビット数が少なくなっていれば、削減効果があると判断する。演算器毎にビット幅の計算を行うことにより、より正確に最適化を行うことができる。また、演算器の種類によって、ハードウェア化後の回路規模の比較を行っても良い。例えば、加算器において削減されるビット数と乗算器において削減されるビット数が同じである場合、乗算器におけるビット数の削減の方が回路規模において削減効果が大きいと判断する。
上述した最適化ステップによれば、対象プログラム全体でのビット幅の増減を確認しながら変数毎のビット幅の増減を行うことにより、ビット幅が不要に拡張されることを防ぎ、ビット幅を最適化することができる。
次に、処理S44における第2変換ステップについて説明する。
第2変換ステップは、第1変換ステップにおいて所望精度を満足することができないと判断された場合の処理である。第2変換ステップの動作は、第1変換ステップと同様であるが、精度評価ステップにおける処理S61,S62において、一時的にダイナミックレンジを確保するように対象プログラムを変更する。指示部60は、第2変換ステップの対象変数として、履歴情報またはプロファイル情報からパラメタ設定(モードや入力パラメタ)により値の範囲が異なるものを選択する。また、指示部60は、モードや入力パラメタによる分岐などから、値の範囲を変化させる対象部分を決定する。ここで、指示部60は、設計者の指示により対象部分を決定しても良い。指示部60は、対象部分の開始点において、所定の固定値だけ小数点位置を移動させるように書き換え、対象部分の終了点において、小数点位置を元に戻すように書き換える。
ここで、第2変換ステップの具体例について説明する。
まず、第2変換ステップによる変換前の対象プログラムを次に示す。
X[n]=p1*D[n];
Y=Σ文字X[n];
ここで、パラメタp1により対象変数x[n]の値の範囲が大きく異なるとする。図7は、本実施の形態に係るプロファイル情報の一例を示す表である。このプロファイル情報において、入力パラメタp1の値毎に、対象変数X[n]の値の範囲(最小値と最大値)を示すものである。ここで、p1=1のときのX[n]の整数部は1ビット、p1=のときのX[n]の整数部は3ビット、p1=10のときのX[n]の整数部は4ビット、p1=15のときのX[n]の整数部は4ビット、p1=20のときのX[n]の整数部は5ビット、それぞれ必要であると決定される。また、第1変換ステップによれば、最大値に基づいて、x[n]の整数部は5ビット、小数部は3ビットとなり、計8ビットとなる。従って、p1=1の場合、整数部4ビットが無駄になっていた。
第2変換ステップにおいて、指示部60は、入力パラメタの値の範囲による場合分けを対象プログラムに追加し、入力パラメタ毎に対象変数のビットシフトを追加する。
第2変換ステップによる変換後の対象プログラム(Cプログラム)を次に示す。
switch(p1){
//p1により、X[n]をシフトして8ビット
case 1 :X[n]=(p1*D[n])<<4;
case 5 :X[n]=(p1*D[n])<<2;
case 10:X[n]=(p1*D[n])<<1;
case 15:X[n]=(p1*D[n])<<1;
case 20:X[n]=(p1*D[n]);

Y=ΣX[n];
switch(p1){
case 1 :Y=Y>>4;
case 5 :Y=Y>>2;
case 10:Y=Y>>1;
case 15:Y=Y>>1;
case 20:Y=Y;
上述した第2変換ステップによれば、入力パラメタ(モード)毎に一時的なビットシフトを行うことにより、少ないビット幅で、ダイナミックレンジを確保することができる。
なお、本実施の形態においては、第1変換ステップにより、所望精度が満足できない場合に、第2変換ステップを用いるとしたが、対象プログラムによって、第1変換ステップと第2変換ステップのどちらを用いるか選択しても良い。
本実施の形態によれば、浮動小数点演算プログラムを、ハードウェア/ファームウェアに実装するための固定小数点演算に自動的に変換することができる。更に、変換後の固定小数点演算は、所望精度を確保しながら、ビット幅の増大を防ぐことができる。
また、本実施の形態に係る演算プログラム変換装置は、情報処理装置に容易に適用することができ、情報処理装置の性能をより高めることができる。ここで、情報処理装置には、例えばPC(Personal Computer)、サーバ、ワークステーション等が含まれ得る。
更に、演算プログラム変換装置を構成するコンピュータにおいて上述した各ステップを実行させるプログラムを、演算プログラム変換プログラムとして提供することができる。上述したプログラムは、コンピュータにより読取り可能な記録媒体に記憶させることによって、演算プログラム変換装置を構成するコンピュータに実行させることが可能となる。ここで、上記コンピュータにより読取り可能な記録媒体としては、ROMやRAM等のコンピュータに内部実装される内部記憶装置、CD−ROMやフレキシブルディスク、DVDディスク、光磁気ディスク、ICカード等の可搬型記憶媒体や、コンピュータプログラムを保持するデータベース、或いは、他のコンピュータ並びにそのデータベースや、更に回線上の伝送媒体をも含むものである。
(付記1) 演算プログラムにおける変数の型の変換を行う演算プログラム変換装置であって、
浮動小数点演算を行う演算プログラムにおける浮動小数点型の変数を対象変数とし、前記演算プログラムの実行時に対象変数の値の変化が履歴として出力されるように、前記演算プログラムの変更を行って第1プログラムとし、該第1プログラムの実行を行い、該実行により得られる履歴に基づいて対象変数の値の範囲を検出するプロファイル部と、
前記プロファイル部により検出された対象変数の値の範囲に基づいて、対象変数を固定小数点型に変換するように、前記演算プログラムの変更を行って第2プログラムとし、該第2プログラムの実行を行い、該実行により得られる実行結果の精度が予め設定された所望精度を満たすか否かの判断を行う変換部と
を備える演算プログラム変換装置。
(付記2) 付記1に記載の演算プログラム変換装置において、
前記変換部は、前記第2プログラムの実行結果の精度が予め設定された所望精度を満たさないと判断した場合、所定の対象変数のビット幅を拡張するように前記第2プログラムの変更を行い、該第2プログラムの実行を行い、該実行により得られる実行結果の精度が予め設定された所望精度を満たすか否かの判断を行うことを特徴とする演算プログラム変換装置。
(付記3) 付記1または付記2に記載の演算プログラム変換装置において、
前記変換部は、前記第2プログラムの実行結果の精度が予め設定された所望精度を満たすと判断した場合、所定の対象変数のビット幅を削減するように前記第2プログラムの変更を行い、該第2プログラムの実行を行い、該実行により得られる実行結果の精度が予め設定された所望精度を満たすと判断した場合に、前記第2プログラムを出力することを特徴とする演算プログラム変換装置。
(付記4) 付記1乃至付記3のいずれかに記載の演算プログラム変換装置において、
前記変換部は、前記第2プログラムの実行結果の精度が予め設定された所望精度を満たさないと判断した場合、所定の対象変数のビット幅を拡張するように前記第2プログラムの変更を行い、該第2プログラムの実行を行い、該実行により得られる実行結果の精度が予め設定された所望精度を満たすまで、前記所定の対象変数のビット幅を拡張、前記第2プログラムの変更、該第2プログラムの実行を繰り返すことを特徴とする演算プログラム変換装置。
(付記5) 付記1乃至付記4のいずれかに記載の演算プログラム変換装置において、
前記変換部は、前記第2プログラムにおける演算単位の段毎に、所定の対象変数のビット幅を変化させるように前記第2プログラムの変更を行い、該第2プログラムの実行を行い、該実行により得られる実行結果の精度が予め設定された所望精度を満たすと判断し、かつ、前記ビット幅の変化による前記第2プログラム全体の演算の規模が削減されると判断した場合に前記第2プログラムを出力することを特徴とする演算プログラム変換装置。
(付記6) 付記1乃至付記5のいずれかに記載の演算プログラム変換装置において、
前記プロファイル部は、前記演算プログラムが用いるパラメタの値毎に前記第1プログラムの実行を行い、前記パラメタの値毎の履歴をマージして対象変数毎の値の範囲を検出することを特徴とする演算プログラム変換装置。
(付記7) 付記1乃至付記6のいずれかに記載の演算プログラム変換装置において、
前記変換部は、前記第1プログラムの実行により得られた実行結果と前記第2プログラムの実行により得られた実行結果とに基づいて前記精度を算出することを特徴とする演算プログラム変換装置。
(付記8) 付記1乃至付記7のいずれかに記載の演算プログラム変換装置において、
前記プロファイル部は、前記演算プログラムが用いるパラメタの値の範囲毎に前記第1プログラムの実行を行い、前記パラメタの値の範囲毎の対象変数の値の範囲を検出し、
前記変換部は、前記パラメタの値の範囲毎の対象変数の値の範囲に基づく対象変数のビットシフトを、前記演算プログラムに追加するように、前記演算プログラムの変更を行って前記第2プログラムとすることを特徴とする演算プログラム変換装置。
(付記9) 付記1乃至付記8のいずれかに記載の演算プログラム変換装置において、
前記プロファイル部は、前記演算プログラムのうちハードウェア化を行う部分の変数を対象変数として指定することを特徴とする演算プログラム変換装置。
(付記10) 演算プログラムにおける変数の型の変換をコンピュータに実行させる演算プログラム変換プログラムであって、
浮動小数点演算を行う演算プログラムにおける浮動小数点型の変数を対象変数とし、前記演算プログラムの実行時に対象変数の値の変化が履歴として出力されるように、前記演算プログラムの変更を行って第1プログラムとし、該第1プログラムの実行を行い、該実行により得られる履歴に基づいて対象変数の値の範囲を検出するプロファイルステップと、
前記プロファイルステップにより検出された対象変数の値の範囲に基づいて、対象変数を固定小数点型に変換するように、前記演算プログラムの変更を行って第2プログラムとし、該第2プログラムの実行を行い、該実行により得られる実行結果の精度が予め設定された所望精度を満たすか否かの判断を行う変換ステップと
をコンピュータに実行させる演算プログラム変換プログラム。
(付記11) 付記10に記載の演算プログラム変換プログラムにおいて、
前記変換ステップは、前記第2プログラムの実行結果の精度が予め設定された所望精度を満たさないと判断した場合、所定の対象変数のビット幅を拡張するように前記第2プログラムの変更を行い、該第2プログラムの実行を行い、該実行により得られる実行結果の精度が予め設定された所望精度を満たすか否かの判断を行うことを特徴とする演算プログラム変換プログラム。
(付記12) 付記10または付記11に記載の演算プログラム変換プログラムにおいて、
前記変換ステップは、前記第2プログラムの実行結果の精度が予め設定された所望精度を満たすと判断した場合、所定の対象変数のビット幅を削減するように前記第2プログラムの変更を行い、該第2プログラムの実行を行い、該実行により得られる実行結果の精度が予め設定された所望精度を満たすと判断した場合に、前記第2プログラムを出力することを特徴とする演算プログラム変換プログラム。
(付記13) 付記10乃至付記12のいずれかに記載の演算プログラム変換プログラムにおいて、
前記変換ステップは、前記第2プログラムの実行結果の精度が予め設定された所望精度を満たさないと判断した場合、所定の対象変数のビット幅を拡張するように前記第2プログラムの変更を行い、該第2プログラムの実行を行い、該実行により得られる実行結果の精度が予め設定された所望精度を満たすまで、前記所定の対象変数のビット幅を拡張、前記第2プログラムの変更、該第2プログラムの実行を繰り返すことを特徴とする演算プログラム変換プログラム。
(付記14) 付記10乃至付記13のいずれかに記載の演算プログラム変換プログラムにおいて、
前記変換ステップは、前記第2プログラムにおける演算単位の段毎に、前記ビット幅を変化させるように前記第2プログラムの変更を行い、該第2プログラムの実行を行い、該実行により得られる実行結果の精度が予め設定された所望精度を満たすと判断し、かつ、前記ビット幅の変化による前記第2プログラム全体の演算の規模が削減されると判断した場合に前記第2プログラムを出力することを特徴とする演算プログラム変換プログラム。
(付記15) 付記10乃至付記14のいずれかに記載の演算プログラム変換プログラムにおいて、
前記プロファイルステップは、前記演算プログラムが用いるパラメタの値毎に前記第1プログラムの実行を行い、前記パラメタの値毎の履歴をマージして対象変数毎の値の範囲を検出することを特徴とする演算プログラム変換プログラム。
(付記16) 付記10乃至付記15のいずれかに記載の演算プログラム変換プログラムにおいて、
前記変換ステップは、前記第1プログラムの実行により得られた実行結果と前記第2プログラムの実行により得られた実行結果とに基づいて前記精度を算出することを特徴とする演算プログラム変換プログラム。
(付記17) 付記10乃至付記16のいずれかに記載の演算プログラム変換プログラムにおいて、
前記プロファイルステップは、前記演算プログラムが用いるパラメタの値の範囲毎に前記第1プログラムの実行を行い、前記パラメタの値の範囲毎の対象変数の値の範囲を検出し、
前記変換ステップは、前記パラメタの値の範囲毎の対象変数の値の範囲に基づく対象変数のビットシフトを、前記演算プログラムに追加するように、前記演算プログラムの変更を行って前記第2プログラムとすることを特徴とする演算プログラム変換プログラム。
(付記18) 付記10乃至付記17のいずれかに記載の演算プログラム変換プログラムにおいて、
前記プロファイルステップは、前記演算プログラムのうちハードウェア化を行う部分の変数を対象変数として指定することを特徴とする演算プログラム変換プログラム。
(付記19) 演算プログラムにおける変数の型の変換を行う演算プログラム変換方法であって、
浮動小数点演算を行う演算プログラムにおける浮動小数点型の変数を対象変数とし、前記演算プログラムの実行時に対象変数の値の変化が履歴として出力されるように、前記演算プログラムの変更を行って第1プログラムとし、該第1プログラムの実行を行い、該実行により得られる履歴に基づいて対象変数の値の範囲を検出するプロファイルステップと、
前記プロファイルステップにより検出された対象変数の値の範囲に基づいて、対象変数を固定小数点型に変換するように、前記演算プログラムの変更を行って第2プログラムとし、該第2プログラムの実行を行い、該実行により得られる実行結果の精度が予め設定された所望精度を満たすか否かの判断を行う変換ステップと
を実行する演算プログラム変換方法。
(付記20) 付記19に記載の演算プログラム変換方法において、
前記変換ステップは、前記第2プログラムの実行結果の精度が予め設定された所望精度を満たさないと判断した場合、所定の対象変数のビット幅を拡張するように前記第2プログラムの変更を行い、該第2プログラムの実行を行い、該実行により得られる実行結果の精度が予め設定された所望精度を満たすか否かの判断を行うことを特徴とする演算プログラム変換方法。
本実施の形態に係る演算プログラム変換装置の構成の一例を示すブロック図である。 本実施の形態に係る演算プログラム変換装置の動作の一例を示すフローチャートである。 本実施の形態に係るプロファイルステップの動作の一例を示すフローチャートである。 本実施の形態に係る第1変換ステップの動作の一例を示すフローチャートである。 本実施の形態に係る精度評価ステップの動作の一例を示すフローチャートである。 本実施の形態に係る最適化ステップの動作の一例を示すフローチャートである。 本実施の形態に係るプロファイル情報の一例を示す表である。
符号の説明
20 変更部、30 コンパイラ、50 評価部、40 プロファイル部、60 指示部、70 通知部。

Claims (5)

  1. 演算プログラムにおける変数の型の変換を行う演算プログラム変換装置であって、
    浮動小数点演算を行う演算プログラムにおける浮動小数点型の変数を対象変数とし、前記演算プログラムの実行時に対象変数の値履歴として出力るように、前記演算プログラム変更て第1プログラムとし、前記第1プログラムの入力パラメタの複数の値のそれぞれを前記第1プログラムに設定して該第1プログラムの実行を行い、該実行により得られる前記入力パラメタの複数の値それぞれの履歴に基づいて対象変数の値の範囲を検出するプロファイル部と、
    前記プロファイル部により検出された対象変数の値の範囲からビット幅及び固定小数点位置を決定し、対象変数を前記ビット幅及び固定小数点位置を有する固定小数点型に変換し、前記入力パラメタの値により対象変数の値の範囲が異なる対象部分を前記演算プログラムから選択し、前記入力パラメタの複数の値それぞれの履歴に基づいて、前記入力パラメタの複数の値にそれぞれ応じた複数のシフト量を決定し、前記複数のシフト量のうち前記入力パラメタの値に応じたシフト量のビットシフトを行う第1処理を前記対象部分の開始点に追加し、前記ビットシフトを元に戻す第2処理を前記対象部分の終了点に追加することにより前記演算プログラム第2プログラムへ変更し、該第2プログラムの実行を行い、該実行により得られる実行結果の精度が予め設定された所望精度を満たすか否かの判断を行う変換部と
    を備える演算プログラム変換装置。
  2. 請求項1に記載の演算プログラム変換装置において、
    前記変換部は、前記第2プログラムの実行結果の精度が予め設定された所望精度を満たさないと判断した場合、所定の対象変数のビット幅を拡張するように前記第2プログラムの変更を行い、該第2プログラムの実行を行い、該実行により得られる実行結果の精度が予め設定された所望精度を満たすか否かの判断を行うことを特徴とする演算プログラム変換装置。
  3. 請求項1または請求項2に記載の演算プログラム変換装置において、
    前記変換部は、前記第2プログラムの実行結果の精度が予め設定された所望精度を満たすと判断した場合、所定の対象変数の小数部のビット幅を拡張し且つ前記ビット幅が拡張された変数の前段の変数のビット幅を削減することにより前記第2プログラムの変更を行い、該変更された第2プログラムの実行を行い、該実行により得られる実行結果の精度が予め設定された所望精度を満たすと判断した場合に、前記変更された第2プログラムを出力することを特徴とする演算プログラム変換装置。
  4. 演算プログラムにおける変数の型の変換をコンピュータに実行させる演算プログラム変換プログラムであって、
    浮動小数点演算を行う演算プログラムにおける浮動小数点型の変数を対象変数とし、前記演算プログラムの実行時に対象変数の値履歴として出力るように、前記演算プログラム変更て第1プログラムとし、前記第1プログラムの入力パラメタの複数の値のそれぞれを前記第1プログラムに設定して該第1プログラムの実行を行い、該実行により得られる前記入力パラメタの複数の値それぞれの履歴に基づいて対象変数の値の範囲を検出するプロファイルステップと、
    前記プロファイルステップにより検出された対象変数の値の範囲からビット幅及び固定小数点位置を決定し、対象変数を前記ビット幅及び固定小数点位置を有する固定小数点型に変換し、前記入力パラメタの値により対象変数の値の範囲が異なる対象部分を前記演算プログラムから選択し、前記入力パラメタの複数の値それぞれの履歴に基づいて、前記入力パラメタの複数の値にそれぞれ応じた複数のシフト量を決定し、前記複数のシフト量のうち前記入力パラメタの値に応じたシフト量のビットシフトを行う第1処理を前記対象部分の開始点に追加し、前記ビットシフトを元に戻す第2処理を前記対象部分の終了点に追加することにより前記演算プログラム第2プログラムへ変更し、該第2プログラムの実行を行い、該実行により得られる実行結果の精度が予め設定された所望精度を満たすか否かの判断を行う変換ステップと
    をコンピュータに実行させる演算プログラム変換プログラム。
  5. 演算プログラムにおける変数の型の変換をコンピュータが行う演算プログラム変換方法であって、
    浮動小数点演算を行う演算プログラムにおける浮動小数点型の変数を対象変数とし、前記演算プログラムの実行時に対象変数の値履歴として出力るように、前記演算プログラム変更て第1プログラムとし、前記第1プログラムの入力パラメタの複数の値のそれぞれを前記第1プログラムに設定して該第1プログラムの実行を行い、該実行により得られる前記入力パラメタの複数の値それぞれの履歴に基づいて対象変数の値の範囲を検出するプロファイルステップと、
    前記プロファイルステップにより検出された対象変数の値の範囲からビット幅及び固定小数点位置を決定し、対象変数を前記ビット幅及び固定小数点位置を有する固定小数点型に変換し、前記入力パラメタの値により対象変数の値の範囲が異なる対象部分を前記演算プログラムから選択し、前記入力パラメタの複数の値それぞれの履歴に基づいて、前記入力パラメタの複数の値にそれぞれ応じた複数のシフト量を決定し、前記複数のシフト量のうち前記入力パラメタの値に応じたシフト量のビットシフトを行う第1処理を前記対象部分の開始点に追加し、前記ビットシフトを元に戻す第2処理を前記対象部分の終了点に追加することにより前記演算プログラム第2プログラムへ変更し、該第2プログラムの実行を行い、該実行により得られる実行結果の精度が予め設定された所望精度を満たすか否かの判断を行う変換ステップと
    コンピュータが実行する演算プログラム変換方法。
JP2006207905A 2006-07-31 2006-07-31 演算プログラム変換装置、演算プログラム変換プログラム、演算プログラム変換方法 Expired - Fee Related JP4861087B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006207905A JP4861087B2 (ja) 2006-07-31 2006-07-31 演算プログラム変換装置、演算プログラム変換プログラム、演算プログラム変換方法
US11/589,932 US7933941B2 (en) 2006-07-31 2006-10-31 Arithmetic program conversion apparatus, arithmetic program conversion program and arithmetic program conversion method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006207905A JP4861087B2 (ja) 2006-07-31 2006-07-31 演算プログラム変換装置、演算プログラム変換プログラム、演算プログラム変換方法

Publications (2)

Publication Number Publication Date
JP2008033729A JP2008033729A (ja) 2008-02-14
JP4861087B2 true JP4861087B2 (ja) 2012-01-25

Family

ID=39052116

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006207905A Expired - Fee Related JP4861087B2 (ja) 2006-07-31 2006-07-31 演算プログラム変換装置、演算プログラム変換プログラム、演算プログラム変換方法

Country Status (2)

Country Link
US (1) US7933941B2 (ja)
JP (1) JP4861087B2 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8407681B2 (en) * 2008-05-23 2013-03-26 International Business Machines Corporation System and method for changing variables at runtime
JP2010170196A (ja) 2009-01-20 2010-08-05 Sony Corp 演算プログラム変換装置、演算プログラム変換方法およびプログラム
KR101705279B1 (ko) * 2010-06-01 2017-02-09 삼성전자 주식회사 단말 관리 서비스를 제공하는 서버 및 방법 그리고 상기 단말 관리 서비스를 제공받는 단말
US9436442B1 (en) * 2012-12-05 2016-09-06 The Mathworks, Inc. Automatic floating-point to fixed-point conversion
JP6137962B2 (ja) * 2013-06-24 2017-05-31 キヤノン株式会社 情報処理装置、情報処理方法及びプログラム
US10168990B1 (en) * 2014-01-17 2019-01-01 The Mathworks, Inc. Automatic replacement of a floating-point function to facilitate fixed-point program code generation
JP6547297B2 (ja) 2015-01-05 2019-07-24 富士通株式会社 磁界シミュレータプログラム、磁化ベクトル格納方法、及び磁界シミュレータ装置
US10140099B2 (en) 2016-06-01 2018-11-27 The Mathworks, Inc. Systems and methods for generating code from executable models with floating point data
US10936769B2 (en) 2016-06-01 2021-03-02 The Mathworks, Inc. Systems and methods for measuring error in terms of unit in last place
EP3493053B1 (en) * 2017-11-30 2023-07-19 Bull SAS Optimization of the execution time of a computer program by determining the implementation of a function according to range of input parameters and accuracy
EP3651075B1 (en) * 2018-02-13 2021-10-27 Shanghai Cambricon Information Technology Co., Ltd Computation device and method
CN112446460A (zh) * 2019-08-28 2021-03-05 上海寒武纪信息科技有限公司 用于处理数据的方法、装置以及相关产品
US20220019915A1 (en) * 2020-07-20 2022-01-20 The Mathworks, Inc. Systems and methods for design parameter selection
KR102348795B1 (ko) * 2020-11-02 2022-01-07 주식회사 바움 부동 소수점 방식에서 고정 소수점 방식으로의 변환 수행시 비트 폭 최적화 방법
WO2022215173A1 (ja) * 2021-04-06 2022-10-13 三菱電機株式会社 固定小数点演算ビット幅の検証システム及び決定システム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07325710A (ja) 1994-05-31 1995-12-12 Nec Corp 固定小数点演算のアセンブラを模擬した高級言語プログラムの作成方法および演算精度検討方法
US6256776B1 (en) * 1998-04-02 2001-07-03 John L. Melanson Digital signal processing code development with fixed point and floating point libraries
US6460177B1 (en) * 1999-09-22 2002-10-01 Lucent Technologies Inc. Method for target-specific development of fixed-point algorithms employing C++ class definitions
US7110927B1 (en) * 2000-02-23 2006-09-19 Altera Corporation Finite impulse response (FIR) filter compiler
JP4086459B2 (ja) 2000-11-13 2008-05-14 Necエレクトロニクス株式会社 固定小数点データ生成方法及び固定小数点データ生成回路

Also Published As

Publication number Publication date
US20080040409A1 (en) 2008-02-14
JP2008033729A (ja) 2008-02-14
US7933941B2 (en) 2011-04-26

Similar Documents

Publication Publication Date Title
JP4861087B2 (ja) 演算プログラム変換装置、演算プログラム変換プログラム、演算プログラム変換方法
US8904367B1 (en) Auto pipeline insertion
US7536661B1 (en) Incremental placement during physical synthesis
Osborne et al. Automatic accuracy-guaranteed bit-width optimization for fixed and floating-point systems
US8302041B1 (en) Implementation flow for electronic circuit designs using choice networks
JP5014920B2 (ja) 回路設計方法、ならびにその方法により製造される集積回路
JP2012203566A (ja) 状態推定装置、電子機器及びプログラム
JP7451568B2 (ja) コンパイラの精度選定によるシェーダプログラムの加速化
US8024685B2 (en) Delay analysis support apparatus, delay analysis support method and computer product
JP5682080B2 (ja) カスタム集積回路のためのアーキテクチャによりガイドされる最適システム精度定義アルゴリズム
JP5370256B2 (ja) 解析支援プログラム、解析支援装置および解析支援方法
JP4370274B2 (ja) 検証支援装置、検証支援方法、および検証支援プログラム
JP2020166674A (ja) 情報処理装置、情報処理方法、情報処理プログラム
CN115454398A (zh) 一种c语言程序验证器的浮点计算精度分析方法及系统
JP5277781B2 (ja) 消費電力見積プログラム、該プログラムを記録したコンピュータに読み取り可能な記録媒体、消費電力見積装置、および消費電力見積方法
CN114077890A (zh) 信息处理装置、机器学习方法和计算机可读存储介质
JP6137962B2 (ja) 情報処理装置、情報処理方法及びプログラム
US20070277142A1 (en) LSI design supporting apparatus and LSI design supporting program used for designing and manufacturing LSI
US6876940B2 (en) Measuring constraint parameters at different combinations of circuit parameters
JP4912076B2 (ja) 文字列予測装置及び文字列予測プログラム
Mallik et al. Smart bit-width allocation for low power optimization in a systemc based ASIC design environment
US11886977B2 (en) Computing apparatus, computing method, storage medium, and table generating apparatus
JP5510274B2 (ja) 集積回路の消費電力解析装置及びその方法
TWI819627B (zh) 用於深度學習網路的優化方法、運算裝置及電腦可讀取媒體
US9390387B2 (en) Visualization technique of feasible regions

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090409

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110329

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110530

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20111101

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111104

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141111

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees