JP6906622B2 - 演算回路および演算方法 - Google Patents
演算回路および演算方法 Download PDFInfo
- Publication number
- JP6906622B2 JP6906622B2 JP2019549165A JP2019549165A JP6906622B2 JP 6906622 B2 JP6906622 B2 JP 6906622B2 JP 2019549165 A JP2019549165 A JP 2019549165A JP 2019549165 A JP2019549165 A JP 2019549165A JP 6906622 B2 JP6906622 B2 JP 6906622B2
- Authority
- JP
- Japan
- Prior art keywords
- circuit
- arithmetic
- output
- input
- data
- 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
- 238000000034 method Methods 0.000 title description 55
- 238000003860 storage Methods 0.000 claims description 291
- 239000011159 matrix material Substances 0.000 claims description 127
- 239000013598 vector Substances 0.000 claims description 99
- 238000004364 calculation method Methods 0.000 claims description 69
- 238000013527 convolutional neural network Methods 0.000 claims description 11
- 238000006243 chemical reaction Methods 0.000 description 66
- 230000008569 process Effects 0.000 description 31
- 238000010586 diagram Methods 0.000 description 24
- 230000006870 function Effects 0.000 description 18
- 230000004048 modification Effects 0.000 description 11
- 238000012986 modification Methods 0.000 description 11
- 230000009977 dual effect Effects 0.000 description 5
- 230000002093 peripheral effect Effects 0.000 description 5
- 238000011176 pooling Methods 0.000 description 5
- 230000001186 cumulative effect Effects 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 4
- 238000004904 shortening Methods 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 210000002569 neuron Anatomy 0.000 description 2
- 230000001131 transforming effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000012886 linear function Methods 0.000 description 1
- 229940050561 matrix product Drugs 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- 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
- G06N3/065—Analogue means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
-
- 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/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Human Computer Interaction (AREA)
- Computing Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Mathematics (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Neurology (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Complex Calculations (AREA)
Description
[CNNの処理]
最初にCNNについて簡単に説明する。図1は、CNNによる演算処理を示すフローチャートである。
図2は、畳み込み演算について説明するための図である。図2に示すように、入力特徴マップとしての入力データ100とカーネル101との畳み込み演算によって出力データ102が生成される。出力データ102の各要素にバイアスを加算し、さらに活性化関数を施すことによって出力特徴データが生成される。活性化関数として、たとえば、ReLU(Rectified Linear Unit)などの非線形関数が用いられる。
図3は、特徴マップおよびカーネルの展開について説明するための図である。本実施の形態1の場合、畳み込み演算の処理時間を短縮するために、特徴マップの各行をつなぎ合わせることによって特徴マップが1列に展開される。
図4は、本実施の形態1に係る演算回路12の構成の一例を、周辺回路と関連付けて示す図である。演算回路12は、「演算装置」の一実施例である。図4を参照して、演算回路12は、演算回路12内の各部を制御するための専用回路である制御回路30、それぞれが積和演算を実施する複数の演算器CLk(k=1、2、3・・・n)を有する並列演算回路121、入力I/F(Interfaceの略)122および出力I/F(Interface)123を備える。演算回路12は、複数の演算器CLkを有する。各演算器CLkは、係数行列Aの各行に対応して設けられている。
図5は、図4の演算器CLkと入出力データを関連付けて説明する図である。図5を参照して、演算器CLkは、アキュムレータT1、乗算器T2、加算器T3およびレジスタT4を含む。演算器CLkには、演算器CLkから読出し可能な係数記憶回路132および入力記憶回路133が接続される。「入力記憶回路」は、並列演算回路121と外部装置との間において並列演算回路121への入力を記憶する回路である。係数記憶回路132および入力記憶回路133は、図4の入力I/F122に含まれる。図5では、並列演算装置の複数の演算器CLkのうち1つを示すが、他の演算器も同様の構成を有する。
演算器CLkでは、アキュムレータT1およびレジスタT4は、初期値(例えば0)が予め格納されている。積和演算処理が開始されると、乗算器T2は、クロックに同期して、係数記憶回路132から要素Akmを、入力記憶回路133から要素xmをそれぞれ読出し、読出された要素Akmに要素xmを掛けて積を算出し、算出した積を上書きによりレジスタT4に格納する。加算器T3は、レジスタT4の積と、アキュムレータT1に格納されている累算値sumとの和を算出し、算出した和をアキュムレータT1に出力する。アキュムレータT1は、入力記憶回路133から読出した要素bkと加算器T3からの和とを加算し、加算結果を累算値sumに加算する。これにより、1回の演算処理が終了する。このような、係数記憶回路132の要素Akmと入力記憶回路133の対応する要素xmの積と累算値sumの和からなる積和演算が、n回繰返される。
図6は、本実施の形態1に係る入力I/Fと出力I/Fの構成を示す図である。図6では、入力I/Fと出力I/Fの構成が、制御回路30を除く周辺回路と関連づけて示されている。図6では、並列演算回路121は、共有メモリ124を接続する。共有メモリ124は、各演算器CLkにより書込み可能および読出し可能に構成されている。図6を参照して、入力I/F122は、入力変換回路131、係数記憶回路132および入力記憶回路133を含む。出力I/F123は、出力変換回路141および出力記憶回路142を含む。「出力記憶回路」は、並列演算回路121と外部装置との間において並列演算回路121からの出力を記憶する回路である。
入力変換回路131は、例えば図9に示す構成を有する。図9を参照して、入力変換回路131は、係数記憶回路132および入力記憶回路133の各記憶回路に対応するセレクタ13と、テーブルまたは専用回路15を備える。テーブルまたは専用回路15は、各セレクタに選択指令151を出力する。選択指令151は、外部記憶装置62または外部入力装置61からの係数行列Aの要素Aij、入力ベクトルxの要素xjおよびバイアスベクトルbの要素biのうち、いずれを選択して、対応の記憶回路に書込むかの指令を示す。選択指令151は、例えば要素Aij、要素xjおよび要素biのインデックスの値を含む。
本実施の形態1では、各演算器CLkが係数行列Aのどの行に割当てられるかと、非零の要素Aijと演算されるべき要素xjの入力ベクトルxにおける位置とは、予め決定されている。したがって、テーブルまたは専用回路15には、このような予め決定された内容を示す情報が格納されており、専用回路は、格納された情報に従い、各セレクタ13宛の選択指令151を生成し、生成された選択指令151を当該セレクタ13に出力する。なお、演算器CLkへの係数行列Aの行の割当て、および非零の要素Aijと演算されるべき要素xjの入力ベクトルxにおける位置が変更されない場合は、テーブルまたは専用回路15は、固定の回路として構成され得る。
出力変換回路141は、例えば図10に示す構成を有する。図10を参照して、出力変換回路141は、複数のセレクタ14と、テーブルまたは専用回路16とを備える。複数のセレクタ14は、出力記憶回路142の複数の記憶回路MOkにそれぞれ対応する。記憶回路MOkは1または複数のレジスタを含む。
図11は、図5で示した演算器CLkと演算されるべき要素の関連付けの具体例を示す図である。図11に示すように、入力変換回路131によれば、記憶回路Ckおよび記憶回路MIkには、対応の演算器CLkで演算されるべき非零要素Aijと要素xjのみが格納されて、且つ演算されるべき順番で格納されている。
図8を参照して、係数記憶回路132は、係数(要素Aijと要素bi)を格納する方式は、図8(A)の1つ目の方式と図8(B)の2つ目の方式を含む。
演算回路12は、上記の(1)式で示される行列演算を、並列演算により実行可能な複数の演算器を含むASIC(Application Specific Integrated Circuit)またはFPGA(Field Programmable Gate Array)によって構成され得る。
図12は、本実施の形態1に係る並列処理を説明するフローチャートである。図12のフローチャートに従う処理は、制御プログラム150として制御回路30のメモリ32に格納されている。プロセッサ31が、制御プログラム150をメモリ32から読出し、読出された制御プログラム150を実行する。
図12のフローチャートでは、係数記憶回路132の記憶回路Ckの格納方式は、図8(A)の1つ目の方式であったが、図8(B)の2つ目の格納方式であってもよい。
実施の形態2は、実施の形態1の変形例を示す。図13は、本実施の形態2に係る演算回路12Aの入力I/Fと出力I/Fの構成を示す図である。図13の演算回路12Aは、図6の入力I/F122とは異なる入力I/F122Aを有する。演算回路12Aの他の構成は、図6のそれらと同様であるので説明は繰返さない。
実施の形態3は、実施の形態1の変形例を示す。図15は、本実施の形態3に係る演算回路12Bの入力I/Fと出力I/Fの構成を示す図である。図15の演算回路12Bは、図6の出力I/F123とは異なる出力I/F123Bを有する。演算回路12Bの他の構成は、図6のそれらと同様であるので説明は繰返さない。
実施の形態4は、実施の形態1の変形例を示す。図17は、本実施の形態4に係る演算回路12Bの入力I/Fと出力I/Fの構成を示す図である。図17の演算回路12Cは、実施の形態2の入力I/F122Aと実施の形態3の出力I/F123Bとを備える。
実施の形態5は、実施の形態1の変形例を示す。図18は、本実施の形態5に係る演算回路12Dの入力I/Fと出力I/Fの構成を示す図である。図18の演算回路12Dは、図6の入力I/F122とは異なる入力I/F122Dを有する。演算回路12Dの他の構成は、図6のそれらと同様であるので説明は繰返さない。
実施の形態6は、実施の形態1の変形例を示す。図19は、本実施の形態6に係る演算回路12Eの入力I/Fと出力I/Fの構成を示す図である。図19の演算回路12Eは、図6の出力I/F123とは異なる出力I/F123Eを有する。演算回路12Eの他の構成は、図6のそれらと同様であるので説明は繰返さない。
実施の形態7は、実施の形態1の変形例を示す。図20は、本実施の形態7に係る演算回路12Fの入力I/Fと出力I/Fの構成を示す図である。図20の演算回路12Fは、実施の形態5の2重化入力記憶回路133A,133Bおよび実施の形態6の2重化出力記憶回路142A,142Bを備える。
実施の形態8は、実施の形態1の変形例を示す。図21は、本実施の形態8に係る演算回路の構成を示す図である。図21の演算回路は、演算回路12Gと、演算回路12Gに接続された演算回路12Hを有する。演算回路12Gは、実施の形態1の演算回路12の出力I/F123が削除されているが、他は演算回路12と同じである。演算回路12Hは、入力I/F122H、並列演算回路121および出力I/F123を備える。入力I/F122Hは、入出力変換回路131H、係数記憶回路132および入力記憶回路133を備える。図21において、入出力変換回路131Hを除く他の構成は、実施の形態1の演算回路12が備える構成と同じであるから、説明は繰返さない。
実施の形態9は、実施の形態1の変形例を示す。図22は、本実施の形態9に係る演算回路の構成を示す図である。図22の演算回路は、演算回路12Gと、演算回路12Gに接続された演算回路12Iを有する。演算回路12Gは、実施の形態1の演算回路12の出力I/F123が削除されているが、他は演算回路12と同じであるので、説明は繰返さない。
実施の形態10は、実施の形態1の変形例を示す。図23は、本実施の形態10に係る演算回路の構成を示す図である。図23の演算回路は、演算回路12Jと、演算回路12Jに接続された演算回路12Kを有する。演算回路12Jは、実施の形態7で示された演算回路12Fから出力I/F123Eが削除されているが、他の構成は演算回路12Fのそれらと同様であるので、説明は繰返さない。また、演算回路12Kは、入力I/F122K、並列演算回路121、および出力I/F123Eを備える。入力I/F122Kは、入出力変換回路131K、2重化入力記憶回路133A,133Bおよび係数記憶回路132を備える。演算回路12Kにおける入出力変換回路131Kを除く他の構成は、実施の形態7の演算回路12Fのそれらと同じであるので、説明は繰返さない。
各実施の形態に係る演算回路は、図24のように変形されてもよい。図24は、本発明の各実施の形態に係る演算回路の「行列ケース」に従う演算を実行可能な構成の一例を模式的に示す図である。実施の形態1.〜実施の形態8.の演算回路は、図24に示すような、「行列ケース」に従う積和演算を算出可能に構成され得る。図24では、n×nの係数行列Aと、入力データ100に相当するn×nの行列Xの積和演算を実行可能な演算器CLkが示される。
各実施の形態のさらなる変形例を説明する。各実施の形態に係る演算回路は図25のように変形されてもよい。図25は、本発明の各実施の形態に係る演算回路の「行列ケース」に従う演算を実行可能な構成の他の例を模式的に示す図である。実施の形態1.〜実施の形態8.の演算回路は、図25に示すような演算回路を適用することができる。図25でも、図24と同様に、n×nの係数行列Aと、n×nの行列Xの積和演算を実行可能な演算器CLkが示される。
Claims (21)
- 複数の演算器を含む並列演算回路と、
複数の記憶回路を含む入力インターフェイスと、を備え、
前記複数の演算器は、前記複数の記憶回路にそれぞれ対応するように構成され、
各前記複数の演算器は、対応の前記記憶回路に格納されたデータを用いた演算をするように構成され、
各前記記憶回路は、
入力データを記憶する入力記憶回路と、
係数データを記憶する係数記憶回路と、を有し、
前記入力データおよび前記係数データは、当該データを演算するべき前記演算器および当該データが演算されるべき順番を指定するインデックスを有し、
前記入力インターフェイスは、
外部装置からの前記入力データおよび前記係数データを、それぞれ、当該データが有する前記インデックスに基づき、前記複数の演算器のうちの1の演算器に対応した前記入力記憶回路および前記係数記憶回路に前記順番に従い格納するように構成される、演算回路。 - 前記入力記憶回路は、2重化された入力記憶回路を含み、
前記2重化された入力記憶回路の一方は、前記外部装置からの前記入力データを格納し、格納が完了したとき、対応する前記演算器による入力データの読出が可能なように構成され、
前記2重化された入力記憶回路の他方は、対応する前記演算器により入力データが読出されて、読出しが完了したとき、前記外部装置からの前記入力データを格納するよう構成される、請求項1に記載の演算回路。 - 複数の演算器を含む並列演算回路と、
複数の記憶回路を含む入力インターフェイスと、を備え、
前記複数の演算器は、前記複数の記憶回路にそれぞれ対応するように構成され、
各前記複数の演算器は、係数データと入力データを用いた演算をするように構成され、
各前記記憶回路は、
前記係数データを記憶する係数記憶回路を有し、
前記入力インターフェイスは、
外部装置からの前記係数データを、各前記演算器に対応した前記記憶回路に格納する入力回路を、さらに含み、
前記入力データおよび前記係数データは、当該データを演算するべき前記演算器および当該データが演算されるべき順番を識別するインデックスを有し、
前記入力回路は、
前記外部装置からの前記係数データを、当該データが有する前記インデックスに基づき、前記複数の演算器のうちの1の前記演算器に対応した前記係数記憶回路に、前記順番に従い格納するよう構成され、
前記入力インターフェイスは、
前記外部装置から前記入力データを受付けたとき、当該入力データの前記インデックスが示す前記演算器に当該入力データを出力する、演算回路。 - 前記各演算器は、非零要素と零要素とを含む係数行列に右から入力ベクトルを掛け、演算結果を出力ベクトルに出力するよう構成され、
前記入力データは、前記入力ベクトルの要素を含み、
前記係数データは、前記係数行列の要素を含み、
前記各演算器は、さらに、対応する前記入力ベクトルの要素と前記係数行列の対応する要素との乗算を順次実行し、前記乗算の結果を前記出力ベクトルの要素に積算するように構成される、請求項1から3のいずれか1項に記載の演算回路。 - 前記並列演算回路は、さらに、前記係数行列に右から入力行列を掛け、演算結果を出力行列に出力するよう構成され、
前記入力ベクトルは、前記入力行列を構成する行または列ベクトルを含み、
前記出力行列を構成する行または列ベクトルは、前記各演算器に対応の前記出力ベクトルを含む、請求項4に記載の演算回路。 - 前記出力行列を格納するように構成された複数の出力記憶回路を含む出力インターフェイスをさらに備え、
前記複数の出力記憶回路は、前記複数の演算器にそれぞれ対応するように構成され、
各前記出力記憶回路は、対応の前記演算器からの前記出力ベクトルを格納するように構成され、
前記出力インターフェイスは、前記複数の出力記憶回路から前記出力行列の要素を前記インデックスに基づき列優先または行優先で読出すように構成される、請求項5に記載の演算回路。 - 前記出力インターフェイスは、制御指令に従い、前記複数の出力記憶回路から前記出力行列の要素を前記列優先または前記行優先で読出すように構成される、請求項6に記載の演算回路。
- 前記出力行列を前記入力行列として他の前記演算回路に出力するとき、前記制御指令は、前記出力行列の要素が表すデータの種類に基づき、列優先および行優先のいずれか一方に従う読出指令を含む、請求項7に記載の演算回路。
- 前記データの種類は画像を含む、請求項8に記載の演算回路。
- 前記係数記憶回路は、リングバッファを含み、
前記係数記憶回路は、前記リングバッファに前記係数行列を構成する行または列ベクトルの要素を格納するよう構成される、請求項4から9のいずれか1項に記載の演算回路。 - 前記要素が有するインデックスは、さらに、当該要素を演算するべき前記演算器を指定し、
前記入力インターフェイスは、
外部装置からの前記係数行列の前記行または列ベクトルの要素を、当該要素が有する前記インデックスに基づき、前記複数の演算器のうちの1の前記演算器に対応した前記係数記憶回路のリングバッファに、前記順番に従い書込むよう構成される、請求項10に記載の演算回路。 - 前記演算回路は、
前記複数の演算器のうちの1の演算器の演算結果を格納し、他の前記演算器から読出し可能に構成される共有メモリを、さらに備える、請求項1から11のいずれか1項に記載の演算回路。 - 前記出力インターフェイスは、さらに、出力回路と、前記各演算器からの前記出力ベクトルを前記外部装置に出力する複数のポートとを含み、
前記複数の出力記憶回路は、前記複数のポートにそれぞれ対応し、
前記出力回路は、
前記各演算器から前記出力ベクトルの要素を受付けたとき、予め定められた基準情報と当該要素の前記インデックスとに基づき、前記複数の出力記憶回路から1つを選択し、選択された出力記憶回路に当該要素を格納するよう構成される、請求項6から9のいずれか1項に記載の演算回路。 - 前記出力回路は、さらに、
前記予め定められた基準情報と前記出力ベクトルの要素の前記インデックスとに基づく順番に従い、前記選択された出力記憶回路に当該要素を格納するよう構成される、請求項13に記載の演算回路。 - 前記出力回路は、
予め定められた数の要素が前記複数の出力記憶回路に格納されたとき、前記複数の出力記憶回路の前記要素を前記複数のポートを介して出力する、請求項13または14に記載の演算回路。 - 前記出力回路は、
前記予め定められた数の要素が前記複数の出力記憶回路に格納されたとき、当該要素を前記複数のポートを介して出力する旨の通知を、前記外部装置に出力する、請求項15に記載の演算回路。 - 各前記出力記憶回路は、2重化された出力記憶回路を含み、
前記2重化された出力記憶回路の一方は、前記演算器からの前記出力ベクトルの要素を格納し、格納が完了したとき、対応する前記ポートによって要素が読出されるように構成され、
前記2重化された出力記憶回路の他方は、対応する前記ポートにより前記要素が読出されて、読出しが完了したとき、前記演算器からの前記出力ベクトルの要素が格納されるように構成される、請求項13から16のいずれか1項に記載の演算回路。 - 前記外部装置は、他の前記演算回路を含み、前記入力ベクトルは、他の前記演算回路が備える前記各演算器から出力されるベクトルを含む、請求項4に記載の演算回路。
- 前記演算回路は、畳み込みニューラルネットワークにおける畳み込み層の演算を実行するためのものであり、
前記入力ベクトルは、前記畳み込み層に入力される特徴マップを一列に展開したものであり、
前記係数行列は、前記畳み込み層で利用されるカーネルに対応する、請求項4に記載の演算回路。 - 複数の演算器を含む並列演算回路を用いた演算方法であって、
前記並列演算回路は、各前記複数の演算器に対応し、当該演算器から読出し可能に構成された記憶回路を含み、
前記演算方法は、
装置から演算のための係数データまたは入力データを受付けること、を備え、
前記入力データおよび前記係数データは、当該データを演算するべき前記演算器および当該データが演算されるべき順番を指定するインデックスを有し、
前記演算方法は、さらに、
前記係数データまたは前記入力データを受付けたとき、前記入力データまたは前記係数データが有する前記インデックスに基づき、前記複数の演算器のうちの1の前記演算器を特定すること、および、
前記受付けられた入力データまたは係数データを、当該受付けられた入力データまたは係数データが有する前記インデックスに基づく前記順番に従い、特定された前記演算器に対応の前記記憶回路に格納すること、を備える、演算方法。 - 複数の演算器を含む並列演算回路を用いた演算方法であって、
前記並列演算回路は、各前記複数の演算器に対応し、当該演算器から読出し可能に構成された記憶回路を含み、
前記記憶回路は、演算のための係数データを格納する回路を含み、
前記演算方法は、
装置から演算のための入力データを受付けること、を備え、
前記入力データおよび前記係数データは、当該データを演算するべき前記演算器および当該データが演算されるべき順番を指定するインデックスを有し、
前記記憶回路は、前記係数データを、当該係数データが有する前記インデックスに基づく前記順番に従い格納するよう構成され、
前記演算方法は、さらに、
前記入力データを受付けたとき、前記入力データが有する前記インデックスに基づき、前記複数の演算器のうちの1の前記演算器を特定すること、および、
前記受付けられた入力データを、当該入力データが有する前記インデックスに基づく前記順番に従い、特定された前記演算器に出力すること、を備える、演算方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017037712 | 2017-10-18 | ||
JPPCT/JP2017/037712 | 2017-10-18 | ||
PCT/JP2018/034834 WO2019077933A1 (ja) | 2017-10-18 | 2018-09-20 | 演算回路および演算方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2019077933A1 JPWO2019077933A1 (ja) | 2020-10-22 |
JP6906622B2 true JP6906622B2 (ja) | 2021-07-21 |
Family
ID=66173320
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019549165A Active JP6906622B2 (ja) | 2017-10-18 | 2018-09-20 | 演算回路および演算方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11281376B2 (ja) |
JP (1) | JP6906622B2 (ja) |
CN (1) | CN111201525A (ja) |
DE (1) | DE112018004972T5 (ja) |
WO (1) | WO2019077933A1 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110750232B (zh) * | 2019-10-17 | 2023-06-20 | 电子科技大学 | 一种基于sram的并行乘加装置 |
CN117574036B (zh) * | 2024-01-16 | 2024-04-12 | 北京壁仞科技开发有限公司 | 运算装置、操作方法和机器可读存储介质 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63311569A (ja) | 1987-06-15 | 1988-12-20 | Hitachi Ltd | コプロセツサ演算装置 |
JPH0748207B2 (ja) * | 1989-04-14 | 1995-05-24 | シャープ株式会社 | 行列演算装置 |
JPH05266060A (ja) * | 1992-03-19 | 1993-10-15 | Fujitsu Ltd | マトリクス演算回路 |
JP2003067360A (ja) | 2001-08-24 | 2003-03-07 | Seiko Epson Corp | 積和演算方法および積和演算装置 |
JP2005149517A (ja) | 2004-12-06 | 2005-06-09 | Fujitsu Ltd | 積和演算器 |
JP5368687B2 (ja) * | 2007-09-26 | 2013-12-18 | キヤノン株式会社 | 演算処理装置および方法 |
JP5255885B2 (ja) | 2008-04-02 | 2013-08-07 | 株式会社日立製作所 | ベクトルプロセッサ制御装置 |
JP5376920B2 (ja) * | 2008-12-04 | 2013-12-25 | キヤノン株式会社 | コンボリューション演算回路、階層的コンボリューション演算回路及び物体認識装置 |
JP2013206095A (ja) | 2012-03-28 | 2013-10-07 | Fujitsu Ltd | データ処理装置及びデータ処理装置の制御方法 |
JP2016095764A (ja) * | 2014-11-17 | 2016-05-26 | 三菱電機株式会社 | 並列処理装置および並列処理方法 |
JP6532334B2 (ja) | 2015-07-21 | 2019-06-19 | キヤノン株式会社 | 並列演算装置、画像処理装置及び並列演算方法 |
JP6631262B2 (ja) * | 2016-01-14 | 2020-01-15 | 株式会社デンソー | 演算処理装置 |
GB201611083D0 (en) * | 2016-06-24 | 2016-08-10 | Dialog Semiconductor Bv | Digital sample rate conversion |
JP6786948B2 (ja) | 2016-08-12 | 2020-11-18 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
CN109213962B (zh) * | 2017-07-07 | 2020-10-09 | 华为技术有限公司 | 运算加速器 |
-
2018
- 2018-09-20 WO PCT/JP2018/034834 patent/WO2019077933A1/ja active Application Filing
- 2018-09-20 US US16/645,599 patent/US11281376B2/en active Active
- 2018-09-20 CN CN201880066106.8A patent/CN111201525A/zh not_active Withdrawn
- 2018-09-20 JP JP2019549165A patent/JP6906622B2/ja active Active
- 2018-09-20 DE DE112018004972.8T patent/DE112018004972T5/de active Pending
Also Published As
Publication number | Publication date |
---|---|
US11281376B2 (en) | 2022-03-22 |
DE112018004972T5 (de) | 2020-06-18 |
US20200278798A1 (en) | 2020-09-03 |
JPWO2019077933A1 (ja) | 2020-10-22 |
CN111201525A (zh) | 2020-05-26 |
WO2019077933A1 (ja) | 2019-04-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7329533B2 (ja) | 演算を加速するための方法および加速器装置 | |
CN112214726B (zh) | 运算加速器 | |
CN108073981B (zh) | 处理卷积神经网络的方法和设备 | |
EP3557425B1 (en) | Accelerator and system for accelerating operations | |
CN108304922B (zh) | 用于神经网络计算的计算设备和计算方法 | |
Ma et al. | End-to-end scalable FPGA accelerator for deep residual networks | |
US20210224125A1 (en) | Operation Accelerator, Processing Method, and Related Device | |
CN111666255A (zh) | 脉动阵列和处理系统 | |
CN111338695B (zh) | 基于流水线技术的数据处理方法及相关产品 | |
EP4024290A1 (en) | Implementing fully-connected neural-network layers in hardware | |
CN110580519B (zh) | 一种卷积运算装置及其方法 | |
US11822900B2 (en) | Filter processing device and method of performing convolution operation at filter processing device | |
JP6906622B2 (ja) | 演算回路および演算方法 | |
CN110377874B (zh) | 卷积运算方法及系统 | |
CN112395092A (zh) | 数据处理方法及人工智能处理器 | |
CN110414672B (zh) | 卷积运算方法、装置及系统 | |
CN112712457A (zh) | 数据处理方法以及人工智能处理器 | |
JP2022518640A (ja) | データ処理方法、装置、機器、記憶媒体及びプログラム製品 | |
Clere et al. | FPGA based reconfigurable coprocessor for deep convolutional neural network training | |
JP7251354B2 (ja) | 情報処理装置、情報処理プログラム、及び情報処理方法 | |
CN113627587A (zh) | 一种多通道式卷积神经网络加速方法及装置 | |
CN117063182A (zh) | 一种数据处理方法和装置 | |
CN111831207B (zh) | 一种数据处理方法、装置及其设备 | |
US8503793B2 (en) | Correlation processing apparatus and medium readable by correlation processing apparatus | |
CN111832713B (zh) | 一种基于行缓冲Linebuffer的并行计算方法及计算设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200327 |
|
A524 | Written submission of copy of amendment under article 19 pct |
Free format text: JAPANESE INTERMEDIATE CODE: A527 Effective date: 20200327 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200327 |
|
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: 20210601 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20210629 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6906622 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |