JP7052678B2 - 畳込み演算方法 - Google Patents

畳込み演算方法 Download PDF

Info

Publication number
JP7052678B2
JP7052678B2 JP2018208573A JP2018208573A JP7052678B2 JP 7052678 B2 JP7052678 B2 JP 7052678B2 JP 2018208573 A JP2018208573 A JP 2018208573A JP 2018208573 A JP2018208573 A JP 2018208573A JP 7052678 B2 JP7052678 B2 JP 7052678B2
Authority
JP
Japan
Prior art keywords
multiplier
filter
convolution
precision
feature
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2018208573A
Other languages
English (en)
Other versions
JP2020077076A (ja
Inventor
祐樹 浅田
智義 船▲崎▼
祥平 野本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Denso Corp
Original Assignee
Denso Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Denso Corp filed Critical Denso Corp
Priority to JP2018208573A priority Critical patent/JP7052678B2/ja
Publication of JP2020077076A publication Critical patent/JP2020077076A/ja
Application granted granted Critical
Publication of JP7052678B2 publication Critical patent/JP7052678B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Complex Calculations (AREA)

Description

本発明は、特徴量と重み係数との畳込み演算を行う畳込み演算方法に関する。
画像認識や音声認識などで活用されるCNN(Convolutional Neural Network)では、画像や音声信号の特徴量と重み係数との畳込み演算が繰り返し行われる。近年は、処理速度の向上やネットワークモデルのサイズ削減のため、特徴量や重み係数の低ビット化が進んでいる。ただし、低ビット化と認識性能にはトレードオフの関係があり、ネットワークやレイヤによって高精度演算と低精度演算とを使い分けて実行する混合精度の畳込み演算が必要となる。そこで、このような混合精度の畳込み演算の効率的な実行方法が求められている。
本発明に関連する技術として以下の先行技術がある。
特開平7-44533号公報 特開平7-121354号公報
図14は、特許文献1に記載の演算装置による演算を模式化して示す図である。この演算装置は、24ビットの高精度乗算器を用いて、高精度の演算を行う場合には、(a)に示すように、被乗数部と乗数部にそれぞれ24ビットのデータを配置して乗算を行い、低精度の演算を行う場合には、(b)に示すように、低精度の部分演算(8ビット×3×3)に分割して必要な演算部分だけが演算結果に出力されるように乗算器の出力を切り替えることで並列乗算を行う。
図15は、特許文献2に記載の乗算器による演算を模式化して示す図である。この乗算器では、高精度(倍精度)乗算器を用いて、高精度(倍精度)の演算を行う場合には、(a)に示すように、被乗数部と乗数部にそれぞれ倍精度のデータを配置して乗算を行い、低精度(単精度)の演算を行う場合には、(b)及び(c)に示すように、被乗数部と乗数部の上位と下位にそれぞれ単精度のデータを配置し、不要な部分演算がゼロとなるように回路を切り替えることで単精度の並列乗算及び内積演算を行う。
しかしながら、特許文献1に記載の演算装置及び特許文献2に記載の乗算器は、混合精度の演算用にハードウェアとして設計及び実装する必要があり、実装後はビット長も自由に変更できない。また、低ビット化率(即ち、低精度時のビット長/高精度時のビット長)が1/Nのときに、演算効率は高々N倍程度にしかできない。
本発明は、特徴量と重み係数との畳込み演算において、任意の低精度ビット長に対応でき、かつ低ビット化による演算効率の向上率を高くすることを目的とする。
本発明の一態様の畳込み演算方法は、特徴量が1次元以上の格子状に配置された特徴マップ(30)に対して、重み係数が1次元以上の格子状に配置されたフィルタ(31)をスライドさせながら畳込み演算を行うための畳込み演算方法であって、乗算器(10)の被乗数部(11)又は乗数部(12)に複数の前記特徴量を配置し、前記乗算器の乗数部(12)又は被乗数部(11)に複数の前記重み係数を配置して、前記フィルタのスライド位置が異なる2以上の畳込み演算の一部を並列に実行する。
本発明の畳込み演算方法によれば、汎用の乗算器を用いて任意の低精度ビット長の特徴量及び重み係数の畳込み演算を行うことができ、低ビット化による演算効率の向上率を高くできる。
図1は、本発明の実施の形態におけるCNNにおける特徴量と重み係数との畳込み演算を行う高精度乗算器を模式的に示す図である。 図2は、本発明の実施の形態における低精度の畳込み演算を行う場合の高精度乗算器を模式的に示す図である。 図3は、本発明の実施の形態におけるCNNにおける特徴量と重み係数との畳込み演算を模式的に示した図である。 図4は、本発明の実施の形態における実施例M1の乗算を模式的に示す図である。 図5は、実施例M1の畳込み演算を模式的に示す図である。 図6は、実施例M2の乗算を模式的に示す図である。 図7は、実施例M2の畳込み演算を模式的に示す図である。 図8は、畳込み及びスライドの実施例C1を説明する図である。 図9は、畳込み及びスライドの実施例C2を説明する図である。 図10は、畳込み及びスライドの実施例C3を説明する図である。 図11は、畳込み及びスライドの実施例C4を説明する図である。 図12は、畳込み及びスライドの実施例C5を説明する図である。 図13は、畳込み及びスライドの実施例C6を説明する図である。 図14(a)は、従来の演算装置による演算(高精度)を模式化して示す図である。図14(b)は、従来の演算装置による演算(低精度)を模式化して示す図である。 図15(a)は、従来の乗算器による演算(倍精度)を模式化して示す図である。図15(b)及び(c)は、従来の乗算器による演算(単精度)を模式化して示す図である。
以下、本発明に係る畳込み演算方法の実施の形態について図面を参照しながら説明する。図1は、本発明の実施の形態におけるCNNにおける特徴量と重み係数との畳込み演算を行う高精度乗算器を模式的に示す図である。本実施の形態では、高精度乗算器10は、被乗数部11と、乗数部12とを有する。高精度の畳込み演算を行う場合には、被乗数部11に高精度の特徴量Aが配置され、乗数部12に高精度の重み係数Bが配置され、乗算が実行され、乗算結果13として、A×Bが得られる。
図2は、低精度の畳込み演算を行う場合の高精度乗算器を模式的に示す図であり、図3は、CNNにおける特徴量と重み係数との畳込み演算を模式的に示した図である。図3に示すように、画像認識におけるCNNでは、画像の特徴量を2次元の格子状に配置した特徴マップ30に対して、重み係数が2次元の格子状に配置されたフィルタ31を所定のストライド幅で所定のスライド方向にスライドさせながら対応する特徴量と重み係数同士を乗算し、その結果を積算することで、特徴マップ30とフィルタ31との畳込み演算を行う。
図2は、この畳込み演算を行う場合の高精度乗算器10への特徴量及び重み係数の配置を説明している。特徴マップ30のi行j列の特徴量をaijとし、フィルタ31のp行q列の重み係数をwpqとすると、i行j列の畳込み演算結果aij’は、下式(1)で表される。
ij’=ΣΣi+p j+q×wpq …(1)
いま、被乗数である特徴量のビット長が高精度乗算器10の被乗数部11のビット長の1/2以下であるときには、高精度乗算器10の被乗数部11に複数の特徴量を配置できる。また、乗数である重み係数のビット長が高精度乗算器10の乗数部12のビット長の1/2以下であるときは、高精度乗算器10の乗数部12に複数の重み係数を配置できる。
図2に示す例では、被乗数部11には、特徴マップ上で連続している(隣り合っている)特徴量ai+p j+qとai+p j+q+1とがゼロ列を挟んで配置されている。また、乗数部12には、フィルタ上で連続している(隣り合っている)重み係数wp q+1とwpqとがゼロ列を挟んで配置されている。
高精度乗算器10にてこのような配置で乗算を行うと、ai+p j+qとwp q+1との乗算結果133(結果3)が得られ、ai+p j+q+1とwp q+1との乗算結果とai+p j+qとwpqとの乗算結果との積算結果132(結果2)が得られ、ai+p j+q+1とwpqとの乗算結果131(結果1)が得られる。
いま、フィルタ31の左上端が特徴マップのi行j列目にある場合にこのフィルタ31を「スライドij」と呼ぶこととすると、上記の結果1は、スライドi j+1の畳込み演算の一部として利用でき、結果2はスライドijの畳込み演算の一部として利用でき、結果3はスライドi j-1の畳込み演算の一部として利用できる。即ち、高精度乗算器10は、異なるスライドの部分的な畳込み演算を並列に行う。
本実施の形態の畳込み演算を一般化すると次のように表現できる。
まず、高精度乗算器10における低精度の畳込み演算のための乗算を以下のように設定する。ここで、ceilは小数点以下を切り上げて整数とする関数、minは引数から最小のもの選ぶ関数である。
並列数(即ち、高精度乗算器に配置する低精度の特徴量又は重み係数の数):H
被乗数の低精度ビット長:m
乗数の低精度ビット長:n
加算による桁上がりの格納に必要なビット長:k≧ceil(logH)
必要な高精度ビット長:L≧(k+n+m)×H-(k+min(n,m))
また、畳込み演算を以下のように設定する。
特徴マップ(チャンネル数×マップ高さ×マップ幅):Ch×Ha×Wa
フィルタ(チャンネル数×フィルタ高さ×フィルタ幅):Ch×Hw×Ww
ストライド幅:s
パディング幅:P
畳込み演算:aij’=ΣΣΣc si+p sj+q×wcpq
畳込み演算器は、特徴量aij’の畳込み演算において、c=0、i=0、j=0、p=0、q=0から開始して以下の手順を実行する。ここで、[X:Y]は対象とするビット位置の範囲(ビット位置Xからビット位置Yまで)を示している。
(1)H個の特徴量のt番目(ac si+p sj+q+st[m-1:0])を被乗数部11の[m-1+t×(k+n+m):t×(k+n+m)]に配置する。ただし、sj+q+stがWa-1を超える場合はゼロを配置する。ここで、tは0以上かつH-1以下の整数とする。
(2)H個の重み係数のo番目(wc p q+so[n-1:0])を乗数部12の[n-1+(H-1-o)×(k+n+m):(H-1-o)×(k+n+m)]に配置する。ただし、q+soがWw-1を超える場合はゼロを配置する。ここで、oは0以上かつH-1以下の整数とする。
(3)部分乗算及び加算の桁上がりによる演算の重複を避けるため、被乗数部11と乗数部12の残りのビットにゼロを配置する。
(4)乗算を実行する。
(5)得られる(2H-1)個の演算結果のr番目[k+n+m-1+r×(k+n+m):r×(k+n+m)]をスライドi j+r-(H-1)の畳込み演算の一部として積算する。ここで、rは0以上かつ2H-1-1以下の整数である。
(6)x番目のq方向の並列演算をq=floor(x/s)×(H×s)+x%sとして(1)~(5)を繰り返す。ここで、xは0以上かつmin(ceil(max(W,H×s)/H),W)-1以下の整数、%は剰余を求める演算子、floorは小数点以下を切り捨てる関数、maxは引数から最大のものを選択する関数である。
(7)残りのp方向を0からHw-1まで、c方向を0からCh-1まで(1)~(6)を繰り返して畳み込む。
(8)y番目のj方向のスライドをj=y×Hとして(1)~(7)を繰り返す。ここで、yは0以上かつceil(((Wa+2P-Ww)/s+1-1)/H)+1-1以下の整数である。
(9)残りのi方向を0から(Ha+2P-Hw)/s+1-1まで(1)~(8)を繰り返してすべての特徴量を計算する。
なお、上記の演算において、被乗数部と乗数部、重み係数と特徴量の並びの昇順と降順、p方向とq方向、i方向とj方向、pqijの順方向と逆方向をそれぞれ入れ替えてもよい。また、特徴量及び重み係数のとり得る範囲を制限することで、加算による桁上りが少ないことが保証できる場合には、加算による桁上りの格納に必要なビット長はkより小さくてもよい。
このように、本実施の形態では、高精度乗算器10の被乗数部11に2以上の特徴量を配置し、乗数部12にも2以上の重み係数を配置することで、スライドの異なる2以上の畳込み演算を並行して実行する。このとき、被乗数部11には2以上の特徴量として特徴マップ30上の連続したデータを配置し、乗数部12にも2以上の重み係数としてフィルタ31上の連続したデータを配置する。
さらに、各データの前又は後には、低精度乗算時の桁上がり分及び加算時の桁上がり分が並列に実行される他の乗算に影響することを避けるためにゼロ列を配置する。これにより、乗算及び加算によって桁上がりが発生しても乗算結果13にそれらのビットを格納する桁を確保できる。
乗算結果13として得られる2以上の低精度の乗算又は積和演算の結果は、スライドの移動方向に連続した異なる2以上の畳込み演算で用いることができる。そして、ストライド幅sが2以上の場合には、特徴量としては、特徴マップ30上でそれぞれ2以上離れた連続データを配置し、また、重み係数としては、フィルタ31上でそれぞれ2以上離れた連続データを配置する。また、スライドの移動方向に連続した異なる2以上の畳込み演算を続けて実行する場合には、スライド位置として2以上離れた位置で次の畳込み演算を実行し、特徴量としては、特徴マップ30上で2以上離れた位置から前記連続データの配置を開始し、重み係数としては、フィルタ31上で2以上離れた位置から前記連続データの配置を開始する。
本実施の形態によれば、汎用の乗算器を用いて任意の低精度ビット長の特徴量及び重み係数の畳込み演算を並列に行うことができる。低ビット化率(即ち、低精度時のビット長/高精度時のビット長)が1/Nの時に、演算効率を約ceil(N/2)にまで向上できる。
以下、具体的な乗算の実施例及び畳込み及びスライドの実施例を説明する。以下では、乗算の実施例として、実施例M1、M2を説明し、畳込み及びスライドの実施例として実施例C1~C6を説明する。
(乗算:実施例M1)
本実施例では、並列数:H=2、特徴量の低精度ビット長:m=4ビット、重み係数の低精度ビット長:n=4ビットとする。また、畳込み演算を以下のように設定する。
特徴マップ:Ch×Ha×Wa=1×8×8
フィルタ:Ch×Hw×Ww=1×4×4
ストライド幅:s=1
パディング幅:P=0
図4は、実施例M1の乗算を模式的に示す図である。図5は、実施例M1の畳込み演算を模式的に示す図である。本実施例では、特徴量aij’の畳込み演算において、例えば、c=0、i=0、j=2、p=0、q=0のときに、以下の手順で乗算(図4参照)を行う。
(M1-1)特徴量a02[3:0]を被乗数部11の[3:0](A3~A0)に配置し、特徴量a03[3:0]を被乗数部11の[12:9](A12~A9)に配置する。
(M1-2)重み係数w00[3:0]を乗数部12の[12:9](B12~B9)に配置し、重み係数w01[3:0]を乗数部12の[3:0](B3~B0)に配置する。
(M1-3)部分乗算及び加算の桁上がりによる演算の重複を避けるため、被乗数部11と乗数部12の残りのビットにゼロを配置する。
(M1-4)乗算を実行する。
(M1-5)演算結果13の[8:0](C8~C0)をスライド01の畳込み演算の一部とし、演算結果13の[17:9](C17~C9)をスライド02の畳込み演算の一部とし、演算結果13の[26:18](C26~C18)をスライド03の畳込み演算の一部として、それぞれ積算する。
(乗算:実施例M2)
本実施例では、並列数:H=3、特徴量の低精度ビット長:m=4ビット、重み係数の低精度ビット長:n=2ビットとする。また、畳込み演算を以下のように設定する。
特徴マップ:Ch×Ha×Wa=1×8×8
フィルタ:Ch×Hw×Ww=1×3×3
ストライド幅:s=1
パディング幅:P=0
図6は、実施例M2の乗算を模式的に示す図である。図7は、実施例M2の畳込み演算を模式的に示す図である。本実施例では、特徴量aij’の畳込み演算において、例えば、c=0、i=0、j=3、p=0、q=0のときに、以下の手順で乗算(図6参照)を行う。
(M2-1)特徴量a03[3:0]を被乗数部11の[3:0](A3~A0)に配置し、特徴量a04[3:0]を被乗数部11の[11:8](A11~A8)に配置し、特徴量a05[3:0]を被乗数部11の[19:16](A19~A16)に配置する。
(M2-2)重み係数w00[1:0]を乗数部12の[17:16](B17~B16)に配置し、重み係数w01[1:0]を乗数部12の[9:8](B9~B8)配置し、重み係数w02[1:0]を乗数部12の[1:0](B1~B0)に配置する。
(M2-3)部分乗算及び加算の桁上がりによる演算の重複を避けるため、被乗数部11と乗数部12の残りのビットにゼロを配置する。
(M2-4)乗算を実行する。
(M2-5)演算結果13の[7:0](C7~C0)をスライド01の畳込み演算の一部とし、演算結果13の[15:8](C15~C8)をスライド02の畳込み演算の一部とし、演算結果13の[23:16](C23~C16)をスライド03の畳込み演算の一部とし、演算結果13の[31:24](C31~C24)をスライド04の畳込み演算の一部とし、演算結果13の[39:32](C39~C32)をスライド05の畳込み演算の一部として、それぞれ積算する。
(畳込み:実施例C1)
図8は、畳込み及びスライドの実施例C1を説明する図である。本実施例では、畳込み演算を以下のように設定する。
並列数:H=2
特徴マップ:Ch×Ha×Hw=1×8×8
フィルタ:Ch×Hw×Ww=1×4×4
ストライド幅:s=1
パディング幅:P=0
畳込みは以下の手順で行う。
(C1-6)特徴量と重み係数の並列乗算をq方向に0、2として繰り返してスライド毎に積算する。
(C1-7)p方向に0から3まで(C1-6)を繰り返して畳み込む。
(C1-8)スライドをj方向に0、2、4として(C1-7)を繰り返す。
(C1-9)i方向に0から4まで(C1-8)を繰り返してすべての特徴量を計算する。
(畳込み:実施例C2)
図9は、畳込み及びスライドの実施例C2を説明する図である。本実施例では、畳込み演算を以下のように設定する。
並列数:H=3
特徴マップ:Ch×Ha×Hw=1×8×8
フィルタ:Ch×Hw×Ww=1×3×3
ストライド幅:s=1
パディング幅:P=0
畳込みは以下の手順で行う。
(C2-6)特徴量と重み係数の並列乗算をq方向に0として実行し、スライド毎に積算する。
(C2-7)p方向に0から2まで(C2-6)を繰り返して畳み込む。
(C2-8)スライドをj方向に0、3、6として(C2-7)を繰り返す。ここで、jが6のときにはスライドが特徴マップからはみ出し、対応する特徴量が得られなくなるが、特徴量の代わりにゼロを配置する。
(C2-9)i方向に0から5まで(C2-8)を繰り返してすべての特徴量を計算する。
(畳込み:実施例C3)
図10は、畳込み及びスライドの実施例C3を説明する図である。本実施例では、畳込み演算を以下のように設定する。
並列数:H=2
特徴マップ:Ch×Ha×Hw=1×8×8
フィルタ:Ch×Hw×Ww=1×3×3
ストライド幅:s=1
パディング幅:P=0
畳込みは以下の手順で行う。
(C3-6)特徴量と重み係数の並列乗算をq方向に0、2として繰り返してスライド毎に積算する。ここで、qが2のとき、フィルタのサイズが不足し、並列数分の重み係数が得られなくなるが、重み係数の代わりにゼロを配置する。
(C3-7)p方向に0から2まで(C3-6)を繰り返して畳み込む。
(C3-8)スライドをj方向に0、2、4、6として(C3-7)を繰り返す。ここで、jが6のときにはスライドが特徴マップからはみ出し、対応する特徴量が得られなくなるが、特徴量の代わりにゼロを配置する。
(C3-9)i方向に0から5まで(C3-8)を繰り返してすべての特徴量を計算する。
(畳込み:実施例C4)
図11は、畳込み及びスライドの実施例C4を説明する図である。本実施例では、畳込み演算を以下のように設定する。
並列数:H=2
特徴マップ:Ch×Ha×Hw=1×8×8
フィルタ:Ch×Hw×Ww=1×4×4
ストライド幅:s=2
パディング幅:P=0
畳込みは以下の手順で行う。
(C4-6)特徴量と重み係数の並列乗算をq方向に0、1として繰り返してスライド毎に積算する。
(C4-7)p方向に0から3まで(C4-6)を繰り返して畳み込む。
(C4-8)スライドをj方向に0、2として(C4-7)を繰り返す。
(C4-9)i方向に0から2まで(C4-8)を繰り返してすべての特徴量を計算する。
(畳込み:実施例C5)
図12は、畳込み及びスライドの実施例C5を説明する図である。本実施例では、畳込み演算を以下のように設定する。
並列数:H=3
特徴マップ:Ch×Ha×Hw=1×9×9
フィルタ:Ch×Hw×Ww=1×3×3
ストライド幅:s=2
パディング幅:P=0
畳込みは以下の手順で行う。
(C5-6)特徴量と重み係数の並列乗算をq方向に0、1として繰り返してスライド毎に積算する。ここで、フィルタのサイズが不足し、並列数分の重み係数が得られないが、重み係数の代わりにゼロを配置する。
(C5-7)p方向に0から2まで(C5-6)を繰り返して畳み込む。
(C5-8)スライドをj方向に0、3として(C5-7)を繰り返す。ここで、jが3のときには重み係数の代わりに配置したゼロに対応する特徴量が得られなくなるが、特徴量の代わりにゼロを配置する。
(C5-9)i方向に0から3まで(C5-8)を繰り返してすべての特徴量を計算する。
(畳込み:実施例C6)
図13は、畳込み及びスライドの実施例C6を説明する図である。本実施例では、畳込み演算を以下のように設定する。
並列数:H=2
特徴マップ:Ch×Ha×Hw=1×10×10
フィルタ:Ch×Hw×Ww=1×4×4
ストライド幅:s=3
パディング幅:P=0
畳込みは以下の手順で行う。
(C6-6)特徴量と重み係数の並列乗算をq方向に0、1、2として繰り返してスライド毎に積算する。ここで、qが1、2のときにはフィルタのサイズが不足し、並列数分の重み係数が得られなくなるが、重み係数の代わりにゼロを配置する。
(C6-7)p方向に0から3まで(C6-6)を繰り返して畳み込む。
(C6-8)スライドをj方向に0、2として(C6-7)を繰り返す。ここで、jが2のときには重み係数の代わりに配置したゼロに対応する特徴量が得られなくなるが、特徴量の代わりにゼロを配置する。
(C6-9)i方向に0から2まで(C6-8)を繰り返してすべての特徴量を計算する。
なお、上記の実施の形態では、特徴量及び重み係数がそれぞれ2次元の格子状に配置されている例を説明したが、特徴量及び重み係数がそれぞれ1次元に配置されていてもよく(この場合にも、行が1行又は列が1列の格子状配置ということができる)、3次元以上の格子状配列であってもよい。
以上のように、本発明は、汎用の乗算器を用いて任意の低精度ビット長の特徴量及び重み係数の畳込み演算を並列に行うことができ、低ビット化による演算効率の向上率を高くできるという効果を有し、特徴量と重み係数との畳込み演算を行う畳込み演算方法等として有用である。
10 高精度乗算器,11 被乗数部,12 乗数部,13 乗算結果,
30 特徴マップ,31 フィルタ

Claims (6)

  1. 特徴量が1次元以上の格子状に配置された特徴マップに対して、重み係数が1次元以上の格子状に配置されたフィルタをスライドさせながら畳込み演算を行うための畳込み演算方法であって、
    乗算器の被乗数部又は乗数部に複数の前記特徴量を配置し、前記乗算器の乗数部又は被乗数部に複数の前記重み係数を配置して、
    前記フィルタのスライド位置が異なる2以上の畳込み演算の一部を並列に実行する畳込み演算方法。
  2. 前記乗算器に配置する各特徴量の前又は後にゼロ列を配置し、
    前記乗算器に配置する各重み係数の前又は後にゼロ列を配置する、請求項1に記載の畳込み演算方法。
  3. 前記複数の特徴量として、前記特徴マップ上で連続する複数の特徴量を配置し、
    前記複数の重み係数として、前記フィルタ上で連続する複数の重み係数を配置する、請求項1又は2に記載の畳込み演算方法。
  4. 前記フィルタのストライドの幅が2以上であるときは、前記複数の特徴量として、前記特徴マップ上で2以上離れて連続する複数の特徴量を配置し、前記複数の重み係数として、前記フィルタ上で2以上離れて連続する複数の重み係数を配置する、請求項1~3のいずれか一項に記載の畳込み演算方法。
  5. 前記乗算器により得られる2以上の乗算結果又は積和演算結果を、前記フィルタのスライド方向に連続した異なる2以上の畳込み演算で用いる、請求項1~4のいずれか一項に記載の畳込み演算方法。
  6. 前記フィルタのスライド位置が異なる2以上の畳込み演算を続けて実行する場合に、スライド位置として2以上離れた位置で次の畳込み演算を実行し、前記複数の特徴量として前記特徴マップ上で2以上離れた位置から連続する複数の特徴量の配置を開始し、前記複数の重み係数としてフィルタ上で2以上離れた位置から連続する複数の重み係数の配置を開始する、請求項1~5のいずれか一項に記載の畳込み演算方法。



JP2018208573A 2018-11-06 2018-11-06 畳込み演算方法 Active JP7052678B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018208573A JP7052678B2 (ja) 2018-11-06 2018-11-06 畳込み演算方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018208573A JP7052678B2 (ja) 2018-11-06 2018-11-06 畳込み演算方法

Publications (2)

Publication Number Publication Date
JP2020077076A JP2020077076A (ja) 2020-05-21
JP7052678B2 true JP7052678B2 (ja) 2022-04-12

Family

ID=70724113

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018208573A Active JP7052678B2 (ja) 2018-11-06 2018-11-06 畳込み演算方法

Country Status (1)

Country Link
JP (1) JP7052678B2 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018073102A (ja) 2016-10-28 2018-05-10 キヤノン株式会社 演算回路、その制御方法及びプログラム
JP2018120549A (ja) 2017-01-27 2018-08-02 富士通株式会社 プロセッサ、情報処理装置及びプロセッサの動作方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0744533A (ja) * 1993-07-27 1995-02-14 Kawasaki Steel Corp 演算装置
JP3579087B2 (ja) * 1994-07-08 2004-10-20 株式会社日立製作所 演算器およびマイクロプロセッサ

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018073102A (ja) 2016-10-28 2018-05-10 キヤノン株式会社 演算回路、その制御方法及びプログラム
JP2018120549A (ja) 2017-01-27 2018-08-02 富士通株式会社 プロセッサ、情報処理装置及びプロセッサの動作方法

Also Published As

Publication number Publication date
JP2020077076A (ja) 2020-05-21

Similar Documents

Publication Publication Date Title
JP7476175B2 (ja) 乗算累積回路
JP6540725B2 (ja) 演算処理装置、方法、およびプログラム
JP2022008571A (ja) 畳み込みニューラルネットワークのためのスーパーピクセル法
EP3734543B1 (en) Image transformation for machine learning
JP4635087B2 (ja) 拡張関数のための向上した浮動小数点演算部
US20180365561A1 (en) Alternative loop limits
KR102335909B1 (ko) 특수 목적 연산 유닛을 사용한 하드웨어 이중 버퍼링
CN109844738A (zh) 运算处理电路和识别***
JP2018026027A (ja) 演算処理装置及び演算処理装置の制御方法
EP3602280A1 (en) Accessing prologue and epilogue data
US10402196B2 (en) Multi-dimensional sliding window operation for a vector processor, including dividing a filter into a plurality of patterns for selecting data elements from a plurality of input registers and performing calculations in parallel using groups of the data elements and coefficients
JP7052678B2 (ja) 畳込み演算方法
CN102446160A (zh) 面向双精度simd部件的矩阵乘实现方法
CN114556373A (zh) 用于大规模并行神经推理引擎的多模式低精度内积计算电路
WO2017185334A1 (zh) 一种用于执行多种超越函数运算的装置和方法
JP7247418B2 (ja) 乗算のための計算ユニット、方法及びコンピュータプログラム
CN114281755B (zh) 一种面向向量处理器的半精度向量化卷积方法及***
CN113592075B (zh) 卷积运算装置、方法和芯片
JP6687803B2 (ja) 区分線形近似のためのシステムおよび方法
KR20080016803A (ko) 큰 수 곱셈 방법 및 디바이스
US20220180171A1 (en) Four-bit training for machine learning
CN111738904B (zh) 一种图像中目标物体的几何矩的计算方法和计算装置
CN113496276A (zh) 信息处理设备和信息处理方法
CN112116715A (zh) 有效内插的方法和装置
CN117492838A (zh) 访问序言和结尾数据

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210413

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220224

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220314

R151 Written notification of patent or utility model registration

Ref document number: 7052678

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151