JP7408289B2 - 畳込み演算装置 - Google Patents
畳込み演算装置 Download PDFInfo
- Publication number
- JP7408289B2 JP7408289B2 JP2019062744A JP2019062744A JP7408289B2 JP 7408289 B2 JP7408289 B2 JP 7408289B2 JP 2019062744 A JP2019062744 A JP 2019062744A JP 2019062744 A JP2019062744 A JP 2019062744A JP 7408289 B2 JP7408289 B2 JP 7408289B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- rows
- columns
- input
- 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
- 238000004364 calculation method Methods 0.000 claims description 27
- 230000004048 modification Effects 0.000 description 18
- 238000012986 modification Methods 0.000 description 18
- 238000010586 diagram Methods 0.000 description 11
- 239000011159 matrix material Substances 0.000 description 6
- 238000000034 method Methods 0.000 description 4
- 241001442055 Vipera berus Species 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 1
Images
Classifications
-
- 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/15—Correlation function computation including computation of convolution operations
- G06F17/153—Multidimensional correlation or convolution
-
- 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
Description
図1乃至図8を参照して、本発明の第1実施形態について説明する。
畳込み演算回路については、自動運転の画像認識や物体検知に用いられるデータフロープロセッサ(Data Flow Processor、以下「DFP」という。)等に用いられるものである。
本実施形態のDFPシステム10では、DFP11については、ホストCPU12の重い演算負荷に対処する個別のマスタとして機能し、プログラム及び独自の命令フェッチが可能であり、イベントハンドラ13が生成した割込み処理をサポートする。DFP11、ホストCPU12、ROM14、RAM15及び外部インターフェイス16は、システムバス17を介して、データの送受信を行う。
DFP11については、多量のスレッドに対して、ハードウェアによる動的レジスタ配置及びスレッド・スケジューリングにより、異なる命令ストリームに対してであっても複数のスレッドを並列実行することを可能とする。なお、このような多量のスレッドについては、コンパイラによって、プログラムコードを自動ベクトル化し、プログラムのタスク並列性及びグラフ並列性を保持するグラフ構造を抽出することにより、生成することが可能である。
畳込み演算回路は、二次元循環シフトレジスタ40及び積和演算器50によって形成されている。
記憶素子42は、マルチプレクサ46(MUX)及びフリップフロップ48(FF)から形成されている。本実施形態では、マルチプレクサ46には、上下左右に隣接した記憶素子42のフリップフロップ48からデータ要素が入力される。マルチプレクサ46は、入力された4個のデータ要素の内から1個のデータ要素を選択して、当該記憶素子42のフリップフロップ48に出力する。フリップフロップ48は、マルチプレクサ46から入力されたデータ要素を保持する。
積和演算器50では、入力データdと所定のフィルタなすウェイトデータwとの積和演算を行い、出力データYを生成する。即ち、以下の式(1)で示されるように、入力データdとウェイトデータgとのフロベニウス積を出力データYとする。ここで、dqrは入力データdをなす入力データ要素、gqrはウェイトデータgをなすウェイトデータ要素である。
本実施形態の畳込み演算回路では、畳込み演算を行列演算に変換しているわけではないため、行列演算が可能なように入力データを変換する必要はなく、また、元々の入力データを重複させた変換データを取り扱う必要もない。このため、ハードウェアやデータ処理の増大が回避されており、畳込み演算装置における消費電力が低減されている。
以下、本発明の第1実施形態の第1変形例について説明する。
本変形例の畳込み演算回路では、シフトレジスタ40において、複数の入力ウィンドウ領域を互いに切替可能としたものである。即ち、複数の入力ウィンドウ領域に包含される全記憶素子42がマルチプレクサに接続されており、マルチプレクサにおいて記憶素子42から入力される入力データ要素を選択することで、複数の入力ウィンドウ領域が互いに切り替えられるようになっている。
以下、本発明の第1実施形態の第2変形例について説明する。
本変形例の畳込み演算回路については、シフトレジスタ40において、シフト量を切替可能としたものである。即ち、各記憶素子42のマルチプレクサ46に、上下左右の方向毎に、s1個隣、s2個隣、…、sn個隣(n≧2)の記憶素子42のフリップフロップ48が接続されている。そして、各記憶素子42のマルチプレクサ46において、s1個隣、s2個隣、…、sn個隣(n≧2)のいずれの記憶素子42のフリップフロップ48から入力されたデータ要素を選択するかを切り替えることにより、シフト量が切り替えられる。
図9及び図10を参照して、本発明の第2実施形態について説明する。
本実施形態の畳込み演算回路については、シフトレジスタ40において、複数の入力ウィンドウ44a-44dを設定したものである。
なお、図9では、図の簡略化のため、最上行と最下行との各記憶素子42間、並びに、最左列と最右列との各記憶素子42間について、信号線の図示を省略している。
本実施形態の畳込み演算回路では、シフトレジスタ40において複数の入力ウィンドウ44a~44dを設定しているため、単一の入力ウィンドウ44を設定する場合と比較して、少ないシフト回数で同一の出力を得ることができ、畳込み演算を高速で実行することが可能となっている。
図11乃至図13を参照して、本発明の第3実施形態について説明する。
本実施形態の畳込み演算回路については、ウィノグラードアルゴリズムに基づく積和演算を行うものであり、3行3列のフィルタに対して、5行5列の入力データを選択し、3行3列の出力データを生成する。
なお、図11では、図9と同様に、図の簡略化のため、最上行と最下行との各記憶素子42間、並びに、最左列と最右列との各記憶素子42間について、信号線の図示を省略している。
本実施形態の畳込み演算回路では、ウィノグラードアルゴリズムに基づく積和演算を行うようにすることで、乗算回数及びシフト回数を大幅に削減することが可能である。また、3行3列のフィルタに対して、5行5列の入力データを選択し、3行3列の出力データを生成するようにすることで、乗算演算をビットシフト演算と加算演算のみで実行することが可能である。このため、畳込み演算を充分に高速かつ低消費電力で実行することが可能となっている。
以下、第3実施形態の第1変形例について説明する。
本変形例の畳込み演算回路については、第3実施形態のシフトレジスタ40において、シフト量を3としたものである。第1実施形態で説明したように、各記憶素子42を3個隣の記憶素子42に接続し、各記憶素子42と3個隣の記憶素子42との間でデータ要素をシフトさせることで、シフト量3のシフトを実現可能である。当該シフトレジスタ40では、入力データ選択から次の入力データ選択までの1サイクルで、シフト量3かつシフト回数1のシフト動作がなされ、3回のサイクルで3回のシフトが実行される。このため、本変形例のシフト回数は3回である。
以下、第3実施形態の第2変形例について説明する。
本変形例の畳込み演算回路については、第3実施形態のシフトレジスタ40において、シフト動作に代えて、第0乃至第3の入力ウィンドウ領域を互いに切替可能としたものである。即ち、第0乃至第3の入力ウィンドウ領域として、(0)第0行から第4行かつ第0列から第4列の5行5列の記憶素子42を包含する第0の入力ウィンドウ領域、(1)第0行から第4行かつ第3列から第7列の5行5列の記憶素子42を包含する第1の入力ウィンドウ領域、(2)第3行から第7行かつ第0列から第4列の5行5列の記憶素子42を包含する第2の入力ウィンドウ領域、(3)第3行から第7行かつ第3列から第7列の3行3列の記憶素子42を包含する第3の入力ウィンドウ領域が用いられる。そして、第0乃至第3の入力ウィンドウ領域を順次切り替えて入力データを選択し、当該入力データから順次出力データを生成して、出力データから総出力データを生成する。
44,44a~44d…入力ウィンドウ 50,50a~50d…積和演算器
d,da~dd…入力データ Y,Ya~Yd…出力データ
Claims (5)
- 二次元的に配置され既定の複数行かつ複数列をなしデータを夫々記憶する複数の記憶素子(42)を有し、前記複数の記憶素子間で前記データを循環的にシフト可能であり、所定の複数行かつ複数列をなす前記記憶素子を含む所定の領域に入力ウィンドウ(44,44a~44d)が設定されており、当該入力ウィンドウ内の前記所定の複数行かつ複数列をなす記憶素子に記憶されたデータを所定の複数行かつ複数列をなす入力データ(d,da~dd)としてサイクル毎に纏めて選択して出力する、二次元循環シフトレジスタ部(40)と、
前記レジスタ部から入力された前記所定の複数行かつ複数列をなす入力データと所定のフィルタをなす所定の複数行かつ複数列をなすウェイトデータとを積和演算して出力データ(Y,Ya~Yd)を生成する積和演算部(50,50a~50d)と、
を具備する畳込み演算装置。 - 前記積和演算部は、ウィノグラードアルゴリズムに基づく積和演算を行い、
前記フィルタは、3行3列のフィルタであり、
前記入力データは、5行5列の入力データであり、
前記出力データは、3行3列の出力データである、
請求項1に記載の畳込み演算装置。 - 前記レジスタ部は、複数の前記入力ウィンドウを有し、複数の前記入力データを選択可能であり、
前記畳込み演算装置は、前記レジスタ部から前記複数の入力データが夫々入力される複数の前記積和演算部をさらに具備する、
請求項1に記載の畳込み演算装置。 - 前記レジスタ部は、前記シフトのシフト量を切替可能である、
請求項1に記載の畳込み演算装置。 - 前記レジスタ部は、互いに異なる前記所定の複数行かつ複数列をなす記憶素子を含む複数の前記領域に夫々複数の前記入力ウィンドウを設定し、前記複数の入力ウィンドウを切替可能である、
請求項1に記載の畳込み演算装置。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019062744A JP7408289B2 (ja) | 2019-03-28 | 2019-03-28 | 畳込み演算装置 |
EP20778810.0A EP3951637A4 (en) | 2019-03-28 | 2020-03-23 | DEVICE FOR CONVOLUTION CALCULATION |
PCT/JP2020/012728 WO2020196407A1 (ja) | 2019-03-28 | 2020-03-23 | 畳込み演算装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019062744A JP7408289B2 (ja) | 2019-03-28 | 2019-03-28 | 畳込み演算装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2020161054A JP2020161054A (ja) | 2020-10-01 |
JP7408289B2 true JP7408289B2 (ja) | 2024-01-05 |
Family
ID=72611069
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019062744A Active JP7408289B2 (ja) | 2019-03-28 | 2019-03-28 | 畳込み演算装置 |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP3951637A4 (ja) |
JP (1) | JP7408289B2 (ja) |
WO (1) | WO2020196407A1 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11783163B2 (en) * | 2020-06-15 | 2023-10-10 | Arm Limited | Hardware accelerator for IM2COL operation |
WO2022065365A1 (ja) | 2020-09-25 | 2022-03-31 | 株式会社日本触媒 | 吸水性樹脂粉末の製造方法 |
CN117223008A (zh) * | 2021-07-30 | 2023-12-12 | 华为技术有限公司 | 计算机系统和数据处理方法 |
CN114399036B (zh) * | 2022-01-12 | 2023-08-22 | 电子科技大学 | 一种基于一维Winograd算法的高效卷积计算单元 |
CN115469826B (zh) * | 2022-09-16 | 2023-04-07 | 深圳思谋信息科技有限公司 | 数据处理方法、装置、计算机设备及计算机可读存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180005074A1 (en) | 2016-07-01 | 2018-01-04 | Google Inc. | Convolutional Neural Network On Programmable Two Dimensional Image Processor |
US20180032312A1 (en) | 2016-07-29 | 2018-02-01 | Microunity Systems Engineering, Inc. | Processor and method for outer product accumulate operations |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06318194A (ja) * | 1993-05-07 | 1994-11-15 | Fujitsu Ltd | 並列データ処理方式 |
JPH0962653A (ja) * | 1995-08-29 | 1997-03-07 | Mitsubishi Electric Corp | 積和演算装置、積和演算器集積回路装置及び累積加算器 |
US9805303B2 (en) | 2015-05-21 | 2017-10-31 | Google Inc. | Rotating data for neural network computations |
-
2019
- 2019-03-28 JP JP2019062744A patent/JP7408289B2/ja active Active
-
2020
- 2020-03-23 WO PCT/JP2020/012728 patent/WO2020196407A1/ja unknown
- 2020-03-23 EP EP20778810.0A patent/EP3951637A4/en active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180005074A1 (en) | 2016-07-01 | 2018-01-04 | Google Inc. | Convolutional Neural Network On Programmable Two Dimensional Image Processor |
US20180032312A1 (en) | 2016-07-29 | 2018-02-01 | Microunity Systems Engineering, Inc. | Processor and method for outer product accumulate operations |
Non-Patent Citations (1)
Title |
---|
AYDONAT UTKU UTKU AYDONAT@INTEL COM ET AL,An OpenCL(TM) Deep Learning Accelerator on Arria 10,PROCEEDINGS OF THE 2017 CHI CONFERENCE ON HUMAN FACTORS IN COMPUTING SYSTEMS , CHI '17, ACM PRESS,,米国,CHI '17, ACM PRESS,2017年02月22日,pages 55-64,URL:https://dl.acm.org/doi/pdf/10.1145/3020078.3021738,令和4年10月26日検索 |
Also Published As
Publication number | Publication date |
---|---|
EP3951637A4 (en) | 2022-06-22 |
EP3951637A1 (en) | 2022-02-09 |
WO2020196407A1 (ja) | 2020-10-01 |
JP2020161054A (ja) | 2020-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7408289B2 (ja) | 畳込み演算装置 | |
TWI639119B (zh) | 執行卷積計算的系統及方法 | |
KR102414583B1 (ko) | 머신 러닝을 수행하는 전자 장치 및 머신 러닝 수행 방법 | |
US11175920B2 (en) | Efficient work execution in a parallel computing system | |
TW202034190A (zh) | 矩陣的空間地域轉換 | |
Peterka et al. | A configurable algorithm for parallel image-compositing applications | |
US20170206089A1 (en) | Information processing apparatus and computational method | |
US20220004364A1 (en) | Convolutional computation device | |
KR101400577B1 (ko) | Gpu를 이용한 희소행렬 곱셈 방법 | |
US10908916B2 (en) | Apparatus and method for executing a plurality of threads | |
CN111158874A (zh) | 数据处理方法和装置、电子设备及存储介质 | |
Liu et al. | WinoCNN: Kernel sharing Winograd systolic array for efficient convolutional neural network acceleration on FPGAs | |
Liu | Parallel and scalable sparse basic linear algebra subprograms | |
KR20220038579A (ko) | 데이터 처리 | |
CN104063357A (zh) | 处理器以及处理方法 | |
WO2017007318A1 (en) | Scalable computation architecture in a memristor-based array | |
JP2021108104A (ja) | 部分的読み取り/書き込みが可能な再構成可能なシストリックアレイのシステム及び方法 | |
JP6712052B2 (ja) | 演算処理装置及び演算処理装置の制御方法 | |
US20230315479A1 (en) | Method and system for supporting throughput-oriented computing | |
US9600446B2 (en) | Parallel multicolor incomplete LU factorization preconditioning processor and method of use thereof | |
JP6981223B2 (ja) | 疎行列ベクトル積演算装置及び疎行列ベクトル積演算方法 | |
Tokura et al. | An efficient GPU implementation of bulk computation of the eigenvalue problem for many small real non-symmetric matrices | |
Chen et al. | Exploring the programmability for deep learning processors: from architecture to tensorization | |
US20230102296A1 (en) | Decomposing matrices for processing at a processor-in-memory | |
Pinhao et al. | Sparse matrix multiplication on a reconfigurable many-core architecture |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220126 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20230418 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230614 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20230905 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20231003 |
|
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: 20231219 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20231220 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7408289 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313115 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |