JP2018005369A - 演算処理装置及び演算処理装置の制御方法 - Google Patents
演算処理装置及び演算処理装置の制御方法 Download PDFInfo
- Publication number
- JP2018005369A JP2018005369A JP2016128447A JP2016128447A JP2018005369A JP 2018005369 A JP2018005369 A JP 2018005369A JP 2016128447 A JP2016128447 A JP 2016128447A JP 2016128447 A JP2016128447 A JP 2016128447A JP 2018005369 A JP2018005369 A JP 2018005369A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- arithmetic processing
- operands
- unit
- address
- 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
- 238000000034 method Methods 0.000 title claims abstract description 22
- 238000006073 displacement reaction Methods 0.000 claims abstract description 5
- 238000004364 calculation method Methods 0.000 claims description 44
- 241001522296 Erithacus rubecula Species 0.000 claims description 2
- 239000013598 vector Substances 0.000 description 39
- 239000011159 matrix material Substances 0.000 description 30
- 229940050561 matrix product Drugs 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 101100534231 Xenopus laevis src-b gene Proteins 0.000 description 5
- 238000013135 deep learning Methods 0.000 description 4
- 238000011176 pooling Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 1
- -1 for example Proteins 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000001343 mnemonic effect 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/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
-
- 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
- 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/30021—Compare instructions, e.g. Greater-Than, Equal-To, MINMAX
-
- 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/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
- G06F9/30065—Loop control instructions; iterative instructions, e.g. LOOP, REPEAT
-
- 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/3017—Runtime instruction translation, e.g. macros
-
- 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/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/345—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results
-
- 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/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/345—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results
- G06F9/3455—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results using stride
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
-
- 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/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3887—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Physics (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
- Complex Calculations (AREA)
Abstract
Description
cij=ai1×b1j+ai2×b2j+ai3×b3j+ai4×b4j
例えば、行列Cの1行目1列目の要素c11は、
c11=a11×b11+a12×b21+a13×b31+a14×b41…(1)
の積和演算を行うことで求められる。
FMA a11,b11,0,c11
FMA a12,b21,c11,c11
FMA a13,b31,c11,c11
FMA a14,b41,c11,c11
以下に説明する本発明の一実施形態における演算処理装置は、1つの命令で、演算処理の対象であるオペランドを複数含むオペランドの組について、複数のオペランドの組に対する演算処理を並列に複数回実行するSIMV(Single Instruction Multiple Vector)命令が実行可能である。SIMV命令は、SIMD命令での演算処理に係るオペランドのアドレスが規則性を持つことに着目し、オペランドのアドレスを制御情報として与えることで、1つの命令で行列積演算等の複数のデータに対して同様の演算処理を並列に複数回実行し完了する。
t11=b11×w11+b12×w12+b13×w13+b21×w21+・・・+b33×w33
102 演算部(PU)
103 データバッファ
204 デコード部
207 SIMVユニット
301 SIMVアドレス生成部
302 SIMV制御情報レジスタ
303 ベクトル命令キュー
305 セレクタ
306 演算部
307 選択カウンタ
601 レジスタファイル
602 FMA演算器
1501 レジスタファイル
1502 比較器
Claims (6)
- 命令をデコードするデコード部と、
前記デコード部がデコードした命令が、演算処理の対象であるオペランドを複数含むオペランドの組について、複数のオペランドの組に対する演算処理を並列に複数回実行する命令である場合、各オペランドの組に含まれる複数のオペランドに対する所定のアドレス変位に基づき、各回の演算処理の各オペランドの組に対応するアドレスの組をそれぞれ生成するアドレス生成部と、
前記アドレス生成部が生成した各オペランドの組に対応するアドレスの組を、各演算部に対応してそれぞれ保持する複数のアドレス保持部と、
前記複数のアドレス保持部がそれぞれ出力するアドレスの組に基づいてそれぞれ取得したオペランドの組に対する演算処理を並列に行う複数の演算部とを有する演算処理装置。 - 前記複数の命令保持部のうち、前記複数の演算部にアドレスの組を出力する命令保持部をラウンドロビンで選択する請求項1記載の演算処理装置。
- 前記複数の命令保持部のうち、第1の命令保持部に保持された第1のアドレスの組に対応する第1の演算処理と、第2の命令保持部に保持された第2のアドレスの組に対応する第2の演算処理との間にオペランドの依存関係が無い場合、前記第1の命令保持部からの前記第1のアドレスの組と前記第2の命令保持部からの前記第2のアドレスの組とを、前記複数の演算部に対し、サイクル毎に交互に出力する請求項1又は2記載の演算処理装置。
- 前記演算処理は、積和演算処理である請求項1〜3の何れか1項に記載の演算処理装置。
- 前記演算処理は、オペランドの値を比較する比較演算である請求項1〜3の何れか1項に記載の演算処理装置。
- 演算処理装置の制御方法において、
前記演算処理装置が有するデコード部が、命令をデコードし、
前記デコード部がデコードした命令が、演算処理の対象であるオペランドを複数含むオペランドの組について、複数のオペランドの組に対する演算処理を並列に複数回実行する命令である場合、前記演算処理装置が有するアドレス生成部が、各オペランドの組に含まれる複数のオペランドに対する所定のアドレス変位に基づき、各回の演算処理の各オペランドの組に対応するアドレスの組をそれぞれ生成し、
前記演算処理装置が有する複数のアドレス保持部が、前記アドレス生成部が生成した各オペランドの組に対応するアドレスの組を、各演算部に対応してそれぞれ保持し、
前記演算処理装置が有する複数の演算部が、前記複数のアドレス保持部がそれぞれ出力するアドレスの組に基づいてそれぞれ取得したオペランドの組に対する演算処理を並列に行う演算処理装置の制御方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016128447A JP6712052B2 (ja) | 2016-06-29 | 2016-06-29 | 演算処理装置及び演算処理装置の制御方法 |
EP17172714.2A EP3264261B1 (en) | 2016-06-29 | 2017-05-24 | Processor and control method of processor |
US15/606,050 US10754652B2 (en) | 2016-06-29 | 2017-05-26 | Processor and control method of processor for address generating and address displacement |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016128447A JP6712052B2 (ja) | 2016-06-29 | 2016-06-29 | 演算処理装置及び演算処理装置の制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2018005369A true JP2018005369A (ja) | 2018-01-11 |
JP6712052B2 JP6712052B2 (ja) | 2020-06-17 |
Family
ID=58772746
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016128447A Active JP6712052B2 (ja) | 2016-06-29 | 2016-06-29 | 演算処理装置及び演算処理装置の制御方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10754652B2 (ja) |
EP (1) | EP3264261B1 (ja) |
JP (1) | JP6712052B2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210099991A (ko) * | 2020-02-05 | 2021-08-13 | 베이징 바이두 넷컴 사이언스 앤 테크놀로지 코., 엘티디. | 딥 러닝 처리 장치, 방법, 기기 및 저장 매체 |
JP7387017B2 (ja) | 2020-07-01 | 2023-11-27 | テンセント・テクノロジー・(シェンジェン)・カンパニー・リミテッド | アドレス生成方法及びユニット、深層学習処理器、チップ、電子機器並びにコンピュータプログラム |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110858127B (zh) * | 2018-08-22 | 2023-09-12 | 慧荣科技股份有限公司 | 数据存储装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0721018A (ja) * | 1993-07-05 | 1995-01-24 | Sanyo Electric Co Ltd | マイクロプログラム制御方式の中央処理装置 |
JP2001184336A (ja) * | 1999-12-17 | 2001-07-06 | Samsung Electronics Co Ltd | マトリックス演算装置及びマトリックス演算機能を有するデジタル信号処理装置 |
JP2005301918A (ja) * | 2004-04-15 | 2005-10-27 | Sony Computer Entertainment Inc | 描画処理装置および描画処理方法、ならびに情報処理装置および情報処理方法 |
WO2009072605A1 (ja) * | 2007-12-06 | 2009-06-11 | Nec Corporation | アレイプロセッサ向けアドレス生成装置と方法並びにアレイプロセッサ |
US20110153707A1 (en) * | 2009-12-23 | 2011-06-23 | Boris Ginzburg | Multiplying and adding matrices |
JP2013196654A (ja) * | 2012-03-22 | 2013-09-30 | Fujitsu Ltd | 演算処理装置 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3199205B2 (ja) * | 1993-11-19 | 2001-08-13 | 株式会社日立製作所 | 並列演算装置 |
US6085302A (en) * | 1996-04-17 | 2000-07-04 | Advanced Micro Devices, Inc. | Microprocessor having address generation units for efficient generation of memory operation addresses |
DE60144022D1 (de) * | 2000-11-06 | 2011-03-24 | Broadcom Corp | Umkonfigurierbares verarbeitungssystem und -verfahren |
US6915411B2 (en) * | 2002-07-18 | 2005-07-05 | International Business Machines Corporation | SIMD processor with concurrent operation of vector pointer datapath and vector computation datapath |
US7093204B2 (en) * | 2003-04-04 | 2006-08-15 | Synplicity, Inc. | Method and apparatus for automated synthesis of multi-channel circuits |
US7366885B1 (en) * | 2004-06-02 | 2008-04-29 | Advanced Micro Devices, Inc. | Method for optimizing loop control of microcoded instructions |
US7330964B2 (en) * | 2005-11-14 | 2008-02-12 | Texas Instruments Incorporated | Microprocessor with independent SIMD loop buffer |
CN101341473B (zh) * | 2005-12-20 | 2010-11-17 | Nxp股份有限公司 | 具有共享存储体的多处理器电路 |
JP4934356B2 (ja) * | 2006-06-20 | 2012-05-16 | 株式会社日立製作所 | 映像処理エンジンおよびそれを含む映像処理システム |
WO2008006400A1 (en) * | 2006-07-11 | 2008-01-17 | Freescale Semiconductor, Inc. | Microprocessor and method for register addressing therein |
JP5034916B2 (ja) * | 2007-12-10 | 2012-09-26 | 富士通セミコンダクター株式会社 | 性能評価モデル生成方法、システム性能評価方法、及び性能評価モデル生成装置 |
US9755994B2 (en) * | 2012-05-21 | 2017-09-05 | Nvidia Corporation | Mechanism for tracking age of common resource requests within a resource management subsystem |
US9619229B2 (en) * | 2012-12-27 | 2017-04-11 | Intel Corporation | Collapsing of multiple nested loops, methods and instructions |
JP6102645B2 (ja) | 2013-09-11 | 2017-03-29 | 富士通株式会社 | 積和演算回路及び積和演算システム |
-
2016
- 2016-06-29 JP JP2016128447A patent/JP6712052B2/ja active Active
-
2017
- 2017-05-24 EP EP17172714.2A patent/EP3264261B1/en active Active
- 2017-05-26 US US15/606,050 patent/US10754652B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0721018A (ja) * | 1993-07-05 | 1995-01-24 | Sanyo Electric Co Ltd | マイクロプログラム制御方式の中央処理装置 |
JP2001184336A (ja) * | 1999-12-17 | 2001-07-06 | Samsung Electronics Co Ltd | マトリックス演算装置及びマトリックス演算機能を有するデジタル信号処理装置 |
JP2005301918A (ja) * | 2004-04-15 | 2005-10-27 | Sony Computer Entertainment Inc | 描画処理装置および描画処理方法、ならびに情報処理装置および情報処理方法 |
WO2009072605A1 (ja) * | 2007-12-06 | 2009-06-11 | Nec Corporation | アレイプロセッサ向けアドレス生成装置と方法並びにアレイプロセッサ |
US20110153707A1 (en) * | 2009-12-23 | 2011-06-23 | Boris Ginzburg | Multiplying and adding matrices |
JP2013196654A (ja) * | 2012-03-22 | 2013-09-30 | Fujitsu Ltd | 演算処理装置 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210099991A (ko) * | 2020-02-05 | 2021-08-13 | 베이징 바이두 넷컴 사이언스 앤 테크놀로지 코., 엘티디. | 딥 러닝 처리 장치, 방법, 기기 및 저장 매체 |
JP2021140733A (ja) * | 2020-02-05 | 2021-09-16 | ベイジン バイドゥ ネットコム サイエンス アンド テクノロジー カンパニー リミテッド | 深層学習処理装置、方法、デバイス及び記憶媒体 |
JP7181264B2 (ja) | 2020-02-05 | 2022-11-30 | ベイジン バイドゥ ネットコム サイエンス テクノロジー カンパニー リミテッド | 深層学習処理装置、方法、デバイス及び記憶媒体 |
KR102642849B1 (ko) | 2020-02-05 | 2024-03-04 | 베이징 바이두 넷컴 사이언스 앤 테크놀로지 코., 엘티디. | 딥 러닝 처리 장치, 방법, 기기 및 저장 매체 |
JP7387017B2 (ja) | 2020-07-01 | 2023-11-27 | テンセント・テクノロジー・(シェンジェン)・カンパニー・リミテッド | アドレス生成方法及びユニット、深層学習処理器、チップ、電子機器並びにコンピュータプログラム |
Also Published As
Publication number | Publication date |
---|---|
JP6712052B2 (ja) | 2020-06-17 |
EP3264261A3 (en) | 2018-05-23 |
US20180004515A1 (en) | 2018-01-04 |
EP3264261B1 (en) | 2020-12-30 |
EP3264261A2 (en) | 2018-01-03 |
US10754652B2 (en) | 2020-08-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3451162B1 (en) | Device and method for use in executing matrix multiplication operations | |
US9355061B2 (en) | Data processing apparatus and method for performing scan operations | |
US11175920B2 (en) | Efficient work execution in a parallel computing system | |
CN109661647B (zh) | 数据处理装置和方法 | |
CN111381880B (zh) | 一种处理器、介质和处理器的操作方法 | |
US8307196B2 (en) | Data processing system having bit exact instructions and methods therefor | |
CN111381939B (zh) | 多线程处理器中的寄存器文件 | |
CN108885550B (zh) | 复数乘法指令 | |
JP2007317179A (ja) | 帯域幅要件が軽減された行列乗算 | |
CN107315717B (zh) | 一种用于执行向量四则运算的装置和方法 | |
US9547493B2 (en) | Self-timed user-extension instructions for a processing device | |
JP6933263B2 (ja) | データ処理装置、ループ制御装置、データ処理方法、ループ制御方法およびプログラム | |
US9354893B2 (en) | Device for offloading instructions and data from primary to secondary data path | |
JP6712052B2 (ja) | 演算処理装置及び演算処理装置の制御方法 | |
US11755320B2 (en) | Compute array of a processor with mixed-precision numerical linear algebra support | |
CN114746840A (zh) | 用于乘法和累加操作的处理器单元 | |
US8055883B2 (en) | Pipe scheduling for pipelines based on destination register number | |
JP4444305B2 (ja) | 半導体装置 | |
GB2523805A (en) | Data processing apparatus and method for performing vector scan operation | |
JP2023502574A (ja) | 演算論理回路レジスタの順序付け | |
JP2000181705A (ja) | 命令制御装置 | |
JP2010140398A (ja) | データ処理装置及びデータ処理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20190311 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20191127 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20200107 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200303 |
|
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: 20200428 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20200511 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6712052 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |