JP6540725B2 - 演算処理装置、方法、およびプログラム - Google Patents
演算処理装置、方法、およびプログラム Download PDFInfo
- Publication number
- JP6540725B2 JP6540725B2 JP2017014780A JP2017014780A JP6540725B2 JP 6540725 B2 JP6540725 B2 JP 6540725B2 JP 2017014780 A JP2017014780 A JP 2017014780A JP 2017014780 A JP2017014780 A JP 2017014780A JP 6540725 B2 JP6540725 B2 JP 6540725B2
- Authority
- JP
- Japan
- Prior art keywords
- statistical information
- bit
- data
- significant bit
- 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
Links
- 238000012545 processing Methods 0.000 title claims description 81
- 238000000034 method Methods 0.000 title description 77
- 230000010365 information processing Effects 0.000 claims description 121
- 238000013135 deep learning Methods 0.000 claims description 41
- 108091029480 NONCODE Proteins 0.000 claims description 40
- 238000004364 calculation method Methods 0.000 claims description 28
- 238000013528 artificial neural network Methods 0.000 claims description 10
- 238000003672 processing method Methods 0.000 claims description 2
- 230000008569 process Effects 0.000 description 54
- 230000013016 learning Effects 0.000 description 44
- 230000006870 function Effects 0.000 description 40
- 230000004931 aggregating effect Effects 0.000 description 37
- 238000006243 chemical reaction Methods 0.000 description 27
- 229920006395 saturated elastomer Polymers 0.000 description 17
- 238000011176 pooling Methods 0.000 description 16
- 230000000052 comparative effect Effects 0.000 description 15
- 238000011156 evaluation Methods 0.000 description 15
- 230000002776 aggregation Effects 0.000 description 13
- 238000004220 aggregation Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 9
- 230000004913 activation Effects 0.000 description 8
- 239000000203 mixture Substances 0.000 description 7
- 230000004048 modification Effects 0.000 description 7
- 238000012986 modification Methods 0.000 description 7
- 238000004590 computer program Methods 0.000 description 6
- 238000000605 extraction Methods 0.000 description 5
- 230000008878 coupling Effects 0.000 description 4
- 238000010168 coupling process Methods 0.000 description 4
- 238000005859 coupling reaction Methods 0.000 description 4
- 238000009825 accumulation Methods 0.000 description 3
- 230000002441 reversible effect Effects 0.000 description 3
- 238000006467 substitution reaction Methods 0.000 description 3
- 101100412394 Drosophila melanogaster Reg-2 gene Proteins 0.000 description 2
- 102100023882 Endoribonuclease ZC3H12A Human genes 0.000 description 2
- 101710112715 Endoribonuclease ZC3H12A Proteins 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000000295 complement effect Effects 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 230000006866 deterioration Effects 0.000 description 2
- 230000004069 differentiation Effects 0.000 description 2
- 238000011478 gradient descent method Methods 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000010304 firing Methods 0.000 description 1
- 230000012447 hatching Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/499—Denomination or exception handling, e.g. rounding or overflow
- G06F7/49942—Significance control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/18—Complex mathematical operations for evaluating statistical data, e.g. average values, frequency distributions, probability functions, regression analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F5/01—Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising
- G06F5/012—Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising in floating-point computations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/499—Denomination or exception handling, e.g. rounding or overflow
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/50—Adding; Subtracting
- G06F7/505—Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination
- G06F7/506—Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination with simultaneous carry generation for, or propagation over, two or more stages
- G06F7/507—Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination with simultaneous carry generation for, or propagation over, two or more stages using selection between two conditionally calculated carry or sum values
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N7/00—Computing arrangements based on specific mathematical models
- G06N7/01—Probabilistic graphical models, e.g. probabilistic networks
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Algebra (AREA)
- Probability & Statistics with Applications (AREA)
- Biomedical Technology (AREA)
- Evolutionary Computation (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Biophysics (AREA)
- Nonlinear Science (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Operations Research (AREA)
- Databases & Information Systems (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Neurology (AREA)
- Image Analysis (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Description
置を使うのではなく、変数ごとに適した小数点位置(Qフォーマット)が用いられる。図1は、Q3.12フォーマットを例示する図である。Q3.12フォーマットは、符号ビット1桁、整数部3桁、小数点以下12桁の16ビットデータを定義する。Mixed Fixed Pointでは、変数ごとに、小数点位置、つまり、整数部の桁数と小数点以下の桁数が異な
るものとして処理される。
能である。例えば、DSPがResult = Saturate (((in1 (演算子) in2) >> S), 16)とい
う命令を実行すると、演算結果を S ビットシフトし、下位16bit を残し、上位ビットを
飽和処理する。S ≧0 の場合には、DSPは、演算結果を算術右シフトし、すなわち、符号ビットを埋め込んで右シフトし、下位ビットを削除する。一方、S < 0 の場合は、DS
Pは、演算結果を算術左シフト、すなわち、符号ビットを維持して左シフトし、補数での下位ビットを削除する。
)、半精度浮動小数点数(Half Precision Floating Point)、固定小数点数(Fixed point)、Dynamic Fixed Point数を適用した場合の認識エラー率を例示する(非特許文献1
参照)。なお、図2で、第1行目のデータ(Goodfellow et al.(2013))は、他の論文の
評価結果である。また、図2の表で、Propは、認識(フォーワッド方向)および学習(バックワード方向)おけるデータ伝搬時のビット幅を示す。また、Up.は、重み係数アップ
デート時のビット幅を示す。さらに、PI MNIST、MNIST、CIFAR−10、およびSVHNは、深層学習に用いられたデータセットを示す。
代入ごとに、オーバーフローの有無を記録し、オーバーフロー率(全演算回数に対するオーバーフローした演算の回数、全代入回数に対するオーバーフローした代入回数等)が算出される。そして、この処理では、所定の期間ごとに、各変数の小数点位置を以下の手順1、2で変更する。
(手順1)オーバーフロー率が規定値(rmax)より大きい場合、小数点位置を1つ下げる。
(手順2)オーバーフロー率の2倍の値が規定値(rmax)以下の場合、小数点位置を1つ上げる。
ラー率は大きく増加していない。
ラー率が大きく増加しない。しかしながら、上記従来の技術においては、小数点位置をオーバーフロー率を基に1ビット調整するため学習結果の精度が劣化する。例えば、k個の
データの学習ごとに小数点位置を調整する場合、小数点位置が適正位置からn ビットずれている場合、小数点位置が適切な位置に調整されるまでに、(n * k)回の学習が進む。そ
の結果、小数点位置が適正な位置になるまでに、飽和するデータやアンダーフローするデータが増え、学習が収束しない、あるいは、学習結果の精度劣化につながるおそれがある。
1つの側面では本発明の目的は、深層学習を固定小数点数で精度よく実行し、回路規模と消費電力を削減できるようにすることである。
[深層学習の実行例]
ing Layer)とも呼ばれる。最終層は、全結合層(Fully Connected Layer)とも呼ばれる。
0,...,m−1)のフィルタによる畳み込み演算を実行する。特徴抽出部は、この畳み込み演算を実行することで、現在処理中の層(第l−1層)の画像から、次の層(第l層)の画像の情報を作る。さらに、畳み込み演算による処理結果は、非線形活性化関数 y=sigma(x)によって変換され、発火と呼ばれるモデル化がなされる。非線形活性化関数は、例えば、sigma(x)=max(0,x)である。すなわち、非線形活性化関数 y=sigma(x)は、xが負の値の場合、sigm(x)=0であり、xが正の値の場合、sigma(x)=xの値をとる関数である。なお、重みwは畳み込み演算に用いられることから、係数ということもできる。
今、第l−1層における画素(i,j)からの出力をyl-1 i,jとし、第l層の画素(i,j)における畳み込み演算の処理結果をxl i,jとし、第l層における画素(i,j)の非線形活
性化関数 y=sigm(x)の演算結果をyl i,jとする。xl i,jとyl i,jは以下の(式1)、(式2)で表すことができる。ただし、(式2)において、関数sigmaは、ギリシャ文字で表している。
ける1つの重みwj+1が例示されている。
の集計である。この集計は、第l層の画素iに関係する第l+1層の画素jについて集計したものである。
ると、(式12)が得られる。ただし、(式3)は、第1−1層からの出力yと、第l層の画素値xの関係となっているが、(式12)は、第1層からの出力yと、第l+1層の画素値xの関係となっている。(式12)は、エラーの評価関数Eの勾配を示す。最勾降下法によるニューラルネットワークの学習処理においては、エラーの評価関数Eの勾配と、学習係数イータの積が重みWの変化量(現在の重みWtと次の重みWt+1の差分値)となる。したがって、以下の記述において、エラーの評価関数Eの勾配を重みWの更新量
deltaWと定義する。なお、画素値xとyの関係が(式1)で表される場合には、(式12)は、(式13)のようになる。以上から、エラーの評価関数Eに最勾降下法を適用すると、(式14)が得られる。なお、(式14)では、演算がM回繰り返される式となっているが、M=1でもよい。
(B)各層のエラーの評価関数の勾配(更新量deltaWの計算)
(C)各層のエラー
。この集計は、第l層の画素iに関係する第l+1層の画素jについての集計である。
[比較例]
図5は、比較例に係る深層学習の手順を例示する図である。比較例の情報処理装置は、コンピュータプログラムにしたがって深層学習を実行する。比較例の情報処理装置は、Dynamic Fixed Point数の処理を実行可能なプロセッサを有している。
全結合層2(fc2)の処理により実行される。深層学習は、ミニバッチと呼ばれる処理の単
位に区切られて実行される。ここで、ミニバッチとは、学習の対象となる入力データの集合{(Ini,Ti),i=1〜N}を複数組(例えば、k個のデータのM組、N=k*M)に分割したk個のデータの組み合わせをいう。また、ミニバッチは、このような個々の入力データの組(k個のデータ)で実行される学習の処理単位のことをいう。ここで、Iniは、入力データ(ベクトル)、Tiは正解データ(ベクトル)である。比較例の情報処理装置は、以下のように、深層学習中の所定数のミニバッチごとに、各層の各変数のオーバーフロー回数を取得してコンピュータプログラム中の変数に蓄積し、深層学習に用いる変数の固定小数点位置を自動調整する。
ユーザ指定により各変数の初期小数点位置を決定し、学習を開始する(S1)。そして、情報処理装置は、k回のミニバッチを学習中に、各層の各変数のオーバーフローの回数を
統計情報として保存する(S2)。このとき、情報処理装置は、学習を実行するプログラム中の各変数に対する演算、代入等がなされる毎に、オーバーフローの有無を判定し、回数を計数し、回数を保持するカウンタ変数に代入する。
)、カウンタ変数に蓄積したオーバーフロー回数からオーバーフロー率を求め、オーバーフロー率を基に、固定小数点数の小数点位置を調整する(S4)。そして、情報処理装置は、S2の処理に戻り、学習を進める。
例では、1層目の畳み込み層(Conv_1)において、入力データini=(x0,...,xn)と、重み(Wij)との間で、畳み込み演算が実行され、z0,...,zj,...等が計算される。また、z0,...,zj,...等に対して、活性化関数が演算され、u0,...,uj,...等が計算される。情報処理装置
は、この1層目の畳み込み層(Conv_1)での変数z0,...,zj,...のオーバーフロー回数をカ
ウンタ変数Conv_1_zに蓄積する。また、情報処理装置は、この1層目の畳み込み層(Conv_1)での変数u0,...,uj,...等でのオーバーフロー回数をカウンタ変数Conv_1_uに蓄積する
。例えば、カウンタ変数Conv_1_uが配列の場合、カウンタ変数Conv_1_u(1)には、変数u0,...,uj,...のうち、オーバーフローした変数の個数が累積される。また、カウンタ変
数Conv_1_u(2)には、変数u0,...,uj,...のうち、2倍するとオーバーフローする変数
の個数が累積される。
的には、全結合層2(fc2)において、得られた演算結果と、正解データTiとの差分値から
エラーδ0(7),...,δj(7),...を算出する。そして、情報処理装置は、エラーδ0(7),...,δj(7),...を基に、逆方向の伝播を実行する。その結果、情報処理装置は、下位の階層(例えば、結合層1(fc1))の出力でのエラーδ0(6),...,δj(6),...δn(6)と重みの変数Wijの次回の重みへの差分値ΔWijを算出する。このとき、情報処理装置は、エラーδ0(7),...,δj(7),...およびエラーδ0(6),...,δj(6),...,δn(6)でのオーバーフロー回数をカ
ウンタ変数fc2_δに蓄積する。また、情報処理装置は、差分値ΔWijでのオーバーフロー
回数をカウンタ変数fc2_ΔWに蓄積する。また、情報処理装置は、重みの変数Wijでのオーバーフロー回数をカウンタ変数fc2_Wに蓄積する。
ラーを逆方法に伝播させながら、重みの差分を計算する。情報処理装置は、以上のような順伝播と逆伝播をk組の入力データを用いて、k回繰り返す。情報処理装置は、このようなk回のミニバッチ終了後、各変数に対応するカウンタ変数のオーバーフロー回数を基に、各変数の固定小数点位置を更新する。
を判定する(C3)。学習が終了するのは、全結合層(fc2)でのエラーが基準値以下とな
るか、または、学習回数が規定の最大値に達した場合である。
小数点位置をNビットずらすために、N*k回(*は乗算)分のミニバッチが実行される。こ
のため、小数点位置が不適切な状態で学習処理が繰り返される。つまり、学習中に、望ましくないレベルで固定小数点数データの飽和、あるいは、アンダーフローが発生し、学習結果の精度劣化につながり、収束が遅くなる恐れがある。
[実施形態]
<統計情報>
(1)非符号となる最上位ビット位置の分布
布が得られると、絶対値としての値の分布範囲が把握可能となる。
数点があると仮定する。本実施形態では、情報処理装置1のプロセッサの演算回路および演算回路内のレジスタは、命令のオペランドで指定されるレジスタのビット数(例えば、16ビット)以上のビット幅(例えば、40ビット)を有する。ただし、情報処理装置1のプロセッサの演算回路および演算回路内のレジスタのビット幅が40ビットに限定される訳ではない。また、演算結果は、例えば、16ビットのレジスタ等、演算回路よりも少ないビット幅のレジスタ(命令のオペランドで指定されるレジスタ)に格納される。その結果、演算結果は(例えば、40ビット)、オペランドで指定されるシフト量でシフトし、ビット0未満に該当するビットは所定の丸め処理がなされ、オペランドで指定されるレ
ジスタのビット幅を越えるデータ(ビット15を越えるデータ)は、飽和処理される。
アンダーフローが発生して0となる領域が2ビット減少する。すなわち、情報処理装置1
が小数点位置を2ビット左にシフトすると、飽和される領域が2ビット拡張され、アンダーフローが発生する領域が2ビット減少する。また、例えば、情報処理装置がこの固定小数点数を2ビットだけ正方向にシフト(左方向に2ビットシフト)すると、最上位ビットが18の位置にシフトし、飽和される領域が2ビット減少し、アンダーフローが発生する領域が2ビット拡張される。すなわち、情報処理装置1が小数点位置を2ビット右にシフトすると、飽和される領域が2ビット減少し、アンダーフローが発生する領域が2ビット拡張される。
を直ちに決定できる。例えば、情報処理装置1は、飽和されるデータが指定の割合以下になるように固定小数点位置を決定すればよい。つまり、一例としては、情報処理装置1は、データのアンダーフローが所定の程度となることよりもデータの飽和が所定の程度となること優先して、固定小数点位置を決定できる。
(2)非符号となる最下位ビット位置の分布
であるbit[0]までの並びとしたとき、符号ビットbit[39]と異なるbit[k]のうち、インデ
ックスkが最小のものをいう。非符号となる最下位ビット位置の分布は図8Bのように表
現される。また、非符号となる最下位ビット位置の分布では、有効なデータが含まれる最下位ビットが把握される。
(3)非符号となる最上位ビット位置の最大値
つまり、適切な小数点位置の決定に利用できる。
(4)非符号となる最下位ビット位置の最小値
できる。
<構成>
、レジスタファイル12、ベクトル演算用の演算器131、スカラ演算用の演算器(Arithmetic Logic Unit(ALU))141、およびベクトル演算用の演算器131の結果を
加算するアキュムレータ132を有している。また、プロセッサ10は、ベクトル演算用の演算器131、スカラ演算用の演算器141、アキュムレータ132等の演算結果、および、データ用メモリ22からの読み出し結果を選択する複数のセレクタ101を有している。なお、図では、複数のセレクタを総称してセレクタ101と呼ぶ。また、複数のベクトル演算用の演算器を総称して演算器131と呼ぶ。
、デコーダ112は、シフト量がデータ変換部103に供給されるように指示する。シフト量は、例えば、命令のオペランド(即値)、オペランドで指定されたレジスタ、オペランドで指定されたアドレス・レジスタの示すアドレスのデータ用メモリ22等から取得され、データ変換部103に供給される。図9の処理は、デコーダが命令から、固定小数点数データの小数点位置の指定(シフト量)を取得することの一例である。
フトとともに、上位ビットの飽和処理および下位ビットの丸めを実行する。図12にデータ変換部の具体的構成を例示する。データ変換部103は、例えば入力を40ビットの演算結果とし、下位Sビットを小数部として丸めを行な丸め処理部と、算術シフトを実行す
るシフタと飽和処理を行なう飽和処理部を有する。
の無限大への丸め、乱数丸めなどが例示される。図でシフト量は、例えば、図9に例示されるように、デコーダが命令から取得するシフト量である。
シフト部は、Sが正の場合はS bit算術右シフト、Sが負の場合は、算術左シフト、すな
わち、-S bit算術左シフトを行なう。飽和部は、シフト結果が 2E15-1(正の最大値)以
上の場合は 2E15、-2E15(負の最小値)以下の場合は -2E15、それ以外は入力の下位16bitを出力する。ここで、2E15は、2の15乗を表す。
プログラム実行中に、固定小数点数の小数点位置を指定されたシフト量だけ更新する。
ユニット11、レジスタファイル12、ベクトルユニット13、スカラユニット14を含む。制御ユニット11は、プログラムカウンタ111とデコーダ112を含む。レジスタファイルは、ベクトルレジスタファイル、ベクトル演算用アキュムレータレジスタ(Vector ACC)、スカラレジスタファイル、スカラ演算用アキュムレータレジスタ(ACC)を含
む。ベクトルユニット13は、ベクトル演算用の演算器131、統計情報取得部102、データ変換部103を含む。スカラユニット14は、スカラ演算用の演算器141、統計情報取得部102、データ変換部103を含む。
I/F)を介して制御ユニット11に接続される。また、データ用メモリ22は、メモリインターフェース(Memory I/F)を介してベクトルユニット13およびスカラユニット14に接続される。
算用の演算器131−2は、命令によって指定される演算モードに従って、ベクトル演算用の演算器131−1の演算結果、あるいは、ベクトル演算用アキュムレータレジスタ(Vector ACC)のデータ、あるいは、それらを加算した結果を出力する。
報取得部102およびデータ変換部103に入力する。統計情報取得部102で取得された統計情報は、統計情報集約部104に入力される。また、データ変換部103でデータ変換されたデータは、図示しないセレクタを介して、データ用メモリ22(Write Data0,…, Write Data n)にストアされるか、ベクトルレジスタ(Vector Reg2)に保持される
。
結果は、メモリインターフェース(Memory I/F)を介してデータ用メモリ22のアドレス(例えば、Addr)にストアされる。また、スカラ用の演算器141の演算結果は、セレクタ101を介して、統計情報取得部102およびデータ変換部103に入力される。
。セレクタ101は、選択したデータを、統計情報取得部102およびデータ変換部103に入力する。統計情報取得部102は、セレクタ101から入力されたデータから統計情報を取得し、統計情報集約部104に入力する。
いる。ここで、bは0または1のいずれかである。統計情報取得部102Aは、この入力データを処理し、非符号となる最上位ビット位置を1とし、他のビット位置を0とする出力データ(out(40bit))を生成する。入力データが全ビット0、または、全ビット1の場合は、39bit目に1を、38bit以下に0を出力する。なお、以下の説明では、プロセッサ10の演算回路のデータは40ビットのデータで例示されるが、プロセッサ10の演算回路のデータが40ビットに限定される訳ではない。
値を有するビットによる排他論理和値は0となり、符号ビットin[39]と異なる値を有するビットによる排他論理和値は1となる。
理和値と、in[39]とin[37]との排他論理和値という2つの排他論理和値の論理和値(ORゲートの出力)を反転したビット値が入力される。このため、in[39]とin[38]とが不一致の場合、in[39]とin[36]の排他論理和値によらず、ANDゲートの出力は0となる。以下、同
様に、in[39]とin[i](iは37以下)の排他論理和値によらず、ANDゲートの出力は0とな
る。
る。以下、同様に、out[i](iは37以下)が出力されるANDゲートの論理否定付き入力は、in[39]とin[j](jはi+1以上、38以下)の排他的論理和が全て0の場合に0となり、in[39]とin[i](iは37以下)の排他論理和値が1になると、out[i]には1が設定される。そのビット
位置(i)より下位のビットでは、out[i]が出力されるANDゲートの論理否定付き入力が1
となるため、out[i]には0が設定される。したがって、図14の回路によって、非符号となる最上位ビット位置に1が設定され、他のビットが0に設定された出力データout(40bit)が取得される。図13、図14の非符号となる最上位ビット位置を取得する統計情報取得部102Aは、命令実行後の固定小数点数データ中の符号ビットと一致しない最上位のビットの位置を取得する回路の一例である。また、非符号となる最上位ビット位置に1が設定され、他のビットが0に設定された出力データout(40bit)は、符号ビットと一致しない最上位のビットの位置を真値(1)で示すビット列の一例である。
ータを処理し非符号となる最下位ビット位置を1とし、他のビット位置を0とする出力データ(out(40bit))を生成する。入力データが全ビット0、または、全ビット1の場合は、39bit目に1を、38bit以下に0を出力する。
して、最初に1になったビット位置の番号を2進数のビットパターンで出力する。また、非符号最下位ビット検出器は、負数に対しては、in[0]から上位ビット方向にビットをサ
ーチして、最初に0になったビット位置の番号を2進数のビットパターンで出力する。また、また、入力データが全ビット0、または、全ビット1の場合は、非符号最下位ビット検出器は、39bit目に1を、38bit以下に0を出力する。
ればよい。一方、符号ビットin[39]が1の場合には、データは補数となっているので、統
計情報取得部102Bは、最下位ビットin[0]から上位側に向かって、ビットが0である
ビット位置を探索すればよい。
他論理和(EXOR)が実行される。そうすると、符号ビットin[39]と同じ値を有するビットによる排他論理和値は0となり、符号ビットin[39]と異なる値を有するビットによる排他論理和値は1となる。
ートを介して入力される。このANDゲートの一方の入力には、in[39]とin[0]の排他論理和
値を反転したビット値が入力される。このため、in[39]とin[0]の排他論理和値が1の場
合、in[39]とin[1]の排他論理和値によらず、ANDゲートの出力は0となる。
出力)を反転したビット値が入力される。このため、in[39]とin[0]の排他論理和値が1
の場合、in[39]とin[2]の排他論理和値によらず、出力データのout[2]に値を出力するANDゲートの出力は0となる。以下、同様に、in[39]とin[i](iは1以上)の排他論理和値によらず、出力データのout[i]に値を出力するANDゲートの出力は0となる。
ず、全ビットがクリアされる。次に、入力データの配列in[j][i]の各列iの要素の値が、すべての行(j=0から7)に対して加算される。したがって、図13、図15とは異なり、図17の擬似コードでは、出力データ(配列要素)out[j]は、log2(SIMDデータ数)ビット(図17の例では3ビット)の整数である。なお、図17では、SIMDデータ数(並列
処理されるデータ数)は8であると想定したが、SIMDデータ数が8に限定される訳ではない。
位置の発生回数を計数する。統計情報集約部104Aは、計数結果を出力データout0から
out39にそれぞれ格納する。
。統計情報集約部104Aは、計数結果を出力データout0からout39にそれぞれ格納する
。すなわち、統計情報集約部104Aは、非符号となる最上位ビット位置または非符号となる最下位ビット位置のいずれをも処理可能である。
ラユニット14で取得したデータは、一回のスカラユニット14の演算においては、加算されることなくそのまま出力データout0からout39に出力される。out0からout39は、統計情報格納部105に引き渡すデータ(図21の105A、図22の105Bの入力データin0からin39参照)である。図17、図18の統計情報集約部104Aは符号ビットと一
致しない最上位のビットの位置を複数の固定小数点数データに対して累積して計数する回路の一例である。図17、図18の統計情報集約部104Aは符号ビットと一致しない最下位のビットの位置を複数の固定小数点数データに対して累積して計数する回路の一例でもある。
される。したがって、図19の擬似コードでは、図17とは異なり、出力データ(配列要素)out[i](i=0,…,39)はビット列である。以上の処理の結果、出力データout[i](i=0,…,39)では、out[38]から下位ビット方向に向かって最初に1となるビット位置が最大ビッ
ト位置である。また、out[0]から上位ビット方向に向かって最初に1となるビット位置が最小ビット位置である。
取得したデータは、一回の演算においては、論理和演算されることなくそのまま出力データoutに出力される。outは、統計情報格納部105に引き渡すデータである。
示すビット列を複数の固定小数点数データについて論理和演算によって累積する回路の一例でもある。
ッサ10は、書き込み命令によってセレクタSELを介して、レジスタsr39からsr0のいずれか1つあるいは複数に初期値v39からv0を書き込む。ただし、プロセッサ10は、デコーダからのリセット信号によってレジスタsr39からsr0をリセットしても良い。プロセッサ10は、
統計情報取得機能付き命令の実行ごとに、加算器を用いて統計情報を蓄積し、レジスタsr39からsr0に格納する。統計情報集約部104A(図17、図18)と、統計情報集約部
104Aからの統計情報を専用レジスタに格納する統計情報格納部105A(図21)の組み合わせは符号ビットと一致しない最上位のビットの位置を複数の固定小数点数データに対して累積して計数する回路の一例である。統計情報集約部104A(図17、図18)と、統計情報集約部104Aからの統計情報を専用レジスタに格納する統計情報格納部105A(図21)の組み合わせは符号ビットと一致しない最下位のビットの位置を複数の固定小数点数データに対して累積して計数する回路の一例でもある。また、プロセッサ10は、レジスタ(sr39からsr0)のいずれかの1つあるいは複数の値を読み出し、読み出し命令で指定されたデータ用メモリに保存する、あるいは、読み出し命令で指定された汎用レジスタに格納する。
…,k, i=0,…,39)の領域が確保され、indexによって、レジスタファイルの行jが指定される。
スタファイルの行jをリセットしても良い。そして、プロセッサ10は、in39からin0の統計情報を加算器で蓄積し、indexによって指定されるレジスタファイルの行jに格納する。また、プロセッサ10は、デコーダ112からの制御信号により、indexによって指定さ
れるレジスタファイルの行jから統計情報を読み出す。また、プロセッサ10は、indexによって指定されるレジスタファイルの行jのいずれかの1つあるいは複数の値を読み出し、読み出し命令で指定されたデータ用メモリに保存する、あるいは、読み出し命令で指定された汎用レジスタに格納する。
。ただし、プロセッサ10は、リセット信号によってレジスタ(sr)をリセットできるようにしてもよい。
た、入力データinとしてin0=x(0または1)、in1=1、他のビットがすべて0のデータが入力されると、Priority Encoder(MSB優先)は、”000001”(1)を出力する。同様に、入
力データinとしてin0〜in37がx(0または1)、in38=1のデータが入力されると、Priority
Encoder(MSB優先)は、”100110”(38)を出力する。プロセッサ10は、Priority Encoder(MSB優先)を介して、統計情報集約部104Bによって論理和演算されたビット位置の統計情報からビット位置の最大値を2進数値で取得できる。図19、図20の論理和演算によってビット位置を集約する統計情報集約部104B(図19、図20)と統計情報格納部105Cの組み合わせは、符号ビットと一致しない最上位のビットの位置を真値で示すビット列を複数の固定小数点数データについて論理和演算によって累積し、累積したビット列中の最上位の真値の位置を取得する回路の一例である。
部105Dの構成は、統計情報格納部105Cと同様であるから説明を省略する。
ット1の位置(−1から38)を2進数で出力する。例えば、入力データinとして全ビット0が入力されると、Priority Encoder(LSB優先)は、”111111”(−1)を出力する。
また、入力データinとしてin0=1、他のビットがx(0または1)のデータが入力されると、Priority Encoder(LSB優先)は、”000000”(0)を出力する。また、入力データinとし
てin0=0、in1=1、他のビット(in2からin38)がx(0または1)のデータが入力されると、Priority Encoder(LSB優先)は、”000001”(1)を出力する。同様に、入力データinと
してin0〜in37が0、in38=1のデータが入力されると、Priority Encoder(LSB優先)は、”100110”(38)を出力する。プロセッサ10は、Priority Encoder(LSB優先)を介して、統計情報集約部104Bによって論理和演算されたビット位置の統計情報からビット位置の最小値を2進数値で取得できる。論理和演算によってビット位置を集約する統計情報集約部104B(図19、図20)と統計情報格納部105D(図24)の組み合わせは、符号ビットと一致しない最下位のビットの位置を真値で示すビット列を複数の固定小数点数データについて論理和演算によって累積し、累積したビット列中の最下位の真値の位置を取得する回路の一例である。
ッサ10は、デコーダ112からの制御信号により、あるいは、indexによって指定され
るレジスタファイルの行jへの初期値の設定、統計情報(入力データin)の蓄積、行jから
の統計情報の読み出し等を実行する。
<統計情報取得機能付き命令>
以下、統計情報取得機能付き命令の構成を例示する。ここでは、命令の構成方法として、方法1、方法2を例示する。
、ロード命令などが個別に追加される。以下の命令の構成は例示であり、プロセッサ10が下記命令に限定される訳ではない。
[vmul_s命令]
vmul_s命令は、プロセッサ10がベクトル・レジスタ vs と vt を乗算し imm ビットシ
フトし、丸め・飽和を行なって ベクトル・レジスタvd に格納するための命令である。プロセッサ10は、乗算結果のシフト前の統計情報を取得し、統計情報レジスタに累積する。統計情報レジスタは、例えば、図21のsr0からsr39、図22の統計情報レジスタファ
イルのsrj_i(j=0,1,.., i=0,1,…)、図23、図24のレジスタ(sr)、図25、図26
の統計情報レジスタファイルのレジスタsr0,sr1,…等である。統計情報レジスタについては以下同様である。
内部のレジスタをリセットするためのリセット命令を別途用意してもよい。以下、同様である。
[vld_s命令]
vld_s命令は、プロセッサ10がアドレス・レジスタ rs とrt を加算したアドレスからベクトルデータをロードして、ベクトル・レジスタ rd に格納するための命令である。プロセッサ10は、ロードしたデータの統計情報を取得し統計情報レジスタに累積する。
[read_acc_s命令]
read_acc_s命令は、プロセッサ10がアキュムレータ・レジスタ(40bit)のデータに対し
て、imm ビットシフトし、丸め・飽和を行なってスカラ・レジスタ rd に格納するための命令である。プロセッサ10は、アキュムレータレジスタの統計情報を取得し統計情報レジスタに累積する。
タ・インデックス(s)を追加し、統計情報の格納先が指定できるようにしてもよい。以
下、命令の構成を例示する。この命令のインデックス(s)は、図22、図25,図26
等の統計情報レジスタファイルのindexを指定する。
vmul_s vs, vt, vd, imm, s
vld_s ss, st, vd, s
read_acc sd, imm, s
2は、統計情報の格納先の指定を取得するデコーダの一例である。
<実行手順>
と同様、1層目の畳み込み層(Conv_1)において、入力データini=(x0,...,xn)と、重み(Wij)との間で、畳み込み演算が実行され、z0,...,zj,...等が計算される。また、z0,...,zj,...等に対して、活性化関数が演算され、u0,...,uj,...等が計算される。情報処理装置1は、この1層目の畳み込み層(Conv_1)での変数z0,...,zj,...等での統計
情報を内部の統計情報レジスタまたはレジスタ・インデックスで指定される統計情報レジスタファイルに蓄積する。なお、統計情報レジスタあるいはレジスタファイルが不足する場合は、各層の演算終了後に統計情報をメモリに退避し、次回の演算開始前に統計情報を復帰させる。また、情報処理装置1は、同様に、この1層目の畳み込み層(Conv_1)での変数u0,...,uj,...等での統計情報を内部のレジスタまたはレジスタ・インデックスで指定
される統計情報レジスタファイルに蓄積する。本実施形態の統計情報は、比較例のようなオーバーフロー回数とは異なり、上記で説明した(1)非符号となる最上位ビット位置の分布、(2)非符号となる最下位ビット位置の分布、(3)非符号となる最上位ビット位置の最大値、(4)非符号となる最下位ビット位置の最小値、または、これらのいずれか2以上の組み合わせである。
、得られた演算結果と、正解データTiとの差分値からエラーの変数δ0(7),...,δj(7),...を算出する。そして、情報処理装置1は、エラーの変数δ0(7),...,δj(7),...を基に、逆方向の伝播処理を実行する。すなわち、情報処理装置1は、下位の階層(例えば、結合層1(fc1))の出力でのエラーの変数δ0(6),
...,δj(6),...δn(6)と重みの変数Wijの次の重みへの差分値ΔWijを算出する。このとき、情報処理装置1は、エラー変数δ0(7),...,δj(7),...およびエラーの変数δ0(6),...,δj(6),...,δn(6)での統計情報を1層目の畳み込み層(Conv_1)と同様に蓄積する。また、情報処理装置1は、差分値ΔWijでの統計情報も蓄積する。また、情報処理装置1は、重みの変数Wijでの統計情報を蓄積する。
エラーを逆方法に伝播させながら、重みの差分を計算する。情報処理装置1は、以上のような順伝播と逆伝播をk組の入力データを用いて、k回繰り返す。情報処理装置1は、このようなk回のミニバッチ終了後、各変数の統計情報を基に、各変数の固定小数点位置を更新する。
である。
10(整数部5桁、小数点以下10桁)で記述され、飽和される領域A1、表現可能な領域A2、および、アンダーフローが発生する領域A3が形成されているとする。この例では、飽和される領域A1とアンダーフローが発生する領域A3は、白抜きの度数分布で例示されている。また、表現可能な領域は斜線のハッチングパターンで示されている。また、この例では、アンダーフローが発生する領域の度数分布が飽和する領域の度数分布より高く、バランスが悪い。一方、小数点位置を2ビット下側に移動し、Q3.12(整数部3桁、小数点以下12桁)としても、飽和する領域のデータ数を全データ数で除算した値は、目標の基準値未満となる。そこで、情報処理装置1は、小数点位置をQ5.10からQ3.12設定しなおし、深層学習を継続すればよい。
る最大値の11ビット目と、最下位ビットの分布でデータ個数が1以上となる最小値の-1ビ
ット目までが、表現可能な範囲の中心となるよう、小数点位置をQ3.12からQ1.14設定しなおし、深層学習を継続すればよい。
<実施形態の効果>
点数演算を実行する回路を、16bit固定小数点数演算を実行する回路に限定した場合、デ
ータ量( メモリ、および、データ転送量)が半減される。また、演算回路規模としては
、 積和演算での回路規模は約半分となる(FPGAで試算)。
データ中の符号ビットと一致しない最上位のビットの位置を取得できる。また、プロセッサ10は、統計情報集約部104Aによって符号ビットと一致しない最上位のビットの位置を複数の固定小数点数データに対して累積して計数することができる。また、プロセッサ10は、統計情報集約部104Bと、統計情報格納部105C(あるいは105E)によって、符号ビットと一致しない最上位のビットの位置を真値で示すビット列を複数の固定小数点数データについて論理和演算によって累積する。そして、プロセッサ10は、累積したビット列中の最上位の真値の位置を取得することができる。
<本実施形態の情報処理装置について>
(CPU)、Microprocessor(MPU)とも呼ばれる。プロセッサ10は、は、単一のプロセッサに限定される訳ではなく、マルチプロセッサ構成であってもよい。また、単一のソケットで接続される単一のプロセッサ10がマルチコア構成を有していても良い。深層学習を実行する情報処理装置1の少なくとも一部の処理は、プロセッサ10以外の装置、例えば、Digital Signal Processor(DSP)、Graphics Processing Unit(GPU)、数値演算プロセッサ、ベクトルプロセッサ、画像処理プロセッサ等の専用プロセッサで行われても良い。また、深層学習を実行する情報処理装置1の少なくとも一部の処理は、集積回路(IC)、その他のディジタル回路であっても良い。また、深層学習を実行する情報処理装置1の少なくとも一部には、アナログ回路が含まれても良い。集積回路は、LSI,Application Specific Integrated Circuit(ASIC),プログラマブルロジックデバイス(P
LD)を含む。PLDは、例えば、Field-Programmable Gate Array(FPGA)を含む。上記
各部は、プロセッサと集積回路との組み合わせであっても良い。組み合わせは、例えば、マイクロコントローラ(MCU)、SoC(System-on-a-chip)、システムLSI、チップセットなどと呼ばれる。
<記録媒体>
た記録媒体としてハードディスク、ROM(リードオンリーメモリ)等がある。さらに、Solid State Drive(SSD)は、コンピュータ等から取り外し可能な記録媒体としても
、コンピュータ等に固定された記録媒体としても利用可能である。
10 プロセッサ
11 制御ユニット
12 レジスタファイル
13 ベクトルユニット
14 スカラユニット
21 命令用メモリ
22 データ用メモリ
101 セレクタ
102 統計情報取得部
103 データ変換部
104 統計情報集約部
105 統計情報格納部
111 プログラムカウンタ
112 デコーダ
131 ベクトル演算用の演算器
132 積和演算用のアキュムレータ
141 スカラ用の演算器
Claims (9)
- 演算回路と、
前記演算回路による演算結果である複数の第1固定小数点数データ各々についての非符号となる最上位ビットの位置または非符号となる最下位ビットの位置の分布についての統計情報を取得する取得回路と、
前記演算回路による演算結果である第2固定小数点数データをレジスタに格納する際にビット幅を制限するためのビットレンジを前記統計情報に基づいて特定する特定回路と、を備える演算処理装置。 - 前記特定回路は、前記統計情報に基づいて、前記複数の第1固定小数点数データの数に対する前記複数の第1固定小数点数データのうち前記ビットレンジから外れる前記非符号となる最上位ビットまたは前記非符号となる最下位ビットを有するデータの数の割合を求め、前記割合が閾値未満になるように前記ビットレンジを特定する、請求項1に記載の演算処理装置。
- 前記統計情報は、前記非符号となる最上位ビットの前記位置の前記分布を示す情報であり、
前記特定回路は、前記統計情報に基づいて、前記非符号となる最上位ビットの前記位置の前記分布の最大値と前記非符号となる最上位ビットの前記位置の前記分布の最小値との中心に前記ビットレンジの中心が一致するように前記ビットレンジを特定する、請求項1に記載の演算処理装置。 - 前記取得回路は、前記非符号となる最上位ビットの前記位置を真値で示すビット列を前記複数の第1固定小数点数データについて論理和演算によって累積し、累積したビット列中の最上位の真値の位置を取得することを特徴とする請求項1から3のいずれか1項に記載の演算処理装置。
- 前記取得回路は、前記非符号となる最下位ビットの前記位置を真値で示すビット列を前記複数の第1固定小数点数データについて論理和演算によって累積し、累積したビット列中の最下位の真値の位置を取得することを特徴とする請求項1から3のいずれか1項に記
載の演算処理装置。 - 前記演算回路に対する演算命令から、前記第2固定小数点数データを前記レジスタに格納する際にビット幅を制限するために前記統計情報に基づいて特定された前記ビットレンジを指定するための情報を取得するデコーダをさらに備える請求項1から5のいずれか1項に記載の演算処理装置。
- 前記演算処理装置は、ニューラルネットワークの複数の層の演算を行い、
前記取得回路は、前記複数の層のうち指定された特定の層に対し、選択的に前記統計情報を取得することを特徴とする請求項1から6のいずれか1項に記載の演算処理装置。 - 深層学習を実行するコンピュータが、
所定の演算の結果である複数の第1固定小数点数データ各々についての非符号となる最上位ビットの位置または非符号となる最下位ビットの位置の分布についての統計情報を取得することと、
前記所定の演算の結果である第2固定小数点数データをレジスタに格納する際にビット幅を制限するためのビットレンジを前記統計情報に基づいて特定することと、を実行する情報処理方法。 - 深層学習をコンピュータに実行させるためのプログラムであって、
所定の演算の結果である複数の第1固定小数点数データ各々についての非符号となる最上位ビットの位置または非符号となる最下位ビットの位置の分布についての統計情報を取得することと、
前記演算の結果である第2固定小数点数データをレジスタに格納する際にビット幅を制限するためのビットレンジを前記統計情報に基づいて特定することと、を実行させるためのプログラム。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017014780A JP6540725B2 (ja) | 2017-01-30 | 2017-01-30 | 演算処理装置、方法、およびプログラム |
PCT/JP2018/000988 WO2018139266A1 (ja) | 2017-01-30 | 2018-01-16 | 演算処理装置、情報処理装置、方法、およびプログラム |
EP18744586.1A EP3575952B1 (en) | 2017-01-30 | 2018-01-16 | Arithmetic processing device, information processing device, method and program |
US16/515,110 US11137981B2 (en) | 2017-01-30 | 2019-07-18 | Operation processing device, information processing device, and information processing method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017014780A JP6540725B2 (ja) | 2017-01-30 | 2017-01-30 | 演算処理装置、方法、およびプログラム |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2018124681A JP2018124681A (ja) | 2018-08-09 |
JP2018124681A5 JP2018124681A5 (ja) | 2019-01-31 |
JP6540725B2 true JP6540725B2 (ja) | 2019-07-10 |
Family
ID=62979297
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017014780A Active JP6540725B2 (ja) | 2017-01-30 | 2017-01-30 | 演算処理装置、方法、およびプログラム |
Country Status (4)
Country | Link |
---|---|
US (1) | US11137981B2 (ja) |
EP (1) | EP3575952B1 (ja) |
JP (1) | JP6540725B2 (ja) |
WO (1) | WO2018139266A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPWO2022003855A1 (ja) * | 2020-07-01 | 2022-01-06 |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3617959B1 (en) * | 2018-02-13 | 2021-08-04 | Shanghai Cambricon Information Technology Co., Ltd | Computing device and method |
JP7056225B2 (ja) * | 2018-02-26 | 2022-04-19 | 富士通株式会社 | 演算処理装置、情報処理装置、情報処理方法、およびプログラム |
JP6540841B1 (ja) * | 2018-02-27 | 2019-07-10 | 富士通株式会社 | 演算処理装置、情報処理装置、情報処理方法、およびプログラム |
US11636319B2 (en) * | 2018-08-22 | 2023-04-25 | Intel Corporation | Iterative normalization for machine learning applications |
CN112740233B (zh) * | 2018-09-27 | 2024-08-23 | 株式会社索思未来 | 网络量化方法、推理方法以及网络量化装置 |
KR20200043169A (ko) * | 2018-10-17 | 2020-04-27 | 삼성전자주식회사 | 뉴럴 네트워크의 파라미터를 양자화하는 방법 및 장치 |
WO2020084723A1 (ja) * | 2018-10-24 | 2020-04-30 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
JP7137067B2 (ja) * | 2018-10-25 | 2022-09-14 | 富士通株式会社 | 演算処理装置、学習プログラム及び学習方法 |
JP6528893B1 (ja) * | 2018-11-07 | 2019-06-12 | 富士通株式会社 | 学習プログラム、学習方法、情報処理装置 |
JP2020098469A (ja) | 2018-12-18 | 2020-06-25 | 富士通株式会社 | 演算処理装置および演算処理装置の制御方法 |
KR20200086581A (ko) | 2019-01-09 | 2020-07-17 | 삼성전자주식회사 | 뉴럴 네트워크 양자화를 위한 방법 및 장치 |
JP2020135549A (ja) | 2019-02-21 | 2020-08-31 | 富士通株式会社 | 演算処理装置、情報処理装置および演算処理方法 |
JP7255234B2 (ja) * | 2019-02-26 | 2023-04-11 | 富士通株式会社 | 情報処理装置、情報処理装置の制御方法及び情報処理装置の制御プログラム |
JP7188237B2 (ja) * | 2019-03-29 | 2022-12-13 | 富士通株式会社 | 情報処理装置、情報処理方法、情報処理プログラム |
CN113924610B (zh) * | 2019-06-07 | 2024-02-20 | 日本电信电话株式会社 | 秘密共轭梯度法计算系统及方法、秘密计算装置、共轭梯度法计算装置及方法、以及记录介质 |
JP7272121B2 (ja) | 2019-06-07 | 2023-05-12 | 富士通株式会社 | 演算処理装置、制御方法、及び制御プログラム |
JP7243498B2 (ja) | 2019-07-11 | 2023-03-22 | 富士通株式会社 | 演算処理装置、制御プログラム、及び制御方法 |
JP2021044783A (ja) | 2019-09-13 | 2021-03-18 | 富士通株式会社 | 情報処理装置,情報処理方法および情報処理プログラム |
JP7354736B2 (ja) | 2019-09-30 | 2023-10-03 | 富士通株式会社 | 情報処理装置、情報処理方法、情報処理プログラム |
US20210150306A1 (en) * | 2019-11-14 | 2021-05-20 | Qualcomm Incorporated | Phase selective convolution with dynamic weight selection |
JP7371499B2 (ja) | 2020-01-07 | 2023-10-31 | 富士通株式会社 | 演算処理装置、演算処理装置の制御方法及び演算処理プログラム |
JP2021111081A (ja) | 2020-01-09 | 2021-08-02 | 富士通株式会社 | 情報処理装置、ニューラルネットワークの演算プログラム及びニューラルネットワークの演算方法 |
GB2591106B (en) * | 2020-01-15 | 2022-02-23 | Graphcore Ltd | Control of data transfer between processors |
JP2021124849A (ja) | 2020-02-04 | 2021-08-30 | 富士通株式会社 | 演算処理装置、演算処理装置の制御方法及び演算処理プログラム |
JP7367595B2 (ja) * | 2020-04-07 | 2023-10-24 | 富士通株式会社 | 情報処理装置及び情報処理方法 |
JP7524667B2 (ja) | 2020-08-19 | 2024-07-30 | 富士通株式会社 | 情報処理装置、機械学習方法及び機械学習プログラム |
JP2022094508A (ja) | 2020-12-15 | 2022-06-27 | 富士通株式会社 | 演算処理装置、演算処理方法および演算処理プログラム |
WO2022145016A1 (ja) * | 2020-12-28 | 2022-07-07 | 日本電信電話株式会社 | データ処理装置、データ処理方法、及びデータ処理プログラム |
WO2022249316A1 (ja) * | 2021-05-26 | 2022-12-01 | 日本電信電話株式会社 | 物体検出装置、物体検出方法、及び物体検出プログラム |
JP2023003333A (ja) | 2021-06-23 | 2023-01-11 | 富士通株式会社 | 情報処理プログラム、情報処理方法、および情報処理装置 |
WO2024004221A1 (ja) * | 2022-07-01 | 2024-01-04 | 日本電信電話株式会社 | 演算処理装置、演算処理方法、及び演算処理プログラム |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0784975A (ja) * | 1993-09-10 | 1995-03-31 | Hitachi Ltd | 情報処理装置および学習演算処理方法 |
JP3252954B2 (ja) * | 1997-04-01 | 2002-02-04 | 松下電器産業株式会社 | 乗算方法および乗算回路 |
JP2006048590A (ja) * | 2004-08-09 | 2006-02-16 | Matsushita Electric Ind Co Ltd | 正規化処理装置及び正規化処理方法 |
JP2006155102A (ja) * | 2004-11-26 | 2006-06-15 | Asahi Kasei Microsystems Kk | 演算処理装置 |
JP2010112878A (ja) | 2008-11-07 | 2010-05-20 | Mitsui Eng & Shipbuild Co Ltd | 非揮発性有機ハロゲン化合物の検出方法 |
JP2012203566A (ja) | 2011-03-24 | 2012-10-22 | Seiko Epson Corp | 状態推定装置、電子機器及びプログラム |
US20150120627A1 (en) * | 2013-10-29 | 2015-04-30 | Qualcomm Incorporated | Causal saliency time inference |
JP6381344B2 (ja) | 2014-07-31 | 2018-08-29 | キヤノン株式会社 | 画像処理装置、画像処理方法及びプログラム |
JP2016062404A (ja) | 2014-09-19 | 2016-04-25 | サンケン電気株式会社 | 演算処理方法及び演算処理装置 |
US20170061279A1 (en) * | 2015-01-14 | 2017-03-02 | Intel Corporation | Updating an artificial neural network using flexible fixed point representation |
US10621486B2 (en) * | 2016-08-12 | 2020-04-14 | Beijing Deephi Intelligent Technology Co., Ltd. | Method for optimizing an artificial neural network (ANN) |
US20180107451A1 (en) * | 2016-10-14 | 2018-04-19 | International Business Machines Corporation | Automatic scaling for fixed point implementation of deep neural networks |
CN107688849B (zh) * | 2017-07-28 | 2021-04-13 | 赛灵思电子科技(北京)有限公司 | 一种动态策略定点化训练方法及装置 |
KR20190044878A (ko) * | 2017-10-23 | 2019-05-02 | 삼성전자주식회사 | 뉴럴 네트워크에서 파라미터를 처리하는 방법 및 장치 |
KR20200043169A (ko) * | 2018-10-17 | 2020-04-27 | 삼성전자주식회사 | 뉴럴 네트워크의 파라미터를 양자화하는 방법 및 장치 |
-
2017
- 2017-01-30 JP JP2017014780A patent/JP6540725B2/ja active Active
-
2018
- 2018-01-16 EP EP18744586.1A patent/EP3575952B1/en active Active
- 2018-01-16 WO PCT/JP2018/000988 patent/WO2018139266A1/ja unknown
-
2019
- 2019-07-18 US US16/515,110 patent/US11137981B2/en active Active
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPWO2022003855A1 (ja) * | 2020-07-01 | 2022-01-06 | ||
WO2022003855A1 (ja) * | 2020-07-01 | 2022-01-06 | 日本電信電話株式会社 | データ処理装置およびデータ処理方法 |
JP7491379B2 (ja) | 2020-07-01 | 2024-05-28 | 日本電信電話株式会社 | データ処理装置およびデータ処理方法 |
Also Published As
Publication number | Publication date |
---|---|
EP3575952B1 (en) | 2021-05-26 |
EP3575952A1 (en) | 2019-12-04 |
WO2018139266A1 (ja) | 2018-08-02 |
EP3575952A4 (en) | 2020-01-08 |
US11137981B2 (en) | 2021-10-05 |
US20190339939A1 (en) | 2019-11-07 |
JP2018124681A (ja) | 2018-08-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6540725B2 (ja) | 演算処理装置、方法、およびプログラム | |
US11043962B2 (en) | Information processing apparatus, information processing method, and recording medium | |
JP6540770B2 (ja) | 演算処理回路、演算処理回路を含む演算処理装置、演算処理装置を含む情報処理装置、および方法 | |
CN108133270B (zh) | 卷积神经网络加速方法及装置 | |
JP6540841B1 (ja) | 演算処理装置、情報処理装置、情報処理方法、およびプログラム | |
CN107729989B (zh) | 一种用于执行人工神经网络正向运算的装置及方法 | |
US11222254B2 (en) | Optimized neuron circuit, and architecture and method for executing neural networks | |
US11003736B2 (en) | Reduced dot product computation circuit | |
US11880768B2 (en) | Method and apparatus with bit-serial data processing of a neural network | |
JP2019139338A (ja) | 情報処理装置、情報処理方法、およびプログラム | |
US20190095175A1 (en) | Arithmetic processing device and arithmetic processing method | |
JPH0863353A (ja) | 掛け算累算命令を使用したデータ処理 | |
Fan et al. | Reconfigurable acceleration of 3D-CNNs for human action recognition with block floating-point representation | |
US11341400B1 (en) | Systems and methods for high-throughput computations in a deep neural network | |
KR20190089685A (ko) | 데이터를 처리하는 방법 및 장치 | |
JP7354736B2 (ja) | 情報処理装置、情報処理方法、情報処理プログラム | |
US11551087B2 (en) | Information processor, information processing method, and storage medium | |
US11593071B2 (en) | Arithmetic processing apparatus, control method of arithmetic processing apparatus, and non-transitory computer-readable storage medium for storing program | |
US11604973B1 (en) | Replication of neural network layers | |
JP2020067897A (ja) | 演算処理装置、学習プログラム及び学習方法 | |
JP7243498B2 (ja) | 演算処理装置、制御プログラム、及び制御方法 | |
CN111723917B (zh) | 运算方法、装置及相关产品 | |
WO2019127480A1 (zh) | 用于处理数值数据的方法、设备和计算机可读存储介质 | |
JP7120320B2 (ja) | 演算処理装置および演算処理装置の制御方法 | |
CN110097181B (zh) | 用于执行人工神经网络正向运算的装置和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20181112 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20181206 |
|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20181207 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20181212 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20190129 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190329 |
|
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: 20190514 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20190527 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6540725 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |