JP2828791B2 - 積和演算に用いる部分和を量子化する方法 - Google Patents
積和演算に用いる部分和を量子化する方法Info
- Publication number
- JP2828791B2 JP2828791B2 JP3061308A JP6130891A JP2828791B2 JP 2828791 B2 JP2828791 B2 JP 2828791B2 JP 3061308 A JP3061308 A JP 3061308A JP 6130891 A JP6130891 A JP 6130891A JP 2828791 B2 JP2828791 B2 JP 2828791B2
- Authority
- JP
- Japan
- Prior art keywords
- value
- partial sum
- sum
- product
- partial
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Landscapes
- Complex Calculations (AREA)
Description
じめ記憶させておいた半導体記憶装置を用いて、積和演
算を回路で実現する場合に関し、半導体記憶装置に記憶
させる部分和の値を決定する方法の改良に関するもので
ある。
正の整数とする。n個の変数
現で表されている場合には、
k の語長である。
るには、部分和
値を取る。従って、もし、数8が取り得る2のn乗個の
値すべてに対応する部分和の値をあらかじめ半導体記憶
装置に記憶させることができれば、積和演算である数3
を図2のような回路で実現することができる。
算である数3を行う回路の一例を示すブロック図であ
る。図において、11は部分和である数7の値を記憶し
ておく半導体記憶装置、12は加減算器、13はレジス
タであり、14はレジスタ13の値を1/2倍するシフ
トレジスタである。半導体記憶装置11は、nビット変
数数8の値をアドレス15として与えられると、数8の
値に対応した部分和数7の値16を出力する。そして、
アドレス15に対応した部分和の値16は加減算器12
へ入力される。18は加減算器12からの出力で、レジ
スタ13へ入力される。17はレジスタ13の値を1/
2倍した値で、シフトレジスタ14から出力され、加減
算器12へ入力される。
実行する動作について説明する。まずレジスタ13の値
をあらかじめ0に設定しておく。nビット変数数8の値
を半導体記憶装置11にアドレス15として入力する。
その結果、半導体記憶装置11から出力される部分和数
7の値16と、レジスタ13の値を1/2倍した値17
が、加減算器12で加算される。ただし、jがp、即ち
変数xk の語長の場合のみ減算される。そして加減算器
12からの出力18は、レジスタ13に入れられる。上
記の操作を、jがlからpになるまでp回繰り返すと、
最終的にレジスタ13には、積和演算である数3の結果
が入れられることになる。
である数7の正確な値を記憶させることができない場合
がある。というのは、どんな半導体記憶装置でも有限語
長しか持たないので、記憶することのできない値が存在
するからである。以下、ある半導体記憶装置が与えられ
たとき、上記半導体記憶装置が記憶できる値のことを、
上記半導体記憶装置の表現可能値と呼ぶことにする。
の正確な値が半導体記憶装置11の表現可能値でなけれ
ば、上記部分和の正確な値をそのまま半導体記憶装置1
1に記憶させることはできない。その場合には、上記部
分和の値を、半導体記憶装置11の表現可能値の1つで
置き換えて、その置き換えられた値を半導体記憶装置1
1に記憶させることになる。
る)の半導体記憶装置の表現可能値は、たかだか2のm
乗個である。また、積和演算を実現する回路の規模を大
きくしないために、mはできるだけ小さい方が好まし
い。それに対して、部分和の値は一般に実数である。従
って、多くの場合部分和の正確な値を半導体記憶装置に
記憶させることはできない。そのため、一般に積和演算
数3を図2のような回路で実現する時には、部分和数7
のすべての値を半導体記憶装置11の表現可能値で置き
換える操作を行う。この時、上記部分和の正確な値が元
々上記表現可能値である場合にのみ、置き換えられた値
は上記部分和の正確な値を取り得ることになる。
の表現可能値に置き換える操作のことを部分和の量子化
と呼び、置き換えられた値のことを量子化された値と呼
ぶ。また、部分和の量子化された値と部分和の正確な値
との差のことを量子化誤差と呼ぶ。
る半導体記憶装置11の表現可能値でない場合には量子
化誤差は0でない。量子化誤差が0でない場合、半導体
記憶装置11には部分和の正確な値が記憶されていない
ので、上記半導体記憶装置11を用いた回路で積和演算
を実現した場合には積和演算結果に誤差が生じる可能性
がある。従って部分和の量子化をするときには、積和演
算結果が持つ誤差をできるだけ小さくするような量子化
をする必要がある。
としては、丸めによる量子化があった。丸めによる部分
和の量子化では、各部分和の量子化された値に、与えら
れた半導体記憶装置11の表現可能値の中で上記部分和
の値に最も近いものを選ぶ。従って、丸めによる部分和
の量子化では、量子化された各値が持つ量子化誤差の絶
対値は最小になるので、1回の積和演算で生じる誤差の
絶対値も最小になる。
来の丸めによる量子化の例を示す表である。nが4の場
合、2のn乗は16なので、数8の取り得る値は16通
りである。従って、図2のような回路で積和演算を行う
には、部分和の値を記憶させる半導体記憶装置11のア
ドレス15も16通り必要である。ここでは、部分和を
記憶させる半導体記憶装置11の表現可能値は、−32
768から32767までの整数であるとしている。
アドレスに対応する正確な部分和の値と、該部分和の値
を丸めによって−32768から32767までの整数
に量子化した値と、上記正確な部分和の値と該量子化し
た値との量子化誤差と、該量子化誤差の全部分和にわた
っての平均が示されている。部分和の量子化された値、
即ち丸められた値は、部分和の正確な値に最も近い−3
2768から32767までの整数になっている。
いて説明する。図3は、丸めによる量子化の動作を示す
フローチャート図である。図3のフローチャートは1つ
のステップからなる。該ステップは、各部分和の値を、
半導体記憶装置11の表現可能値のうち最も上記部分和
の値に近いもので置き換えるステップであり、即ち丸め
による量子化が行われる。
れた値を、半導体記憶装置11に記憶させる値として用
い、図2の回路でもって積和演算を行う。
化では、部分和の値と、部分和の値を記憶する半導体記
憶装置の表現可能値が与えられると、量子化された値は
一意的に決まってしまう。そのために、一つ一つの量子
化された値の持つ量子化誤差は最小であるにもかかわら
ず、量子化誤差の全部分和にわたっての平均の絶対値
は、大きくなってしまう可能性があった。
和演算である数3を繰り返して行う場合には、上記量子
化誤差の平均の絶対値が大きいと、積和演算結果が持つ
誤差の全演算にわたっての平均の絶対値も大きくなって
しまう。例えば、変数xk を完全なランダムデータにし
て、積和演算数3を多数回繰り返した場合、積和演算結
果が持つ誤差の全演算にわたっての平均は、量子化誤差
の全部分和にわたっての平均に比例する。このことは、
量子化誤差の全部分和にわたっての平均の絶対値が大き
くなると、積和演算数3の精度が悪くなることを示して
いる。
り、積和演算精度を良くするには、部分和の値を記憶す
る半導体記憶装置の語長を大きくして、表現可能値の数
を大きくするしかなかった。ところが、半導体記憶装置
の語長を大きくすると、積和演算数3を実現する回路の
規模が大きくなってしまうという問題点があった。
めになされたもので、部分和の値を記憶させる半導体記
憶装置の語長を大きくすることなく、精度の良い積和演
算を回路で実現することのできる、積和演算に用いる部
分和を量子化する方法を得ることを目的としている。
用いる部分和を量子化する方法は、部分和の値を丸めに
よって量子化し、量子化誤差の全部分和にわたっての平
均が0にならない場合に、上記丸められた値の一部また
は全部を、上記平均が0に近くなるように、丸められた
値とは異なる値に変更するものである。
て量子化し、量子化誤差の全部分和にわたっての平均が
0にならない場合に、該平均が0に近くなるように、一
部または全部の上記丸めにより量子化した値を異なる値
にしたので、部分和の値を記憶させる半導体記憶装置の
語長を変えずに、量子化誤差の全部分和にわたっての平
均を0に近づけることができ、従って、積和演算をいろ
いろな値の変数に対して繰り返し行った時、積和演算結
果の待つ誤差の全演算にわたっての平均を0に近づける
ようにすることができる。
場合で、半導体記憶装置に記憶させるために本発明の一
実施例による量子化方法で量子化した場合の一例を示す
表である。
値は、表3での場合と同じ−32768から32767
までの整数であるとしている。表1には、表3と同様
に、16通りのアドレスと、該アドレスに対応する正確
な部分和の値と、該部分和の値を本発明の量子化方法に
よって−32768から32767までの整数に量子化
した値と、上記部分和の正確な値と該量子化した値との
量子化誤差と、該量子化誤差の全部分和にわたっての平
均が示されている。表1では、部分和の量子化された値
のうちの3つ、即ちアドレス1001,アドレス110
0,アドレス1101を、丸められた値とは異なる値に
変更している。
では、量子化誤差の全部分和にわたっての平均は−0.
17である。それに対して表1に示す本発明の量子化の
場合では、上記平均が0.0175になっており、従来
の量子化より上記平均は0に近くなっている。
作を示すフローチャート図である。図1のフローチャー
ト図は、4つのステップからなる。第1のステップは、
各部分和の値を丸めによって量子化する、即ち半導体記
憶装置の表現可能値のうち最も部分和の正確な値に近い
もので置き換えるステップである。第2のステップは、
第1のステップの量子化で生じる量子化誤差の、全部分
和にわたっての平均を計算するステップである。第3の
ステップは、第2のステップで計算した誤差の平均が0
かどうかを判定し、0の場合には終了し、0でない場合
には第4のステップを実行させるステップである。第4
のステップは、1つ以上の量子化された値を、量子化誤
差の全部分和にわたっての平均が0に近くなるように、
丸められた値とは異なる値に設定し直すステップであ
る。
1を用いて説明する。図1の第1のステップで、部分和
の値を丸めにより量子化する。従来の量子化方法では、
このステップで量子化の動作を終了していた。
テップでの量子化により生じる量子化誤差の全部分和に
わたっての平均を計算する。この実施例の場合には、該
平均は表3に示したものと同様に−0.17になってお
り、0でないので、第3のステップにより第4のステッ
プを実行させることになる。
けるために、丸めにより量子化された値のうちの1つ以
上を、丸められた値とは異なる値に変更する。この実施
例の場合には、平均が−0.17というように負になっ
ているので、第1のステップで負の方向に丸められた値
のいくつかを、正の方向に量子化し直せば、上記平均は
0に近づくことがわかる。そこで、表3に示したような
丸められた値を、表1に示す量子化された値に変更す
る。即ち、アドレス1001の量子化された値を、丸め
られた値12625から12626という値に変更し、
アドレス1100の量子化された値を、丸められた値1
2625から12626という値に変更し、アドレス1
101の量子化された値を、丸められた値20817か
ら20818という値に変更する。その他のアドレスの
量子化された値は、丸められた値から変更しない。この
ようにすると、量子化誤差の全部分和にわたっての平均
は0.0175になり、丸めによる量子化の場合よりも
平均が0に近くなっている。
実施例では、量子化誤差の全部分和にわたっての平均を
計算する時に、重みをつけない単純平均を計算していた
が、第2の実施例では、上記平均を計算する時に、重み
をつけて平均の計算をするものとする。
多く使われるかが予め分かっている場合には、よく使わ
れる部分和の重みを余り使われない部分和の重みより大
きくして、重みをつけて平均の計算をすることにする。
つまり図1の第2のステップでの量子化誤差の平均の計
算を、重みをつけて行い、第4のステップで該重みをつ
けて計算した平均を小さくするように量子化された値を
変更すれば、単純平均を用いた場合よりも更に演算精度
が良くなることが期待できる。
あり、表1の例と同じ部分和の値の場合であり、また表
1での場合と同様に半導体記憶装置の表現可能値は−3
2768から32767までの整数であるとしている。
レスと、該アドレスに対応する正確な部分和の値と、該
部分和の値を本発明の第2の実施例の量子化方法によっ
て−32768から32767までの整数に量子化した
値と、上記正確な部分和の値と該量子化された値との量
子化誤差と、該量子化誤差の全部分和にわたっての平均
が示されており、また上記部分和の各値が持つ重みが示
されている。
に対応する部分和の値の重みを、他の部分和の値の重み
の30倍にして、量子化誤差の全部分和にわたる平均の
計算を重みをつけて行っている。この時、丸めによる量
子化の場合には、重みをつけて計算した平均は0.04
27になるので、表2に示すようにアドレス1111に
対応する部分和の量子化された値を、丸められた値31
521から31520に変更して、重みをつけて計算し
た平均を0.0204にし、丸めによる量子化の場合よ
りも量子化誤差の平均を0に近くしている。
での量子化された値を、半導体記憶装置11に記憶させ
る部分和の値として用い、積和演算を例えば図2に示す
回路でもって行う。
の丸めを行い、量子化誤差の全部分和にわたっての平均
が0にならない場合に、該平均が0に近くなるように、
一部または全部の丸められた値を異なる値に変更するよ
うにして量子化された値を設定するようにしたので、部
分和の値を記憶させる半導体記憶装置11の語長を変え
ずに、量子化誤差の全部分和にわたっての平均を0に近
づけることができ、従って積和演算結果の持つ誤差の全
演算にわたっての平均を0に近づけることができる、即
ち積和演算の精度を良くすることができる。
用いる部分和を量子化する方法によれば、部分和の値を
丸めによって量子化し、量子化誤差の全部分和にわたっ
ての平均が0にならない場合に、該平均が0に近くなる
ように、一部または全部の上記丸めにより量子化した値
を異なる値に変更するようにしたので、部分和の値を記
憶させる半導体記憶装置の語長を大きくすることなく、
量子化誤差の全部分和にわたっての平均を0に近づける
ことができ、従って高い演算精度の積和演算ができると
いう効果がある。
和を量子化する方法を示すフローチャート図である。
体記憶装置を用いる積和演算回路の一例を示すブロック
図である。
法を示すフローチャート図である。
Claims (1)
- 【請求項1】 積和演算に用いる部分和の値を半導体記
憶装置に記憶させて、上記積和演算を回路で実現する場
合において、上記部分和の値を、上記半導体記憶装置が
記憶できる値に丸めによって量子化し、該量子化による
誤差の全部分和にわたっての平均が0にならない場合、
該量子化による誤差の平均が0に近づくように、上記丸
められた値の一部または全部をその値とは異なる値に量
子化することを特徴とする積和演算に用いる部分和を量
子化する方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP3061308A JP2828791B2 (ja) | 1991-03-01 | 1991-03-01 | 積和演算に用いる部分和を量子化する方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP3061308A JP2828791B2 (ja) | 1991-03-01 | 1991-03-01 | 積和演算に用いる部分和を量子化する方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH04275668A JPH04275668A (ja) | 1992-10-01 |
JP2828791B2 true JP2828791B2 (ja) | 1998-11-25 |
Family
ID=13167417
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP3061308A Expired - Lifetime JP2828791B2 (ja) | 1991-03-01 | 1991-03-01 | 積和演算に用いる部分和を量子化する方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2828791B2 (ja) |
-
1991
- 1991-03-01 JP JP3061308A patent/JP2828791B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPH04275668A (ja) | 1992-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10491239B1 (en) | Large-scale computations using an adaptive numerical format | |
CN1498364A (zh) | 产生具有可变精度的对数信号近似 | |
US20210097397A1 (en) | Information processing apparatus and information processing method | |
CN114418057A (zh) | 卷积神经网络的运算方法及相关设备 | |
JP6528884B1 (ja) | 学習プログラム、学習方法、及び情報処理装置 | |
JP2828791B2 (ja) | 積和演算に用いる部分和を量子化する方法 | |
EP4375855A1 (en) | Function approximation device and method using multi-level look-up table | |
TW202333041A (zh) | 執行浮點運算的系統及方法 | |
JP2020098469A (ja) | 演算処理装置および演算処理装置の制御方法 | |
US6983298B2 (en) | Method and apparatus for linear interpolation using gradient tables | |
US7472147B2 (en) | Random number string output apparatus, random number string output method, program, and information recording medium | |
WO2023189191A1 (ja) | 固定小数点積和演算装置 | |
JPH09128213A (ja) | ブロックフローティング処理システムおよび方法 | |
JP2645422B2 (ja) | 浮動小数点演算処理装置 | |
CN112308199B (zh) | 数据块的处理方法、装置及存储介质 | |
CN112308216B (zh) | 数据块的处理方法、装置及存储介质 | |
JP2023161967A (ja) | 演算装置、演算方法及びプログラム | |
JP2508286B2 (ja) | 平方根演算装置 | |
JP4196434B2 (ja) | データ丸め方法およびデータ丸め装置 | |
JP2002318792A (ja) | データ演算処理装置及びデータ演算処理プログラム | |
KR20010067226A (ko) | 인터폴레이션 방법 및 장치 | |
JPH0637592A (ja) | ディジタルフィルタ設計法 | |
JP2000137701A (ja) | 積和演算誤差補正方法及び積和演算装置 | |
KR100256463B1 (ko) | 임의의 베이스의 심볼을 가산하거나 감산하는 프로세스 및 시스템 | |
JP4359258B2 (ja) | 演算装置および演算方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20070918 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080918 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080918 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090918 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090918 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100918 Year of fee payment: 12 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110918 Year of fee payment: 13 |
|
EXPY | Cancellation because of completion of term | ||
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110918 Year of fee payment: 13 |