JP6872599B1 - ニューラルネットワーク処理装置 - Google Patents
ニューラルネットワーク処理装置 Download PDFInfo
- Publication number
- JP6872599B1 JP6872599B1 JP2019231110A JP2019231110A JP6872599B1 JP 6872599 B1 JP6872599 B1 JP 6872599B1 JP 2019231110 A JP2019231110 A JP 2019231110A JP 2019231110 A JP2019231110 A JP 2019231110A JP 6872599 B1 JP6872599 B1 JP 6872599B1
- Authority
- JP
- Japan
- Prior art keywords
- neural network
- node
- processing
- unit
- 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
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 68
- 238000004364 calculation method Methods 0.000 claims abstract description 32
- 238000000034 method Methods 0.000 claims abstract description 23
- 230000008569 process Effects 0.000 claims abstract description 21
- 230000007704 transition Effects 0.000 claims abstract description 20
- 230000001537 neural effect Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 abstract description 13
- 230000004913 activation Effects 0.000 description 10
- 230000006870 function Effects 0.000 description 10
- 238000011176 pooling Methods 0.000 description 7
- 238000013138 pruning Methods 0.000 description 3
- 238000013527 convolutional neural network Methods 0.000 description 2
- 230000001186 cumulative effect Effects 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Images
Landscapes
- Complex Calculations (AREA)
Abstract
【解決手段】ニューラルネットワークの処理状態を通知、管理する状態遷移管理部と、状態遷移管理部による処理状態の通知を受けて入力ノードデータのパスを切換えて通知された処理状態に対応した処理を行い、ノードデータを出力するデータパス制御部と、データパス制御部による出力されたノードデータに積和演算処理を実施してデータパス制御部に出力するニューラルネットワーク処理コア部とを備え、前記ニューラルネットワーク処理コア部は、ノードデータを全結合層用FIFO部に格納する前段階においてノード値がゼロの場合、積和演算回路の処理を省略するとともに、データパス制御部において動作状態に対応したデータパスを切換え、ニューラルネットワーク処理コア部を共通に用いるようにした。
【選択図】図1
Description
また、逆に、並列度を下げて回路規模を小さくすることは、処理速度の低下に繋がることになる。つまり、並列度と処理速度は、一般的に反比例の関係にある。
このため、本願におけるニューラルネットワーク処理装置は、回路規模を抑えながら、高速処理を行うという課題を同時に克服することを目的としている。
以下、本願における実施の形態について図面を用いて説明する。なお、各図において、同一または相当する部分については、同一符号を付して説明する。
図1は、実施の形態1に係るニューラルネットワーク処理装置を示すブロック図で、図において、ニューラルネットワーク処理装置1は、状態遷移管理部10と、データパス制御部20と、ニューラルネットワーク処理コア部30とを備えている。
データパス制御部20は、状態遷移管理部10の通知を受けて入力ノードデータのパスを切換えるデータパス切換え部201および通知された処理状態に対応して例えば、ノードデータのReLU(Rectified Linear Unit:正規化線形ユニット)活性化関数処理を行う活性化関数処理部202とマックスプーリング(Maxpooling)処理を行うマックスプーリング処理部203を備え、ノードデータをニューラルネットワーク処理コア部30に出力する。
すなわち、第1回目の畳込み処理の完了を開始として#1動作状態に遷移し、第1回目の畳込み処理で得られた特徴画像に対して、第2回目の畳込み処理を行うが、全ての畳込み処理の完了を待つのではなく、畳込み処理が完了した画素単位で、逐次、ReLU活性化関数処理、マックスプーリング処理および全結合層用FIFO部302内の分割FIFO部への書込みを行う。
なお、最終的に出力される値は、推定の確からしさを示すもので、推論対象ごとに存在する。また、推論結果は、最終段の層のノード値が確からしさとして意味を持ちソフトマックス(Softmax)演算により強調される。その値以外の途中の全結合層のノード値を最後まで記憶しておく必要はない。
なお、ここで、非ゼロ判定制御部301、全結合層用FIFO部302、メモリアドレス用FIFO部303をまとめて非ゼロFIFO部と表示している
このニューラルネットワーク処理コア部30には、乗算器が用いられており、通常、乗算器は、多数の加算器回路より構成されているため、回路規模が大きく処理遅延時間も長くなる。また、FPGAにおいては、ライブラリとして使用可能な乗算器の数がデバイスファミリ毎に決まっており有限個である。したがって、ニューラルネットワーク処理コア部30においては、乗算演算毎に乗算器を設けるのではなく、1個の乗算器を使い回すことによって回路規模の増大を抑制している。
一般的にノードから出ているニューラルネットに対応する重み係数がゼロの場合に、積和演算を省略することを「枝刈り」と称しているが、本願における「幹刈り」とは、ノード値がゼロの場合に、そのノード(幹)から出ている全てのニューラルネット(枝)の積和演算を省略することを称している。この幹刈りは、ノード値がゼロの場合にFIFO部にデータを書き込まないことで実現するが、この場合、廃棄ノードに繋がるニューラルネットワークの被乗算の重み係数も読み飛ばさなければ、乗算と被乗算の対応が崩れることになる。
2進数の演算において2のn乗の乗算は、通常の乗算器を使用しなくてもシフト演算によって可能である。例えば、10に0.5(2−1)を乗ずると5になるが、これをシフト演算で行う場合、10は2進数で「1010」であり1ビット右シフト、即ち、0.5乗算相当とすると、「0101」となり、これは10進数の5である。この理論を活かし、学習段階にて重み係数の取る範囲を2のn乗に指定し、またはそれに近似化することによって量子化し、乗算器をなくすことが可能となる。乗算器に比べシフト演算は、配線の切り替えだけの回路になるため、回路規模を著しく小さいものとすることができる。
まず、ステップS101においてニューラルネットワーク処理の前の畳込み処理により生成された特徴画像に対し、例えば、マックスプーリング処理を行い、その情報量を1/4に削減した特徴画像データ(ノード値)を生成する。次に、ステップS102において、特徴画像毎に非ゼロデータであるか否かの判定を非ゼロ判定制御部301により行う。 ステップS102において非ゼロデータであると判定すると、ステップS103に移行し、全結合層用FIFO部302における分割FIFO部にノードデータを書き込み、並行してステップS104において非ゼロノードに対応したメモリアドレスを書き込む。これらの全データの書き込みが完了したか判定し(ステップS105)、書き込みが完了していないと判定した場合、ステップS102に戻り、次のデータを判定し、書き込みを行う。なお、ステップS102において、ゼロデータであると判定した場合、書き込み処理を行わず、ステップS105に移行する。
図11は、このようなメモリアドレス用FIFO部303におけるアドレスの記憶容量を減らすことを目的として増分値(相対アドレス化)を記憶させた例を示している。
すなわち、重み係数メモリ304のアドレス入力の前段に、アドレスカウンタ306を設け、アドレスの増分値を現在値に対してインクリメントするものである。このようにアドレスの増分値のみを記憶させることにより、メモリアドレス用FIFO部303の記憶容量を減らすことが可能となる。
20:データパス制御部、 30:ニューラルネットワーク処理コア部、
201:データパス切換え部、 202:活性化関数処理部、
203:マックスプーリング処理部、 301:非ゼロ判定制御部、
302:全結合層用FIFO部、 303:メモリアドレス用FIFO部、
304:重み係数メモリ、 305:積和演算回路、 306:アドレスカウンタ、
310:次層ノード生成演算部
Claims (6)
- 制御信号を受けて動作状態を制御し、ニューラルネットワークの処理状態を通知、管理する状態遷移管理部と、前記状態遷移管理部による処理状態の通知を受けて入力ノードデータのパスを切換えて通知された処理状態に対応した処理を行い、ノードデータを出力するデータパス制御部と、前記データパス制御部により出力されたノードデータに積和演算処理を実施して前記データパス制御部に出力するニューラルネットワーク処理コア部とを備え、前記ニューラルネットワーク処理コア部は、ニューラルネットワークのノードデータおよびメモリアドレスをそれぞれ格納する全結合層用FIFO部およびメモリアドレス用FIFO部、重み係数が格納されたメモリ、各ノード値と対応する前記重み係数を乗算して逐次加算する積和演算回路を有し、ノードデータを前記全結合層用FIFO部に格納する前段階においてノード値がゼロの場合、前記積和演算回路の処理を省略するとともに、前記データパス制御部において動作状態に対応したデータパスを切換え、前記ニューラルネットワーク処理コア部を共通に用いるニューラルネットワーク処理装置において、
ノードデータを格納する前記全結合層用FIFO部を複数の分割FIFO部にて構成し、ゼロでないノードデータの格納を並列処理した上で、FIFOから積和演算回路への読出し処理においては読み出す分割FIFO部を順次選択し、選択された分割FIFO部からの読出し完了を検知すれば、次の分割FIFO部を選択して読み出す制御を行う前記データパス制御部を備え、前記データパス制御部により、前記分割FIFO部のデータを繋いで1個のFIFOに見立てるようにしたことを特徴とするニューラルネットワーク処理装置。 - 前記全結合層用FIFO部に書込まれた非ゼロのノードデータに合わせて、重み係数が格納されたメモリの対応するアドレス値を書き込むメモリアドレス用FIFO部を備え、前記アドレス値を相対アドレス値で書き込むようにしたことを特徴とする請求項1に記載のニューラルネットワーク処理装置。
- ノードデータのノード値が予め設定された閾値以下の場合にノード値をゼロとして前記積和演算回路の処理を省略するようにしたことを特徴とする請求項1または請求項2に記載のニューラルネットワーク処理装置。
- 特定のノードと対応する重み係数が全てゼロであることを事前に検出し、全てゼロと判定した場合に、ゼロ値のノードデータを排除する非ゼロ判定制御部を備え、前記非ゼロ判定制御部により特定のノードの積和演算処理を省略することを特徴とする請求項1から請求項3のいずれか1項に記載のニューラルネットワーク処理装置。
- 前記重み係数の値を2のn乗値(nは整数)に量子化し、前記積和演算回路の乗算演算をビットシフト処理にて実行するようにしたことを特徴とする請求項1から請求項4のいずれか1項に記載のニューラルネットワーク処理装置。
- ノードデータおよびアドレスをそれぞれ格納する前記全結合層用FIFO部および前記メモリアドレス用FIFO部を全結合層用LIFO部およびメモリアドレス用LIFO部に置き換えたことを特徴とする請求項1から請求項5のいずれか1項に記載のニューラルネットワーク処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019231110A JP6872599B1 (ja) | 2019-12-23 | 2019-12-23 | ニューラルネットワーク処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019231110A JP6872599B1 (ja) | 2019-12-23 | 2019-12-23 | ニューラルネットワーク処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP6872599B1 true JP6872599B1 (ja) | 2021-05-19 |
JP2021099658A JP2021099658A (ja) | 2021-07-01 |
Family
ID=75896319
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019231110A Active JP6872599B1 (ja) | 2019-12-23 | 2019-12-23 | ニューラルネットワーク処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6872599B1 (ja) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003067360A (ja) * | 2001-08-24 | 2003-03-07 | Seiko Epson Corp | 積和演算方法および積和演算装置 |
JP6365258B2 (ja) * | 2014-11-19 | 2018-08-01 | 株式会社デンソー | 演算処理装置 |
WO2019053835A1 (ja) * | 2017-09-14 | 2019-03-21 | 三菱電機株式会社 | 演算回路、演算方法、およびプログラム |
-
2019
- 2019-12-23 JP JP2019231110A patent/JP6872599B1/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2021099658A (ja) | 2021-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107315571B (zh) | 一种用于执行全连接层神经网络正向运算的装置和方法 | |
CN112200297B (zh) | 神经网络优化方法、装置及处理器 | |
JP2018073102A (ja) | 演算回路、その制御方法及びプログラム | |
CN109993293B (zh) | 一种适用于堆叠式沙漏网络的深度学习加速器 | |
US11928599B2 (en) | Method and device for model compression of neural network | |
JP2019139338A (ja) | 情報処理装置、情報処理方法、およびプログラム | |
CN110580519B (zh) | 一种卷积运算装置及其方法 | |
CN112633477A (zh) | 一种基于现场可编程阵列的量化神经网络加速方法 | |
Faraone et al. | Customizing low-precision deep neural networks for FPGAs | |
CN110490302B (zh) | 一种神经网络编译优化方法、装置以及相关产品 | |
US11354097B2 (en) | Compressor circuit, Wallace tree circuit, multiplier circuit, chip, and device | |
JP6872599B1 (ja) | ニューラルネットワーク処理装置 | |
WO2020185207A1 (en) | Computerized system and method for generative circuit design with machine-learned networks | |
KR20230075349A (ko) | 반도체 장치 | |
CN115982418A (zh) | 一种提升ai计算芯片超分运算性能的方法 | |
CN110889080A (zh) | 乘积累加运算装置、乘积累加运算方法和系统 | |
CN112732638B (zh) | 基于ctpn网络的异构加速系统及方法 | |
CN111767204B (zh) | 溢出风险检测方法、装置及设备 | |
KR102372869B1 (ko) | 인공 신경망을 위한 행렬 연산기 및 행렬 연산 방법 | |
CN113627587A (zh) | 一种多通道式卷积神经网络加速方法及装置 | |
KR20240095659A (ko) | 차세대 고속 경량 객체인식 fpga npu 시스템을 위한 계산유닛, 버퍼 및 데이터 이동 최적화 방법론 | |
CN111506522A (zh) | 数据处理设备及方法 | |
WO2024009371A1 (ja) | データ処理装置、データ処理方法、及びデータ処理プログラム | |
CN112639838A (zh) | 运算处理装置 | |
WO2022265044A1 (ja) | 演算処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20191223 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20201217 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20210106 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210224 |
|
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: 20210330 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20210419 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6872599 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: R313111 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |