JP7012168B2 - 演算処理装置 - Google Patents
演算処理装置 Download PDFInfo
- Publication number
- JP7012168B2 JP7012168B2 JP2020549920A JP2020549920A JP7012168B2 JP 7012168 B2 JP7012168 B2 JP 7012168B2 JP 2020549920 A JP2020549920 A JP 2020549920A JP 2020549920 A JP2020549920 A JP 2020549920A JP 7012168 B2 JP7012168 B2 JP 7012168B2
- Authority
- JP
- Japan
- Prior art keywords
- cumulative addition
- data
- storage memory
- unit
- processing
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/50—Adding; Subtracting
- G06F7/505—Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination
- G06F7/506—Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination with simultaneous carry generation for, or propagation over, two or more stages
- G06F7/507—Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination with simultaneous carry generation for, or propagation over, two or more stages using selection between two conditionally calculated carry or sum values
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/0464—Convolutional networks [CNN, ConvNet]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/764—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- Computational Linguistics (AREA)
- Databases & Information Systems (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Multimedia (AREA)
- Medical Informatics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Mathematical Optimization (AREA)
- Neurology (AREA)
- Algebra (AREA)
- Image Processing (AREA)
Description
FM数[K]=2×FM数[K-1]
次に、本発明の第1実施形態について、図面を用いて説明する。図3は、本実施形態における、Convolution処理においてフィルタ係数を途中で1回更新する場合の動作を示すイメージ図である。Convolution処理は、入力される全てのiFMデータに異なるフィルタ係数をかけ、それらを全て積算する事でoFMの1ピクセルのデータ(oFMデータ)が算出される。
本発明の第1実施形態は、フィルタ係数が多い場合(WBUFが小さい場合)に対処するものであったが、フィルタ係数でなく、iFMデータが多すぎるケースでも同様の問題が起こる。すなわち、iFMデータの一部しかIBUFに格納できないケースを考える。このとき、oFMの1ピクセル(1画素)のデータ(oFMデータ)を算出するためにIBUFに格納されているiFMデータを途中で更新すると、oFMの次のピクセルのデータ(oFMデータ)を算出するためにiFMデータの読み直しが必要となってしまう。
第1実施形態は全てのフィルタ係数がWBUFに格納できないケースであり、第2実施形態は全てのiFMデータがIBUFに格納できないケースであったが、両方が同時に発生するケースもある。すなわち、第3実施形態として、全てのフィルタ係数がWBUFに格納できず、かつ、全てのiFMデータがIBUFに格納できないケースについて説明する。
1つの出力チャネルから複数のoFMを出力するケースにおいて、oFM数が出力並列度Mを上回る面数を必要とする場合について考える。図11に示す処理では、フィルタ係数およびiFMを、ともにこの処理の間に更新し、1つのoFMのデータを生成している。この処理において、さらに、1つの出力チャネルが生成しなければならないoFM数がm(m>1)であったとすると、図11に示す処理をm回繰り返して処理する方法が考えられる。
2 コントローラ
3 データ入力部
4 フィルタ係数入力部
5 IBUF管理部(データ格納メモリ管理部)
6 WBUF管理部(フィルタ係数格納メモリ管理部)
7 演算部
8 データ出力部
9 DRAM(外部メモリ)
10 バス
11、21 SBUF管理部(累積加算結果格納メモリ管理部)
71 演算制御部
72 フィルタ演算部
73 第1加算器
74 第2加算器
75 FF(フリップフロップ)
76 非線形変換部
77 プーリング処理部
111 SBUF格納部(累積加算結果格納メモリ格納部)
112 SBUF(累積加算結果格納メモリ)
113 SBUF読み出し部(累積加算結果格納メモリ読み出し部)
210 SBUF制御部(累積加算結果格納メモリ制御部)
211 第1SBUF格納部(累積加算結果格納メモリ格納部)
212 第2SBUF格納部(累積加算結果格納メモリ格納部)
213 第1SBUF読み出し部(累積加算結果格納メモリ読み出し部)
214 第2SBUF読み出し部(累積加算結果格納メモリ読み出し部)
Claims (4)
- Convolution処理とFullConnect処理を行うディープラーニング用の演算処理装置であって、
入力特徴量マップデータを格納するデータ格納メモリと、前記データ格納メモリを管理および制御するデータ格納メモリ制御回路とを有するデータ格納メモリ管理部と;
フィルタ係数を格納するフィルタ係数格納メモリと、前記フィルタ係数格納メモリを管理および制御するフィルタ係数格納メモリ制御回路とを有するフィルタ係数格納メモリ管理部と;
前記入力特徴量マップデータおよび出力特徴量マップデータを格納する外部メモリと;
前記外部メモリから、前記入力特徴量マップデータを取得するデータ入力部と;
前記外部メモリから、前記フィルタ係数を取得するフィルタ係数入力部と;
入力N並列、出力M並列の構成(N、M≧1の正数)で、前記データ格納メモリから前記入力特徴量マップデータを取得し、前記フィルタ係数格納メモリから前記フィルタ係数を取得して、フィルタ処理、累積加算処理、非線形演算処理およびプーリング処理を行う演算部と;
前記演算部から出力されるM並列のデータを連結して、出力特徴量マップデータとして前記外部メモリに出力するデータ出力部と;
入力特徴量マップの各ピクセル単位で累積加算処理の途中結果を一時的に記録しておく累積加算結果格納メモリと、
有効データを受けてアドレスを生成し前記累積加算結果格納メモリに書き込む累積加算結果格納メモリ格納部と、
前記累積加算結果格納メモリから指定したデータを読み出す累積加算結果格納メモリ読み出し部と、
からなる累積加算結果格納メモリ管理部と;
前記演算処理装置内を制御するコントローラと;
を有し、
前記演算部は、
N並列でフィルタ処理を実行するフィルタ演算部と、
前記フィルタ演算部の演算結果を全て累積加算する第1加算器と、
前記第1加算器の累積加算処理の結果を後段で累積加算する第2加算器と、
前記第2加算器の累積加算処理の結果を保持するフリップフロップと、
前記演算部内を制御する演算制御部と、
を有し、
前記演算制御部は、出力特徴量マップの特定のピクセルを算出するためのフィルタ処理および累積加算処理の途中で、フィルタ処理および累積加算処理に必要な全ての入力特徴量マップデータを前記データ格納メモリに格納することができない場合、または、フィルタ処理および累積加算処理に必要な全てのフィルタ係数を前記フィルタ係数格納メモリに格納することができない場合に、一旦途中結果を前記累積加算結果格納メモリに格納して別のピクセルの処理を行い、すべてのピクセルについて累積加算処理の途中結果を前記累積加算結果格納メモリに格納し終えたら最初のピクセルに戻り、前記累積加算結果格納メモリに格納した値を読み出して累積加算処理の初期値とし、累積加算処理の続きを実行するよう制御することを特徴とする演算処理装置。 - 前記演算制御部は、前記フィルタ係数格納メモリに格納されているすべてのフィルタ係数で実行可能なフィルタ処理および累積加算処理を終えた時に、一旦途中結果を前記累積加算結果格納メモリに格納し、前記フィルタ係数格納メモリに格納されているフィルタ係数が更新されたら累積加算処理の続きを実行するように制御する
請求項1に記載の演算処理装置。 - 前記演算制御部は、入力可能なすべての入力特徴量マップデータで実行可能なすべてのフィルタ処理および累積加算処理を終えた時に、一旦途中結果を前記累積加算結果格納メモリに格納し、前記データ格納メモリに格納されている入力特徴量マップデータが更新されたら累積加算処理の続きを実行するように制御する
請求項1または2に記載の演算処理装置。 - 前記累積加算結果格納メモリ管理部は、
前記累積加算結果格納メモリから累積加算途中結果を読み出して前記外部メモリに書き出す累積加算結果格納メモリ読み出し部と、
前記外部メモリから累積加算途中結果を読み込んで前記累積加算結果格納メモリに格納する累積加算結果格納メモリ格納部と、
を有し、
前記演算制御部は、出力特徴量マップの特定のピクセルを算出するためのフィルタ処理および累積加算処理の途中で、途中結果を前記累積加算結果格納メモリから前記外部メモリに書き出し、前記データ格納メモリに格納されている入力特徴量マップデータまたは前記フィルタ係数格納メモリに格納されているフィルタ係数を更新して累積加算処理を続きから実施する場合は、前記外部メモリに書き出した累積加算途中結果を前記外部メモリから前記累積加算結果格納メモリに読み込んで累積加算処理の続きを実行するように制御する
請求項1から3のいずれか1項に記載の演算処理装置。
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/JP2018/038076 WO2020075287A1 (ja) | 2018-10-12 | 2018-10-12 | 演算処理装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPWO2020075287A1 JPWO2020075287A1 (ja) | 2021-06-10 |
| JP7012168B2 true JP7012168B2 (ja) | 2022-01-27 |
Family
ID=70164638
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2020549920A Active JP7012168B2 (ja) | 2018-10-12 | 2018-10-12 | 演算処理装置 |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US20210182656A1 (ja) |
| JP (1) | JP7012168B2 (ja) |
| CN (1) | CN112639838B (ja) |
| WO (1) | WO2020075287A1 (ja) |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2015197702A (ja) | 2014-03-31 | 2015-11-09 | キヤノン株式会社 | 情報処理装置、情報処理方法 |
| US20170323196A1 (en) | 2016-05-03 | 2017-11-09 | Imagination Technologies Limited | Hardware Implementation of a Convolutional Neural Network |
Family Cites Families (17)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2004048512A (ja) * | 2002-07-12 | 2004-02-12 | Renesas Technology Corp | 動画像符号化方法と動画像符号化回路 |
| JP2009194896A (ja) * | 2008-01-18 | 2009-08-27 | Sanyo Electric Co Ltd | 画像処理装置及び方法並びに撮像装置 |
| CN104905765B (zh) * | 2015-06-08 | 2017-01-18 | 四川大学华西医院 | 眼动跟踪中基于CamShift算法的FPGA实现方法 |
| JP2017010255A (ja) * | 2015-06-22 | 2017-01-12 | オリンパス株式会社 | 画像認識装置および画像認識方法 |
| JP6645252B2 (ja) * | 2016-02-23 | 2020-02-14 | 株式会社デンソー | 演算処理装置 |
| AU2016203619A1 (en) * | 2016-05-31 | 2017-12-14 | Canon Kabushiki Kaisha | Layer-based operations scheduling to optimise memory for CNN applications |
| US10628915B1 (en) * | 2017-01-13 | 2020-04-21 | Ambarella International Lp | Multi-modal warp filter to reduce memory bandwidth |
| US10795836B2 (en) * | 2017-04-17 | 2020-10-06 | Microsoft Technology Licensing, Llc | Data processing performance enhancement for neural networks using a virtualized data iterator |
| AU2017279610A1 (en) * | 2017-12-19 | 2019-07-04 | Canon Kabushiki Kaisha | Memory access optimisation using per-layer computational mapping and memory allocation for CNN application |
| JPWO2019155910A1 (ja) * | 2018-02-06 | 2021-03-04 | 国立大学法人東京工業大学 | ニューラル電子回路 |
| CN108537330B (zh) * | 2018-03-09 | 2020-09-01 | 中国科学院自动化研究所 | 应用于神经网络的卷积计算装置及方法 |
| JP7240657B2 (ja) * | 2018-05-15 | 2023-03-16 | Tokyo Artisan Intelligence株式会社 | ニューラルネットワーク回路装置、ニューラルネットワーク、ニューラルネットワーク処理方法およびニューラルネットワークの実行プログラム |
| US11093225B2 (en) * | 2018-06-28 | 2021-08-17 | Xilinx, Inc. | High parallelism computing system and instruction scheduling method thereof |
| US10411709B1 (en) * | 2018-07-25 | 2019-09-10 | Xilinx, Inc. | Circuit arrangements and methods for dividing a three-dimensional input feature map |
| US11295205B2 (en) * | 2018-09-28 | 2022-04-05 | Qualcomm Incorporated | Neural processing unit (NPU) direct memory access (NDMA) memory bandwidth optimization |
| EP3855367A4 (en) * | 2018-10-09 | 2022-06-29 | Huawei Technologies Co., Ltd. | Operation accelerator, processing method, and related device |
| US10990524B2 (en) * | 2018-10-11 | 2021-04-27 | Powerchip Semiconductor Manufacturing Corporation | Memory with processing in memory architecture and operating method thereof |
-
2018
- 2018-10-12 WO PCT/JP2018/038076 patent/WO2020075287A1/ja not_active Ceased
- 2018-10-12 JP JP2020549920A patent/JP7012168B2/ja active Active
- 2018-10-12 CN CN201880096920.4A patent/CN112639838B/zh active Active
-
2021
- 2021-02-24 US US17/183,720 patent/US20210182656A1/en not_active Abandoned
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2015197702A (ja) | 2014-03-31 | 2015-11-09 | キヤノン株式会社 | 情報処理装置、情報処理方法 |
| US20170323196A1 (en) | 2016-05-03 | 2017-11-09 | Imagination Technologies Limited | Hardware Implementation of a Convolutional Neural Network |
Also Published As
| Publication number | Publication date |
|---|---|
| CN112639838A (zh) | 2021-04-09 |
| WO2020075287A1 (ja) | 2020-04-16 |
| JPWO2020075287A1 (ja) | 2021-06-10 |
| CN112639838B (zh) | 2025-07-01 |
| US20210182656A1 (en) | 2021-06-17 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN110506260B (zh) | 用于神经网络环境中的增强数据处理的方法、系统和介质 | |
| US20200201763A1 (en) | Memory hierarchy-aware processing | |
| CN101681449B (zh) | 计算处理装置及方法 | |
| CN112005251B (zh) | 运算处理装置 | |
| CN110378413A (zh) | 神经网络模型处理方法、装置以及电子设备 | |
| CN111583095B (zh) | 图像数据存储方法、图像数据处理方法、系统及相关装置 | |
| CN107833176A (zh) | 一种信息处理方法及相关产品 | |
| EP3633559B1 (en) | Information processing apparatus, information processing method, non-transitory computer-readable storage medium | |
| US11276132B2 (en) | Data processing method and sensor device for performing the same | |
| CN109902821B (zh) | 一种数据处理方法、装置及相关组件 | |
| EP3968238B1 (en) | Operation method of host processor and accelerator, and electronic device including the same | |
| US20220113944A1 (en) | Arithmetic processing device | |
| US11886832B2 (en) | Operation device and operation method | |
| JP7012168B2 (ja) | 演算処理装置 | |
| JP6970827B2 (ja) | 演算処理装置 | |
| WO2025156728A1 (zh) | 数据处理方法、处理阵列及处理装置 | |
| CN112200310A (zh) | 智能处理器、数据处理方法及存储介质 | |
| CN118426989A (zh) | 人工智能模型的优化方法、电子设备与存储介质 | |
| CN113590562B (zh) | 基于机器学习的机载装备数据存储方法及系统 | |
| US20230168809A1 (en) | Intelligence processor device and method for reducing memory bandwidth | |
| JP2009070012A (ja) | 情報処理装置、情報処理方法及びデータ転送装置。 | |
| JP2023024960A (ja) | 効率的なニューラルネットワーク実行のためのメモリ使用の最適化 | |
| JP2021196900A (ja) | ニューラルネットワーク演算量削減装置 | |
| TWI891504B (zh) | 基於機器學習模型的記憶體存取最佳化方法及相關設備 | |
| CN113128658A (zh) | 一种神经网络处理方法、加速器及存储介质 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20201127 |
|
| 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: 20220104 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20220117 |
|
| R151 | Written notification of patent or utility model registration |
Ref document number: 7012168 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |