JP6137962B2 - Information processing apparatus, information processing method, and program - Google Patents

Information processing apparatus, information processing method, and program Download PDF

Info

Publication number
JP6137962B2
JP6137962B2 JP2013131885A JP2013131885A JP6137962B2 JP 6137962 B2 JP6137962 B2 JP 6137962B2 JP 2013131885 A JP2013131885 A JP 2013131885A JP 2013131885 A JP2013131885 A JP 2013131885A JP 6137962 B2 JP6137962 B2 JP 6137962B2
Authority
JP
Japan
Prior art keywords
program
type
attribute
variable
attribute value
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.)
Active
Application number
JP2013131885A
Other languages
Japanese (ja)
Other versions
JP2015007820A (en
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2013131885A priority Critical patent/JP6137962B2/en
Publication of JP2015007820A publication Critical patent/JP2015007820A/en
Application granted granted Critical
Publication of JP6137962B2 publication Critical patent/JP6137962B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Description

本発明は、情報処理装置、情報処理方法及びプログラムに関する。   The present invention relates to an information processing apparatus, an information processing method, and a program.

画像処理等の信号処理プログラムのアルゴリズム開発は、浮動小数点演算を使って行われることが多い。ユーザは、ハードウェア設計段階において、開発されたアルゴリズムをハードウェアに実装する検討を行う。この際に、ユーザは、従来、C言語のプログラム等を用いた浮動小数点演算で記述されたリファレンスプログラムから、ビット幅固定となる整数・固定小数点数演算で記述されたプログラムへ人手で変換を行っている。
ユーザは、浮動小数点演算のプログラムを整数・固定小数点演算のプログラムに人手で変換する場合、ハードウェア記述言語の一種であるSystemCという、C++言語のコンパイラでコンパイルすることが可能なクラスライブラリを用いる場合がある。SystemCのクラスライブラリは、sc_intという整数・固定小数点変換を支援する型を提供している。sc_int型は、プログラムコード上の型にC++言語が提供する機能であるテンプレートを用いて、ビット幅を固定的に定義する。このため、ユーザは、ビット幅を変更して実行結果を得たい場合、プログラムコードを変更し、再度コンパイルしてオブジェクトプログラムを生成するといった手間が発生する。
浮動小数点を用いたプログラムの整数・固定小数点を用いたプログラムへの変換を支援する方法として、以下のような手法が開示されている。
Algorithm development for signal processing programs such as image processing is often performed using floating point arithmetic. In the hardware design stage, the user considers mounting the developed algorithm on the hardware. At this time, the user manually converts from a reference program previously described by floating point arithmetic using a C language program or the like to a program described by integer / fixed point arithmetic with a fixed bit width. ing.
When a user manually converts a floating-point arithmetic program to an integer / fixed-point arithmetic program, a user uses a class library called SystemC, which is a kind of hardware description language, that can be compiled with a C ++ language compiler. There is. The SystemC class library provides a type that supports integer / fixed-point conversion called sc_int. In the sc_int type, a bit width is fixedly defined using a template which is a function provided by the C ++ language as a type on a program code. For this reason, when the user wants to change the bit width and obtain the execution result, the user needs to change the program code and compile again to generate the object program.
As a method for supporting conversion of a program using floating point to a program using integer / fixed point, the following method is disclosed.

特許文献1では、以下に示す技術が開示されている。まず、特許文献1に開示されている技術は、整数・固定小数点を用いたプログラムへの変換のためのビット幅等の属性値を探索する前処理として、固定小数点のビット幅等の属性値に設定する初期値を決定する。特許文献1に開示されている技術は、浮動小数点プログラムの変数に代入される値の履歴を取得し、代入される値の絶対値の最大値、最小値から初期値を決定する。特許文献1に開示されている技術は、決定した初期値を用いて、整数・固定小数点変数を用いたプログラムを作成し、作成したプログラムをコンパイルし、コンパイルしたプログラムを実行し、実行結果が所望の精度を満たしているか評価する。特許文献1に開示されている技術は、評価の結果が所望の精度を満たしていない場合、再度ビット幅等の属性値を変更するために、プログラムを修正し、修正したプログラムをコンパイルし、再びコンパイルしたプログラムを実行して実行結果の評価を行う。このように、特許文献1に開示されている技術は、プログラムの修正、コンパイル、実行結果の評価という試行を繰り返すことで、整数・固定小数点の属性値を決定する。
特許文献2では、浮動小数点を用いたプログラムで利用されている数要素を抽出し、プログラム中の代入式や、演算式を解析し、それぞれの数要素の関係情報に基づいて、数要素のデータ型の属性値を決定する技術が開示されている。
Patent Document 1 discloses the following technique. First, the technique disclosed in Patent Document 1 uses an attribute value such as a fixed-point bit width as pre-processing for searching an attribute value such as a bit width for conversion to a program using an integer / fixed point. Determine the initial value to be set. The technique disclosed in Patent Document 1 acquires a history of values to be assigned to variables of a floating-point program, and determines an initial value from the maximum value and the minimum value of the absolute value of the assigned value. The technique disclosed in Patent Document 1 creates a program using integer / fixed-point variables using the determined initial value, compiles the created program, executes the compiled program, and an execution result is desired. Evaluate whether the accuracy is satisfied. When the evaluation result does not satisfy the desired accuracy, the technique disclosed in Patent Document 1 corrects the program again to change the attribute value such as the bit width, compiles the corrected program, and again Run the compiled program and evaluate the execution results. As described above, the technique disclosed in Patent Literature 1 determines integer / fixed-point attribute values by repeating trials of program correction, compilation, and execution result evaluation.
In Patent Document 2, a numerical element used in a program using floating point is extracted, an assignment expression or an arithmetic expression in the program is analyzed, and the numerical element data is obtained based on the relation information of each numerical element. A technique for determining a type attribute value is disclosed.

特開2008−33729号公報JP 2008-33729 A 特開2001−101012号公報JP 2001-101012 A

プログラム中の浮動小数点型変数を固定小数点型変数に手動で変換する場合、ユーザはビット幅を変更するたびに、プログラムを書き換え、再コンパイルする必要がある。
特許文献1に開示されている技術は、自動で変数のビット幅を決定するが、変数毎に精度評価を行い、ビット幅を決定していく。しかし、実行結果の評価後に所望の精度を満たしていない場合、特許文献1に開示されている技術は、ビット幅を変更するために、再度プログラムを変更し、コンパイルしてから実行する必要がある。
特許文献2に開示される技術は、プログラム中の部分的な代入式や、演算式を解析し、各変数の関係情報に基づいてデータ型の属性値を決定する。特許文献2に開示される技術においても、実行結果の評価後に所望の精度を満たしていない場合、ビット幅を変更するためには、再度プログラムを変更し、コンパイルしてから実行する必要がある。
本発明は、整数・固定小数点化における変数のビット幅等の型の属性検討の際、検討時間を削減する技術を提供することを目的とする。
When a floating-point variable in a program is manually converted to a fixed-point variable, the user needs to rewrite and recompile the program every time the bit width is changed.
The technique disclosed in Patent Document 1 automatically determines the bit width of a variable, but evaluates accuracy for each variable to determine the bit width. However, when the desired accuracy is not satisfied after the evaluation of the execution result, the technique disclosed in Patent Document 1 needs to be changed after the program is changed and compiled in order to change the bit width. .
The technique disclosed in Patent Document 2 analyzes a partial substitution expression or arithmetic expression in a program, and determines a data type attribute value based on relation information of each variable. Even in the technique disclosed in Patent Document 2, if the desired accuracy is not satisfied after the evaluation of the execution result, in order to change the bit width, it is necessary to change the program again, compile and execute it.
An object of the present invention is to provide a technique for reducing the examination time when examining attributes of a type such as the bit width of a variable in integer / fixed-point conversion.

そこで、本発明は、対象変数の属性がパラメータ化され、コンパイルされたプログラムを読み込む読み込み手段と、前記読み込み手段により読み込まれたプログラムに基づく処理の実行時に、属性に関するパラメータ情報に基づいて、前記プログラムの対象変数の属性に属性値を設定する設定手段と、前記設定手段により属性値が設定されたプログラムに基づいて処理を実行する実行手段と、を有する。   Therefore, the present invention provides a reading unit that reads the compiled program in which the attribute of the target variable is parameterized, and the program based on the parameter information related to the attribute when executing processing based on the program read by the reading unit. Setting means for setting an attribute value for the attribute of the target variable, and execution means for executing processing based on a program in which the attribute value is set by the setting means.

本発明によれば、整数・固定小数点化における変数のビット幅等の型の属性検討の際、検討時間を削減する技術を提供することができる。   ADVANTAGE OF THE INVENTION According to this invention, the technique which reduces examination time can be provided in the case of examination of type attributes, such as the bit width of the variable in integer and fixed point conversion.

型探索装置のハードウェア構成の一例を示す図である。It is a figure which shows an example of the hardware constitutions of a type | mold search apparatus. 実施形態1の型探索装置のソフトウェア構成の一例を示す図である。FIG. 3 is a diagram illustrating an example of a software configuration of the type search apparatus according to the first embodiment. パラメータファイルの一例を示す図である。It is a figure which shows an example of a parameter file. 型シミュレーション部の構成の一例を示す図である。It is a figure which shows an example of a structure of a type | mold simulation part. 実施形態1の型探索処理の一例を示すフローチャートである。5 is a flowchart illustrating an example of a type search process according to the first embodiment. プログラムの一例を示す図である。It is a figure which shows an example of a program. プログラム作成処理の一例を示すフローチャートである。It is a flowchart which shows an example of a program creation process. ヘッダーファイルの一例を示す図である。It is a figure which shows an example of a header file. 型シミュレーション処理の一例を示すフローチャートである。It is a flowchart which shows an example of a type | mold simulation process. 演算処理の一例を示すフローチャートである。It is a flowchart which shows an example of a calculation process. 実施形態2の型探索装置のソフトウェア構成の一例を示す図である。It is a figure which shows an example of the software configuration of the type | mold search apparatus of Embodiment 2. FIG. パラメータの候補値を示す表形式ファイルの一例を示す図である。It is a figure which shows an example of the table format file which shows the candidate value of a parameter. 実施形態2の型探索処理の一例を示すフローチャートである。10 is a flowchart illustrating an example of a type search process according to the second embodiment. 実施形態3の型探索装置のソフトウェア構成の一例を示す図である。FIG. 10 is a diagram illustrating an example of a software configuration of a type search apparatus according to a third embodiment. 実施形態3の型探索処理の一例を示すフローチャートである。10 is a flowchart illustrating an example of a type search process according to a third embodiment.

以下、本発明を実施するための最良の形態について図面を用いて説明する。
<実施形態1>
以下、プログラム中の変数の型を探索する変数の型探索方法について説明する。本実施形態では、プログラム中の浮動小数点変数を固定小数点変数に変換する際の固定小数点型の属性の探索方法について説明する。なお、以降の説明では、変数の型を変換する前の浮動小数点変数のプログラムを第1のプログラムといい、変換後の固定小数点変数のプログラムを第2のプログラムという。また、浮動小数点変数型を第1の型、固定小数点型を第2の型とする。
本実施形態による変数の型探索方法は、例えば、画像処理等の信号処理プログラムのアルゴリズム開発で開発された浮動小数点演算を用いて書かれたプログラムを、ハードウェアに実装するために、いくつかの変数の型を固定小数点型に変換する場合に適用される。
The best mode for carrying out the present invention will be described below with reference to the drawings.
<Embodiment 1>
A variable type search method for searching for variable types in the program will be described below. In the present embodiment, a method for searching a fixed-point type attribute when converting a floating-point variable in a program to a fixed-point variable will be described. In the following description, the floating point variable program before the variable type conversion is referred to as a first program, and the fixed point variable program after the conversion is referred to as a second program. The floating point variable type is the first type, and the fixed point type is the second type.
The variable type search method according to the present embodiment includes, for example, several programs for implementing a program written using floating-point arithmetic developed in algorithm development of a signal processing program such as image processing in hardware. Applied to convert variable type to fixed point type.

図1は、プログラム中の変数の型を探索する型探索装置100のハードウェア構成の一例を示す図である。なお、型探索装置100は、情報処理装置の一例である。
型探索装置100は、CPU101、RAM102、ROM103、HDD104、入力装置105、表示装置106、ネットワークI/F107及びシステムバス108を有する。CPU101、RAM102、ROM103、HDD104、入力装置105、表示装置106及びネットワークI/F107は、システムバス108を介して互いに通信可能に接続されている。
CPU101は、型探索装置100全体を制御する。CPU101がROM103等に格納されているプログラムを実行することにより、後述する型探索装置100の機能(ソフトウェア構成)及びフローチャートに係る処理が実現される。
RAM102は、CPU101がプログラムを実行するためのワークエリアや、一時記憶領域として機能するメモリである。
ROM103は、CPU101が実行するプログラム等を格納するメモリである。
HDD104は、閾値や、パラメータに関する設定値等を含む各種のデータや、各種のプログラム等を格納するハードディスクドライブである。
入力装置105は、ユーザが型探索装置100に対して入力操作をするためのキーボードや、マウス等である。
表示装置106は、型探索装置100が各種の画面を表示するためのディスプレイ等である。
ネットワークI/F107は、外部ネットワークを介して他の装置と通信を行うためのインターフェースである。
FIG. 1 is a diagram illustrating an example of a hardware configuration of a type search apparatus 100 that searches for types of variables in a program. The type searching apparatus 100 is an example of an information processing apparatus.
The type search apparatus 100 includes a CPU 101, a RAM 102, a ROM 103, an HDD 104, an input device 105, a display device 106, a network I / F 107, and a system bus 108. The CPU 101, the RAM 102, the ROM 103, the HDD 104, the input device 105, the display device 106, and the network I / F 107 are connected via a system bus 108 so as to communicate with each other.
The CPU 101 controls the entire type search apparatus 100. When the CPU 101 executes a program stored in the ROM 103 or the like, the function (software configuration) of the type search apparatus 100 described later and processing related to the flowchart are realized.
The RAM 102 is a memory that functions as a work area for the CPU 101 to execute a program and a temporary storage area.
The ROM 103 is a memory that stores programs executed by the CPU 101.
The HDD 104 is a hard disk drive that stores various data including threshold values, setting values related to parameters, various programs, and the like.
The input device 105 is a keyboard, a mouse, or the like for the user to perform an input operation on the pattern search device 100.
The display device 106 is a display or the like for the type searching device 100 to display various screens.
The network I / F 107 is an interface for communicating with other devices via an external network.

図2は、実施形態1における型探索装置100のソフトウェア構成の一例を示す図である。
本実施形態では、型探索装置100がプログラム中の浮動小数点変数を固定小数点変数に変換するが、これに限らず、例えば、プログラム中の浮動小数点変数を仮数部、指数部のビット幅が可変な浮動小数点変数に変換する場合に適用してもよい。
プログラム作成部701は、入力された第1のプログラムから、変数の型表現に必要な型の属性が、実行時に設定可能なようにパラメータ化されたプログラムを作成する。プログラム作成部701が変数の型の属性を実行時に設定可能なパラメータにすることで、型探索装置100は、プログラムの変更や、属性値を変更した際にコンパイルをすることなく、変数の型を変換した場合と同等な挙動をシミュレーションすることが可能となる。本実施形態において、ユーザは、第1のプログラムと、固定小数点変数に変換したい1つ以上の変数名とを入力する。そして、プログラム作成部701は、入力された変数名に従って、第1のプログラム中の変数の型を固定小数点シミュレーション型に変更した固定小数点シミュレーションプログラムを作成する。固定小数点シミュレーション型とは、固定小数点の属性であるビット幅、小数点位置等を、実行中に設定可能なようにパラメータ化した型であり、本実施形態ではC++言語のクラスとして実装される。固定小数点シミュレーション型の詳細については、図6等を用いて後述する。また、本実施形態の型探索装置100では、プログラム作成部701が入力された変数名を参照して自動で変更するものとしているが、ユーザが手作業で所望の変数の型を固定小数点シミュレーション型に変更するものとしてもよい。第1のプログラム中の固定小数点変数に変換したい変数の型を固定小数点シミュレーション型に変更した固定小数点シミュレーションプログラムは、実行時に設定される属性値に基づき変数の型の挙動をシミュレーションすることができるプログラムである。
FIG. 2 is a diagram illustrating an example of a software configuration of the type search apparatus 100 according to the first embodiment.
In this embodiment, the type search apparatus 100 converts a floating-point variable in a program into a fixed-point variable. However, the present invention is not limited to this. For example, the bit width of the mantissa part and exponent part of the floating-point variable in the program is variable. It may be applied when converting to a floating-point variable.
The program creation unit 701 creates a parameterized program from the input first program so that the type attributes necessary for the variable type expression can be set at the time of execution. By making the variable type attribute a parameter that can be set at the time of execution by the program creation unit 701, the type search apparatus 100 can change the variable type without compiling when the program is changed or the attribute value is changed. It is possible to simulate a behavior equivalent to the case of conversion. In the present embodiment, the user inputs the first program and one or more variable names that are to be converted into fixed-point variables. Then, the program creation unit 701 creates a fixed-point simulation program in which the variable type in the first program is changed to the fixed-point simulation type according to the input variable name. The fixed-point simulation type is a type in which the bit width, the decimal point position, and the like, which are fixed-point attributes, are parameterized so that they can be set during execution. In the present embodiment, the fixed-point simulation type is implemented as a C ++ language class. Details of the fixed-point simulation type will be described later with reference to FIG. In the type search apparatus 100 according to the present embodiment, the program creation unit 701 automatically changes the input by referring to the input variable name, but the user manually sets the type of the desired variable to the fixed-point simulation type. It is good also as what changes to. A fixed-point simulation program in which the type of a variable to be converted into a fixed-point variable in the first program is changed to a fixed-point simulation type is a program that can simulate the behavior of the variable type based on attribute values set at the time of execution It is.

コンパイル部702は、プログラム作成部701が作成した固定小数点シミュレーションプログラムをコンパイルし、オブジェクトプログラムを生成する。
属性値準備部703は、固定小数点シミュレーションプログラム内の固定小数点シミュレーション型の変数について、プログラム実行時に変数の型の属性に設定する属性値を予め準備する。より具体的にいうと、属性値準備部703は、ユーザにより指定された固定小数点化したい対象変数(変数情報)と、その対象変数の属性に設定する属性値(属性値情報)とを対応付けたパラメータファイルを作成してメモリに格納する。なお、パラメータファイルは、パラメータ情報の一例である。パラメータファイルはどのような形式でもよいが、例えば図3に示すような表形式のパラメータファイルを用いることができる。ここで、図3は、パラメータファイルの一例を示す図である。ユーザは、入力装置105を介してシステム上のGUI等で、設定する対象変数と、属性値との対応関係を入力すればよい。なお、属性値準備部703がパラメータファイルを作成する処理は、パラメータ情報作成処理の一例である。
The compiling unit 702 compiles the fixed-point simulation program created by the program creating unit 701 and generates an object program.
The attribute value preparation unit 703 prepares in advance an attribute value to be set as a variable type attribute at the time of program execution for a fixed-point simulation type variable in the fixed-point simulation program. More specifically, the attribute value preparation unit 703 associates a target variable (variable information) designated by the user and desired to be converted to a fixed point with an attribute value (attribute value information) set in the attribute of the target variable. Create a parameter file and store it in memory. The parameter file is an example of parameter information. The parameter file may be in any format, but for example, a tabular parameter file as shown in FIG. 3 can be used. Here, FIG. 3 is a diagram illustrating an example of the parameter file. The user may input the correspondence between the target variable to be set and the attribute value via the input device 105 using a GUI on the system or the like. The process in which the attribute value preparation unit 703 creates a parameter file is an example of a parameter information creation process.

型シミュレーション部704は、コンパイル部702が生成したオブジェクトプログラムを実行する。ここで、型シミュレーション部704の構成を、図4を用いて説明する。なお、図4は、型シミュレーション部704の構成の一例を示す図である。
型シミュレーション部704は、プログラム読み込み部1201、属性値保持部1202、属性値設定部1203及び演算部1204を有する。
プログラム読み込み部1201は、コンパイル部702が生成したオブジェクトプログラムの実行が開始されると、オブジェクトプログラムをメモリに読み込む。
属性値保持部1202は、属性値準備部703により入力されたパラメータファイルに記載された変数の型の属性と、属性値との対応関係をメモリ上に展開し、プログラム実行中メモリ上に保持する。なお、本実施形態では属性値保持部1202を用いるものとしているが、型探索装置100は、パラメータファイルをメモリ上に保持せずに、属性値設定時に直接ファイルにアクセスするものとしてもよい。
属性値設定部1203は、型の属性値をパラメータ化された属性に設定する。本実施形態において、属性値設定部1203は、プログラム実行中、固定小数点シミュレーション型の変数の初期化時に、属性値保持部1202によりメモリ上に保持されたパラメータファイルを参照し、属性値を変数の型の属性に設定する。また、属性値設定部1203は、初期化時に属性値を設定せずに、演算処理や、代入処理を行うたびに属性値を設定するものとしてもよい。このように、属性値設定部1203は、プログラム外から属性値を設定することが可能となる。これにより、型探索装置100は、プログラムの変更及びコンパイルを行うことなく、属性値を変更することができる。
演算部1204は、属性値設定部1203により設定された属性値に応じた型の挙動をシミュレートする演算を行う。例えば、演算部1204は、ビット幅、小数点位置が異なる2つの値の演算を行う場合、ビットシフトを行い、ビット位置を合わせてから演算を行う。演算処理の詳細については、図8等を用いて後述する。
以上が型シミュレーション部704の説明である。
The type simulation unit 704 executes the object program generated by the compiling unit 702. Here, the configuration of the mold simulation unit 704 will be described with reference to FIG. FIG. 4 is a diagram illustrating an example of the configuration of the mold simulation unit 704.
The type simulation unit 704 includes a program reading unit 1201, an attribute value holding unit 1202, an attribute value setting unit 1203, and a calculation unit 1204.
When the execution of the object program generated by the compiling unit 702 is started, the program reading unit 1201 reads the object program into the memory.
The attribute value holding unit 1202 expands the correspondence between the attribute of the variable type described in the parameter file input by the attribute value preparation unit 703 and the attribute value on the memory, and holds it on the memory during program execution. . Although the attribute value holding unit 1202 is used in the present embodiment, the type search apparatus 100 may directly access the file when setting the attribute value without holding the parameter file on the memory.
The attribute value setting unit 1203 sets the attribute value of the type to a parameterized attribute. In the present embodiment, the attribute value setting unit 1203 refers to the parameter file held in the memory by the attribute value holding unit 1202 during initialization of a fixed-point simulation type variable during program execution, and sets the attribute value to the variable value. Set to type attribute. Further, the attribute value setting unit 1203 may set the attribute value every time the calculation process or the substitution process is performed without setting the attribute value at the time of initialization. As described above, the attribute value setting unit 1203 can set an attribute value from outside the program. Thereby, the type | mold search apparatus 100 can change an attribute value, without performing a change and compilation of a program.
The calculation unit 1204 performs a calculation that simulates the behavior of the type according to the attribute value set by the attribute value setting unit 1203. For example, when calculating two values having different bit widths and decimal point positions, the calculation unit 1204 performs bit shift and performs the calculation after matching the bit positions. Details of the arithmetic processing will be described later with reference to FIG.
The above is the description of the mold simulation unit 704.

説明を図2に戻す。
実行結果出力部705は、固定小数点シミュレーションプログラムの実行結果(シミュレーション結果情報)を出力する。
実行結果評価部706は、第1のプログラムの実行結果(実行結果情報)と、実行結果出力部705が出力した固定小数点シミュレーションプログラムの実行結果とから精度(SN比)の計算を行う。例えば、実行結果評価部706は、誤差を用いて評価する場合、第1のプログラムの実行結果Aと、固定小数点シミュレーション型プログラムの実行結果Bとを用いて((B−A)^2)/(A^2)を算出する。そして、実行結果評価部706は、算出結果が予め定めた閾値以下であれば、必要な精度を満たしているものとする。実行結果が所望の精度を満たしていた場合、実行結果評価部706は、対象変数の属性に設定された属性値を設定値として決定する。そして、プログラム生成部707が後述する処理を実行する。一方、実行結果が所望の精度を満たしていない場合、属性値準備部703は、ユーザからの異なる属性値の入力に基づいて、再度、パラメータファイルを作成する。
プログラム生成部707は、実行結果評価部706が決定した対象変数及び属性と、属性値との関係を用いて、対象変数を固定小数点変数に変換した第2のプログラムを生成する。本実施形態において、プログラム生成部707は、実行結果評価部706から入力された対象変数と、対応する属性値とを用いてプログラムを生成する。プログラム生成部707は、生成するプログラムをどのような言語で記述してもよいが、例えば、ハードウェアや、ファームウェア向けのプログラムを生成する。
以上が、本実施形態における型探索装置100のソフトウェア構成の説明である。
Returning to FIG.
The execution result output unit 705 outputs the execution result (simulation result information) of the fixed-point simulation program.
The execution result evaluation unit 706 calculates accuracy (S / N ratio) from the execution result (execution result information) of the first program and the execution result of the fixed-point simulation program output from the execution result output unit 705. For example, when evaluating using the error, the execution result evaluation unit 706 uses the execution result A of the first program and the execution result B of the fixed-point simulation type program ((BA) ^ 2) / (A ^ 2) is calculated. The execution result evaluation unit 706 satisfies the required accuracy if the calculation result is equal to or less than a predetermined threshold. When the execution result satisfies the desired accuracy, the execution result evaluation unit 706 determines the attribute value set in the attribute of the target variable as the set value. Then, the program generation unit 707 executes processing that will be described later. On the other hand, when the execution result does not satisfy the desired accuracy, the attribute value preparation unit 703 creates a parameter file again based on input of different attribute values from the user.
The program generation unit 707 generates a second program in which the target variable is converted into a fixed-point variable using the relationship between the target variable and attribute determined by the execution result evaluation unit 706 and the attribute value. In the present embodiment, the program generation unit 707 generates a program using the target variable input from the execution result evaluation unit 706 and the corresponding attribute value. The program generation unit 707 may describe the generated program in any language. For example, the program generation unit 707 generates a program for hardware or firmware.
The above is the description of the software configuration of the type search apparatus 100 in the present embodiment.

次に図5を用いて、本実施形態におけるプログラム中の変数の型を探索する変数の型探索処理の流れについて説明する。なお、図5は、型探索処理の一例を示すフローチャートである。
S100において、プログラム作成部701は、入力された第1のプログラムと、固定小数点変数に変換したい1つ以上の変数名とから、入力された変数の型を固定小数点シミュレーション型に変更したプログラムを作成する。本実施形態では、プログラム作成部701がS100におけるプログラム作成処理を自動で行うものとするが、ユーザが手動で行うものとしてもよい。また、本実施形態においては、プログラム作成部701が浮動小数点型を用いた第1のプログラムを変換するものとしているが、ユーザがプログラムを作成する際に初めから固定小数点シミュレーション型を用いたプログラムを作成するものとしてもよい。プログラム作成処理の詳細については、図7等を用いて後述する。
S101において、コンパイル部702は、S100で作成された固定小数点シミュレーションプログラムをコンパイルし、オブジェクトプログラムを生成する。
S102において、属性値準備部703は、S100でパラメータ化された変数の型の属性に設定する属性値に関するパラメータ情報を予めメモリに格納して準備する。本実施形態では、ユーザが、入力装置105を介して、固定小数点化したい対象変数と、その対象変数の型の属性に設定する属性値とをシステム上のGUI等で入力する。そして、属性値準備部703は、入力装置105を介して受け付けたユーザの入力に基づいて、パラメータファイルを作成し、メモリに格納する。
Next, the flow of variable type search processing for searching for variable types in a program according to the present embodiment will be described with reference to FIG. FIG. 5 is a flowchart illustrating an example of the type search process.
In S100, the program creation unit 701 creates a program in which the type of the input variable is changed to the fixed-point simulation type from the input first program and one or more variable names to be converted into fixed-point variables. To do. In the present embodiment, the program creation unit 701 automatically performs the program creation processing in S100, but may be performed manually by the user. In this embodiment, the program creation unit 701 converts the first program using the floating-point type. However, when the user creates the program, the program using the fixed-point simulation type from the beginning. It may be created. Details of the program creation processing will be described later with reference to FIG.
In S101, the compiling unit 702 compiles the fixed-point simulation program created in S100 and generates an object program.
In step S102, the attribute value preparation unit 703 prepares by storing in advance in the memory parameter information relating to the attribute value to be set in the variable type attribute parameterized in step S100. In the present embodiment, the user inputs the target variable to be converted to a fixed-point number and the attribute value set to the attribute of the type of the target variable via the input device 105 using a GUI or the like on the system. The attribute value preparation unit 703 creates a parameter file based on the user input received via the input device 105, and stores the parameter file in the memory.

S103において、型シミュレーション部704は、S101で生成された固定小数点シミュレーションプログラムのオブジェクトプログラムを実行する。より具体的にいうと、型シミュレーション部704は、オブジェクトプログラムにおける対象変数の属性に基づいて、S102で作成されたパラメータファイルを参照する。そして、型シミュレーション部704は、オブジェクトプログラムにおける各変数の初期化時に前記パラメータファイルの属性値を用いて設定する。また、型シミュレーション処理S103は、設定した属性値に応じた型の挙動をシミュレートする演算を行う。S103における型シミュレーション処理の詳細については、図9等を用いて後述する。
S104において、実行結果出力部705は、S103で実行されたプログラムの実行結果を出力する。出力形式はどのような形式でもよく、例えば、実行結果出力部705は、ファイル等に出力結果を書き込むようにしてもよい。
S105において、実行結果評価部706は、S104で出力された結果に関する評価を行う。より具体的にいうと、実行結果評価部706は、第1のプログラムの実行結果と、S104で出力された実行結果とに基づく精度が、ユーザにより外部から入力されて予めメモリに格納されている精度情報が示す精度を満たすか否かを評価して判定する。なお、実行結果評価部706による精度の算出方法は、図2を用いて上述したため説明を省略する。実行結果評価部706は、精度を満たすと判定した場合、処理をS106に進め、精度を満たさないと判定した場合、処理をS102に戻す。
S106において、プログラム生成部707は、固定小数点型プログラムを生成する。より具体的にいうと、プログラム生成部707は、図6の(a)に示した第1のプログラムを、S105で精度を満たすと判定されて決定された属性値を利用して、固定小数点化の対象である変数及びその演算式等の変換を行った第2のプログラムを生成する。なお、図6は、プログラムの一例を示す図である。S106のプログラム生成処理は、ユーザが、S105で精度を満たすと判定された対象変数の属性値に基づき、手動で行うようにしてもよい。
以上が、本実施形態におけるプログラム中の変数の型を探索する変数の型探索処理の流れである。
In S103, the type simulation unit 704 executes the object program of the fixed-point simulation program generated in S101. More specifically, the type simulation unit 704 refers to the parameter file created in S102 based on the attribute of the target variable in the object program. Then, the type simulation unit 704 sets using the attribute value of the parameter file when initializing each variable in the object program. Further, the type simulation process S103 performs an operation for simulating the behavior of the type according to the set attribute value. Details of the mold simulation processing in S103 will be described later with reference to FIG.
In S104, the execution result output unit 705 outputs the execution result of the program executed in S103. The output format may be any format. For example, the execution result output unit 705 may write the output result in a file or the like.
In step S105, the execution result evaluation unit 706 performs an evaluation on the result output in step S104. More specifically, in the execution result evaluation unit 706, the accuracy based on the execution result of the first program and the execution result output in S104 is input from the outside by the user and stored in the memory in advance. It is determined by evaluating whether or not the accuracy indicated by the accuracy information is satisfied. The accuracy calculation method by the execution result evaluation unit 706 has been described above with reference to FIG. If the execution result evaluating unit 706 determines that the accuracy is satisfied, the process proceeds to S106, and if it is determined that the accuracy is not satisfied, the process returns to S102.
In S106, the program generation unit 707 generates a fixed point type program. More specifically, the program generation unit 707 converts the first program shown in FIG. 6A to a fixed point using the attribute value determined and determined to satisfy the accuracy in S105. To generate a second program in which the variables and the arithmetic expressions thereof are converted. FIG. 6 is a diagram illustrating an example of a program. The program generation process in S106 may be performed manually by the user based on the attribute value of the target variable determined to satisfy the accuracy in S105.
The above is the flow of the variable type search process for searching for the variable type in the program in the present embodiment.

次に、S100におけるプログラム作成処理の詳細について説明する。
ここで、図6の(a)は、上述したように第1のプログラムの一例を示す図である。一方、図6の(b)は、プログラム作成処理で作成される固定小数点シミュレーションプログラムの一例を示す図である。
第1のプログラム20は、ユーザが開発したプログラムであり、固定小数点シミュレーションプログラム21や、第2のプログラムに変換する元となるオリジナルのプログラムである。
記述201、記述202及び記述203は、浮動小数点宣言である。また、記述204は、記述201、記述202及び記述203で宣言された変数を用いた演算処理の記述の一例である。
Next, details of the program creation processing in S100 will be described.
Here, FIG. 6A is a diagram showing an example of the first program as described above. On the other hand, FIG. 6B is a diagram showing an example of a fixed-point simulation program created by the program creation process.
The first program 20 is a program developed by the user, and is a fixed-point simulation program 21 or an original program that is converted into a second program.
Description 201, description 202, and description 203 are floating point declarations. The description 204 is an example of the description of the arithmetic processing using the variables declared in the description 201, the description 202, and the description 203.

次に、図6の(b)及び図7を用いて、プログラム作成部701が第1のプログラムを固定小数点シミュレーションプログラムに変換するS100の処理について説明する。プログラム作成部701は、図7に示す処理を行うことで図6の(a)の第1のプログラムを図6の(b)の固定小数点シミュレーションプログラムに変換する。なお、図7は、S100におけるプログラム作成処理の一例を示すフローチャートである。
まず、S400において、プログラム作成部701は、ヘッダのインクルード文を挿入する。より具体的にいうと、プログラム作成部701は、記述211に示されるように固定小数点シミュレーションクラスを含むFixedPointSim.hをインクルードしている。また、プログラム作成部701は、記述212に示されるようにパラメータファイルをメモリ上に展開、保持するクラスを含むヘッダーファイルであるParamSetting.hをインクルードしている。ParamSetting.hは、パラメータファイルに記載された、変数の型の属性と、属性値との対応関係をメモリ上に展開するメソッドを定義している。また、ParamSetting.hは、展開されたメモリ上のアドレスへのポインタをメンバーとして有するクラスであるCParamSettingクラスを定義している。本実施形態のように属性値準備部703が前記対応関係をメモリ上に展開すると、型シミュレーション部704は、固定小数点シミュレーションプログラム中で固定小数点シミュレーション型の変数宣言を実行するたびにファイルにアクセスする必要がなくなる。そのため、処理速度が向上する。なお、属性値準備部703がパラメータファイルをメモリ上に展開せずに、型シミュレーション部704が変数宣言のたびにパラメータファイルを参照するように実装することも可能である。CparamSettingクラスでは、引数で変数名をキーとして与えると、その変数の型が持つ1つ以上の属性に対応する属性値のリストを取得するメソッドが定義されている。
Next, the processing of S100 in which the program creation unit 701 converts the first program into a fixed-point simulation program will be described using FIG. 6B and FIG. The program creation unit 701 converts the first program in FIG. 6A to the fixed-point simulation program in FIG. 6B by performing the processing shown in FIG. FIG. 7 is a flowchart illustrating an example of a program creation process in S100.
First, in S400, the program creation unit 701 inserts an header include statement. More specifically, the program creation unit 701 includes FixedPointSim.com including a fixed-point simulation class as shown in the description 211. h is included. In addition, the program creation unit 701, as shown in the description 212, reads ParamSetting. h is included. ParamSetting. h defines a method described in the parameter file for expanding the correspondence between the attribute of the variable type and the attribute value on the memory. ParamSetting. h defines a CParamSetting class which is a class having a pointer to an address on the expanded memory as a member. When the attribute value preparation unit 703 expands the correspondence on the memory as in this embodiment, the type simulation unit 704 accesses the file every time a fixed-point simulation type variable declaration is executed in the fixed-point simulation program. There is no need. Therefore, the processing speed is improved. The attribute value preparation unit 703 may be mounted so that the type simulation unit 704 refers to the parameter file each time a variable is declared without expanding the parameter file on the memory. The CparamSetting class defines a method for obtaining a list of attribute values corresponding to one or more attributes of a variable type when a variable name is given as an argument as a key.

次に、S401において、プログラム作成部701は、パラメータファイル設定文を挿入する。本実施形態において、プログラム作成部701は、記述213のように、パラメータファイルをセットするマクロ定義を使用して設定文を挿入する。記述213に示されるパラメータファイルをセットするマクロ定義は、FixedPointSim.hで定義されている。パラメータファイルをセットするマクロ定義については、図8等を用いて後述する。本実施形態において、プログラム作成部701は、パラメータファイルの設定にマクロ定義を利用するものとしているが、この方法に限らず、例えば、実行時のコマンドライン引数により指定するものとしてもよい。
S402において、プログラム作成部701は、固定小数点化したい対象変数宣言の変換を行う。本実施形態において、プログラム作成部701は、図6の(a)の記述201、記述202及び記述203を図6の(b)の記述214、記述215及び記述216に変換する。対象変数である変数x、変数y及び変数zは、固定小数点化したい変数、即ち、固定小数点シミュレーション型を用いて型の属性が決定される変数である。本実施形態では、FixedPointSim.hにおいて定義されているマクロ定義を用いて宣言しているが、プログラム作成部701は、マクロ定義に記載された内容を直接プログラムに入力してもよい。また、対象変数は、予めユーザが決定するものとしてもよいし、プログラム作成部701がプログラム中の全てのfloat型を変換するものとしてもよい。その他、プログラム作成部701が、指定されたファイル内のfloat型のみを変換するものとしてもよい。
以上が、プログラム作成部701が第1のプログラムを固定小数点シミュレーションプログラムに変換する手順である。
Next, in S401, the program creation unit 701 inserts a parameter file setting statement. In the present embodiment, the program creation unit 701 inserts a setting statement using a macro definition that sets a parameter file as described in the description 213. The macro definition for setting the parameter file shown in the description 213 is “FixedPointSim. It is defined by h. The macro definition for setting the parameter file will be described later with reference to FIG. In the present embodiment, the program creation unit 701 uses a macro definition for setting a parameter file. However, the present invention is not limited to this method. For example, the program creation unit 701 may be designated by a command line argument at the time of execution.
In S402, the program creation unit 701 converts the target variable declaration to be converted to a fixed point. In the present embodiment, the program creation unit 701 converts the description 201, description 202, and description 203 in FIG. 6A to the description 214, description 215, and description 216 in FIG. 6B. Variable x, variable y, and variable z, which are target variables, are variables whose type attributes are determined using a fixed-point simulation type variable, that is, a fixed-point simulation type. In the present embodiment, FixedPointSim. Although the macro definition defined in h is used for declaration, the program creation unit 701 may input the contents described in the macro definition directly into the program. The target variable may be determined in advance by the user, or the program creation unit 701 may convert all the float types in the program. In addition, the program creation unit 701 may convert only the float type in the specified file.
The above is the procedure for the program creation unit 701 to convert the first program into a fixed-point simulation program.

記述217は、固定小数点シミュレーション型同士の加算演算及び代入演算の式の例である。演算処理については、図10等を用いて後述する。なお、図6の(a)の第1のプログラム内の記述204は、固定小数点シミュレーションプログラムに変換された場合も、記述217のように式を変更せずに使用することができる。本実施形態ではこのように、プログラム作成部701が最小限の負荷で第1のプログラムから固定小数点シミュレーションプログラムへの変換を行うことを可能としている。
ここで、図8を用いて固定小数点シミュレーション型を定義しているヘッダーファイル30について説明する。なお、図8は、固定小数点シミュレーション型を定義しているヘッダーファイルの一例を示す図である。
記述301は、固定小数点シミュレーションクラスの定義である。固定小数点シミュレーションクラスは、C++言語の浮動小数点型や、整数型等の数値型と同様に使用可能な固定小数点シミュレーション型を提供するクラスである。
記述311は、クラスにおけるデータ保持部であり、データメンバーを保持する。以下、データ保持部が保持するデータメンバーについて説明する。
記述312は、固定小数点シミュレーション型の値を32ビットの整数として保持する。即ち、本クラスではビット幅が32ビット以内の固定小数点型をシミュレーションすることが可能である。
A description 217 is an example of an expression of addition operation and substitution operation between fixed-point simulation types. The arithmetic processing will be described later with reference to FIG. Note that the description 204 in the first program in FIG. 6A can be used without changing the equation as in the description 217 even when it is converted into a fixed-point simulation program. In this embodiment, as described above, the program creation unit 701 can convert the first program to the fixed-point simulation program with a minimum load.
Here, the header file 30 defining the fixed-point simulation type will be described with reference to FIG. FIG. 8 is a diagram illustrating an example of a header file defining a fixed-point simulation type.
A description 301 is a definition of a fixed-point simulation class. The fixed-point simulation class is a class that provides a fixed-point simulation type that can be used in the same way as a C ++ language floating-point type and a numeric type such as an integer type.
A description 311 is a data holding unit in the class and holds data members. Hereinafter, data members held by the data holding unit will be described.
The description 312 holds a fixed-point simulation type value as a 32-bit integer. That is, in this class, it is possible to simulate a fixed point type having a bit width of 32 bits or less.

記述313は、小数点位置を保持する。小数点位置はどのように管理されてもよいが、本実施形態では最下位ビットの右側の位置を0位置とし、上位ビット側にシフトする場合は負、下位ビット側にシフトする場合は正とする。また、小数点位置はビット幅に限らず設定することができる。例えば、符号無し3ビット固定小数点を表現する場合に、記述313の小数点位置が2の場合、表現できる値は二進数で11100から00000までであり、十進数では0から28までの値を4飛ばしで表現可能である。また、本実施形態において、記述312及び記述313は、整数と、小数点位置とで固定小数点シミュレーション型の数値を保持するものとしているが、データ保持方法はこれに限らず、例えば、浮動小数点型のデータで固定小数点相当の離散値を保持してもよい。
記述314は、ビット幅を保持する。
記述315は、演算結果の値丸め処理のモードを保持する。例えば、四捨五入モードを0、切り上げモードを1、切り捨てモードを2というように予め決めておき、保持している数値によりモードを切り替える。
記述316は、オーバーフロー又はアンダーフロー時のモードを保持する。例えば、オーバーフロー又はアンダーフローを容認するモードを0、飽和処理を行うモードを1等といったように予め決めておき、保持している数値によりモード切り替えを行う。
記述317は、パラメータファイル内の情報が展開されたメモリへの参照ポインタである。本実施形態において、属性値準備部703は、CParamSettingクラスでパラメータファイルに記載された型の属性と、属性値との対応関係をメモリ内に展開し、保持しておく。パラメータファイルを参照する方法はこれに限らず、例えば、変数がインスタンス化されるたびにファイルアクセスする方法や、演算を行うたびにファイルアクセスする方法でもよい。
The description 313 holds the decimal point position. The decimal point position may be managed in any way, but in the present embodiment, the position on the right side of the least significant bit is set to 0 position, negative when shifting to the upper bit side, and positive when shifting to the lower bit side . Further, the decimal point position can be set without being limited to the bit width. For example, when expressing an unsigned 3-bit fixed point and the decimal point position of the description 313 is 2, the value that can be expressed is 11100 to 00000 in binary number, and the value from 0 to 28 in decimal number is skipped by 4. It can be expressed as In the present embodiment, the description 312 and the description 313 hold fixed-point simulation type numerical values with integers and decimal point positions. However, the data holding method is not limited to this, and for example, a floating-point type A discrete value corresponding to a fixed point may be held in the data.
Description 314 holds the bit width.
The description 315 holds a mode of value rounding processing of the operation result. For example, the rounding mode is set to 0, the rounding mode is set to 1, the rounding mode is set to 2, and the mode is switched according to the held numerical value.
The description 316 holds the mode at the time of overflow or underflow. For example, a mode for allowing overflow or underflow is set to 0, a mode for performing saturation processing is set to 1 or the like in advance, and the mode is switched according to the held numerical value.
A description 317 is a reference pointer to a memory in which information in the parameter file is expanded. In the present embodiment, the attribute value preparation unit 703 develops and holds the correspondence between the attribute of the type described in the parameter file and the attribute value in the CParamSetting class in the memory. The method of referring to the parameter file is not limited to this. For example, a method of accessing a file every time a variable is instantiated or a method of accessing a file every time an operation is performed may be used.

記述321は、クラスのコンストラクタである。本実施形態において、属性値設定部1203は、インスタンス化される際に型の属性に設定する属性値を、パラメータファイル内の変数の型と、属性との対応関係が展開されているメモリから取得する。
記述331は、演算子の定義部である。
記述332及び記述333は、演算子の処理の定義の例である。
記述332は、加算演算の処理の定義の例であり、固定小数点シミュレーションクラス同士の加算を行うメソッドである。また、記述332で定義されている加算演算では、記述321のコンストラクタで設定する属性値に従った演算を行う。例えば、3ビット幅、小数点位置2の被加算値と、3ビット幅、小数点位置−1の加算値とを加算する場合について説明する。この場合、演算部1204は、加算値のインスタンスに保持されている記述312の整数の値を左に3ビットのビットシフトを行い、被加算値の小数点位置に合わせてから加算を行う。
記述333は、代入演算の処理の定義である。記述333で定義されている代入演算では、記述321のコンストラクタで設定された属性値に応じた代入処理を行う。本実施形態において、演算部1204は、記述315及び記述316に保持されている各種モードに合わせた数値に変換し、記述313及び記述314に保持されている小数点位置、ビット幅を参照し、変換した値から記述312の整数値を格納する。
Description 321 is a class constructor. In the present embodiment, the attribute value setting unit 1203 obtains an attribute value to be set for a type attribute when instantiated from a memory in which the correspondence between the variable type and the attribute in the parameter file is expanded. To do.
The description 331 is an operator definition part.
Description 332 and description 333 are examples of operator processing definitions.
The description 332 is an example of the definition of the addition operation process, and is a method for performing addition between fixed-point simulation classes. In addition, the addition operation defined in the description 332 performs an operation according to the attribute value set by the constructor of the description 321. For example, a case where a value to be added having a 3-bit width and decimal point position 2 and an addition value having a 3-bit width and decimal point position −1 are added will be described. In this case, the arithmetic unit 1204 shifts the integer value of the description 312 held in the instance of the addition value to the left by 3 bits, and performs addition after matching the decimal point position of the value to be added.
A description 333 is a definition of the processing of the assignment operation. In the assignment operation defined in the description 333, an assignment process according to the attribute value set by the constructor of the description 321 is performed. In the present embodiment, the arithmetic unit 1204 converts the numerical values according to the various modes held in the description 315 and the description 316, refers to the decimal point position and the bit width held in the description 313 and the description 314, and converts them. The integer value of the description 312 is stored from the obtained value.

記述341は、代入演算時処理の定義部である。
記述342は、丸め処理の定義である。演算部1204は、記述315に保持されている丸め処理モードを参照して、モードに即した丸め処理を行う。
記述343は、オーバーフロー又はアンダーフロー処理の定義である。演算部1204は、記述316に保持されているオーバーフロー又はアンダーフロー処理のモードを参照して、モードに即したオーバーフロー又はアンダーフロー処理を行う。代入演算時処理部の詳細については、図10等を用いて後述する。
本実施形態では、記述331の演算子の定義部や、記述341の代入演算時処理部のように、記述321のコンストラクタで設定される属性値に従った演算を定義しておくことにより、演算部1204が型の挙動をシミュレートする演算を行えるようにしている。
記述302は、マクロ定義であり、ユーザが使用する固定小数点シミュレーションプログラム21でユーザがクラスとして意識せずに記述301の固定小数点シミュレーションクラスを固定小数点シミュレーション型として使用できるように隠蔽化したものである。
記述351は、コンストラクタを隠蔽化するためのマクロ定義であり、ユーザは、固定小数点シミュレーションプログラム21中の変数宣言のたびにファイル名を指定せずにクラスを利用することができる。
記述352は、パラメータファイル展開クラスと、ファイルのメモリ展開メソッドとを隠蔽化するためマクロ定義であり、ユーザはファイル名の指定のみを行うだけで利用することができる。
以上がヘッダーファイル30の説明である。
A description 341 is a definition part of the processing at the time of substitution calculation.
A description 342 is a definition of the rounding process. The computing unit 1204 refers to the rounding processing mode held in the description 315 and performs rounding processing according to the mode.
A description 343 is a definition of an overflow or underflow process. The arithmetic unit 1204 refers to the overflow or underflow processing mode held in the description 316 and performs overflow or underflow processing according to the mode. Details of the processing unit for substitution calculation will be described later with reference to FIG.
In the present embodiment, by defining an operation in accordance with the attribute value set by the constructor of the description 321 like the definition part of the operator of the description 331 and the assignment operation processing unit of the description 341, the calculation is performed. The unit 1204 can perform an operation for simulating the behavior of the mold.
The description 302 is a macro definition and is hidden so that the fixed-point simulation class of the description 301 can be used as a fixed-point simulation type without the user being aware of it as a class in the fixed-point simulation program 21 used by the user. .
The description 351 is a macro definition for hiding the constructor, and the user can use the class without specifying the file name every time the variable declaration in the fixed-point simulation program 21 is performed.
The description 352 is a macro definition for concealing the parameter file expansion class and the memory expansion method of the file, and the user can use it only by specifying the file name.
The above is the description of the header file 30.

次に、S103における型シミュレーション処理の詳細を図6の(b)及び図9を用いて説明する。なお、図9は、型シミュレーション処理の一例を示すフローチャートである。
S501において、プログラム読み込み部1201は、S101でコンパイルされた固定小数点シミュレーションプログラムのオブジェクトプログラムの実行が開始されると、プログラムに記述された処理を行うためにメモリにオブジェクトプログラムを読み出す。
S502において、属性値保持部1202は、上述したパラメータを保持する。本実施形態において、属性値保持部1202は、図6の(b)で示した固定小数点シミュレーションプログラム内の記述213が定義するマクロ定義を実行する。マクロ定義はCFixedPointSimクラス内で定義されており、属性値保持部1202は、指定されたパラメータファイルである「Param.csv」を読み込み、型の属性と、属性値との対応関係をメモリ上に保持しておく。
S503において、属性値設定部1203は、プログラム中の変数宣言が実行された際に、固定小数点シミュレーションクラスを用いた変数のインスタンス化する際のコンストラクタ内で処理を行う。ここで、図6の(b)における変数xに着目した場合について説明する。まず、記述214の宣言部では、固定小数点シミュレーション型の変数宣言の命令が実行される。記述214の宣言部は、CFixedPointSimクラスで定義された記述351のマクロ定義であり、記述351のマクロ定義に記載された処理が実行される。記述214の宣言部が実行されると、記述321のコンストラクタが実行され、CFixedPointSimクラスのインスタンス化が行われる。インスタンス化時、属性値設定部1203は、変数の型の属性に対応する属性値をインスタンス内のデータメンバーとして設定する。本実施形態において、属性値設定部1203は、S502でメモリ上に保持された変数、型の属性及び属性値の対応関係を参照して属性値を取得する。
Next, details of the mold simulation process in S103 will be described with reference to FIG. 6B and FIG. FIG. 9 is a flowchart showing an example of the mold simulation process.
In S501, when the execution of the object program of the fixed-point simulation program compiled in S101 is started, the program reading unit 1201 reads the object program into the memory in order to perform processing described in the program.
In step S502, the attribute value holding unit 1202 holds the parameters described above. In the present embodiment, the attribute value holding unit 1202 executes the macro definition defined by the description 213 in the fixed-point simulation program shown in FIG. The macro definition is defined in the CFixedPointSim class, and the attribute value holding unit 1202 reads “Param.csv”, which is a specified parameter file, and holds the correspondence between the type attribute and the attribute value in the memory. Keep it.
In step S503, the attribute value setting unit 1203 performs processing in a constructor for instantiating a variable using a fixed-point simulation class when a variable declaration in the program is executed. Here, a case where attention is paid to the variable x in FIG. 6B will be described. First, in the declaration part of the description 214, a fixed-point simulation type variable declaration instruction is executed. The declaration part of the description 214 is a macro definition of the description 351 defined by the CFixedPointSim class, and the process described in the macro definition of the description 351 is executed. When the declaration part of the description 214 is executed, the constructor of the description 321 is executed, and the CFixedPointSim class is instantiated. At the time of instantiation, the attribute value setting unit 1203 sets an attribute value corresponding to the variable type attribute as a data member in the instance. In the present embodiment, the attribute value setting unit 1203 refers to the correspondence between the variables, type attributes, and attribute values held in the memory in S502, and acquires attribute values.

S504において、演算部1204は、S503で設定された属性値に従って、型の挙動をシミュレートする演算を行う。本実施形態において、演算部1204は、固定小数点シミュレーション型の演算を行う。演算部1204は、図6の(b)における記述217の演算を実行すると、固定小数点シミュレーションクラス内で記述332として定義されている加算演算の処理の定義メソッドを実行する。また、演算部1204は、記述217の演算において変数zへの代入演算も実行する。代入演算処理が行われた場合は、代入演算の処理における記述333で定義されている定義メソッドが実行される。本実施形態では、加算演算と、代入演算とについてのみ説明したが、その他の演算についても同様である。
以上がS103における型シミュレーション処理の流れの詳細である。このように、型シミュレーション部704は、プログラム外から属性値を設定可能とすることで、プログラムの変更及びコンパイルを行うことなく属性値を変更することができる。また、属性値に従った型の演算を行うように演算を定義することにより、型シミュレーション部704は、型の挙動をシミュレートすることができる。
In step S504, the calculation unit 1204 performs a calculation that simulates the behavior of the type in accordance with the attribute value set in step S503. In the present embodiment, the calculation unit 1204 performs a fixed-point simulation type calculation. When the calculation unit 1204 executes the calculation of the description 217 in FIG. 6B, the calculation unit 1204 executes a definition method for the addition calculation process defined as the description 332 in the fixed-point simulation class. The operation unit 1204 also executes an assignment operation to the variable z in the operation of the description 217. When the assignment operation process is performed, the definition method defined in the description 333 in the assignment operation process is executed. In the present embodiment, only the addition operation and the assignment operation have been described, but the same applies to other operations.
The above is the details of the flow of the mold simulation process in S103. Thus, the type simulation unit 704 can change the attribute value without changing and compiling the program by enabling the attribute value to be set from outside the program. Further, by defining the operation so as to perform the type operation according to the attribute value, the type simulation unit 704 can simulate the behavior of the type.

次に、S504で上述した型シミュレーション処理の演算処理における代入演算の処理の流れの詳細について、図10を用いて説明する。なお、図10は、演算処理の一例を示すフローチャートである。
S600において、演算部1204は、変数に代入する値について、変数の型に設定されたビット幅で表現可能な最下位ビットより下の桁のビットの値の丸め処理を行う。本実施形態において、演算部1204は、CFixedPointSimクラスの記述311のデータ保持部が保持している記述315の値丸め処理モードのモードに従って処理を行う。本実施形態では、3ビット幅、小数点位置1の型を持つ変数に値「11011.1」を代入する場合について説明する。例えば、「11011.1」の切り上げモードの場合、2の0乗桁目は1なので切り上げを行うと「11100.0」となる。
S601において、演算部1204は、変数に代入する値が最大値、最小値を超えていた場合に、オーバーフロー又はアンダーフロー処理を行う。演算部1204は、CFixedPointSimクラスの記述311のデータ保持部が保持しているオーバーフロー又はアンダーフローモードに従い処理を行う。本実施形態では、オーバーフロー又はアンダーフローモード容認するモードが0、飽和処理を行うモードが1の場合について説明する。モードが0の場合、演算部1204は、オーバーフロー又はアンダーフローを擬似的に起こす。例えば、3ビット幅、小数点位置1の型の持つ変数に「11100.0」を代入する場合、最大値を超えているため、オーバーフロー又はアンダーフロー処理をすると、最上位ビットは2の4乗桁目であるため、2の5乗桁目以上の桁は0にリセットされる。したがって、演算部1204は、代入する値を「1100」と処理する。また、オーバーフローモード又はアンダーフローモードが0の飽和処理モードの場合、「11100.0」が最大値を超えているため、演算部1204は、飽和処理を行う。したがって、演算部1204は、代入する値を最大値の「1110」と処理する。
S602において、演算部1204は、CFixedPointSimクラスの記述311のデータ保持部にデータを格納する。例えば、演算部1204は、3ビット幅、小数点位置1の型の持つ変数に「1100」を格納する場合、まず、右に1ビットシフトし、そこから上位3ビットの「110」を記述312に格納する。以上が代入演算の処理の流れである。
Next, details of the flow of the substitution calculation process in the calculation process of the type simulation process described above in S504 will be described with reference to FIG. FIG. 10 is a flowchart illustrating an example of the calculation process.
In step S600, the arithmetic unit 1204 performs rounding processing on the value to be assigned to the variable, the value of the lower-order bit that can be expressed by the bit width set in the variable type. In this embodiment, the arithmetic unit 1204 performs processing according to the mode of the value rounding processing mode of the description 315 held by the data holding unit of the description 311 of the CFixedPointSim class. In the present embodiment, a case will be described in which the value “11011.1” is assigned to a variable having a type of 3 bits wide and decimal point position 1. For example, in the round-up mode of “11011.1”, since the 0th digit of 2 is 1, if rounded up, “11100.0” is obtained.
In S <b> 601, the arithmetic unit 1204 performs an overflow or underflow process when the value to be assigned to the variable exceeds the maximum value and the minimum value. The calculation unit 1204 performs processing according to the overflow or underflow mode held by the data holding unit of the description 311 of the CFixedPointSim class. In the present embodiment, a case where the overflow or underflow mode acceptance mode is 0 and the saturation processing mode is 1 will be described. When the mode is 0, the arithmetic unit 1204 causes an overflow or underflow in a pseudo manner. For example, if “11100.0” is assigned to a variable with a 3-bit width and decimal point position 1 type, the maximum value is exceeded, so if overflow or underflow processing is performed, the most significant bit is the fourth power of 2 Since it is the second digit, the digit of the fifth power digit or higher is reset to zero. Therefore, the calculation unit 1204 processes the value to be substituted as “1100”. In addition, in the saturation processing mode in which the overflow mode or the underflow mode is 0, “11100.0” exceeds the maximum value, so the arithmetic unit 1204 performs the saturation processing. Accordingly, the calculation unit 1204 processes the value to be substituted as the maximum value “1110”.
In step S <b> 602, the calculation unit 1204 stores data in the data holding unit of the description 311 of the CFixedPointSim class. For example, when storing “1100” in a variable having a 3 bit width and decimal point position 1 type, the arithmetic unit 1204 first shifts 1 bit to the right, and then adds the upper 3 bits “110” to the description 312. Store. The above is the flow of the substitution operation process.

本実施形態では、型探索装置100が、変数の型表現に必要な型の属性について、実行時に設定可能なようにパラメータ化する処理について説明をした。これにより、型探索装置100は、プログラム外からの属性値設定が可能となり、設定された属性値に応じて、型の挙動をシミュレートする演算を行うことができる。また、型探索装置100は、属性値を設定する際に、プログラムの書き換えや、コンパイルが不要となり、プログラム外から設定する値のみ変更すればよい。したがって、型探索装置100は、属性を変更するたびにプログラムの書き換えを行うといった従来の手法よりも効率的に型の属性検討を行うことが可能となる。   In the present embodiment, the type search device 100 has described the process of parameterizing the type attributes necessary for the variable type expression so that they can be set at the time of execution. Thereby, the type search apparatus 100 can set an attribute value from outside the program, and can perform an operation for simulating the behavior of the type in accordance with the set attribute value. Further, when setting the attribute value, the type search apparatus 100 does not need to rewrite or compile the program, and only changes the value set from outside the program. Therefore, the type search apparatus 100 can perform the type attribute examination more efficiently than the conventional method of rewriting the program every time the attribute is changed.

<実施形態2>
実施形態1では、型探索装置100が固定小数点型の変数のビット幅等の型の属性検討を行う際に、プログラムの書き換えや、書き換え後のコンパイルが不要となり、パラメータファイルの変更のみを行うことで属性検討を行う方法を示した。しかし、実施形態1では、ユーザがパラメータファイルの変更を行うことで、属性の探索を行うことを想定している。ここで、変数が複数ある場合、各変数の属性にトレードオフが生じる場合がある。その場合、ユーザが最適な属性値を探索することは困難である。そこで、本実施形態では、設計最適化支援ツールを用いて型探索装置100が最適な属性値を探索する方法について説明する。なお、実施形態1同様、変数の型を変換する前の浮動小数点変数のプログラムを第1のプログラムと呼び、変換後の固定小数点変数のプログラムを第2のプログラムと呼ぶ。また、ここでいう最適な属性値とは、ユーザが所望する属性値のことであり、以降の説明においても同様とする。また、本実施形態における型探索装置100のCPU101がROM103に格納されているプログラムを実行することにより、設計最適化支援ソフトの機能が実現される。
まず、図11を用いて実施形態2における型探索装置100について説明する。なお、図11は、実施形態2における型探索装置100のソフトウェア構成の一例を示す図である。
ここで、プログラム作成部701、コンパイル部702、型シミュレーション部704及びプログラム生成部707の機能については、実施形態1で説明した通りであるため、説明を省略する。
本実施形態では、型探索装置100が設計最適化支援ツールにより、最適な属性値を探索する。属性値準備部903及び実行結果出力部905は、型シミュレーション部704と共に、設計最適化支援ツールにより機能する。設計最適化支援ツールとしては、独自のものを作成してもよいし、既存の設計最適化支援ソフトを用いてもよい。例えば、既存の設計最適化支援ソフトとしては、modeFRONTIER(登録商標)や、Optimus(登録商標)といったものが挙げられる。
<Embodiment 2>
In the first embodiment, when the type search apparatus 100 examines a type attribute such as a bit width of a variable of a fixed-point type, it is not necessary to rewrite a program or compile after rewriting, and only change a parameter file. The method of attribute examination was shown in. However, in the first embodiment, it is assumed that the user searches for an attribute by changing the parameter file. Here, when there are a plurality of variables, there may be a trade-off between the attributes of each variable. In that case, it is difficult for the user to search for an optimum attribute value. Therefore, in the present embodiment, a method in which the type search apparatus 100 searches for an optimal attribute value using a design optimization support tool will be described. As in the first embodiment, the floating point variable program before the variable type conversion is called a first program, and the fixed point variable program after the conversion is called a second program. The optimum attribute value here is an attribute value desired by the user, and the same applies in the following description. In addition, the function of the design optimization support software is realized by the CPU 101 of the type search apparatus 100 according to the present embodiment executing a program stored in the ROM 103.
First, the type | mold search apparatus 100 in Embodiment 2 is demonstrated using FIG. FIG. 11 is a diagram illustrating an example of a software configuration of the type search apparatus 100 according to the second embodiment.
Here, since the functions of the program creation unit 701, the compilation unit 702, the type simulation unit 704, and the program generation unit 707 are the same as those described in the first embodiment, description thereof is omitted.
In the present embodiment, the type search apparatus 100 searches for an optimum attribute value using a design optimization support tool. The attribute value preparation unit 903 and the execution result output unit 905 function together with the type simulation unit 704 by a design optimization support tool. As a design optimization support tool, an original tool may be created, or existing design optimization support software may be used. For example, examples of existing design optimization support software include modeFrontier (registered trademark) and Optimus (registered trademark).

属性値準備部903は、固定小数点シミュレーションプログラム内の固定小数点シミュレーション型の変数について、プログラム実行時に変数の型の属性に設定する属性値を予め準備する。本実施形態において、ユーザは、固定小数点化したい対象変数と、その対象変数の属性が取りうる候補値の範囲とを、設計最適化支援ツールを用いて入力する。そして、設計最適化支援ツールは、外部より入力された属性が取りうる候補値の範囲から、候補となる値を自動で選択し、全ての変数の属性と、属性値との対応関係が記載されたパラメータセットを出力する。ここで、設計最適化支援ツールが出力するパラメータセットの数は、ユーザが予め設定してもよいし、設計最適化支援ツールが対象変数の属性の候補値について全ての組み合わせのパラメータセットを出力するようにしてもよい。また、本実施形態において、ユーザは、変数、変数の型の属性及びその候補値の範囲を図12に示すような表形式ファイルとして入力するものとするが、入力形式に制限はなく、例えば設計最適化支援ツール上のGUI等を用いて設定してもよい。なお、図12は、パラメータの候補値を示す表形式ファイルの一例を示す図である。図12に示す表形式データで、対象変数と、その変数の属性が取りうる候補値の範囲とが入力された場合、変数x、変数y、変数zの取りうるビット幅は7bitから9bitまでである。例えば、設計最適化支援ツールが、パラメータセットとして[(変数xのビット幅)、(変数yのビット幅)、(変数zのビット幅)、・・・]を出力する場合を例に説明する。その場合、設計最適化支援ツールは、[7、7、7、・・・]や、[7、7、8、・・・]をパラメータセットとして出力することができる。本実施形態において、属性値準備部903は、パラメータセットを図3のような表形式データのパラメータファイルとして作成する。   The attribute value preparation unit 903 prepares in advance an attribute value to be set as a variable type attribute when executing a program for a fixed-point simulation type variable in the fixed-point simulation program. In the present embodiment, the user inputs a target variable to be converted to a fixed point and a range of candidate values that can be taken by the attribute of the target variable using a design optimization support tool. The design optimization support tool automatically selects candidate values from a range of candidate values that can be taken from externally input attributes, and the correspondence between the attributes of all variables and the attribute values is described. Output the parameter set. Here, the number of parameter sets output by the design optimization support tool may be preset by the user, or the design optimization support tool outputs parameter sets of all combinations for candidate values of target variable attributes. You may do it. In this embodiment, the user inputs variables, variable type attributes, and ranges of candidate values as a table format file as shown in FIG. 12, but the input format is not limited. You may set using GUI etc. on an optimization assistance tool. FIG. 12 is a diagram illustrating an example of a tabular file indicating parameter candidate values. When the target variable and the range of candidate values that can be taken by the attribute of the variable are input in the tabular data shown in FIG. 12, the bit width that can be taken by the variable x, variable y, and variable z is 7 bits to 9 bits. is there. For example, a case where the design optimization support tool outputs [(bit width of variable x), (bit width of variable y), (bit width of variable z),...] As a parameter set will be described as an example. . In that case, the design optimization support tool can output [7, 7, 7,...] And [7, 7, 8,. In the present embodiment, the attribute value preparation unit 903 creates a parameter set as a parameter file of tabular data as shown in FIG.

実行結果出力部905は、型シミュレーション部704が実行した結果を集計し、その結果の分析を行う。ここで、演算精度を最小化し、処理コストを最小化する解を得る必要がある場合について説明する。ユーザが設計最適化支援ツールを用いて演算精度誤差と、処理コストとを目的関数として設定することにより、実行結果出力部905は、横軸を演算精度、縦軸を処理コストとしたグラフを出力することが可能となる。このように、設計最適化支援ツールを用いることによって、属性値準備部903は、各変数と、その対象変数の型の属性が取りうる候補値の範囲とからパラメータセットに基づくパラメータファイルを作成する。そして、型シミュレーション部704は、そのパラメータファイルを用いてシミュレーションプログラムを実行するという処理を繰り返す。更に、実行結果出力部905は、上述したように型シミュレーション部704が実行した結果を集計し、その結果の分析を行う。
実行結果評価部906は、実行結果出力部905から取得した分析結果に基づき、パラメータセットを決定するか又は再度属性値の絞り込みを行うかを判断するための情報をユーザに提示する。より具体的にいうと、実行結果評価部906は、設計最適化支援ツールが一意に決まる最適解を得られる場合、その最適解をユーザに提示する。一方、属性同士が目的関数に対してトレードオフの関係にある場合、自動的に最適解を求めることは困難であるため、ユーザが対話的に属性の探索範囲を絞り込む必要がある。このような場合、実行結果評価部906は、多次元チャート等を用いて探索範囲の絞り込みをユーザに提示する。ユーザは、提示された探索範囲から再度、固定小数点化したい対象変数と、その対象変数の型の属性が取りうる候補値の範囲とを入力する。また、ユーザが満足する所望の性能値を得られていた場合、型探索装置100は、入力装置105を介して受け付けたユーザの指示により属性の探索を終了することもできる。
以上が、本実施形態における型探索装置100のソフトウェア構成の説明である。
The execution result output unit 905 aggregates the results executed by the type simulation unit 704 and analyzes the results. Here, a case where it is necessary to obtain a solution that minimizes the calculation accuracy and minimizes the processing cost will be described. When the user sets the calculation accuracy error and the processing cost as objective functions using the design optimization support tool, the execution result output unit 905 outputs a graph with the calculation accuracy on the horizontal axis and the processing cost on the vertical axis. It becomes possible to do. As described above, by using the design optimization support tool, the attribute value preparation unit 903 creates a parameter file based on the parameter set from each variable and the range of candidate values that can be taken by the attribute of the target variable type. . Then, the mold simulation unit 704 repeats the process of executing the simulation program using the parameter file. Further, the execution result output unit 905 aggregates the results executed by the mold simulation unit 704 as described above, and analyzes the results.
Based on the analysis result acquired from the execution result output unit 905, the execution result evaluation unit 906 presents information for determining whether to determine a parameter set or to narrow down attribute values again to the user. More specifically, the execution result evaluation unit 906 presents the optimal solution to the user when the optimal solution that uniquely determines the design optimization support tool can be obtained. On the other hand, when the attributes are in a trade-off relationship with the objective function, it is difficult to automatically find the optimum solution, and the user needs to interactively narrow down the attribute search range. In such a case, the execution result evaluation unit 906 presents the search range narrowing to the user using a multidimensional chart or the like. The user again inputs the target variable to be converted to a fixed point and the range of candidate values that can be taken by the attribute of the target variable type from the presented search range. In addition, when a desired performance value that satisfies the user is obtained, the pattern search apparatus 100 can also end the attribute search in accordance with a user instruction received via the input apparatus 105.
The above is the description of the software configuration of the type search apparatus 100 in the present embodiment.

次に図13を用いて、本実施形態におけるプログラム中の変数の型を探索する変数の型探索処理の流れについて説明する。なお、図13は、本実施形態における型探索処理の一例を示すフローチャートである。
S1100及びS1101の処理は、実施形態1で図5を用いて説明したS100及びS101の処理と同様であるため、説明を省略する。
S1102において、属性値準備部903は、プログラム実行時に変数の型の属性に設定する属性値を予め準備する。より具体的にいうと、まず、ユーザが、設計最適化支援ツールを用いて、固定小数点化したい対象変数と、その対象変数の型の属性が取りうる候補値の範囲とを入力する。そして、設計最適化支援ツールは、入力された候補値の範囲から値を自動で選択し、パラメータセットを作成する。更に、属性値準備部903は、パラメータセットに基づくパラメータファイルを作成する。
S1103の処理は、実施形態1で図5を用いて説明したS103の処理と同様であるため、説明を省略する。
S1104において、設計最適化支援ツールは、S1102の属性値準備処理において入力された変数の候補値の範囲内の値の組みあわせに関して、予め定められている数のパラメータセットを実行したか否かを判定する。そして、設計最適化支援ツールは、実行したと判定した場合、処理をS1105へ進め、実行していないと判定した場合、処理をS1102へ戻す。
Next, the flow of variable type search processing for searching for variable types in a program according to the present embodiment will be described with reference to FIG. FIG. 13 is a flowchart showing an example of the type search process in this embodiment.
The processing in S1100 and S1101 is the same as the processing in S100 and S101 described with reference to FIG.
In step S1102, the attribute value preparation unit 903 prepares in advance an attribute value to be set in the variable type attribute when the program is executed. More specifically, first, the user uses a design optimization support tool to input a target variable to be converted to a fixed point and a range of candidate values that can be taken by the attribute of the type of the target variable. Then, the design optimization support tool automatically selects a value from the input candidate value range and creates a parameter set. Furthermore, the attribute value preparation unit 903 creates a parameter file based on the parameter set.
The processing in S1103 is the same as the processing in S103 described with reference to FIG.
In S1104, the design optimization support tool determines whether or not a predetermined number of parameter sets have been executed for the combinations of values within the range of candidate values of variables input in the attribute value preparation process of S1102. judge. If it is determined that the design optimization support tool has been executed, the process proceeds to S1105. If it is determined that the design optimization support tool has not been executed, the process returns to S1102.

S1105において、実行結果出力部905は、設計最適化支援ツールが型シミュレーション部704から得る実行結果を分析する。例えば、演算精度を最小化し、処理コストを最小化する解を得る必要がある場合、実行結果出力部905は、横軸を演算精度、縦軸を処理コストとしたグラフを出力する。
S1106において、実行結果評価部906は、S1105で得られる分析結果に基づき、パラメータセットを決定するか又は再度属性の最適化を行うかを判定するための情報をユーザに提示する。そして、実行結果評価部906は、ユーザの指示に基づいて、パラメータセットを決定する場合、処理をS1107へ進め、再度属性の最適化を行う場合、処理をS1102へ進める。
S1107の処理は、実施形態1で図5を用いて説明したS106の処理と同様であるため、説明を省略する。
以上が本実施形態におけるプログラム中の変数の型を探索する変数の型探索処理の流れである。
本実施形態によれば、型探索装置100は、変数が複数あり、各変数の属性にトレードオフが生じる場合であっても、所望の実行結果を得ることができる属性値を選択することが可能となる。
In step S <b> 1105, the execution result output unit 905 analyzes the execution result obtained from the mold simulation unit 704 by the design optimization support tool. For example, when it is necessary to obtain a solution that minimizes the calculation accuracy and minimizes the processing cost, the execution result output unit 905 outputs a graph with the calculation accuracy on the horizontal axis and the processing cost on the vertical axis.
In step S1106, the execution result evaluation unit 906 presents information for determining whether to determine a parameter set or to optimize an attribute again based on the analysis result obtained in step S1105. The execution result evaluation unit 906 advances the process to S1107 when determining a parameter set based on a user instruction, and advances the process to S1102 when optimizing the attribute again.
The processing in S1107 is the same as the processing in S106 described with reference to FIG.
The flow of the variable type search process for searching for the variable type in the program in the present embodiment has been described above.
According to the present embodiment, the type search apparatus 100 can select an attribute value that can obtain a desired execution result even when there are a plurality of variables and a trade-off occurs in the attributes of each variable. It becomes.

<実施形態3>
一般的に、ユーザは、画像処理等の信号処理プログラムのアルゴリズム開発を浮動小数点型の変数を用いて行い、アルゴリズムの開発が完了した後にハードウェア設計検討を行う。したがって、アルゴリズム開発時に作成されたプログラムは浮動小数点型を用いて記述されている。そのため、ユーザは、ハードウェア設計検討段階で固定小数点のビット幅等の型の属性を検討する際には、アルゴリズム開発時に作成したプログラムを変換する必要がある。
実施形態1、実施形態2では、アルゴリズム開発後におけるハードウェア設計検討時のビット幅等の型の属性検討を行う方法を説明した。本実施形態では、アルゴリズム開発時から型の属性だけでなく型そのものを実行時のパラメータ入力により選択可能にし、ハードウェア設計検討時にアルゴリズム開発で開発したプログラムを変更せずにビット幅等の型の属性検討を行う方法について説明する。
本実施形態における型探索装置100について図14を用いて説明する。なお、図14は、本実施形態における型探索装置100のソフトウェア構成の一例を示す図である。本実施形態における型探索装置100は、アルゴリズム開発後のハードウェア設計において、プログラムの変更を行うことなく、変数の型の探索を行うことが可能な型探索装置である。
<Embodiment 3>
In general, a user develops an algorithm of a signal processing program such as image processing using a floating-point type variable, and performs hardware design examination after the algorithm development is completed. Therefore, a program created at the time of algorithm development is described using a floating point type. For this reason, the user needs to convert the program created at the time of algorithm development when examining attributes of a type such as a fixed-point bit width at the hardware design examination stage.
In the first embodiment and the second embodiment, the method of examining the attribute of the type such as the bit width at the time of hardware design examination after algorithm development has been described. In this embodiment, not only the type attribute but also the type itself can be selected from the parameter development at the time of algorithm development, and the type such as bit width can be changed without changing the program developed by the algorithm development at the time of hardware design examination. A method for performing attribute examination will be described.
The type | mold search apparatus 100 in this embodiment is demonstrated using FIG. FIG. 14 is a diagram illustrating an example of a software configuration of the type search apparatus 100 according to the present embodiment. The type searching apparatus 100 according to the present embodiment is a type searching apparatus capable of searching for variable types without changing a program in hardware design after algorithm development.

プログラム作成部1301は、複数の型の中から1つの型を選択することが可能な型を用いてプログラムを作成する。本実施形態において、プログラム作成部1301は、実施形態1で示した固定小数点シミュレーション型と、浮動小数点型との何れかを選択するためのパラメータを有する小数点選択型を用いてプログラムを作成する。プログラム作成部1301が作成するプログラムは、アルゴリズム開発後のハードウェア設計において、プログラムを変更することなく変数の型の探索を行うことができるアルゴリズム開発プログラムである。また、小数点選択型を使用する対象となる変数は、アルゴリズム開発者が任意に選択してもよいし、浮動小数点型としたい変数を全て小数点選択型としてもよい。
ここで小数点選択型について説明する。小数点選択型は、本実施形態ではC++言語を用いたクラスとして定義する。まず、データ保持部では、浮動小数点型のデータと、実施形態1で示したCFixedPointSimクラスのインスタンスとをデータとして保持し、更に、型選択パラメータ値を保持する。型選択パラメータ値は、プログラム実行時に使用する型を決定する値であり、本実施形態では、浮動小数点型と、固定小数点シミュレーション型とを選択する際に使用される。小数点選択型のコンストラクタでは、パラメータファイルより入力される型選択パラメータ値を参照して、パラメータファイルより読み出してきた型選択パラメータ値を取得、保持する。プログラム作成部1301は、取得した型選択パラメータ値から、浮動小数点型とするか、CFixedPointSimクラスとするかを決定する。また、クラス内のメソッドとして演算子の処理の定義メソッドを宣言し、型選択パラメータ値に応じた演算を行うように定義しておく。以上が小数点選択型の説明である。
The program creation unit 1301 creates a program using a type that can select one type from a plurality of types. In this embodiment, the program creation unit 1301 creates a program using a decimal point selection type having parameters for selecting either the fixed-point simulation type or the floating-point type shown in the first embodiment. The program created by the program creation unit 1301 is an algorithm development program capable of searching for variable types without changing the program in hardware design after algorithm development. Further, the variable for which the decimal point selection type is to be used may be arbitrarily selected by the algorithm developer, or all variables desired to be the floating point type may be the decimal point selection type.
Here, the decimal point selection type will be described. The decimal point selection type is defined as a class using the C ++ language in this embodiment. First, the data holding unit holds the floating-point type data and the instance of the CFixedPointSim class shown in the first embodiment as data, and further holds the type selection parameter value. The type selection parameter value is a value that determines a type to be used during program execution. In this embodiment, the type selection parameter value is used when selecting a floating point type and a fixed point simulation type. The decimal point selection type constructor refers to the type selection parameter value input from the parameter file, and acquires and holds the type selection parameter value read from the parameter file. The program creation unit 1301 determines whether to use a floating-point type or a CFixedPointSim class from the acquired type selection parameter value. In addition, a definition method for operator processing is declared as a method in the class, and is defined to perform an operation according to the type selection parameter value. The above is the explanation of the decimal point selection type.

コンパイル部1302は、プログラム作成部1301で作成されたアルゴリズム開発プログラムのコンパイルを行い、オブジェクトプログラムを生成する。
属性値準備部1303は、小数点選択型の属性に設定する属性値を予め準備する。本実施形態において、属性値準備部1303は、固定小数点シミュレーション型に必要な属性に加え、浮動小数点型と、固定小数点シミュレーション型とのどちらを使用するか決定する型選択パラメータ値を準備する。例えば、属性値準備部1303は、浮動小数点型に「0」、固定小数点シミュレーション型に「1」の選択パラメータ値を設定しておく。また、属性値準備部1303は、アルゴリズム開発プログラム中の変数について浮動小数点型を使用したい場合は、「0」を設定しておく。即ち、属性値準備部1303は、アルゴリズム開発プログラム中の変数について、実施形態1及び実施形態2で示した固定小数点シミュレーション型の属性値に加え、型選択パラメータ値が記載されたパラメータファイルを準備する。なお、本実施形態では浮動小数点型と、固定小数点シミュレーション型とを用いるようにしているが、型はこれに限らず、例えば、整数型等を更に追加してもよい。
The compiling unit 1302 compiles the algorithm development program created by the program creating unit 1301 and generates an object program.
The attribute value preparation unit 1303 prepares in advance an attribute value to be set as the decimal point selection type attribute. In the present embodiment, the attribute value preparation unit 1303 prepares a type selection parameter value for determining whether to use a floating-point type or a fixed-point simulation type, in addition to attributes necessary for the fixed-point simulation type. For example, the attribute value preparation unit 1303 sets a selection parameter value of “0” for the floating point type and “1” for the fixed point simulation type. Also, the attribute value preparation unit 1303 sets “0” when it is desired to use a floating-point type for a variable in the algorithm development program. That is, the attribute value preparation unit 1303 prepares a parameter file in which type selection parameter values are described in addition to the fixed-point simulation type attribute values shown in the first and second embodiments for variables in the algorithm development program. . In this embodiment, the floating-point type and the fixed-point simulation type are used. However, the type is not limited to this, and for example, an integer type may be further added.

型シミュレーション部1304は、プログラム作成部1301で作成されたアルゴリズム開発プログラムをコンパイルしたオブジェクトプログラムを実行する。型シミュレーション部1304は、実施形態1、実施形態2で示した型シミュレーション部704の機能に加え、複数ある型の中から1つの型を選択する機能を有する。ここでは、型シミュレーション部1304は、属性値準備部1303で準備された型選択パラメータ値が記載されたパラメータファイルを参照し、アルゴリズム開発プログラム中の変数の型を決定してプログラムを実行する。
実行結果出力部1305は、実施形態1、実施形態2で示した実行結果出力部705、実行結果出力部905の機能を有し、更に、アルゴリズム開発時のプログラム実行結果を取得する機能を有する。例えば、ユーザが画像から人物を検出するアルゴリズムを開発している場合、型シミュレーション部1304は、複数の画像入力を行い、複数回プログラムを実行する。そして、実行結果出力部1305は、人物の検出率を取得する。
実行結果評価部1306は、実施形態1、実施形態2で示した実行結果評価部706、実行結果評価部906の機能を有し、更に、前記アルゴリズム開発時のプログラム実行結果がユーザにより予め定められた性能を満たすか否か評価する。例えば、ユーザが画像から人物を検出するアルゴリズムを開発している場合、実行結果評価部1306は、人物の検出率がユーザにより予め定められた閾値以上であるか否かに基づいて性能を満たすか否か評価する。
プログラム生成部707の機能については、実施形態1、実施形態2で説明した通りであるため、ここでは説明を省略する。
以上が本実施形態における型探索装置100のソフトウェア構成の説明である。
The type simulation unit 1304 executes an object program obtained by compiling the algorithm development program created by the program creation unit 1301. The type simulation unit 1304 has a function of selecting one type from a plurality of types in addition to the function of the type simulation unit 704 shown in the first and second embodiments. Here, the type simulation unit 1304 refers to the parameter file in which the type selection parameter value prepared by the attribute value preparation unit 1303 is described, determines the variable type in the algorithm development program, and executes the program.
The execution result output unit 1305 has the functions of the execution result output unit 705 and the execution result output unit 905 described in the first and second embodiments, and further has a function of acquiring a program execution result at the time of algorithm development. For example, when the user is developing an algorithm for detecting a person from an image, the pattern simulation unit 1304 inputs a plurality of images and executes the program a plurality of times. Then, the execution result output unit 1305 acquires a person detection rate.
The execution result evaluation unit 1306 has the functions of the execution result evaluation unit 706 and the execution result evaluation unit 906 described in the first and second embodiments, and the program execution result at the time of algorithm development is predetermined by the user. It is evaluated whether it meets the performance. For example, when the user is developing an algorithm for detecting a person from an image, the execution result evaluation unit 1306 satisfies the performance based on whether or not the detection rate of the person is equal to or higher than a threshold predetermined by the user. Evaluate whether or not.
Since the function of the program generation unit 707 is as described in the first and second embodiments, the description thereof is omitted here.
The above is the description of the software configuration of the type search apparatus 100 in the present embodiment.

次に、図15を用いて、本実施形態における型探索処理の流れについて説明する。なお、図15は、本実施形態における型探索処理の一例を示すフローチャートである。S1400からS1405までの処理は、アルゴリズム開発に関わる処理である。また、S1406からS1411までの処理は、ハードウェア設計検討時のビット幅等の型の属性検討に関わる処理である。
S1400において、プログラム作成部1301は、型を選択するパラメータを持つ型である小数点選択型を用いてアルゴリズム開発プログラムを作成する。本実施形態において、プログラム作成部1301は、浮動小数点型と、固定小数点シミュレーション型とを選択可能な小数点選択型を用いてアルゴリズム開発プログラムを作成する。
S1401において、コンパイル部1302は、S1400で作成されたアルゴリズム開発プログラムをコンパイルし、オブジェクトプログラムを生成する。
S1402において、属性値準備部1303は、S1401でパラメータ化された型を決定する型選択パラメータ値が記載されたパラメータファイルを準備する。本実施形態において、属性値準備部1303は、浮動小数点型と、固定小数点シミュレーション型との何れかを選択するが、アルゴリズム開発時は浮動小数点型を選択する型選択パラメータ値をパラメータファイルに記載しておく。
S1403において、型シミュレーション部1304は、S1401でコンパイル処理されたアルゴリズム開発プログラムのオブジェクトプログラムを実行する。そして、型シミュレーション部1304は、前記オブジェクトプログラムに基づいてパラメータファイルを参照し、S1402で準備された型選択パラメータ値より変数の型を設定する。S1403の処理の詳細は、実施形態1で示した処理の流れと同じである。例えば、本実施形態のようにユーザが画像から人物を検出するアルゴリズム開発をしている場合、型シミュレーション部1304は、複数の画像入力に対して複数回プログラムを実行する。
Next, the flow of the type search process in this embodiment will be described with reference to FIG. FIG. 15 is a flowchart showing an example of the type search process in this embodiment. The processes from S1400 to S1405 are processes related to algorithm development. Further, the processing from S1406 to S1411 is processing related to examination of type attributes such as bit width at the time of hardware design examination.
In S1400, the program creation unit 1301 creates an algorithm development program using a decimal point selection type that is a type having a parameter for selecting a type. In the present embodiment, the program creation unit 1301 creates an algorithm development program using a decimal point selection type capable of selecting a floating point type and a fixed point simulation type.
In S1401, the compiling unit 1302 compiles the algorithm development program created in S1400 and generates an object program.
In S1402, the attribute value preparation unit 1303 prepares a parameter file in which a type selection parameter value for determining the type parameterized in S1401 is described. In the present embodiment, the attribute value preparation unit 1303 selects either the floating-point type or the fixed-point simulation type, and describes the type selection parameter value for selecting the floating-point type in the parameter file when developing the algorithm. Keep it.
In step S1403, the type simulation unit 1304 executes the object program of the algorithm development program compiled in step S1401. Then, the type simulation unit 1304 refers to the parameter file based on the object program, and sets the variable type from the type selection parameter value prepared in S1402. The details of the processing of S1403 are the same as the processing flow shown in the first embodiment. For example, when the user is developing an algorithm for detecting a person from an image as in the present embodiment, the pattern simulation unit 1304 executes the program a plurality of times for a plurality of image inputs.

S1404において、実行結果評価部1306は、プログラム実行結果を分析する。例えば、本実施形態のようにユーザが画像から人物を検出するアルゴリズムの開発を行っている場合、実行結果評価部1306は、S1403で複数回実行された結果から検出率を算出し、検出率をユーザに提示するように出力する。出力形式はどのような形式でもよく、実行結果評価部1306は、例えばファイル等に出力結果を書き込むようにしてもよい。
S1405において、実行結果評価部1306は、S1404で出力された人物の検出率が予め設定された性能値(閾値)を満たしているか否かを評価し、性能値を満たしている場合は、処理をS1406へ進める。一方、実行結果評価部1306は、性能値を満たしていない場合は、再度アルゴリズム開発プログラムの修正を行うため、処理をS1400へ戻す。
S1406において、属性値準備部1303は、図5で上述したS102の処理に加え、型選択パラメータ値を記載したパラメータファイルを準備する。本実施形態で、浮動小数点型と、固定小数点シミュレーション型とが選択可能であるものとする。属性値準備部1303は、固定小数点化の対象となる変数について、アルゴリズム開発時は浮動小数点型を選択するパラメータ値を、ハードウェア検討時は固定小数点シミュレーション型を選択する型選択パラメータ値をパラメータファイルに記載しておく。
S1407からS1411までの処理は、実施形態2で図13を用いて説明したS1103からS1107までの処理と同様であるため、説明を省略する。
以上が本実施形態における変数の型を探索する型探索処理の流れである。
本実施形態による固定小数点プログラムの生成方法を用いれば、型探索装置100は、ハードウェア設計検討時にアルゴリズム開発で開発したプログラムを変更することなくビット幅等の型の属性検討を行うことが可能となる。
In step S1404, the execution result evaluation unit 1306 analyzes the program execution result. For example, when the user is developing an algorithm for detecting a person from an image as in the present embodiment, the execution result evaluation unit 1306 calculates a detection rate from the results executed a plurality of times in S1403, and calculates the detection rate. Output to be presented to the user. The output format may be any format, and the execution result evaluation unit 1306 may write the output result in, for example, a file.
In step S1405, the execution result evaluation unit 1306 evaluates whether the human detection rate output in step S1404 satisfies a preset performance value (threshold value). The process proceeds to S1406. On the other hand, when the performance value is not satisfied, the execution result evaluation unit 1306 returns the process to S1400 in order to correct the algorithm development program again.
In step S1406, the attribute value preparation unit 1303 prepares a parameter file in which the type selection parameter value is described in addition to the processing in step S102 described above with reference to FIG. In this embodiment, it is assumed that a floating point type and a fixed point simulation type can be selected. The attribute value preparation unit 1303 uses a parameter file to select a parameter value for selecting a floating-point type at the time of algorithm development and a type selection parameter value for selecting a fixed-point simulation type when considering hardware. It is described in.
The processing from S1407 to S1411 is the same as the processing from S1103 to S1107 described with reference to FIG.
The flow of the type search process for searching for variable types in the present embodiment has been described above.
If the method for generating a fixed-point program according to the present embodiment is used, the type search apparatus 100 can examine the attributes of the type such as the bit width without changing the program developed in the algorithm development at the time of hardware design examination. Become.

<その他の実施形態>
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUやMPU等)がプログラムを読み出して実行する処理である。
<Other embodiments>
The present invention can also be realized by executing the following processing. That is, software (program) that realizes the functions of the above-described embodiments is supplied to a system or apparatus via a network or various storage media, and a computer (or CPU, MPU, etc.) of the system or apparatus reads the program. It is a process to be executed.

以上、上述した各実施形態によれば、整数・固定小数点化における、変数のビット幅等の型の属性検討の際、型探索装置100は、実行時の変数の型の属性値を読み込んで設定し、前記属性値に応じた演算を行う。これにより、型探索装置100は、プログラムの書き換えや、コンパイルを必要とすることなく型の属性を変更可能とし、検討時間を削減させることができる。また、固定小数点プログラムを用いることにより、型探索装置100は、ハードウェア設計検討時にアルゴリズム開発で開発したプログラムを変更することなくビット幅等の型の属性検討を行うことが可能となる。   As described above, according to each of the embodiments described above, when examining type attributes such as the bit width of a variable in integer / fixed-point conversion, the type search apparatus 100 reads and sets the variable type attribute value at the time of execution. Then, an operation according to the attribute value is performed. As a result, the type search apparatus 100 can change the type attribute without rewriting or compiling the program, and can reduce the examination time. In addition, by using a fixed-point program, the type search apparatus 100 can examine type attributes such as bit width without changing the program developed by the algorithm development at the time of hardware design examination.

以上、本発明の好ましい形態について詳述したが、本実施形態は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。   The preferred embodiment of the present invention has been described in detail above, but the present embodiment is not limited to the specific embodiment, and various modifications can be made within the scope of the gist of the present invention described in the claims.・ Change is possible.

Claims (13)

対象変数の属性がパラメータ化され、コンパイルされたプログラムを読み込む読み込み手段と、
前記読み込み手段により読み込まれたプログラムに基づく処理の実行時に、属性に関するパラメータ情報に基づいて、前記プログラムの対象変数の属性に属性値を設定する設定手段と、
前記設定手段により属性値が設定されたプログラムに基づいて処理を実行する実行手段と、
を有する情報処理装置。
Reading means for reading the compiled program with the attributes of the target variable parameterized,
Setting means for setting an attribute value to an attribute of a target variable of the program based on parameter information regarding the attribute when executing processing based on the program read by the reading means;
Execution means for executing processing based on a program in which attribute values are set by the setting means;
An information processing apparatus.
第1の型における変数を含む第1のプログラムと、対象変数を示す変数情報とに基づいて、第2の型における対象変数の属性をパラメータ化したプログラムを作成する作成手段を更に有し、
前記読み込み手段は、前記作成手段により作成されたプログラムがコンパイルされたプログラムを読み込む請求項1記載の情報処理装置。
And a creation means for creating a program that parameterizes the attributes of the target variable in the second type based on the first program including the variable in the first type and the variable information indicating the target variable;
The information processing apparatus according to claim 1, wherein the reading unit reads a program obtained by compiling a program created by the creating unit.
前記作成手段は、第1の型である浮動小数点型の変数を含む第1のプログラムと、前記変数情報とに基づいて、第2の型である固定小数点型の対象変数の属性をパラメータ化したプログラムを作成する請求項2記載の情報処理装置。   The creating means parameterizes the attribute of the target variable of the fixed type of the second type based on the first program including the variable of the floating type of the first type and the variable information. The information processing apparatus according to claim 2, which creates a program. 前記作成手段は、前記第1のプログラムと、前記変数情報とに基づいて、対象変数の型をパラメータ化すると共に、対象変数の属性をパラメータ化したプログラムを生成し、
前記設定手段は、前記対象変数の型と、前記属性とに係るパラメータ情報に基づいて、前記対象変数の型を設定し、前記設定した型における対象変数の属性に属性値を設定する請求項2記載の情報処理装置。
The creating means parameterizes the type of the target variable based on the first program and the variable information, and generates a program parameterizing the attribute of the target variable,
The setting means sets the type of the target variable based on parameter information related to the type of the target variable and the attribute, and sets an attribute value to the attribute of the target variable in the set type. The information processing apparatus described.
前記実行手段は、前記属性値が設定されたプログラムに基づくシミュレーションに係る演算処理を実行し、
前記実行手段により実行された処理に係るシミュレーション結果情報に基づいて、前記対象変数の属性に設定された属性値を設定値として決定するか否かを判定する判定手段を更に有する請求項2乃至4何れか1項記載の情報処理装置。
The execution means executes a calculation process related to a simulation based on a program in which the attribute value is set,
5. The determination unit according to claim 2, further comprising: a determination unit configured to determine whether or not an attribute value set in the attribute of the target variable is determined as a setting value based on simulation result information relating to processing executed by the execution unit. The information processing apparatus according to any one of claims.
前記判定手段は、前記第1のプログラムの実行結果情報と、前記シミュレーション結果情報とに基づいて、精度を算出し、前記算出した精度が予め定められた閾値以上であるか否かに基づいて、前記対象変数の属性に設定された属性値を設定値として決定するか否かを判定する請求項5記載の情報処理装置。   The determination means calculates accuracy based on the execution result information of the first program and the simulation result information, and based on whether or not the calculated accuracy is equal to or greater than a predetermined threshold value, The information processing apparatus according to claim 5, wherein it is determined whether or not an attribute value set in the attribute of the target variable is determined as a setting value. 前記実行手段により実行された処理に係るシミュレーション結果情報が複数ある場合、予め設定された目的関数に応じて前記シミュレーション結果情報を出力する出力手段を更に有し、
前記判定手段は、前記出力手段により出力されたシミュレーション結果情報に基づくユーザの指示に基づいて、前記対象変数の属性に設定された属性値を設定値として決定するか否かを判定する請求項5載の情報処理装置。
If there is a plurality of simulation result information related to the processing executed by the execution means, further comprising an output means for outputting the simulation result information according to a preset objective function,
The determination unit determines whether or not to determine an attribute value set in the attribute of the target variable as a setting value based on a user instruction based on simulation result information output by the output unit. Information processing device.
前記判定手段により決定すると判定された場合、前記設定された属性値に係る属性値情報に基づいて、前記第1のプログラムを変換して第2の型に係る第2のプログラムを生成する生成手段を更に有する請求項5乃至7何れか1項記載の情報処理装置。   Generation means for converting the first program and generating a second program related to the second type based on attribute value information related to the set attribute value when it is determined to be determined by the determination means The information processing apparatus according to claim 5, further comprising: 前記判定手段により決定しないと判定された場合、前記設定手段は、前記パラメータ情報に基づいて対象変数に設定する属性値を変更して設定する請求項5乃至7何れか1項記載の情報処理装置。   The information processing apparatus according to any one of claims 5 to 7, wherein when the determination unit determines that the value is not determined, the setting unit changes and sets an attribute value to be set to the target variable based on the parameter information. . 変数を示す変数情報と、前記変数の属性値情報とを対応付けたパラメータ情報を作成するパラメータ情報作成手段を更に有し、
前記設定手段は、前記対象変数の属性に基づいて前記パラメータ情報作成手段により作成されたパラメータ情報から属性値情報を取得し、前記取得した属性値情報に係る属性値を前記対象変数の属性に設定する請求項1乃至9何れか1項記載の情報処理装置。
Parameter information creating means for creating parameter information in which variable information indicating a variable and attribute value information of the variable are associated with each other;
The setting means acquires attribute value information from the parameter information created by the parameter information creation means based on the attribute of the target variable, and sets the attribute value related to the acquired attribute value information as the attribute of the target variable The information processing apparatus according to any one of claims 1 to 9.
前記パラメータ情報作成手段は、前記変数情報と、前記変数の属性値の範囲に係る属性値情報とを対応付けたパラメータ情報を作成する請求項10記載の情報処理装置。   The information processing apparatus according to claim 10, wherein the parameter information creating unit creates parameter information in which the variable information is associated with attribute value information related to a range of attribute values of the variable. 情報処理装置が実行する情報処理方法であって、
対象変数の属性がパラメータ化され、コンパイルされたプログラムを読み込む読み込みステップと、
前記読み込みステップにより読み込まれたプログラムに基づく処理の実行時に、属性に関するパラメータ情報に基づいて、前記プログラムの対象変数の属性に属性値を設定する設定ステップと、
前記設定ステップにより属性値が設定されたプログラムに基づいて処理を実行する実行ステップと、
を含む情報処理方法。
An information processing method executed by an information processing apparatus,
A read step that loads the compiled program with the attributes of the target variable parameterized,
A setting step for setting an attribute value to an attribute of a target variable of the program based on parameter information regarding the attribute when executing a process based on the program read by the reading step;
An execution step of executing processing based on the program in which the attribute value is set by the setting step;
An information processing method including:
コンピュータに、
対象変数の属性がパラメータ化され、コンパイルされたプログラムを読み込む読み込みステップと、
前記読み込みステップにより読み込まれたプログラムに基づく処理の実行時に、属性に関するパラメータ情報に基づいて、前記プログラムの対象変数の属性に属性値を設定する設定ステップと、
前記設定ステップにより属性値が設定されたプログラムに基づいて処理を実行する実行ステップと、
を実行させるためのプログラム。
On the computer,
A read step that loads the compiled program with the attributes of the target variable parameterized,
A setting step for setting an attribute value to an attribute of a target variable of the program based on parameter information regarding the attribute when executing a process based on the program read by the reading step;
An execution step of executing processing based on the program in which the attribute value is set by the setting step;
A program for running
JP2013131885A 2013-06-24 2013-06-24 Information processing apparatus, information processing method, and program Active JP6137962B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013131885A JP6137962B2 (en) 2013-06-24 2013-06-24 Information processing apparatus, information processing method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013131885A JP6137962B2 (en) 2013-06-24 2013-06-24 Information processing apparatus, information processing method, and program

Publications (2)

Publication Number Publication Date
JP2015007820A JP2015007820A (en) 2015-01-15
JP6137962B2 true JP6137962B2 (en) 2017-05-31

Family

ID=52338076

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013131885A Active JP6137962B2 (en) 2013-06-24 2013-06-24 Information processing apparatus, information processing method, and program

Country Status (1)

Country Link
JP (1) JP6137962B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6528893B1 (en) 2018-11-07 2019-06-12 富士通株式会社 Learning program, learning method, information processing apparatus

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07281905A (en) * 1994-04-04 1995-10-27 Fujitsu Ltd Type declaration correcting device
JPH1021122A (en) * 1996-07-05 1998-01-23 Mitsubishi Electric Corp Processor monitoring device
US6460177B1 (en) * 1999-09-22 2002-10-01 Lucent Technologies Inc. Method for target-specific development of fixed-point algorithms employing C++ class definitions
JP4157016B2 (en) * 2003-11-05 2008-09-24 株式会社東芝 Compiler apparatus and compiling method
JP4786268B2 (en) * 2005-09-13 2011-10-05 株式会社東芝 Compilation device
JP4861087B2 (en) * 2006-07-31 2012-01-25 富士通株式会社 Arithmetic program conversion device, arithmetic program conversion program, arithmetic program conversion method
JP2011186999A (en) * 2010-03-11 2011-09-22 Cats Kk Device for supporting conversion of floating point representation program to fixed point representation and support program thereof

Also Published As

Publication number Publication date
JP2015007820A (en) 2015-01-15

Similar Documents

Publication Publication Date Title
US20170351493A1 (en) Systems and methods for generating code from executable models with floating point data
US20140306964A1 (en) Incremental compiling of a declarative program
JP4157016B2 (en) Compiler apparatus and compiling method
JP2008033729A (en) Arithmetic program conversion device, arithmetic program conversion program and arithmetic program conversion method
KR102195103B1 (en) Method of compiling a program
US9335979B1 (en) Data type visualization
US11126408B2 (en) Incremental code generation method
US9146750B2 (en) Mechanism for replacing an array creation routine within code
Daly et al. Synthesizing Instruction Selection Rewrite Rules from RTL using SMT.
TWI437457B (en) Method for analyzing dependency of target object
JP6137962B2 (en) Information processing apparatus, information processing method, and program
JP2008276735A (en) Program code converter and program code conversion method
US9244667B2 (en) Mechanism for transforming between type-independent and type-specific code
JP2005063136A (en) Design system, design method, and design program of semiconductor integrated circuit
JP6651974B2 (en) Information processing apparatus, compiling method and compiler program
JP4870956B2 (en) Embedded program generation method, embedded program development system, and information table section
WO2018066073A1 (en) Information processing device, information processing method, and information processing program
US8850386B2 (en) Method for estimating resource consumption in the generation of a control device program code
JP2009163662A (en) Information processor, control method of information processor, and control program of information processor
JP4898365B2 (en) Embedded program development apparatus and program automatic generation method
CN106557312B (en) Program development support device and program development support software
JP2011186999A (en) Device for supporting conversion of floating point representation program to fixed point representation and support program thereof
WO2021005130A1 (en) A streaming compiler for automatic adjoint differentiation
JP6409639B2 (en) Compiler program, system, method, and apparatus
US11989537B2 (en) Dataflow-based computer program visualization and refactoring

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160518

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170215

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: 20170328

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170425

R151 Written notification of patent or utility model registration

Ref document number: 6137962

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151