JP7437593B2 - Computing device and computing method - Google Patents
Computing device and computing method Download PDFInfo
- Publication number
- JP7437593B2 JP7437593B2 JP2019211774A JP2019211774A JP7437593B2 JP 7437593 B2 JP7437593 B2 JP 7437593B2 JP 2019211774 A JP2019211774 A JP 2019211774A JP 2019211774 A JP2019211774 A JP 2019211774A JP 7437593 B2 JP7437593 B2 JP 7437593B2
- Authority
- JP
- Japan
- Prior art keywords
- calculation
- significant bit
- digits
- input values
- bits
- 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
Links
- 238000004364 calculation method Methods 0.000 title claims description 328
- 238000003860 storage Methods 0.000 claims description 32
- 238000000034 method Methods 0.000 claims description 21
- 238000012545 processing Methods 0.000 claims description 16
- 238000012546 transfer Methods 0.000 description 27
- 238000004891 communication Methods 0.000 description 25
- 230000004044 response Effects 0.000 description 23
- 238000010586 diagram Methods 0.000 description 15
- 238000012986 modification Methods 0.000 description 12
- 230000004048 modification Effects 0.000 description 12
- 238000013528 artificial neural network Methods 0.000 description 5
- 238000013459 approach Methods 0.000 description 4
- 238000005457 optimization Methods 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000002922 simulated annealing Methods 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002068 genetic effect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 208000003580 polydactyly Diseases 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012421 spiking Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Landscapes
- Complex Calculations (AREA)
Description
本発明の実施形態は、演算装置、及び演算方法に関する。 Embodiments of the present invention relate to an arithmetic device and an arithmetic method.
今後10年で,データセンタで管理されるデータ量は50倍に増加する一方で、プロセッサの数はわずか10倍にしか増加しないと予想されている。また、最近の計算用途は、ビッグデータ解析、科学計算、メディア処理、信号処理、機械学習、データベース処理等、多種多様の処理を効率よく行うことが求められている。
しかし、パフォーマンス要求の高まりが計算機資源の増加を上回っており、このままでは十分なサービスを維持することが困難な状況である。これを解決する手段として、概略計算(AC; Approximate Computing)が注目されている。ACは、計算誤差を許容できるアプリケーションに対し、精度と速度やエネルギーのトレードオフを取ることが可能な計算方式である。すなわち、計算精度を落とすことで高速化や、低消費電力化する手法である。
Over the next 10 years, the amount of data managed in data centers is expected to increase by a factor of 50, while the number of processors is expected to increase by only a factor of 10. Furthermore, in recent computing applications, it is required to efficiently perform a wide variety of processing such as big data analysis, scientific calculation, media processing, signal processing, machine learning, and database processing.
However, the increase in performance demands is outpacing the increase in computer resources, making it difficult to maintain adequate services. Approximate computing (AC) is attracting attention as a means to solve this problem. AC is a calculation method that allows trade-offs between accuracy, speed, and energy for applications that can tolerate calculation errors. In other words, this is a method of increasing speed and reducing power consumption by reducing calculation accuracy.
一般的に画像認識のように多少のビットエラーを含んでいても正しい答えを導くことができるアプリケーションは多く存在する。現在の計算機システムはそのような場合でも1ビットも間違えずに計算することが可能だが、多少の計算誤差が含まれていても結果に差異がない場合には、精度と落としても早く計算を完了する方が価値は高い場合がある。実際にニューラルネットワークの計算において、ACを使用して5%程度の誤差を許容すれば、GPUに対して26倍高速化したという報告もある(例えば、非特許文献1参照)。
ACは大別してソフトウェア(アルゴリズム)・アプローチと、ハードウェア・アプローチとの2種類がある。ソフトウェアで行う方法は、従来から近似計算、近似アルゴリズムとして確立していたが。近年、さらに発展している。一方、ハードウェア・アプローチは、演算器の高速化、特に低レイテンシ化を目指した研究が盛んである。
In general, there are many applications such as image recognition that can derive the correct answer even if there are some bit errors. Current computer systems can perform calculations without making even a single bit error in such cases, but if there is no difference in the result even if some calculation errors are included, calculations may be performed quickly even if the accuracy is compromised. It may be more valuable to complete. In fact, there is a report that in neural network calculations, if an AC is used and an error of about 5% is allowed, the speed is 26 times faster than that of a GPU (for example, see Non-Patent Document 1).
AC can be roughly divided into two types: a software (algorithm) approach and a hardware approach. Software-based methods have long been established as approximate calculations and approximate algorithms. It has further developed in recent years. On the other hand, there is a lot of research into hardware approaches aimed at increasing the speed of arithmetic units, especially reducing latency.
本発明は、前述した問題を解決すべくなされたもので、概略計算結果を出力できる演算装置、及び演算方法を提供することを目的とする。 The present invention was made to solve the above-mentioned problems, and an object of the present invention is to provide an arithmetic device and an arithmetic method capable of outputting rough calculation results.
本発明の一実施形態は、複数の入力値および演算結果に要求される誤差情報を受け付ける受付部と、前記受付部が受け付けた前記誤差情報に基づいて、加算に使用する複数の前記入力値の各々の最上位ビットからの桁数を設定する設定部と、前記設定部が設定した最上位ビットからの前記桁数に基づいて、複数の前記入力値の各々の最上位ビットから前記設定部が設定した前記桁数まで、前記受付部が前記最上位ビットからKビット(Kは、K>0の整数)毎に出力した複数の前記入力値の各々の加算を、前記最上位ビットからKビット毎に行う演算部と、前記演算部による加算結果を、L(Lは、L>0の整数)クロック後から、Kビット毎に最上位ビットから出力する出力部とを備える演算装置である。
本発明の一実施形態は、前述の演算装置において、前記設定部は、演算結果に要求される誤差情報と、複数の入力値の各々の最上位ビットからの桁数とを関連付けて記憶する記憶部から、前記受付部が受け付けた前記誤差情報に基づいて、複数の前記入力値の各々の最上位ビットからの桁数を取得する。
本発明の一実施形態は、前述の演算装置において、前記演算部は、前記最上位ビットの加算結果が、閾値以上である場合に、加算を中止する。
One embodiment of the present invention includes a reception unit that receives error information required for a plurality of input values and calculation results, and a reception unit that receives error information required for a plurality of input values and calculation results , and a reception unit that receives error information required for a plurality of input values and calculation results, and a reception unit that receives a plurality of input values to be used for addition based on the error information received by the reception unit. a setting section that sets the number of digits from the most significant bit of each; and a setting section that sets the number of digits from the most significant bit of each of the plurality of input values based on the number of digits from the most significant bit set by the setting section. Up to the set number of digits, the reception unit outputs each of the plurality of input values every K bits (K is an integer where K>0) from the most significant bit. This is an arithmetic device including an arithmetic unit that performs the addition at each time, and an output unit that outputs the addition result by the arithmetic unit every K bits starting from the most significant bit after L clocks (L is an integer where L>0).
In one embodiment of the present invention, in the arithmetic device described above, the setting unit stores error information required for the arithmetic result and the number of digits from the most significant bit of each of the plurality of input values in association with each other. The number of digits from the most significant bit of each of the plurality of input values is obtained from the error information received by the reception unit.
In one embodiment of the present invention, in the arithmetic device described above, the arithmetic unit stops the addition when the addition result of the most significant bit is equal to or greater than a threshold value.
本発明の一実施形態は、複数の入力値および演算結果に要求される誤差情報を受け付けるステップと、前記受け付けるステップで受け付けた前記誤差情報に基づいて、加算に使用する複数の前記入力値の各々の最上位ビットからの桁数を設定するステップと、前記設定するステップで設定した最上位ビットからの前記桁数に基づいて、複数の前記入力値の各々の最上位ビットから前記設定するステップで設定した前記桁数まで、前記受付部が前記最上位ビットからKビット(Kは、K>0の整数)毎に出力した複数の前記入力値の各々の加算を、前記最上位ビットからKビット毎に行うステップと、前記加算を行うステップによる加算結果を、L(Lは、L>0の整数)クロック後から、Kビット毎に最上位ビットから出力するステップとを有する演算装置が実行する演算方法である。 One embodiment of the present invention includes the step of receiving error information required for a plurality of input values and calculation results , and the step of receiving error information required for a plurality of input values and calculation results, and determining each of the plurality of input values used for addition based on the error information received in the receiving step. and setting the number of digits from the most significant bit of each of the plurality of input values based on the number of digits from the most significant bit set in the setting step . Up to the set number of digits, the reception unit outputs each of the plurality of input values every K bits (K is an integer where K>0) from the most significant bit. and a step of outputting the addition result from the addition step every K bits starting from the most significant bit after L (L is an integer where L>0) clocks later. This is a calculation method.
本発明の実施形態によれば、概略計算結果を出力できる演算装置、及び演算方法を提供できる。 According to the embodiments of the present invention, it is possible to provide a calculation device and a calculation method that can output rough calculation results.
次に、本発明の実施形態に係る演算装置、及び演算方法を、図面を参照しつつ説明する。以下で説明する実施形態は一例に過ぎず、本発明が適用される実施形態は、以下の実施形態に限られない。
なお、実施形態を説明するための全図において、同一の機能を有するものは同一符号を用い、繰り返しの説明は省略する。
また、本願でいう「XXに基づく」とは、「少なくともXXに基づく」ことを意味し、XXに加えて別の要素に基づく場合も含む。また、「XXに基づく」とは、XXを直接に用いる場合に限定されず、XXに対して演算や加工が行われたものに基づく場合も含む。「XX」は、任意の要素(例えば、任意の情報)である。
Next, a calculation device and a calculation method according to an embodiment of the present invention will be described with reference to the drawings. The embodiments described below are merely examples, and the embodiments to which the present invention is applied are not limited to the following embodiments.
In addition, in all the figures for explaining the embodiment, parts having the same functions are denoted by the same reference numerals, and repeated explanations will be omitted.
Furthermore, "based on XX" as used in the present application means "based on at least XX", and includes cases where it is based on another element in addition to XX. Furthermore, "based on XX" is not limited to the case where XX is used directly, but also includes the case where it is based on calculations and processing performed on XX. "XX" is an arbitrary element (for example, arbitrary information).
(実施形態)
[全体構成]
図1は、実施形態に係る演算装置を含む演算システムの構成図である。実施形態の演算システム1は、演算装置100と、一以上利用者Uにより使用される端末装置200とを備える。
演算装置100と、端末装置200とは、ネットワークNWを介して互いに通信可能である。ネットワークNWは、インターネット、WAN(Wide Area Network)、LAN(Local Area Network)、公衆回線、プロバイダ装置、専用回線、無線基地局などを含む。
(Embodiment)
[overall structure]
FIG. 1 is a configuration diagram of a calculation system including a calculation device according to an embodiment. The
The
ユーザーUが、端末装置200に対して、演算装置100と接続する操作を行うことによって、端末装置200は、ネットワークNWを介して、演算装置100に接続する。端末装置200は、演算装置100が提供する演算サービスウェブサイトへアクセスする。
ユーザーUは、演算サービスウェブサイトの表示にしたがって、端末装置200に対して、複数の入力値を入力する操作を行う。
端末装置200は、ユーザーUが入力した複数の入力値を取得し、取得した複数の入力値を含み、演算装置100を宛先とする演算要求を作成する。端末装置200は、作成した演算要求を、演算装置100へ送信する。
When the user U performs an operation on the
User U performs an operation to input a plurality of input values into
The
演算装置100は、端末装置200が送信した演算要求を受信する。演算装置100は、受信した演算要求に含まれる複数の入力値の各々を受け付ける。演算装置100は、受け付けた複数の入力値の各々の最上位ビット(MSB:Most significant Bit)から、一又は複数の桁数に該当する値を取得する。ここで、最上位ビットからの一又は複数の桁数は、演算結果に許容される誤差に基づいて、予め設定されている。
演算装置100は、取得した一又は複数の桁数に該当する値のうち、最上位ビットから、一又は複数の桁数に該当する値まで、複数の入力値の各々の加算を、シリアル転送のビット数Kに基づいて、最上位ビットからKビット(Kは、K>0の整数)毎に行う。つまり、最上位ビットから、一又は複数の桁数より下位のビットは零として扱われる。演算装置100は、演算結果を、加算時の遅延クロック数Lに基づいて、L(Lは、L>0の整数)クロック後から、Kビット毎に出力する。例えば、演算装置100は、演算結果を、最上位ビットから、Kビット毎に出力する。演算装置100は、演算結果を含み、端末装置200を宛先とする演算応答を作成し、作成した演算応答を、端末装置200へ送信する。
端末装置200は、演算装置100が送信した演算応答を受信し、受信した演算応答に含まれる演算結果を取得する。端末装置200は、取得した演算結果を出力する。
以下、演算システム1に含まれる演算装置100と、端末装置200とについて順次説明する。
The
The
The
Hereinafter, the
[演算装置100]
演算システム1に含まれる演算装置100は、パーソナルコンピュータ、サーバー、又は産業用コンピュータ等の装置によって実現される。演算装置100は、例えば、通信部110と、受付部120と、演算部130と、出力部140と、記憶部150とを備える。
通信部110は、通信モジュールによって実現される。具体的には、通信部110は、有線通信を行うデバイスによって構成される。また、通信部110は、LTE、無線LAN等の無線通信技術で無線通信を行う無線デバイスによって構成されてもよい。通信部110は、ネットワークNWを介して、端末装置200との間で通信する。
具体的には、通信部110は、端末装置200が送信した演算要求を受信する。通信部110は、出力部140が出力した演算応答を取得し、取得した演算応答を、端末装置200へ送信する。
[Arithmetic device 100]
The
The
Specifically, the
記憶部150は、HDD(Hard Disk Drive)やフラッシュメモリ、RAM(Random Access Memory)、ROM(Read Only Memory)などにより実現される。記憶部150は、演算桁数情報152が記憶される。演算桁数情報152は、演算装置100が、演算に使用する桁数を示す情報であり、入力値の最上位ビットからの桁数に該当する値が記憶される。演算桁数情報152は、演算結果に許容される誤差に基づいて、予め設定される。演算結果に許容される誤差が小さくなるほど、演算結果に要求される精度が高くなるため、演算桁数情報152の値は大きくなり、演算結果に許容される誤差が大きくなるほど、演算結果に要求される精度が小さくなるため、演算桁数情報152の値は小さくなる。
The
受付部120、演算部130、および出力部140は、例えば、CPU(Central Processing Unit)などのハードウェアプロセッサが記憶部150に格納されたプログラム(ソフトウェア)を実行することにより実現される。また、これらの機能部のうち一部または全部は、LSI(Large Scale Integration)やASIC(Application Specific Integrated Circuit)、FPGA(Field-Programmable Gate Array)、GPU(Graphics Processing Unit)などのハードウェア(回路部;circuitryを含む)によって実現されてもよいし、ソフトウェアとハードウェアの協働によって実現されてもよい。
プログラムは、予めHDD(Hard Disk Drive)やフラッシュメモリなどの記憶装置(非一過性の記憶媒体を備える記憶装置)に格納されていてもよいし、DVDやCD-ROMなどの着脱可能な記憶媒体(非一過性の記憶媒体)に格納されており、記憶媒体がドライブ装置に装着されることでインストールされてもよい。
The
The program may be stored in advance in a storage device (a storage device with a non-transitory storage medium) such as an HDD (Hard Disk Drive) or flash memory, or may be stored in a removable storage device such as a DVD or CD-ROM. It is stored in a medium (non-transitory storage medium), and may be installed by loading the storage medium into a drive device.
受付部120は、通信部110が受信した演算要求に含まれる複数の入力値を受け付ける。受付部120が受け付けた複数の入力値は、演算部130へ出力される。ここで、受付部120は、受け付けた複数の入力値の各々の桁数が異なる場合には、桁合わせを行う。受付部120は、複数の入力値の各々を、シリアル転送のビットKに基づいて、最上位ビットからKビット毎に、演算部130へ出力する。ここで、シリアル転送のビットKは、予め設定されている。
演算部130は、受付部120が受け付けた複数の入力値の各々を、最上位ビットからKビット毎に取得する。演算部130は、記憶部150に記憶されている演算桁数情報152を取得し、取得した演算桁数情報152に基づいて、取得した複数の入力値の各々の最上位ビットから、演算桁数情報152によって示される一又は複数の桁数に該当する値まで、最上位ビットからKビット毎に取得する。
演算部130は、取得した一又は複数の桁数に該当する値のうち、最上位ビットから、一又は複数の桁数に該当する値まで、複数の入力値の各々の加算を行う。演算部130は、最上位ビットから、一又は複数の桁数に該当する値まで、複数の入力値の各々の加算を行った結果を、最上位ビットからKビット毎に出力部140へ出力する。演算部130は、最上位ビットから、一又は複数の桁数に該当する値より下位ビットは0として処理してもよい。
The
The
The
出力部140は、演算部130による演算結果を、加算時の遅延クロック数Lに基づいて、L(Lは、L>0の整数)クロック後から、Kビット毎に出力する。ここで、加算時の遅延クロック数Lは、予め設定されている。また、出力部140は、演算結果を含み、端末装置200を宛先とする演算応答を作成し、作成した演算応答を、通信部110へ出力する。
The output unit 140 outputs the calculation result by the
図2は、実施形態に係る演算装置が実行する演算方法を説明するための図である。ここでは、一例として、シリアル転送のビットKが1、加算時の遅延クロック数Lが1である場合について説明する。
図2において、(a)は従来の演算方法を示し、(b)は本実施形態に係る演算装置100による演算方法を示す。また、図2においては、一例として、入力Aが「a7a6a5a4a3a2a1a0」であり、入力Bが「b7b6b5b4b3b2b1b0」である場合に、入力Aと入力Bとを加算する場合について説明する。ここで、「a7」、「a6」、「a5」、「a4」、「a3」、「a2」、「a1」、「a0」と、「b7」、「b6」、「b5」、「b4」、「b3」、「b2」、「b1」、「b0」との各々は、入力値を示しており、「a7」と「b7」とが最上位ビットであり、「a0」と「b0」とが最下位ビット(LSB:Least significant Bit)である。
FIG. 2 is a diagram for explaining a calculation method executed by the calculation device according to the embodiment. Here, as an example, a case will be described in which the serial transfer bit K is 1 and the number of delay clocks L during addition is 1.
In FIG. 2, (a) shows a conventional calculation method, and (b) shows a calculation method by the
図2の(a)に示される従来の演算方法によれば、入力Aと入力Bとが最下位ビットである「a0」、「b0」から最上位ビットである「a7」、「b7」まで、順次加算される。入力Aの最下位ビットである「a0」と入力Bの最下位ビットである「b0」とが入力されてから1クロック後に、入力Aの最下位ビットである「a0」と入力Bの最下位ビットである「a0」との加算結果「c0」が出力される。演算結果は、入力Aの最上位ビットである「a7」と入力Bの最上位ビットである「b7」とが入力されてから2クロック後に出力される。つまり、従来の演算方法では、最上位ビットまで演算しないと、演算結果を確定できない。 According to the conventional calculation method shown in FIG. , are added sequentially. One clock after "a0", the least significant bit of input A, and "b0", the least significant bit of input B, are input, "a0", the least significant bit of input A, and "b0", the least significant bit of input B, are input. The addition result "c0" with the bit "a0" is output. The calculation result is output two clocks after "a7" which is the most significant bit of input A and "b7" which is the most significant bit of input B are input. In other words, in the conventional calculation method, the calculation result cannot be determined unless the most significant bit is calculated.
図2の(b)に示される本実施形態に係る演算装置100による演算方法によれば、入力Aと入力Bとが最上位ビットである「a7」と「b7」とから、順次加算される。入力Aの最上位ビットである「a7」と入力Bの最上位ビットである「b7」とが入力されてから1クロック後に、入力Aの最上位ビットである「a7」と入力Bの最上位ビットである「b7」との加算結果「c8」が出力される。つまり、演算結果の出力が開始されるタイミングは、従来の演算方法と同じである。
演算結果は、入力Aの最下位ビットである「a0」と入力Bの最下位ビットである「b0」とが入力されてから2クロック後に出力される。下位ビットが出力されることによって、下位ビットが出力される前と比較して、演算精度が上がっていく。つまり、本実施形態に係る演算装置100による演算方法では、最上位ビットから演算結果が出力されるため、最下位ビットまで演算することなく、演算結果の概略を得ることができる。
According to the calculation method performed by the
The operation result is output two clocks after "a0" which is the least significant bit of input A and "b0" which is the least significant bit of input B are input. By outputting the lower bits, the calculation accuracy increases compared to before the lower bits are output. That is, in the calculation method by the
演算処理の一例として、10進数で表した146と、150とを加算する場合について説明する。
10進数で表した146、及び150は、それそれ、2進数で表した場合に、(10010010)2、及び(10010110)2である。10進数で表した146と、150とを加算する場合には、10進数で表した296(2進数で表した場合には(100101000)2)が正確な演算結果である。
従来の演算方法によれば、シリアル加算器を使用した場合には、最下位ビットから、演算処理が行われるので、(□□□□0010)2と(□□□□0110)2(□は、演算に使用されていないビット)との加算が行われ、演算結果として、(□□□□1000)2が得られる。これは、10進数で表した場合には8であり、正確な演算結果から、かけ離れた値になる。
さらに、4ビットの演算が行われた場合には、(10010010)2のうち、最上位ビットから4ビットと(10010110)2のうち、最上位ビットから4ビットとの加算が行われ、演算結果として、(100101000)2が得られる。これは、10進数で表した場合には296であり、正確な演算結果となる。つまり、従来の演算方法では、最上位ビットまで計算することで、正確な演算結果を得ることができる。
As an example of arithmetic processing, a case will be described in which 146 and 150 expressed in decimal numbers are added.
146 and 150 expressed as decimal numbers are (10010010) 2 and (10010110) 2 when expressed as binary numbers, respectively. When adding 146 expressed as a decimal number and 150, the correct calculation result is 296 expressed as a decimal number ((100101000) 2 when expressed as a binary number).
According to the conventional arithmetic method, when a serial adder is used, arithmetic processing is performed starting from the least significant bit, so (□□□□0010) 2 and (□□□□0110) 2 (□ is , bits not used in the operation), and (□□□□1000) 2 is obtained as the result of the operation. This is 8 when expressed in decimal notation, which is a value far from an accurate calculation result.
Furthermore, when a 4-bit operation is performed, the 4 most significant bits of (10010010) 2 are added to the 4 most significant bits of (10010110) 2 , and the operation result is , (100101000) 2 is obtained. This is 296 when expressed in decimal notation, which is an accurate calculation result. In other words, in the conventional calculation method, accurate calculation results can be obtained by calculating up to the most significant bit.
実施形態に係る演算装置の演算方法について、一例として、演算桁数情報152に4が設定されることによって、最上位ビットから、4ビットに該当する値が取得される場合について説明する。ここでは、一例として、シリアル転送のビットKが1、加算時の遅延クロック数Lが1である場合について説明する。この場合、最上位ビットから、1ビット毎に演算処理が行われるので、(1001□□□□)2と(1001□□□□)2との加算が行われ、演算結果として、(10010□□□□)2が得られる。これは、10進数で表した場合には288であり、従来の演算方法よりも、正確な演算結果に近い値となる。
さらに、4ビットの演算が行われた場合には、(10010010)2のうち、最下位ビットから4ビットと(10010110)2のうち、最下位ビットから4ビットとの加算が行われ、演算結果として、(100101100)2が得られる。これは、10進数で表した場合には300であり、正確な演算結果に対して誤差を含んだ結果となる。
Regarding the calculation method of the calculation device according to the embodiment, a case where 4 is set in the calculation
Furthermore, when a 4-bit operation is performed, the 4 bits from the least significant bit of (10010010) 2 are added to the 4 bits from the least significant bit of (10010110) 2 , and the operation result is , (100101100) 2 is obtained. This is 300 when expressed as a decimal number, and the result contains an error compared to an accurate calculation result.
以上から、従来の演算方法として、シリアル加算器を使用した場合には、下位ビットから演算を行うので、演算の途中では、正確な演算結果に対して小さな値が得られる。本実施形態に係る演算装置の演算方法を使用した場合には、上位ビットから演算を行うので、演算の途中でも、正確な演算結果に対して、従来の演算方法と比較して、近い値を得ることができる。図1に戻り、説明を続ける。 From the above, when a serial adder is used as a conventional calculation method, since the calculation is performed from the lower bits, a small value can be obtained in the middle of the calculation compared to an accurate calculation result. When using the arithmetic method of the arithmetic device according to this embodiment, since the arithmetic operation is performed from the upper bits, even in the middle of the arithmetic operation, the accurate arithmetic result can be calculated with a value that is closer to that of the conventional arithmetic method. Obtainable. Returning to FIG. 1, the explanation will be continued.
[端末装置]
端末装置200は、例えば、スマートフォンやタブレット端末、パーソナルコンピュータなどである。端末装置200では、演算システムを利用するためのアプリケーションプログラム、或いはブラウザなどが起動し、前述したサービスをサポートする。端末装置200の一例はスマートフォンであり、アプリケーションプログラム(演算処理アプリ)が起動していることを前提とする。
演算処理アプリは、利用者Uの操作に応じて演算装置100と通信し、演算装置100が提供する演算サービスウェブサイトへアクセスする。端末装置200は、演算装置100へ演算要求を送信し、演算装置100から受信した演算応答に基づく処理を行う。
[Terminal device]
The
The arithmetic processing application communicates with the
(演算システムの動作)
図3は、実施形態に係る演算システムの動作の一例を示すシーケンスチャートである。
図3に示される例では、ユーザーUが、端末装置200を操作することによって、端末装置200は、演算装置100と接続し、演算装置100が提供している演算サービスウェブサイトにアクセスしていることを前提とする。
(ステップS1)
ユーザーUが、端末装置200に対して、複数の入力値を入力する操作を行うことによって、端末装置200は、入力された複数の入力値を含み、演算装置100を宛先とする演算要求を作成する。
(ステップS2)
端末装置200は、作成した演算要求を、演算装置100へ送信する。
(ステップS3)
演算装置100において、通信部110は、端末装置200が送信した演算要求を受信する。
(ステップS4)
演算装置100において、受付部120は、通信部110が受信した演算要求を取得し、取得した演算要求に含まれる複数の入力値を受け付ける。受付部120は、必要に応じて、複数の入力値の各々の桁合わせを行う。受付部120は、複数の入力値の各々を、シリアル転送のビットKに基づいて、最上位ビットからKビット毎に、演算部130へ出力する。
(Operation of calculation system)
FIG. 3 is a sequence chart showing an example of the operation of the calculation system according to the embodiment.
In the example shown in FIG. 3, when the user U operates the
(Step S1)
When the user U performs an operation to input a plurality of input values to the
(Step S2)
The
(Step S3)
In the
(Step S4)
In the
(ステップS5)
演算装置100において、演算部130は、受付部120が受け付けた複数の入力値の各々を、最上位ビットからKビット毎に取得する。演算部130は、記憶部150の演算桁数情報152を取得する。演算部130は、取得した演算桁数情報152に基づいて、取得した複数の入力値の各々の最上位ビットから、一又は複数の桁数に該当する値まで、最上位ビットからKビット毎に取得する。
(ステップS6)
演算装置100において、演算部130は、取得した一又は複数の桁数に該当する値のうち、最上位ビットから、一又は複数の桁数に該当する値まで、複数の入力値の各々の加算を行う。演算部130は、最上位ビットから、一又は複数の桁数に該当する値まで、複数の入力値の各々の加算を行った結果を、最上位ビットからKビット毎に出力部140へ出力する。出力部140は、演算部130による演算結果を、加算時の遅延クロック数Lに基づいて、Lクロック後から、Kビット毎に最上位ビットから出力する。
(ステップS7)
演算装置100において、出力部140は、演算結果を含み、端末装置200を宛先とする演算応答を作成し、作成した演算応答を、通信部110へ出力する。
(ステップS8)
演算装置100において、通信部110は、出力部140が出力した演算応答を取得し、取得した演算結果を、端末装置200へ送信する。
その後、端末装置200は、演算装置100が送信した演算応答を受信し、受信した演算応答に含まれる演算結果を取得する。端末装置200は、取得した演算結果を出力する。
(Step S5)
In the
(Step S6)
In the
(Step S7)
In the
(Step S8)
In the
Thereafter, the
実施形態に係る演算装置の演算方法と、従来の演算方法との比較を行った結果について説明する。
図4は、従来の演算方法の一例を示す図である。図4(a)と図4(b)とはパラレルの概略加算器の一例を示し、図4(c)はシリアル加算器の一例を示す。
図4(a)は、ESA(Equal Segmentation Adder)を示す。
図4(a)に示される例では、ESAは、bn-1からbn-kとan-1からan-kとが入力されることによってSn-1からSn-kを出力するk-bit Adderと、bn-k-1からbn-2kとan-kからan-2kとが入力されることによってSn-k-1からSn-2kを出力するk-bit Adderと、・・・、bk-1からb0とak-1からa0とが入力されることによってSk-1からS0を出力するk-bit Adderとを備える。ESAは、クリティカルパスになるキャリーの伝搬を切って、セグメント化することで正確性を犠牲にしても高速化を実現する加算器である。
The results of a comparison between the calculation method of the calculation device according to the embodiment and the conventional calculation method will be described.
FIG. 4 is a diagram showing an example of a conventional calculation method. 4(a) and 4(b) show an example of a parallel general adder, and FIG. 4(c) shows an example of a serial adder.
FIG. 4(a) shows an ESA (Equal Segmentation Adder).
In the example shown in FIG. 4(a), the ESA changes S n-1 to S n-k by inputting b n-1 to b n-k and a n -1 to a n -k. S n-2k is output from S n - k-1 by inputting the k-bit Adder to be output, b n-2k from b n-k-1 and a n-2k from a n- k. It includes a k-bit Adder, and a k-bit Adder that outputs
図4(b)は、LOA(Lower-part-OR Adder)を示す。
図4(b)に示される例では、LOAは、bn-1からbkとan-1からakとが入力されることによってSn-1からSkを出力する(n-k)-bit Adderと、bk-1からb0とak-1からa0とが入力されることによってSk-1からS0を出力するk-bit ORとを備える。LOAは、加算結果の下位ビットの方は全体の誤差に対して影響度が低いことを利用して、下位ビットの方を加算の代わりにORゲートにする。
このようにすることで、ESAと同じ効果を得る。ESAとLOAとは、どちらも精度と演算速度とのトレードオフを諮る方式である。ESAと、LOAとの両方に対して、実施形態に係る演算装置の演算方法は、シリアル演算で、概略計算を行う点で異なる。
FIG. 4(b) shows LOA (Lower-part-OR Adder).
In the example shown in FIG. 4(b), the LOA outputs S k from S n-1 by inputting b k from b n-1 and a k from a n -1 (n- k )-bit Adder, and a k-bit OR that outputs S 0 from S k -1 by inputting b 0 from b k -1 and a 0 from a k-1. LOA utilizes the fact that the lower bits of the addition result have a lower influence on the overall error, and uses an OR gate instead of addition for the lower bits.
By doing so, the same effect as ESA can be obtained. Both ESA and LOA are methods that consider the trade-off between accuracy and calculation speed. The calculation method of the calculation device according to the embodiment differs from both ESA and LOA in that it performs rough calculations using serial calculations.
図4(c)に示すシリアル加算器は、前述したように、下位ビットから入力し、下位ビットから出力する。
図4(c)に示される例では、シリアル加算器は、ai(i=0...n)が入力されるフリップフロップ(FF:flip-flop)と、biが入力されるフリップフロップと、aiが入力されるフリップフロップの出力と、biが入力されるフリップフロップの出力とが入力されるFull Adderとを備える。さらに、シリアル加算器は、Full Adderの出力が入力される2個のフリップフロップを備える。2個のフリップフロップの各々の出力うち、一方の出力は、Siとされ、もう一方の出力は、Full Adderへ入力される。
図4(c)に示されるシリアル加算器による演算過程では、上位ビットがわからない。このため、図4(c)に示されるシリアル加算器では、全てのビットが出力されるまで、最終的な加算結果がわからない。これに対して、実施形態に係る演算装置は、上位ビットから演算を行い、最初のビットを出力することによって、演算結果の概略値を出力できる。さらに、誤差を含むが、出力されるビット数が増加するにしたがって、演算結果が、正確な演算結果に近づいていく。
As described above, the serial adder shown in FIG. 4C receives input from the lower bits and outputs from the lower bits.
In the example shown in FIG. 4(c), the serial adder includes a flip-flop (FF: flip-flop) to which a i (i=0...n) is input, and a flip-flop to which b i is input. and a Full Adder to which the output of the flip-flop to which a i is input and the output of the flip-flop to which b i is input are input. Further, the serial adder includes two flip-flops to which the output of the Full Adder is input. Among the outputs of each of the two flip-flops, one output is Si, and the other output is input to the Full Adder.
In the calculation process by the serial adder shown in FIG. 4(c), the upper bits are not known. Therefore, in the serial adder shown in FIG. 4(c), the final addition result cannot be known until all bits are output. In contrast, the arithmetic device according to the embodiment can output an approximate value of the arithmetic result by performing the arithmetic operation from the upper bits and outputting the first bit. Furthermore, as the number of output bits increases, the calculation result approaches the correct calculation result, although it includes an error.
前述したパラレルの概略加算器、シリアル加算器、及び実施形態の演算方法について、演算時間の比較を行った。一例として、式(1)を求めるために、a1からaN(Nは、N>0の整数)までの総和を導出するアプリケーションを使用して、演算時間の比較を行った。 Comparisons were made regarding the computation time of the parallel general adder, serial adder, and the computation method of the embodiment described above. As an example, in order to obtain Equation (1), calculation times were compared using an application that derives the sum from a 1 to a N (N is an integer where N>0).
図5は、実施形態に係る演算装置の演算方法と、従来の演算方法とを比較結果の例1を示す図である。図5は、演算時間の比較に使用した加算器の構成の一例を示す。図5には、一例として、a0からa15の総和を導出する場合について示される。図5に示すように、入力a0から入力a15の16個の総和が、ツリー状の構成した16個の加算器を使用して、導出される。
図6は、実施形態に係る演算装置の演算方法と、従来の演算方法との比較結果の例2を示す図である。
図6では、一般化して、入力値のビット数をMとし、入力値の数をNとして、総和を導出したときの演算時間を算出した。図6では、一例として、Mを、8、16、32、64とし、Nを、16、32、64、128とした場合について示す。また、演算時間は、クロック数で表した。
図6によれは、シリアル加算器を使用した場合には、M+2log2Nクロックで演算が完了する。パラレル加算器を使用した場合には、仮に、格段の計算は1クロックで計算できるとした場合に、M+log2Nクロックで演算が完了する。これらに対して、実施形態に係る演算装置の演算方法によれば、演算結果の最初のビットが出力されるまで、最短で、log2Nクロックである。また、実施形態に係る演算装置の演算方法によれば、M+2log2Nクロックで演算が完了する。
以上から、本実施形態に係る演算装置の演算方法では、前述した従来の演算方法と比較して、少ないクロック数で概算計算を実行できる。
FIG. 5 is a diagram showing an example 1 of comparison results between the calculation method of the calculation device according to the embodiment and the conventional calculation method. FIG. 5 shows an example of the configuration of an adder used for comparison of calculation times. FIG. 5 shows, as an example, the case where the sum of a 15 is derived from a 0 . As shown in FIG. 5, 16 sums of inputs a 0 to a 15 are derived using 16 adders arranged in a tree shape.
FIG. 6 is a diagram showing example 2 of comparison results between the calculation method of the calculation device according to the embodiment and the conventional calculation method.
In FIG. 6, in general, the number of bits of the input value is set to M, the number of input values is set to N, and the calculation time when deriving the sum is calculated. In FIG. 6, as an example, M is set to 8, 16, 32, and 64, and N is set to 16, 32, 64, and 128. Furthermore, the calculation time was expressed in terms of the number of clocks.
According to FIG. 6, when a serial adder is used, the calculation is completed in M+2log 2 N clocks. When a parallel adder is used, assuming that a significant calculation can be performed in one clock, the calculation is completed in M+log 2 N clocks. On the other hand, according to the calculation method of the calculation device according to the embodiment, it takes at least log 2 N clocks until the first bit of the calculation result is output. Further, according to the calculation method of the calculation device according to the embodiment, the calculation is completed in M+2log 2 N clocks.
As described above, the calculation method of the calculation device according to the present embodiment allows approximate calculation to be performed with a smaller number of clocks than the conventional calculation method described above.
次に、本実施形態に係る演算装置が出力する演算結果の絶対誤差について検討を行った。
図7は、本実施形態に係る演算装置による演算結果の絶対誤差の一例を示す図である。図7において、横軸は絶対誤差値であり、縦軸は度数である。図7に示される例では、入力値の数を2個とし、2個の入力値の各々を、8ビットとした。2進数で表される8ビットの入力値は、0から255までの数を表現できるため、2個の入力値の加算結果は、0から510の範囲に含まれる。図7は、絶対誤差値が0から510の各々について、いくつ出現したかを示す数である度数をグラフ化した。
図7によれば、絶対誤差値が0の場合は度数が1800個程度であり、絶対誤差値が大きくなるにしたがって、度数が小さくなる。絶対誤差値が128より大きくなった場合は、度数が0となる。本実施形態に係る演算装置による演算方法によれば、絶対誤差値は、128以下に分布していることが分かる。このため、入力値の数を2個とし、2個の入力値の各々を、8ビットとし、絶対誤差値が128以下であることを許容できる場合には、本実施形態に係る演算装置による演算方法を使用しても問題ないことが分かる。
Next, we examined the absolute error of the calculation results output by the calculation device according to this embodiment.
FIG. 7 is a diagram showing an example of the absolute error of the calculation result by the calculation device according to the present embodiment. In FIG. 7, the horizontal axis is the absolute error value, and the vertical axis is the frequency. In the example shown in FIG. 7, the number of input values is two, and each of the two input values is 8 bits. Since an 8-bit input value expressed as a binary number can represent a number from 0 to 255, the result of addition of two input values is included in the range from 0 to 510. FIG. 7 is a graph of the frequency, which is a number indicating how many absolute error values appear for each of the absolute error values from 0 to 510.
According to FIG. 7, when the absolute error value is 0, the frequency is about 1800, and as the absolute error value increases, the frequency decreases. If the absolute error value becomes greater than 128, the frequency becomes 0. According to the calculation method by the calculation device according to the present embodiment, it can be seen that the absolute error values are distributed within 128. Therefore, when the number of input values is two, each of the two input values is 8 bits, and the absolute error value is allowed to be 128 or less, the calculation by the arithmetic device according to the present embodiment is It turns out that there is no problem using this method.
前述した実施形態では、ハードウェアプロセッサが記憶部150に格納されたプログラム(ソフトウェア)を実行することにより、演算部130が、演算結果を導出する場合について説明したが、この例に限られない。例えば、演算部130をハードウェアで構成してもよい。
図8は、実施形態に係る演算装置の演算部の一例を示す図である。図8は、前述した演算部130を、ハードウェアによって構成した場合の一例を示す。
演算部130は、フリップフロップ11と、フリップフロップ12と、ORゲート13と、XORゲート14と、ANDゲート15と、マルチプレクサ16と、フリップフロップ17と、NOTゲート18と、フリップフロップ19とを含んで構成される。
In the embodiment described above, a case has been described in which the
FIG. 8 is a diagram illustrating an example of a calculation unit of the calculation device according to the embodiment. FIG. 8 shows an example of the above-described
The
入力ai(i=n・・・0)は、最上位ビットから、Kビット毎に、フリップフロップ11へ入力される。入力biは、最上位ビットから、Kビット毎に、フリップフロップ12へ入力される。
フリップフロップ11の出力は分岐され、一方はORゲート13へ入力され、他方はXORゲート14へ出力される。
フリップフロップ12の出力は分岐され、一方はORゲート13へ入力され、他方はXORゲート14へ出力される。
ORゲート13は、フリップフロップ11の出力と、フリップフロップ12の出力との論理和を導出し、論理和の導出結果を、ANDゲート15へ出力する。
XORゲート14は、フリップフロップ11の出力と、フリップフロップ12の出力との排他的論理和を導出し、排他的論理和の導出結果を、マルチプレクサ16へ出力する。
The input a i (i=n...0) is input to the flip-
The output of the flip-
The output of the flip-
The
The
マルチプレクサ16は、選択制御入力に基づいて、XORゲート14が出力した排他的論理和の導出結果と、「1」とのうちのいずれかを、フリップフロップ17へ出力する。フリップフロップ17の出力は分岐され、一方はマルチプレクサ16へ、選択制御入力として入力され、他方は、NOTゲート18へ出力される。
NOTゲート18は、フリップフロップ12の出力の論理否定を導出し、論理否定の導出結果を、ANDゲート15へ出力する。
ANDゲート15は、ORゲート13の出力と、NOTゲート18の出力との論理積を導出し、論理積の導出結果を、フリップフロップ19へ出力する。
フリップフロップ19は、演算結果Siを、Lクロック後から、Kビット毎に出力する。
The
The
The AND
The flip-
前述した実施形態では、端末装置200に演算要求を送信させることによって、演算装置100に演算を実行させる場合について説明したが、この例に限られない。例えば、複数の入力値を、演算装置100に直接入力してもよい。この場合、演算装置100は、入力された複数の入力値の各々を受け付け、受け付けた複数の入力値の各々を、シリアル転送のビットKに基づいて、最上位ビットからKビット毎に、一又は複数の桁数に該当する値まで取得する。演算装置100は、取得した複数の入力値の各々の一又は複数の桁数に該当する値のうち、最上位ビットからKビット毎に、一又は複数の桁数に該当する値まで、複数の入力値の各々の加算を行う。演算装置100は、例えば、演算結果を、加算時の遅延クロック数Lに基づいて、Lクロック後から、Kビット毎に最上位ビットから出力する。演算装置100は、演算結果を、表示装置(図示なし)に表示してもよい。
In the embodiment described above, a case has been described in which the
前述した実施形態では、シリアル転送のビットKが1、加算時の遅延クロック数Lが1である場合について説明したが、この例に限られない。演算部130は、シリアル転送のビットKに基づいて、最上位ビットからKビット(Kは、演算桁数情報152の値≧K>0の整数)毎に加算を行うようにしてもよい。この場合、出力部は、加算時の遅延クロック数Lに基づいて、L(Lは、L>複数の入力値の数)クロック後から、Kビット毎に最上位ビットから加算された結果を出力する。
このように構成することによって、桁上げなどを反映できるため、シリアル転送のビットKが1、加算時の遅延クロック数Lが1である場合よりも、正確な演算結果に近い値を得ることができる。
前述した実施形態では、シリアル転送のビットKと、加算時の遅延クロック数Lとが、演算装置100に設定されている場合について説明したが、この例に限られない。例えば、ユーザーUが、端末装置200に対して、シリアル転送のビットKと、加算時の遅延クロック数Lとを入力する操作を行うことによって、端末装置200は、入力されたシリアル転送のビットKを示す情報と、加算時の遅延クロック数Lを示す情報とを含み、演算装置100を宛先とする演算要求を作成するようにしてもよい。
前述した実施形態では、演算装置100において、演算部130が、シリアル転送のビットKに基づいて、取得した複数の入力値の各々を、一又は複数の桁数に該当する値のうち、最上位ビットから、Kビット毎に、一又は複数の桁数に該当する値まで、複数の入力値の各々の加算を行う。そして、出力部140が、加算時の遅延クロック数Lに基づいて、Lクロック後から、Kビット毎に出力する場合について説明したが、この例に限られない。例えば、演算部130は、最上位ビットから、Kビット毎の加算結果が、閾値以上である場合に、演算を中止してもよい。仮に、演算結果が、閾値以上であるか否かを判定する場合に、演算結果が閾値以上であることが判明した後に、演算を継続しても、その演算は不要であるためである。このように構成することによって、不要な演算を削減できる。
In the embodiment described above, a case has been described in which the serial transfer bit K is 1 and the number of delay clocks L during addition is 1, but the present invention is not limited to this example. The
With this configuration, carry etc. can be reflected, so it is possible to obtain a value closer to the accurate calculation result than when the serial transfer bit K is 1 and the number of delay clocks L during addition is 1. can.
In the embodiment described above, a case has been described in which the serial transfer bit K and the number of delay clocks L during addition are set in the
In the embodiment described above, in the
実施形態に係る演算装置によれば、演算装置100は、複数の入力値を受け付ける受付部120と、演算結果に許容される誤差に基づいて設定されている最上位ビットからの桁数に基づいて、複数の入力値の各々の最上位ビットから桁数まで、前記受付部が前記最上位ビットからKビット(Kは、K>0の整数)毎に出力した複数の入力値の各々の加算を、前記最上位ビットからKビット毎に行う演算部130と、演算部130による加算結果を、L(Lは、L>0の整数)クロック後から、Kビット毎に最上位ビットから出力する出力部140とを備える。
このように構成することによって、演算装置100は、複数のビットシリアルデータなどの入力値を、上位ビットからKビット毎に受け取り、入力値の全ビットを受け取る前に、Kビット毎に加算し、加算によって得られる演算結果を、Lクロック後から、Kビット毎に出力できるため、概略計算結果を出力できる。このとき,演算結果には誤差が含まれるが、本実施形態では,その誤差の範囲が確定できるため、許容誤差範囲であれば、短いレイテンシで結果を得ることができる。
また、桁上げなどを反映できるため、最上位ビットから1ビット毎に加算を行う場合よりも、正確な演算結果に近い値を得ることができる。
さらに、演算部130は、最上位ビットの加算結果が、閾値以上である場合に、加算を中止する。このように構成することによって、不要な演算を削減できる。
According to the arithmetic device according to the embodiment, the
With this configuration, the
Furthermore, since carry and the like can be reflected, a value closer to an accurate calculation result can be obtained than when addition is performed bit by bit starting from the most significant bit.
Further, the
実施形態に係る演算装置は、組合せ最適化問題を近似解法で解くハードウェア・アクセラレータ、人工知能、ニューラルネット・アクセラレータなどの大量のデータを処理するが計算精度はある程度誤差を含んでいても構わない分野へ応用できる。
特に、組合せ最適化問題の近似解法の一つであるシミュレーティッド・アニーリング(SA)、遺伝的アルゴリズム(GA)、粒子最適化法(PSO)などは大量の計算を実行するが、個々の計算の正確性はさほど結果に影響しない。したがって、この様な汎用的な解法に適用することによって、応用範囲をさらに拡大できる。同様に、ディープニューラルネットワークの処理を、特にスパイキング・ニューラルネットワークのような構造に応用することによって小型化・低消費電力化を図ることができる。
The arithmetic device according to the embodiment processes a large amount of data, such as a hardware accelerator, artificial intelligence, or neural network accelerator that solves a combinatorial optimization problem using an approximate solution method, but the calculation accuracy may include some error. Can be applied to various fields.
In particular, simulated annealing (SA), genetic algorithm (GA), particle optimization method (PSO), etc., which are approximate solutions for combinatorial optimization problems, perform a large amount of calculations, but each Accuracy does not significantly affect the results. Therefore, by applying such a general solution method, the range of application can be further expanded. Similarly, by applying deep neural network processing, especially to structures such as spiking neural networks, it is possible to achieve miniaturization and lower power consumption.
(実施形態の変形例)
[全体構成]
図9は、実施形態の変形例に係る演算装置を含む演算システムの構成図である。実施形態の変形例の演算システム1aは、演算装置100aと、一以上利用者Uにより使用される端末装置200とを備える。
演算装置100aと、端末装置200とは、ネットワークNWを介して互いに通信可能である。
(Modified example of embodiment)
[overall structure]
FIG. 9 is a configuration diagram of a calculation system including a calculation device according to a modification of the embodiment. A computing system 1a according to a modification of the embodiment includes a
The
ユーザーUが、端末装置200に対して、演算装置100aと接続する操作を行うことによって、端末装置200は、ネットワークNWを介して、演算装置100aに接続する。端末装置200は、演算装置100aが提供する演算サービスウェブサイトへアクセスする。
ユーザーUは、演算サービスウェブサイトの表示にしたがって、端末装置200に対して、複数の入力値に加え、誤差情報を入力する操作を行う。
端末装置200は、ユーザーUが入力した複数の入力値と誤差情報とを取得し、取得した複数の入力値と誤差情報とを含み、演算装置100aを宛先とする演算要求を作成する。端末装置200は、作成した演算要求を、演算装置100aへ送信する。
When the user U performs an operation on the
The user U performs an operation on the
The
演算装置100aは、端末装置200が送信した演算要求を受信する。演算装置100は、受信した演算要求に含まれる複数の入力値の各々と、誤差情報とを受け付ける。演算装置100aは、受け付けた誤差情報に関連付けて記憶されている桁数を示す情報を取得し、取得した桁数を示す情報を設定する。演算装置100aは、設定した桁数を示す情報に基づいて、複数の入力値の各々の最上位ビットから、桁数に該当する値を取得する。演算装置100aは、取得した一又は複数の桁数に該当する値のうち、最上位ビットから、桁数に該当する値まで、複数の入力値の各々の加算を、シリアル転送のビット数Kに基づいて、最上位ビットからKビット(Kは、K>0の整数)毎に行う。つまり、最上位ビットから、桁数より下位のビットは零として扱われる。演算装置100aは、演算結果を、加算時の遅延クロック数Lに基づいて、L(Lは、L>0の整数)クロック後から、Kビット毎に出力する。例えば、演算装置100aは、演算結果を、最上位ビットから、Kビット毎に出力する。演算装置100aは、演算結果を含み、端末装置200を宛先とする演算応答を作成し、作成した演算応答を、端末装置200へ送信する。
端末装置200は、演算装置100aが送信した演算応答を受信し、受信した演算応答に含まれる演算結果を取得する。端末装置200は、取得した演算結果を出力する。
以下、演算システム1aに含まれる演算装置100aと、端末装置200とのうち、実施形態とは異なる演算装置100aについて説明する。
The
The
Hereinafter, among the
[演算装置100a]
演算システム1aに含まれる演算装置100aは、パーソナルコンピュータ、サーバー、又は産業用コンピュータ等の装置によって実現される。演算装置100aは、例えば、通信部110と、受付部120aと、演算部130aと、出力部140と、記憶部150と、設定部160とを備える。
記憶部150aは、HDDやフラッシュメモリ、RAM、ROMなどにより実現される。記憶部150aは、誤差情報桁数関連テーブル154が記憶される。
誤差情報桁数関連テーブル154は、誤差情報と、演算に使用する最上位ビットからの桁数を示す情報とを関連付けたテーブル形式の情報である。誤差情報桁数関連テーブル154には、誤差情報の値が小さくなるほど、演算に使用する最上位ビットからの桁数の値は大きくなり、誤差情報の値が小さくなるほど、演算桁数情報152の値は小さくなるように、誤差情報と、桁数を示す情報とが記憶される。誤差情報の値が小さくなるほど、演算結果に要求される精度が高くなり、誤差情報の値が大きくなるほど、演算結果に要求される精度が低くなるためである。
[
The
The
The error information digit number related table 154 is information in a table format that associates error information with information indicating the number of digits from the most significant bit used in calculations. In the error information digit number related table 154, the smaller the error information value, the larger the value of the number of digits from the most significant bit used for calculation, and the smaller the error information value, the larger the value of the calculation
受付部120a、演算部130a、出力部140、及び設定部160は、例えば、CPUなどのハードウェアプロセッサが記憶部150aに格納されたプログラム(ソフトウェア)を実行することにより実現される。また、これらの機能部のうち一部または全部は、LSIやASIC、FPGA、GPUなどのハードウェア(回路部;circuitryを含む)によって実現されてもよいし、ソフトウェアとハードウェアの協働によって実現されてもよい。
プログラムは、予めHDDやフラッシュメモリなどの記憶装置(非一過性の記憶媒体を備える記憶装置)に格納されていてもよいし、DVDやCD-ROMなどの着脱可能な記憶媒体(非一過性の記憶媒体)に格納されており、記憶媒体がドライブ装置に装着されることでインストールされてもよい。
The
The program may be stored in advance in a storage device such as an HDD or flash memory (storage device equipped with a non-transitory storage medium), or may be stored in a removable storage medium (non-transitory storage medium) such as a DVD or CD-ROM. The software may be installed by attaching the storage medium to a drive device.
受付部120aは、通信部110が受信した演算要求に含まれる複数の入力値と、誤差情報とを受け付ける。受付部120aが受け付けた複数の入力値は演算部130へ出力され、誤差情報は設定部160へ出力される。ここで、受付部120aは、受け付けた複数の入力値の各々の桁数が異なる場合には、桁合わせを行う。受付部120aは、複数の入力値の各々を、シリアル転送のビットKに基づいて、最上位ビットからKビット毎に、演算部130aへ出力する。ここで、シリアル転送のビットKは、予め設定されている。
設定部160は、受付部120aが受け付けた誤差情報を取得する。設定部160は、記憶部150aに記憶されている誤差情報桁数関連テーブル154から、取得した誤差情報に関連付けて記憶されている桁数を示す情報を取得し、取得した桁数を示す情報を設定する。
演算部130aは、受付部120aが受け付けた複数の入力値の各々を、最上位ビットからKビット毎に取得する。演算部130aは、設定部160が設定した桁数を示す情報を取得する。演算部130aは、取得した桁数を示す情報に基づいて、取得した複数の入力値の各々の最上位ビットから、桁数を示す情報に該当する値まで、最上位ビットからKビット毎に取得する。
演算部130aは、取得した一又は複数の桁数に該当する値のうち、最上位ビットから、桁数を示す情報に該当する値まで、複数の入力値の各々の加算を行う。演算部130aは、最上位ビットから、桁数に該当する値まで、複数の入力値の各々の加算を行った結果を、最上位ビットからKビット毎に出力部140へ出力する。演算部130aは、最上位ビットから、桁数を示す情報に該当する値より下位ビットは0として処理する。
The
The setting unit 160 acquires the error information received by the receiving
The
The
(演算システムの動作)
図10は、実施形態の変形例に係る演算システムの動作の一例を示すシーケンスチャートである。
図10に示される例では、ユーザーUが、端末装置200を操作することによって、端末装置200は、演算装置100aと接続し、演算装置100aが提供している演算サービスウェブサイトにアクセスしていることを前提とする。
(ステップS11)
ユーザーUが、端末装置200に対して、複数の入力値と、誤差情報とを入力する操作を行うことによって、端末装置200は、入力された複数の入力値と、誤差情報とを含み、演算装置100aを宛先とする演算要求を作成する。
(ステップS12)
端末装置200は、作成した演算要求を、演算装置100aへ送信する。
(ステップS13)
演算装置100aにおいて、通信部110は、端末装置200が送信した演算要求を受信する。
(ステップS14)
演算装置100aにおいて、受付部120aは、通信部110が受信した演算要求を取得し、取得した演算要求に含まれる複数の入力値と、誤差情報とを受け付ける。受付部120aは、必要に応じて、複数の入力値の各々の桁合わせを行う。受付部120aは、複数の入力値の各々を、シリアル転送のビットKに基づいて、最上位ビットからKビット毎に、演算部130aへ出力する。
(Operation of calculation system)
FIG. 10 is a sequence chart illustrating an example of the operation of the arithmetic system according to a modification of the embodiment.
In the example shown in FIG. 10, when the user U operates the
(Step S11)
When the user U performs an operation to input a plurality of input values and error information to the
(Step S12)
The
(Step S13)
In the
(Step S14)
In the
(ステップS15)
演算装置100aにおいて、設定部160は、受付部120aが受け付けた誤差情報を取得し、取得した誤差情報に関連付けて記憶されている桁数を示す情報を、記憶部150aの誤差情報桁数関連テーブル154から取得する。設定部160は、取得した桁数を示す情報を設定する。
(ステップS16)
演算装置100aにおいて、演算部130aは、受付部120が受け付けた複数の入力値の各々を、最上位ビットからKビット毎に取得する。演算部130aは、設定部160が設定した桁数を示す情報を取得する。演算部130aは、取得した桁数を示す情報に基づいて、取得した複数の入力値の各々の最上位ビットから、桁数を示す情報に該当する値まで、最上位ビットからKビット毎に取得する。
(ステップS17)
演算装置100aにおいて、演算部130aは、取得した桁数を示す情報に該当する値のうち、最上位ビットから、桁数を示す情報に該当する値まで、複数の入力値の各々の加算を行う。演算部130aは、最上位ビットから、桁数に該当する値まで、複数の入力値の各々の加算を行った結果を、最上位ビットからKビット毎に出力部140へ出力する。出力部140は、演算部130aによる演算結果を、加算時の遅延クロック数Lに基づいて、Lクロック後から、Kビット毎に最上位ビットから出力する。
(ステップS18)
演算装置100aにおいて、出力部140は、演算結果を含み、端末装置200を宛先とする演算応答を作成し、作成した演算応答を、通信部110へ出力する。
(ステップS19)
演算装置100aにおいて、通信部110は、出力部140が出力した演算応答を取得し、取得した演算結果を、端末装置200へ送信する。
その後、端末装置200は、演算装置100aが送信した演算応答を受信し、受信した演算応答に含まれる演算結果を取得する。端末装置200は、取得した演算結果を出力する。
(Step S15)
In the
(Step S16)
In the
(Step S17)
In the
(Step S18)
In the
(Step S19)
In the
Thereafter, the
前述した実施形態の変形例では、端末装置200に演算要求を送信させることによって、演算装置100aに演算を実行させる場合について説明したが、この例に限られない。例えば、複数の入力値と、誤差情報とを、演算装置100aに直接入力してもよい。この場合、演算装置100aは、入力された複数の入力値の各々と、誤差情報とを受け付け、受け付けた誤差情報に関連付けて記憶されている桁を示す情報を、記憶部150aの誤差情報桁数関連テーブル154から取得する。演算装置100aは、取得した桁を示す情報を設定する。演算装置100aは、複数の入力値の各々を、シリアル転送のビットKに基づいて、最上位ビットからKビット毎に、設定された桁数を示す情報に該当する値まで取得する。演算装置100aは、取得した複数の入力値の各々の桁数を示す情報に該当する値のうち、最上位ビットからKビット毎に、桁数を示す情報に該当する値まで、複数の入力値の各々の加算を行う。演算装置100aは、例えば、演算結果を、演算時の遅延クロック数Lに基づいて、Lクロック後から、Kビット毎に最上位ビットから出力する。演算装置100aは、演算結果を、表示装置(図示なし)に表示してもよい。
前述した実施形態の変形例では、シリアル転送のビットKが1、加算時の遅延クロック数Lが1である場合について説明したが、この例に限られない。演算部130aは、シリアル転送のビットKに基づいて、最上位ビットからKビット(Kは、桁数を示す情報の値≧K>0の整数)毎に加算を行うようにしてもよい。この場合、出力部は、加算時の遅延クロック数Lに基づいて、L(Lは、L>複数の入力値の数)クロック後から、Kビット毎に最上位ビットから加算された結果を出力する。
このように構成することによって、桁上げなどを反映できるため、シリアル転送のビットKが1、加算時の遅延クロック数Lが1である場合よりも、正確な演算結果に近い値を得ることができる。
前述した実施形態の変形例では、シリアル転送のビットKと、加算時の遅延クロック数Lとが、演算装置100aに設定されている場合について説明したが、この例に限られない。例えば、ユーザーUが、端末装置200に対して、シリアル転送のビットKと、加算時の遅延クロック数Lとを入力する操作を行うことによって、端末装置200は、入力されたシリアル転送のビットKを示す情報と、加算時の遅延クロック数Lを示す情報とを含み、演算装置100aを宛先とする演算要求を作成するようにしてもよい。
In the modification of the embodiment described above, a case has been described in which the
In the modification of the embodiment described above, a case has been described in which the serial transfer bit K is 1 and the number of delay clocks L during addition is 1, but the present invention is not limited to this example. The
With this configuration, carry etc. can be reflected, so it is possible to obtain a value closer to the accurate calculation result than when the serial transfer bit K is 1 and the number of delay clocks L during addition is 1. can.
In the modification of the embodiment described above, a case has been described in which the serial transfer bit K and the number of delay clocks L during addition are set in the
前述した実施形態の変形例では、演算装置100aにおいて、演算部130aが、シリアル転送のビットKに基づいて、取得した複数の入力値の各々を、桁数に該当する値のうち、最上位ビットから、Kビット毎に、一又は複数の桁数に該当する値まで、複数の入力値の各々の加算を行う。そして、出力部140が、加算時の遅延クロック数Lに基づいて、Lクロック後から、Kビット毎に出力する場合について説明したが、この例に限られない。例えば、演算部130aは、最上位ビットから、Kビット毎の加算結果が、閾値以上である場合に、演算を中止してもよい。仮に、演算結果が、閾値以上であるか否かを判定する場合に、演算結果が閾値以上であることが判明した後に、演算を継続しても、その演算は不要であるためである。このように構成することによって、不要な演算を削減できる。
前述した実施形態の変形例では、演算装置100aは、誤差情報を受け付け、受け付けた誤差情報に関連付けて記憶されている桁を示す情報を、記憶部150aの誤差情報桁数関連テーブル154から取得する場合について説明したが、この例に限られない。例えば、記憶部150aに、誤差情報から、桁数を導出する演算式を記憶してもよい。この場合、演算部130aは、演算式に基づいて桁数を導出して設定してもよい。
In the modification of the embodiment described above, in the
In the modification of the embodiment described above, the
実施形態の変形例に係る演算装置によれば、演算装置100aは、複数の入力値を受け付ける受付部120aと、演算結果に許容される誤差に基づいて設定されている最上位ビットからの桁数に基づいて、複数の入力値の各々の最上位ビットから桁数まで、受付部120aが最上位ビットからKビット(Kは、K>0の整数)毎に出力した複数の入力値の各々の加算を、最上位ビットからKビット毎に行う演算部130aと、演算部130aによる加算結果を、L(Lは、L>0の整数)クロック後から、Kビット毎に最上位ビットから出力する出力部140とを備える。
このように構成することによって、演算装置100aは、複数のビットシリアルデータなどの入力値を、上位ビットからKビット毎に受け取り、入力値の全ビットを受け取る前に、Kビット毎に加算し、加算によって得られる演算結果を、Lクロック後から、Kビット毎に出力できるため、概略計算結果を出力できる。このとき,演算結果には誤差が含まれるが、本実施形態では,その誤差の範囲が確定できるため、許容誤差範囲であれば、短いレイテンシで結果を得ることができる。
According to the arithmetic device according to the modification of the embodiment, the
With this configuration, the
さらに、受付部120aは、演算結果に要求される誤差情報を受け付け、演算装置100aは、受付部120aが受け付けた誤差情報に基づいて、加算に使用する複数の入力値の各々の最上位ビットからの桁数を設定する設定部160を備え、演算部130aは、設定部が設定した桁数に基づいて、受付部120aが、複数の入力値の各々の最上位ビットから設定部160が設定した桁数まで、最上位ビットからKビット毎に出力した複数の入力値の各々の加算を、最上位ビットからKビット毎に行う。
このように構成することによって、演算結果に要求される誤差情報に基づいて、加算に使用する複数の入力値の各々の最上位ビットからの桁数を設定できるため、演算の柔軟性を向上できる。
さらに、設定部160は、演算結果に要求される誤差情報と、複数の入力値の各々の最上位ビットからの桁数とを関連付けて記憶する記憶部150aから、受付部120aが受け付けた誤差情報に基づいて、複数の入力値の各々の最上位ビットからの桁数を取得する。
このように構成することによって、記憶部150aに記憶されている演算結果に要求される誤差情報と、複数の入力値の各々の最上位ビットからの桁数とを関連付けた情報から、受け付けた誤差情報に基づいて、複数の入力値の各々の最上位ビットからの桁数を取得できるため、演算によって、複数の入力値の各々の最上位ビットからの桁数を導出するよりも、処理を簡略化できる。
Furthermore, the
With this configuration, the number of digits from the most significant bit of each of the multiple input values used for addition can be set based on the error information required for the calculation result, which improves the flexibility of calculation. .
Further, the setting unit 160 stores the error information received by the
With this configuration, the received error is determined based on the information that associates the error information required for the calculation result stored in the
以上、本発明の実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更、組合わせを行うことができる。これら実施形態及びその変形例は、発明の範囲や要旨に含まれると同時に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
なお、前述の演算装置100、端末装置200、演算装置100aは内部にコンピュータを有している。そして、前述した各装置の各処理の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。ここでコンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、CD-ROM、DVD-ROM、半導体メモリなどをいう。また、このコンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該プログラムを実行するようにしてもよい。
また、上記プログラムは、前述した機能の一部を実現するためのものであってもよい。
さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。
Although the embodiments of the present invention have been described above, these embodiments are presented as examples and are not intended to limit the scope of the invention. These embodiments can be implemented in various other forms, and various omissions, substitutions, changes, and combinations can be made without departing from the gist of the invention. These embodiments and their modifications are included within the scope and gist of the invention, as well as within the scope of the invention described in the claims and its equivalents.
Note that the
Moreover, the above-mentioned program may be for realizing a part of the above-mentioned functions.
Furthermore, it may be a so-called difference file (difference program) that can realize the above-described functions in combination with a program already recorded in the computer system.
1、1a…演算システム、 11、12、17、19…フリップフロップ、13…ORゲート、14…XORゲート、15…ANDゲート、16…マルチプレクサ、18…NOTゲート、100、100a…演算装置、 110…通信部、 120、120a…受付部、 130,130a…演算部、 140…出力部、 150…記憶部、 160…設定部、 152…演算桁数情報、 154…誤差情報桁数関連テーブル、200…端末装置 1, 1a... Arithmetic system, 11, 12, 17, 19... Flip-flop, 13... OR gate, 14... XOR gate, 15... AND gate, 16... Multiplexer, 18... NOT gate, 100, 100a... Arithmetic device, 110 ...Communication section, 120, 120a...Reception section, 130, 130a...Calculation section, 140...Output section, 150...Storage section, 160...Setting section, 152...Calculation digit number information, 154...Error information digit number related table, 200 …terminal device
Claims (4)
前記受付部が受け付けた前記誤差情報に基づいて、加算に使用する複数の前記入力値の各々の最上位ビットからの桁数を設定する設定部と、
前記設定部が設定した最上位ビットからの前記桁数に基づいて、複数の前記入力値の各々の最上位ビットから前記設定部が設定した前記桁数まで、前記受付部が前記最上位ビットからKビット(Kは、K>0の整数)毎に出力した複数の前記入力値の各々の加算を、前記最上位ビットからKビット毎に行う演算部と、
前記演算部による加算結果を、L(Lは、L>0の整数)クロック後から、Kビット毎に最上位ビットから出力する出力部と
を備える演算装置。 a reception unit that accepts error information required for multiple input values and calculation results ;
a setting unit that sets the number of digits from the most significant bit of each of the plurality of input values used for addition, based on the error information received by the reception unit;
Based on the number of digits from the most significant bit set by the setting unit , the reception unit calculates the number of digits from the most significant bit from the most significant bit of each of the plurality of input values to the number of digits set by the setting unit. an arithmetic unit that adds each of the plurality of input values outputted every K bits (K is an integer where K>0) every K bits from the most significant bit;
An arithmetic device comprising: an output section that outputs the addition result by the arithmetic section from the most significant bit every K bits after L (L is an integer where L>0) clocks.
前記受け付けるステップで受け付けた前記誤差情報に基づいて、加算に使用する複数の前記入力値の各々の最上位ビットからの桁数を設定するステップと、
前記設定するステップで設定した最上位ビットからの前記桁数に基づいて、複数の前記入力値の各々の最上位ビットから前記設定するステップで設定した前記桁数まで、前記最上位ビットからKビット(Kは、K>0の整数)毎に出力した複数の前記入力値の各々の加算を、前記最上位ビットからKビット毎に行うステップと、
前記加算を行うステップによる加算結果を、L(Lは、L>0の整数)クロック後から、Kビット毎に最上位ビットから出力するステップと
を有する演算装置が実行する演算方法。 accepting error information required for multiple input values and calculation results ;
setting the number of digits from the most significant bit of each of the plurality of input values used for addition, based on the error information received in the accepting step;
Based on the number of digits from the most significant bit set in the setting step , K bits are added from the most significant bit from the most significant bit of each of the plurality of input values to the number of digits set in the setting step. (K is an integer where K>0), adding each of the plurality of input values output every K bits from the most significant bit;
An arithmetic method executed by an arithmetic device, comprising: outputting the addition result from the step of performing the addition from the most significant bit every K bits after L clocks (L is an integer where L>0).
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019211774A JP7437593B2 (en) | 2019-11-22 | 2019-11-22 | Computing device and computing method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019211774A JP7437593B2 (en) | 2019-11-22 | 2019-11-22 | Computing device and computing method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2021082221A JP2021082221A (en) | 2021-05-27 |
JP7437593B2 true JP7437593B2 (en) | 2024-02-26 |
Family
ID=75965389
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019211774A Active JP7437593B2 (en) | 2019-11-22 | 2019-11-22 | Computing device and computing method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP7437593B2 (en) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140059105A1 (en) | 2012-08-27 | 2014-02-27 | The Regents Of The University Of California | Accuracy configurable adders and methods |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5884343A (en) * | 1981-11-16 | 1983-05-20 | Toshiba Corp | Serial adder circuit |
JPH1031573A (en) * | 1996-07-16 | 1998-02-03 | Hitachi Ltd | Information processor |
-
2019
- 2019-11-22 JP JP2019211774A patent/JP7437593B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140059105A1 (en) | 2012-08-27 | 2014-02-27 | The Regents Of The University Of California | Accuracy configurable adders and methods |
Also Published As
Publication number | Publication date |
---|---|
JP2021082221A (en) | 2021-05-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10075289B2 (en) | Homomorphic encryption with optimized parameter selection | |
US20170134157A1 (en) | Homomorphic Encryption with Optimized Encoding | |
WO2021244354A1 (en) | Training method for neural network model, and related product | |
US11334320B2 (en) | Generating randomness in neural networks | |
WO2020207174A1 (en) | Method and apparatus for generating quantized neural network | |
CN112270200B (en) | Text information translation method and device, electronic equipment and storage medium | |
US11615301B2 (en) | Lossless exponent and lossy mantissa weight compression for training deep neural networks | |
Immareddy et al. | A survey paper on design and implementation of multipliers for digital system applications | |
US11620105B2 (en) | Hybrid floating point representation for deep learning acceleration | |
US20230076260A1 (en) | Systems and methods for converting data from int-64 to boolean for computations | |
US8977663B2 (en) | Converting binary values into binary-coded-centimal values | |
CN110009101B (en) | Method and apparatus for generating a quantized neural network | |
CN110826706A (en) | Data processing method and device for neural network | |
CN110335165B (en) | Link prediction method and device | |
CN111126557B (en) | Neural network quantization, application method, device and computing equipment | |
JP7437593B2 (en) | Computing device and computing method | |
CN116127925B (en) | Text data enhancement method and device based on destruction processing of text | |
WO2023185896A1 (en) | Text generation method and apparatus, and computer device and storage medium | |
US11551087B2 (en) | Information processor, information processing method, and storage medium | |
CN116108810A (en) | Text data enhancement method and device | |
US20200133995A1 (en) | Solving lattice problems using annealing | |
Poltoratski | Bernstein’s problem on weighted polynomial approximation | |
EP3232319B1 (en) | Random number generation apparatus, random number generation method and program | |
US11175957B1 (en) | Hardware accelerator for executing a computation task | |
US11507371B2 (en) | Column data driven arithmetic expression evaluation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20221025 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20230630 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20230704 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20230830 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20231031 |
|
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: 20240109 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20240117 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7437593 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |