JPWO2019077933A1 - 演算回路および演算方法 - Google Patents
演算回路および演算方法 Download PDFInfo
- Publication number
- JPWO2019077933A1 JPWO2019077933A1 JP2019549165A JP2019549165A JPWO2019077933A1 JP WO2019077933 A1 JPWO2019077933 A1 JP WO2019077933A1 JP 2019549165 A JP2019549165 A JP 2019549165A JP 2019549165 A JP2019549165 A JP 2019549165A JP WO2019077933 A1 JPWO2019077933 A1 JP WO2019077933A1
- Authority
- JP
- Japan
- Prior art keywords
- output
- circuit
- arithmetic
- input
- elements
- 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.)
- Granted
Links
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)
- Software Systems (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Neurology (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Complex Calculations (AREA)
Abstract
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を生成し、生成された選択指令161を当該セレクタ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/F123が削除されているが、他の構成は演算回路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が示される。
入力変換回路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は、固定の回路として構成され得る。
図12は、本実施の形態1に係る並列処理を説明するフローチャートである。図12のフローチャートに従う処理は、制御プログラム150として制御回路30のメモリ32に格納されている。プロセッサ31が、制御プログラム150をメモリ32から読出し、読出された制御プログラム150を実行する。
実施の形態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のそれらと同じであるので、説明は繰返さない。
Claims (17)
- 非零要素と零要素とを含む係数行列に右から入力ベクトルを掛け、演算結果を出力ベクトルに出力するよう構成される複数の演算器を含む並列演算回路と、
複数の記憶回路を含む入力インターフェイスと、を備え、
前記複数の演算器は、前記複数の記憶回路にそれぞれ対応するように構成され、
各前記記憶回路は、
前記入力ベクトルの要素を記憶する入力記憶回路と、
リングバッファを備える係数記憶回路であって、前記リングバッファに前記係数行列を構成する行または列ベクトルの要素を格納する係数記憶回路と、を有し、
前記入力ベクトルの要素および前記係数行列の要素は、当該要素が乗算されるべき順番を指定するインデックスを有し、
前記入力インターフェイスは、前記入力ベクトルと前記係数行列の各要素を、当該要素が有する前記インデックスに基づき、前記複数の演算器のうちの1の前記演算器に対応した前記入力記憶回路と前記係数記憶回路の前記リングバッファに、それぞれ、前記順番に従い格納するよう構成され、
各前記演算器は、前記記憶回路の前記係数行列の前記行または列ベクトルの要素と前記入力ベクトルの対応する要素との乗算を順次実行し、当該要素の前記インデックスに基づき、当該乗算の結果を前記出力ベクトルの対応する要素に積算するように構成される、演算回路。 - 前記並列演算回路は、さらに、前記係数行列に右から入力行列を掛け、演算結果を出力行列に出力するよう構成され、
前記入力ベクトルは、前記入力行列を構成する行または列ベクトルを含み、
前記出力行列を構成する行または列ベクトルは、前記各演算器に対応の前記出力ベクトルを含む、請求項1に記載の演算回路。 - 前記出力行列を格納するように構成された複数の出力記憶回路を含む出力インターフェイスをさらに備え、
前記複数の出力記憶回路は、前記複数の演算器にそれぞれ対応するように構成され、
各前記出力記憶回路は、対応の前記演算器からの前記出力ベクトルを格納するように構成され、
前記出力インターフェイスは、前記複数の出力記憶回路から前記出力行列の要素を前記インデックスに基づき列優先または行優先で読出すように構成される、請求項2に記載の演算回路。 - 前記出力インターフェイスは、制御指令に従い、前記複数の出力記憶回路から前記出力行列の要素を前記列優先または前記行優先で読出すように構成される、請求項3に記載の演算回路。
- 前記出力行列を前記入力行列として他の前記演算回路に出力するとき、前記制御指令は、前記出力行列の要素が表すデータの種類に基づき、列優先および行優先のいずれか一方に従う読出指令を含む、請求項4に記載の演算回路。
- 前記データの種類は画像を含む、請求項5に記載の演算回路。
- 前記入力記憶回路は、2重化された入力記憶回路を含み、
前記2重化された入力記憶回路の一方は、外部装置からの前記入力ベクトルを格納し、格納が完了したとき、対応する前記演算器による入力ベクトルの読出が可能なように構成され、
前記2重化された入力記憶回路の他方は、対応する前記演算器により入力ベクトルが読出されて、読出しが完了したとき、前記外部装置からの前記入力ベクトルを格納するよう構成される、請求項1から6のいずれか1項に記載の演算回路。 - 前記要素が有するインデックスは、さらに、当該要素を演算するべき前記演算器を指定し、
前記入力インターフェイスは、
外部装置からの前記係数行列の前記行または列ベクトルの要素を、当該要素が有する前記インデックスに基づき、前記複数の演算器のうちの1の前記演算器に対応した前記係数記憶回路のリングバッファに、前記順番に従い書込むよう構成される、請求項1から7のいずれか1項に記載の演算回路。 - 前記演算回路は、
前記複数の演算器のうちの1の演算器の演算結果を格納し、他の前記演算器から読出し可能に構成される共有メモリを、さらに備える、請求項1から8のいずれか1項に記載の演算回路。 - 前記出力インターフェイスは、さらに、出力回路と、前記各演算器からの前記出力ベクトルを前記外部装置に出力する複数のポートとを含み、
前記複数の出力記憶回路は、前記複数のポートにそれぞれ対応し、
前記出力回路は、
前記各演算器から前記出力ベクトルの要素を受付けたとき、予め定められた基準情報と当該要素の前記インデックスとに基づき、前記複数の出力記憶回路から1つを選択し、選択された出力記憶回路に当該要素を格納するよう構成される、請求項3から6のいずれか1項に記載の演算回路。 - 前記出力回路は、さらに、
前記予め定められた基準情報と前記出力ベクトルの要素の前記インデックスとに基づく順番に従い、前記選択された出力記憶回路に当該要素を格納するよう構成される、請求項10に記載の演算回路。 - 前記出力回路は、
予め定められた数の要素が前記複数の出力記憶回路に格納されたとき、前記複数の出力記憶回路の前記要素を前記複数のポートを介して出力する、請求項10または11に記載の演算回路。 - 前記出力回路は、
前記予め定められた数の要素が前記複数の出力記憶回路に格納されたとき、当該要素を前記複数のポートを介して出力する旨の通知を、前記外部装置に出力する、請求項12に記載の演算回路。 - 各前記出力記憶回路は、2重化された出力記憶回路を含み、
前記2重化された出力記憶回路の一方は、前記演算器からの前記出力ベクトルの要素を格納し、格納が完了したとき、対応する前記ポートによって要素が読出されるように構成され、
前記2重化された出力記憶回路の他方は、対応する前記ポートにより前記演算結果が読出されて、読出しが完了したとき、前記演算器からの前記出力ベクトルの要素が格納されるように構成される、請求項10から13のいずれか1項に記載の演算回路。 - 前記入力ベクトルは、他の前記演算回路が備える前記各演算器からの前記出力ベクトルを含む、請求項1から14のいずれか1項に記載の演算回路。
- 前記演算回路は、畳み込みニューラルネットワークにおける畳み込み層の演算を実行するためのものであり、
前記入力ベクトルは、前記畳み込み層に入力される特徴マップを一列に展開したものであり、
前記係数行列は、前記畳み込み層で利用されるカーネルに対応する、請求項1から15のいずれか1項に記載の演算回路。 - 非零要素と零要素とを含む係数行列に右から入力ベクトルを掛け、演算結果を出力ベクトルに出力するよう構成される複数の演算器を含む並列演算回路を用いた演算方法であって、
前記入力ベクトルの要素および前記係数行列の要素は、当該要素が乗算されるべき順番を指定するインデックスを有し、
前記演算方法は、
前記入力ベクトルの要素を、当該要素が有する前記インデックスに基づき、前記複数の演算器のうちの1つに対応した入力記憶回路に、前記順番に従い格納すること、
前記係数行列を構成する行または列ベクトルの要素を、当該要素が有する前記インデックスに基づき、前記複数の演算器のうちの1つに対応したリングバッファに、前記順番に従い格納すること、
各前記演算器を用いて、前記リングバッファの前記係数行列の前記行または列ベクトルの要素と前記入力記憶回路の前記ベクトルの対応する要素との乗算を順次実行し、当該要素の前記インデックスに基づき、当該乗算の結果を前記出力ベクトルの対応する要素に積算すること、とを備える、演算方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JPPCT/JP2017/037712 | 2017-10-18 | ||
JP2017037712 | 2017-10-18 | ||
PCT/JP2018/034834 WO2019077933A1 (ja) | 2017-10-18 | 2018-09-20 | 演算回路および演算方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2019077933A1 true JPWO2019077933A1 (ja) | 2020-10-22 |
JP6906622B2 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 | 北京壁仞科技开发有限公司 | 运算装置、操作方法和机器可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009080693A (ja) * | 2007-09-26 | 2009-04-16 | Canon Inc | 演算処理装置および方法 |
JP2013206095A (ja) * | 2012-03-28 | 2013-10-07 | Fujitsu Ltd | データ処理装置及びデータ処理装置の制御方法 |
JP2017027314A (ja) * | 2015-07-21 | 2017-02-02 | キヤノン株式会社 | 並列演算装置、画像処理装置及び並列演算方法 |
JP2017126203A (ja) * | 2016-01-14 | 2017-07-20 | 株式会社デンソー | 演算処理装置 |
JP2018026027A (ja) * | 2016-08-12 | 2018-02-15 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
Family Cites Families (10)
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 | 積和演算器 |
JP5255885B2 (ja) | 2008-04-02 | 2013-08-07 | 株式会社日立製作所 | ベクトルプロセッサ制御装置 |
JP5376920B2 (ja) * | 2008-12-04 | 2013-12-25 | キヤノン株式会社 | コンボリューション演算回路、階層的コンボリューション演算回路及び物体認識装置 |
JP2016095764A (ja) * | 2014-11-17 | 2016-05-26 | 三菱電機株式会社 | 並列処理装置および並列処理方法 |
GB201611083D0 (en) * | 2016-06-24 | 2016-08-10 | Dialog Semiconductor Bv | Digital sample rate conversion |
CN112214727A (zh) * | 2017-07-07 | 2021-01-12 | 华为技术有限公司 | 运算加速器 |
-
2018
- 2018-09-20 DE DE112018004972.8T patent/DE112018004972T5/de active Pending
- 2018-09-20 US US16/645,599 patent/US11281376B2/en active Active
- 2018-09-20 JP JP2019549165A patent/JP6906622B2/ja active Active
- 2018-09-20 CN CN201880066106.8A patent/CN111201525A/zh not_active Withdrawn
- 2018-09-20 WO PCT/JP2018/034834 patent/WO2019077933A1/ja active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009080693A (ja) * | 2007-09-26 | 2009-04-16 | Canon Inc | 演算処理装置および方法 |
JP2013206095A (ja) * | 2012-03-28 | 2013-10-07 | Fujitsu Ltd | データ処理装置及びデータ処理装置の制御方法 |
JP2017027314A (ja) * | 2015-07-21 | 2017-02-02 | キヤノン株式会社 | 並列演算装置、画像処理装置及び並列演算方法 |
JP2017126203A (ja) * | 2016-01-14 | 2017-07-20 | 株式会社デンソー | 演算処理装置 |
JP2018026027A (ja) * | 2016-08-12 | 2018-02-15 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
Also Published As
Publication number | Publication date |
---|---|
DE112018004972T5 (de) | 2020-06-18 |
WO2019077933A1 (ja) | 2019-04-25 |
JP6906622B2 (ja) | 2021-07-21 |
CN111201525A (zh) | 2020-05-26 |
US20200278798A1 (en) | 2020-09-03 |
US11281376B2 (en) | 2022-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7329533B2 (ja) | 演算を加速するための方法および加速器装置 | |
JP7021904B2 (ja) | 畳み込み神経網処理方法及び装置 | |
Ma et al. | End-to-end scalable FPGA accelerator for deep residual networks | |
US20200050453A1 (en) | Apparatus and methods for matrix multiplication | |
WO2020073211A1 (zh) | 运算加速器、处理方法及相关设备 | |
JP6936592B2 (ja) | 演算処理装置およびその制御方法 | |
EP3557425A1 (en) | Accelerator and system for accelerating operations | |
WO2020132593A1 (en) | Neural network processor | |
CN101681449A (zh) | 计算处理装置及方法 | |
CN111666255A (zh) | 脉动阵列和处理系统 | |
CN111338695B (zh) | 基于流水线技术的数据处理方法及相关产品 | |
CN101809597A (zh) | 计算处理装置及方法 | |
EP4024290A1 (en) | Implementing fully-connected neural-network layers in hardware | |
JP6906622B2 (ja) | 演算回路および演算方法 | |
CN110377874B (zh) | 卷积运算方法及系统 | |
US11822900B2 (en) | Filter processing device and method of performing convolution operation at filter processing device | |
CN112395092A (zh) | 数据处理方法及人工智能处理器 | |
CN110580519A (zh) | 一种卷积运算结构及其方法 | |
CN110414672B (zh) | 卷积运算方法、装置及系统 | |
JP2022518640A (ja) | データ処理方法、装置、機器、記憶媒体及びプログラム製品 | |
CN112712457A (zh) | 数据处理方法以及人工智能处理器 | |
JP7251354B2 (ja) | 情報処理装置、情報処理プログラム、及び情報処理方法 | |
CN117063182A (zh) | 一种数据处理方法和装置 | |
CN113627587A (zh) | 一种多通道式卷积神经网络加速方法及装置 | |
CN115759212A (zh) | 卷积运算电路及方法、神经网络加速器和电子设备 |
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 |