JP6958027B2 - 演算処理装置及び演算処理装置の制御方法 - Google Patents
演算処理装置及び演算処理装置の制御方法 Download PDFInfo
- Publication number
- JP6958027B2 JP6958027B2 JP2017130527A JP2017130527A JP6958027B2 JP 6958027 B2 JP6958027 B2 JP 6958027B2 JP 2017130527 A JP2017130527 A JP 2017130527A JP 2017130527 A JP2017130527 A JP 2017130527A JP 6958027 B2 JP6958027 B2 JP 6958027B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- calculation
- element data
- predetermined
- line
- 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 claims description 45
- 238000004364 calculation method Methods 0.000 claims description 396
- 230000008569 process Effects 0.000 claims description 27
- 239000011159 matrix material Substances 0.000 claims description 15
- 238000013500 data storage Methods 0.000 claims description 8
- 238000010586 diagram Methods 0.000 description 36
- 230000006870 function Effects 0.000 description 20
- 238000013528 artificial neural network Methods 0.000 description 9
- 238000013135 deep learning Methods 0.000 description 9
- 238000003491 array Methods 0.000 description 3
- 238000007796 conventional method Methods 0.000 description 3
- 230000007704 transition Effects 0.000 description 3
- 238000013527 convolutional neural network Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic instructions
-
- 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
-
- 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
- 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/544—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 for evaluating functions by calculation
- G06F7/5443—Sum of products
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/57—Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
-
- 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
-
- 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
-
- 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
-
- 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
-
- 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/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Complex Calculations (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Description
具体的には、演算部51は、ストライド数である2個分の要素データw00及びw01を積和演算器510〜513のそれぞれに順に読み込ますことを繰り返す。すなわち、積和演算器510は、要素データw00を読み込む。積和演算器511は、要素データw01を読み込む。積和演算器512は、要素データw00を読み込む。積和演算器513は、要素データw01を読み込む。
3回目の演算803では、先頭ポインタ161は、先頭からストライド数分の移動が1回行われた位置から積和演算器510及び511の数である2つ分行方向に進んだ位置に配置される。そして、積和演算器510及び511は、先頭ポインタ161からストライド数である2個の要素データb04及び0を読み込む。さらに、積和演算器510及び511は、重みデータ202の先頭から積和演算器510及び511の数である2つ分進んだ位置からストライド数である2個の要素データw02及び0を読み込む。そして、積和演算器510及び511は、取得した要素データを乗算してトップデータ209の要素データt01の中間値であるデータt01’及びt01’’を算出する。これにより、積和演算器510及び511は、行分演算を完了する。
図21は、演算処理装置のハードウェア構成図である。図21に示すように、演算処理装置1は、メインメモリ91、CPU(Central Processing Unit)92、I/O(Input/Output)コントローラ93、ハードディスク94及びGPU95を有する。さらに、GPU95は、チップ96及びメモリ99を有する。そして、チップ96には、演算器97及び内蔵メモリ98が搭載される。
11 メモリ
12 第1データ制御部
13 第2データ制御部
16 ポインタ制御部
50〜53 演算部
201 ボトムデータ
202 重みデータ
203 トップ差分データ
204 重み差分データ
205 ボトム差分データ
206 出力データ
207 期待値
209 トップデータ
310〜314,410〜413,420〜423,430〜433 レジスタファイル
501〜503,510〜513 積和演算器
Claims (4)
- 行列に含まれる第1要素データを有する第1データ上に行列に含まれる第2要素データを有する第2データを、前記第1要素データ及び前記第2要素データ同士が対応するように重ね、前記第1要素データの所定数ずつ行方向に前記第2データを移動させて所定演算を行い、各重畳状態で前記所定演算により算出される各第3要素データを含む行列を有する第3データを算出する演算処理装置であって、
前記第1データ及び前記第2データを格納するデータ格納部と、
複数の演算部と、
前記演算部毎に配置され、前記データ格納部に格納された前記第1データの前記所定数の行分の第1所定行を格納する第1格納部と、
前記演算部毎に配置され、前記データ格納部に格納された前記第2データの前記所定数の行分の第2所定行を格納する第2格納部と、
前記演算部毎に前記所定数に応じた個数が含まれ、各々が前記第1所定行に含まれるそれぞれ異なる第1要素データを前記第1格納部から取得し、且つ、前記第2所定行に含まれる同じ第2要素データを前記第2格納部から取得し、取得した前記第1要素データ及び前記第2要素データをかけ合わせる処理を、前記第3データの列数の回数行う第1演算を行い、前記第1所定行における前記第1要素データの取得位置及び前記第2所定行における前記第2要素データの取得位置を行方向に前記所定数分進ませて前記第1演算を前記第3データの列数の回数繰り返して行分演算を行う処理を、前記第1所定行及び前記第2所定行を1行ずつ進ませて前記第2データの行数分行う第2演算を行い、且つ、前記第2演算を前記第1所定行及び前記第2所定行を前記所定数ずつ列方向に進ませて繰り返す第3演算を行い、前記第3演算の演算結果を基に前記第3データを求める積和演算部と
を備えたことを特徴とする演算処理装置。 - 前記積和演算部は、各々が前記第1所定行に含まれるそれぞれ異なる前記第1要素データを前記第1格納部から取得し、且つ、前記第2所定行に含まれる同じ前記第2要素データを前記第2格納部から取得し、取得した前記第1要素データ及び前記第2要素データを掛け合わせる処理を、前記第3データの列数の回数行う第1演算を行い、前記第1所定行における前記第1要素データの取得位置及び前記第2所定行における前記第2要素データの取得位置を行方向に前記所定数分進ませて前記第1演算を前記第3データの列数の回数繰り返して行分演算を行う処理を、前記第1所定行及び前記第2所定行を1行ずつ進ませて前記第2データの行数分行う第2演算を行い、且つ、前記第2演算を前記第1所定行及び前記第2所定行を前記所定数ずつ列方向に進ませて繰り返す第3演算を行い、前記第3演算の演算結果を基に前記第3要素データを算出し前記第3データを求めることを特徴とする請求項1に記載の演算処理装置。
- 前記演算部は、前記第3データの列数の個数存在することを特徴とする請求項1に記載の演算処理装置。
- 行列に含まれる第1要素データを有する第1データ上に行列に含まれる第2要素データを有する第2データを、前記第1要素データ及び前記第2要素データ同士が対応するように重ね、所定数の前記第1要素データずつ行方向に前記第2データを移動させて所定演算を行い、各重畳状態で前記所定演算により算出される各第3要素データを含む行列を有する第3データを算出する演算処理装置の制御方法であって、
記憶装置に前記第1データ及び前記第2データを格納させ、
前記記憶装置に格納された前記第1データの第1所定行を第1格納装置に格納し、
前記記憶装置に格納された前記第2データの第2所定行を第2格納装置に格納し、
前記所定数に応じた個数が含まれた積和演算器のそれぞれに、前記第1所定行に含まれるそれぞれ異なる前記第1要素データを前記第1格納装置から取得させ、且つ、前記第2所定行に含まれる同じ前記第2要素データを前記第2格納装置から取得させ、
取得された前記第1要素データ及び前記第2要素データをかけ合わせる処理を、前記第3データの列数の回数行う第1演算を行い、前記第1所定行における前記第1要素データの取得位置及び前記第2所定行における前記第2要素データの取得位置を行方向に前記所定数分進ませて前記第1演算を前記第3データの列数の回数繰り返して行分演算を行う処理を、前記第1所定行及び前記第2所定行を1行ずつ進ませて前記第2データの行数分行う第2演算を行い、且つ、前記第2演算を前記第1所定行及び前記第2所定行を前記所定数ずつ列方向に進ませて繰り返す第3演算を行い、前記第3演算の演算結果を基に前記第3データを求める処理を積和演算器に行わせる
ことを特徴とする演算処理装置の制御方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017130527A JP6958027B2 (ja) | 2017-07-03 | 2017-07-03 | 演算処理装置及び演算処理装置の制御方法 |
US16/015,789 US10713042B2 (en) | 2017-07-03 | 2018-06-22 | Arithmetic processing device and control method for arithmetic processing device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017130527A JP6958027B2 (ja) | 2017-07-03 | 2017-07-03 | 演算処理装置及び演算処理装置の制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2019016011A JP2019016011A (ja) | 2019-01-31 |
JP6958027B2 true JP6958027B2 (ja) | 2021-11-02 |
Family
ID=64738142
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017130527A Active JP6958027B2 (ja) | 2017-07-03 | 2017-07-03 | 演算処理装置及び演算処理装置の制御方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10713042B2 (ja) |
JP (1) | JP6958027B2 (ja) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6972547B2 (ja) * | 2016-12-27 | 2021-11-24 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
JP6958027B2 (ja) * | 2017-07-03 | 2021-11-02 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
US10706840B2 (en) * | 2017-08-18 | 2020-07-07 | Google Llc | Encoder-decoder models for sequence to sequence mapping |
US11803377B2 (en) * | 2017-09-08 | 2023-10-31 | Oracle International Corporation | Efficient direct convolution using SIMD instructions |
US10747844B2 (en) * | 2017-12-12 | 2020-08-18 | Tesla, Inc. | Systems and methods for converting a matrix input to a vectorized input for a matrix processor |
US20210034956A1 (en) * | 2019-07-29 | 2021-02-04 | Hysai Inc. | Minimum memory digital convolver |
CN114585997A (zh) * | 2019-10-25 | 2022-06-03 | 株式会社半导体能源研究所 | 运算电路、半导体装置及电子设备 |
US11669587B2 (en) * | 2020-10-15 | 2023-06-06 | Gigantor Technologies Inc. | Synthetic scaling applied to shared neural networks |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5226171A (en) * | 1984-12-03 | 1993-07-06 | Cray Research, Inc. | Parallel vector processing system for individual and broadcast distribution of operands and control information |
US5577262A (en) * | 1990-05-22 | 1996-11-19 | International Business Machines Corporation | Parallel array processor interconnections |
JP3251421B2 (ja) | 1994-04-11 | 2002-01-28 | 株式会社日立製作所 | 半導体集積回路 |
US6401106B1 (en) * | 2000-08-07 | 2002-06-04 | Systems On Silicon, Inc. | Methods and apparatus for performing correlation operations |
JP4845350B2 (ja) | 2004-06-03 | 2011-12-28 | キヤノン株式会社 | 並列処理装置 |
US20070271325A1 (en) * | 2006-05-08 | 2007-11-22 | Nvidia Corporation | Matrix multiply with reduced bandwidth requirements |
JP5376920B2 (ja) * | 2008-12-04 | 2013-12-25 | キヤノン株式会社 | コンボリューション演算回路、階層的コンボリューション演算回路及び物体認識装置 |
JP6314628B2 (ja) * | 2014-04-28 | 2018-04-25 | 株式会社デンソー | 演算処理装置 |
JP2018022339A (ja) * | 2016-08-03 | 2018-02-08 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
JP6786948B2 (ja) * | 2016-08-12 | 2020-11-18 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
JP6958027B2 (ja) * | 2017-07-03 | 2021-11-02 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
-
2017
- 2017-07-03 JP JP2017130527A patent/JP6958027B2/ja active Active
-
2018
- 2018-06-22 US US16/015,789 patent/US10713042B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US10713042B2 (en) | 2020-07-14 |
US20190004795A1 (en) | 2019-01-03 |
JP2019016011A (ja) | 2019-01-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6958027B2 (ja) | 演算処理装置及び演算処理装置の制御方法 | |
JP6786948B2 (ja) | 演算処理装置及び演算処理装置の制御方法 | |
US10642622B2 (en) | Arithmetic processing device and control method of the arithmetic processing device | |
JP6900487B2 (ja) | ハードウェアにおける平均プーリングの実行 | |
KR102232722B1 (ko) | 프로그램 가능한 2차원 이미지 프로세서상의 컨볼루션 신경망 | |
US11461632B2 (en) | Method and apparatus for adapting parameters of neural network | |
JP6750203B2 (ja) | 畳み込みニューラルネットワークの演算方法及び演算プログラム、情報処理装置 | |
TWI678617B (zh) | 用於在使用加法器之多維張量中存取資料之系統、電腦實施方法及設備 | |
CN110520834A (zh) | 替选循环限制 | |
JP2018124867A (ja) | 演算処理装置及び演算処理装置の制御方法 | |
JP6927320B2 (ja) | 推論装置、畳み込み演算実行方法及びプログラム | |
US10248384B2 (en) | Arithmetic processing device and control method for arithmetic processing device | |
JP7020485B2 (ja) | 演算装置、演算方法及びプログラム | |
CN108073549B (zh) | 卷积运算装置及方法 | |
JP7165018B2 (ja) | 情報処理装置、情報処理方法 | |
CN114341881A (zh) | 在脉动阵列上卷积的通用填充支持 | |
CN114792124A (zh) | 在硬件中实施扩张卷积 | |
US20220179923A1 (en) | Information processing apparatus, information processing method, and computer-readable recording medium | |
CN112668709B (zh) | 计算装置以及用于数据重用的方法 | |
CN109766515B (zh) | 矩阵分解处理装置及方法 | |
US20240126617A1 (en) | Deep fusion of kernel execution | |
Huang et al. | A hardware/software codesign of WZ factorization to improve time to solve matrices | |
JP2023073824A (ja) | 演算装置、情報処理方法、及びプログラム | |
JP5958212B2 (ja) | パターンマッチング方法、マスクパターンの生成方法、及び、ライブラリの構築方法 | |
JP2004070524A (ja) | 演算装置及びその演算方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180713 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200310 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20210317 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20210323 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210519 |
|
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: 20210907 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20210920 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6958027 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |