JP7461945B2 - 部分行列の順序付けを伴う行列乗算器 - Google Patents
部分行列の順序付けを伴う行列乗算器 Download PDFInfo
- Publication number
- JP7461945B2 JP7461945B2 JP2021523783A JP2021523783A JP7461945B2 JP 7461945 B2 JP7461945 B2 JP 7461945B2 JP 2021523783 A JP2021523783 A JP 2021523783A JP 2021523783 A JP2021523783 A JP 2021523783A JP 7461945 B2 JP7461945 B2 JP 7461945B2
- Authority
- JP
- Japan
- Prior art keywords
- matrix
- submatrix
- sub
- input register
- multiplication
- 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
- 239000011159 matrix material Substances 0.000 title claims description 226
- 238000000034 method Methods 0.000 claims description 26
- 238000012545 processing Methods 0.000 claims description 17
- 229940050561 matrix product Drugs 0.000 claims description 3
- 230000008901 benefit Effects 0.000 description 8
- 238000004364 calculation method Methods 0.000 description 7
- 239000013598 vector Substances 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002730 additional effect Effects 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013461 design 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/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
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3243—Power saving in microcontroller unit
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Theoretical Computer Science (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Data Mining & Analysis (AREA)
- Computational Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Advance Control (AREA)
- Complex Calculations (AREA)
Description
Ri,j=SumAi,k×Bk,j、k=0…K-1、iは[0..M-1]、jは[0..N-1]
R=SumRk,Rk i,j=Ai,k×Bk,j
R0,0=A0,0×B0,0
R0,0+=A0,1×B1,0
R0,0+=A0,2×B2,0
R0,0+=A0,3×B3,0
ここで、「+=」は、対応する積を、R0,0の前の値に加算することを示す。同様に、部分行列R1,0を生成するために、SIMD102は、以下の計算を実行する。
R1,0=A1,0×B0,0
R0,0+=A1,1×B1,0
R0,0+=A1,2×B2,0
R0,0+=A1,3×B3,0
SIMD102は、同様の計算を実行して、部分行列R2,0,R3,0を生成する。
R0,0=A0,0×B0,0
R1,0=A1,0×B0,0 <=Bの入力は維持
R2,0=A2,0×B0,0 <=Bの入力は維持
R3,0=A3,0×B0,0 <=Bの入力は維持(4xを使用)
R0,0+=A0,1×B1,0 <=Bの入力を更新
R1,0+=A1,1×B1,0 <=Bの入力は維持
R2,0+=A2,1×B1,0 <=Bの入力は維持
R3,0+=A3,1×B1,0 <=Bの入力は維持(4xを使用)
R0,0+=A0,2×B2,0 <=Bの入力を更新
R1,0+=A1,2×B2,0 <=Bの入力は維持
R2,0+=A2,2×B2,0 <=Bの入力は維持
R3,0+=A3,2×B2,0 <=Bの入力は維持(4xを使用)
R0,0+=A0,3×B3,0 <=Bの入力を更新
R1,0+=A1,3×B3,0 <=Bの入力は維持
R2,0+=A2,3×B3,0 <=Bの入力は維持
R3,0+=A3,3×B3,0 <=Rの第1の列を完了する計算
Claims (14)
- 第1の行列及び第2の行列を乗算するグラフィックスプロセッシングユニット(GPU)の行列乗算器の第1の乗算サイクルにおいて、第1の入力レジスタに記憶された前記第1の行列の第1の部分行列を、第2の入力レジスタに記憶された前記第2の行列の第1の部分行列と乗算することと、
前記行列乗算器の前記第1の乗算サイクルに続く第2の乗算サイクルにおいて、前記第1の入力レジスタに記憶された前記第1の行列の前記第1の部分行列を、第2の入力レジスタに記憶された前記第2の行列の第2の部分行列と乗算することと、前記第1の乗算サイクル及び前記第2の乗算サイクルにおいて、前記第1の部分行列を前記第1の入力レジスタに維持することと、
前記第2の乗算サイクルに続く第3の乗算サイクルにおいて、前記第1の入力レジスタに記憶された前記第1の行列の第2の部分行列を、前記第2の入力レジスタに記憶された前記第2の行列の前記第2の部分行列と乗算することと、
前記第3の乗算サイクルにおいて、前記第1の行列の前記第1の部分行列を、前記第1の行列の前記第2の部分行列に変更することと、を含む、
方法。 - 前記第1の部分行列は、少なくとも1つの非ゼロ要素を含む、
請求項1の方法。 - 前記第1の乗算サイクル及び前記第2の乗算サイクルの結果に基づいて、前記第1の行列及び前記第2の行列の積を決定することであって、前記積は結果行列を含む、ことをさらに含む、
請求項1の方法。 - 前記積を決定することは、
前記第1の乗算サイクル及び前記第2の乗算サイクルの結果に基づいて、前記結果行列の部分行列を決定することを含む、
請求項3の方法。 - 前記結果行列の前記部分行列は、前記結果行列の列及び行の何れかを含む、
請求項4の方法。 - 前記積を決定することは、
前記第1の乗算サイクル及び前記第2の乗算サイクルの結果に基づいて、外積を決定することを含む、
請求項3の方法。 - グラフィックスプロセッシングユニット(GPU)の行列乗算器で第1の行列の部分行列を第2の行列の部分行列と乗算して、行列の積を決定することを含み、
前記乗算することは、
第1の複数の乗算サイクルに亘って、前記行列乗算器の第1の入力レジスタにおいて第1の部分行列を維持することと、
前記第1の複数の乗算サイクルに亘って、前記行列乗算器の第2の入力レジスタにおいて部分行列を変更することと、
第2の複数の乗算サイクルに亘って、前記行列乗算器の前記第2の入力レジスタにおいて第2の部分行列を維持することと、を含む、
方法。 - 前記第1の部分行列の少なくとも1つの要素は非ゼロ要素である、
請求項7の方法。 - 第1の入力レジスタと、
第2の入力レジスタと、
前記第1の入力レジスタに記憶された部分行列を、前記第2の入力レジスタに記憶された部分行列と乗算するための行列乗算器と、
前記第1の入力レジスタ及び前記第2の入力レジスタに記憶された部分行列を制御するためのシーケンサと、を備え、
前記シーケンサは、
前記行列乗算器の第1の乗算サイクルにおいて、第1の行列の第1の部分行列を前記第1の入力レジスタに記憶し、第2の行列の第1の部分行列を前記第2の入力レジスタに記憶し、
前記行列乗算器の前記第1の乗算サイクルに続く第2の乗算サイクルにおいて、前記第1の行列の前記第1の部分行列を前記第1の入力レジスタに維持し、前記第2の行列の第2の部分行列を前記第2の入力レジスタに記憶し、
前記第2の乗算サイクルに続く第3の乗算サイクルにおいて、前記第1の行列の第2の部分行列を前記第1の入力レジスタに記憶し、前記第2の行列の前記第2の部分行列を前記第2の入力レジスタに記憶するように構成されている、
グラフィックスプロセッシングユニット(GPU)。 - 前記第1の部分行列は、少なくとも1つの非ゼロ要素を含む、
請求項9のGPU。 - 前記GPUは、
前記第1の乗算サイクル及び前記第2の乗算サイクルの結果に基づいて、前記第1の行列と前記第2の行列の積を決定するように構成されており、
前記積は結果行列を含む、
請求項9のGPU。 - 前記GPUは、
前記第1の乗算サイクル及び前記第2の乗算サイクルの結果に基づいて前記結果行列の部分行列を求めることによって、前記積を決定するように構成されている、
請求項11のGPU。 - 前記結果行列の前記部分行列は、前記結果行列の列及び行の何れかを含む、
請求項12のGPU。 - 前記GPUは、
前記第1の乗算サイクル及び前記第2の乗算サイクルの結果に基づいて外積を決定することによって、前記積を決定するように構成されている、
請求項11のGPU。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2023065959A JP2023089161A (ja) | 2018-10-31 | 2023-04-13 | 部分行列の順序付けを伴う行列乗算器 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/176,449 US11093580B2 (en) | 2018-10-31 | 2018-10-31 | Matrix multiplier with submatrix sequencing |
US16/176,449 | 2018-10-31 | ||
PCT/US2019/037656 WO2020091848A1 (en) | 2018-10-31 | 2019-06-18 | Matrix multiplier with submatrix sequencing |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2023065959A Division JP2023089161A (ja) | 2018-10-31 | 2023-04-13 | 部分行列の順序付けを伴う行列乗算器 |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2022506418A JP2022506418A (ja) | 2022-01-17 |
JPWO2020091848A5 JPWO2020091848A5 (ja) | 2022-06-22 |
JP7461945B2 true JP7461945B2 (ja) | 2024-04-04 |
Family
ID=70327188
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021523783A Active JP7461945B2 (ja) | 2018-10-31 | 2019-06-18 | 部分行列の順序付けを伴う行列乗算器 |
JP2023065959A Withdrawn JP2023089161A (ja) | 2018-10-31 | 2023-04-13 | 部分行列の順序付けを伴う行列乗算器 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2023065959A Withdrawn JP2023089161A (ja) | 2018-10-31 | 2023-04-13 | 部分行列の順序付けを伴う行列乗算器 |
Country Status (6)
Country | Link |
---|---|
US (1) | US11093580B2 (ja) |
EP (1) | EP3891626A4 (ja) |
JP (2) | JP7461945B2 (ja) |
KR (1) | KR102586989B1 (ja) |
CN (1) | CN113168430A (ja) |
WO (1) | WO2020091848A1 (ja) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210303987A1 (en) * | 2020-03-26 | 2021-09-30 | Advanced Micro Devices, Inc. | Power reduction for machine learning accelerator background |
US11720328B2 (en) | 2020-06-26 | 2023-08-08 | Advanced Micro Devices, Inc. | Processing unit with small footprint arithmetic logic unit |
CN112429475B (zh) * | 2020-09-29 | 2023-06-30 | 贵州大学 | 一种胶囊排序送料装置 |
CN112433760B (zh) * | 2020-11-27 | 2022-09-23 | 海光信息技术股份有限公司 | 数据排序方法和数据排序电路 |
CN112632464B (zh) * | 2020-12-28 | 2022-11-29 | 上海壁仞智能科技有限公司 | 用于处理数据的处理装置 |
US11556337B2 (en) | 2021-04-12 | 2023-01-17 | Analog Devices International Unlimited Company | Parallel matrix multiplication technique optimized for memory fetches |
CN117407640A (zh) * | 2022-07-15 | 2024-01-16 | 华为技术有限公司 | 一种矩阵计算方法及装置 |
KR102640249B1 (ko) * | 2023-06-12 | 2024-02-27 | 주식회사 하이퍼엑셀 | 대규모 언어 모델을 위해 멀티-디바이스에 기반한 추론을 수행하는 방법 및 시스템 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050193050A1 (en) | 2001-03-21 | 2005-09-01 | Apple Computer Inc. | Matrix multiplication in a vector processing system |
JP5324700B2 (ja) | 2009-03-31 | 2013-10-23 | シーメンス アクティエンゲゼルシャフト | シールプレートを備えた軸流ターボ機械のロータ |
US20170060811A1 (en) | 2015-04-28 | 2017-03-02 | Intel Corporation | Matrix operands for linear algebra operations |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CH594477A5 (ja) * | 1976-08-20 | 1978-01-13 | Agie Ag Ind Elektronik | |
JPH05324700A (ja) * | 1992-05-19 | 1993-12-07 | N T T Data Tsushin Kk | 行列乗算装置 |
JP3935678B2 (ja) * | 2001-01-31 | 2007-06-27 | 富士通株式会社 | Simd積和演算方法、積和演算回路、および、半導体集積回路装置 |
US20040122887A1 (en) * | 2002-12-20 | 2004-06-24 | Macy William W. | Efficient multiplication of small matrices using SIMD registers |
US20050240646A1 (en) * | 2004-04-23 | 2005-10-27 | The Research Foundation Of State University Of New York | Reconfigurable matrix multiplier architecture and extended borrow parallel counter and small-multiplier circuits |
US8051124B2 (en) * | 2007-07-19 | 2011-11-01 | Itt Manufacturing Enterprises, Inc. | High speed and efficient matrix multiplication hardware module |
US9354944B2 (en) * | 2009-07-27 | 2016-05-31 | Advanced Micro Devices, Inc. | Mapping processing logic having data-parallel threads across processors |
US8577951B1 (en) * | 2010-08-19 | 2013-11-05 | Altera Corporation | Matrix operations in an integrated circuit device |
US8862653B2 (en) * | 2011-04-26 | 2014-10-14 | University Of South Carolina | System and method for sparse matrix vector multiplication processing |
CN108388541B (zh) | 2016-04-22 | 2020-12-11 | 安徽寒武纪信息科技有限公司 | 卷积运算装置及方法 |
US10032247B2 (en) | 2016-06-22 | 2018-07-24 | Palo Alto Research Center Incorporated | System and method for speeding up general matrix-vector multiplication on GPU |
US10067910B2 (en) | 2016-07-01 | 2018-09-04 | Palo Alto Research Center Incorporated | System and method for GPU maximum register count optimization applied to general matrix-matrix multiplication |
US10929944B2 (en) * | 2016-11-23 | 2021-02-23 | Advanced Micro Devices, Inc. | Low power and low latency GPU coprocessor for persistent computing |
US10817587B2 (en) | 2017-02-28 | 2020-10-27 | Texas Instruments Incorporated | Reconfigurable matrix multiplier system and method |
JP6912703B2 (ja) * | 2017-02-24 | 2021-08-04 | 富士通株式会社 | 演算方法、演算装置、演算プログラム及び演算システム |
US10521225B2 (en) * | 2017-06-29 | 2019-12-31 | Oracle International Corporation | Matrix multiplication at memory bandwidth |
CN107622037A (zh) | 2017-09-27 | 2018-01-23 | 郑州云海信息技术有限公司 | 一种提高图形处理单元的矩阵乘计算性能的方法和装置 |
-
2018
- 2018-10-31 US US16/176,449 patent/US11093580B2/en active Active
-
2019
- 2019-06-18 WO PCT/US2019/037656 patent/WO2020091848A1/en unknown
- 2019-06-18 KR KR1020217015589A patent/KR102586989B1/ko active IP Right Grant
- 2019-06-18 JP JP2021523783A patent/JP7461945B2/ja active Active
- 2019-06-18 CN CN201980077886.0A patent/CN113168430A/zh active Pending
- 2019-06-18 EP EP19880374.4A patent/EP3891626A4/en active Pending
-
2023
- 2023-04-13 JP JP2023065959A patent/JP2023089161A/ja not_active Withdrawn
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050193050A1 (en) | 2001-03-21 | 2005-09-01 | Apple Computer Inc. | Matrix multiplication in a vector processing system |
JP5324700B2 (ja) | 2009-03-31 | 2013-10-23 | シーメンス アクティエンゲゼルシャフト | シールプレートを備えた軸流ターボ機械のロータ |
US20170060811A1 (en) | 2015-04-28 | 2017-03-02 | Intel Corporation | Matrix operands for linear algebra operations |
Also Published As
Publication number | Publication date |
---|---|
EP3891626A4 (en) | 2022-08-10 |
JP2023089161A (ja) | 2023-06-27 |
KR20210071073A (ko) | 2021-06-15 |
EP3891626A1 (en) | 2021-10-13 |
KR102586989B1 (ko) | 2023-10-10 |
US20200133991A1 (en) | 2020-04-30 |
US11093580B2 (en) | 2021-08-17 |
WO2020091848A1 (en) | 2020-05-07 |
JP2022506418A (ja) | 2022-01-17 |
CN113168430A (zh) | 2021-07-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7461945B2 (ja) | 部分行列の順序付けを伴う行列乗算器 | |
CN111095241B (zh) | 加速数学引擎 | |
US10810484B2 (en) | Hardware accelerator for compressed GRU on FPGA | |
US20180107630A1 (en) | Processor and method for executing matrix multiplication operation on processor | |
JP6744913B2 (ja) | 浮動小数点数の丸め処理 | |
JP3605181B2 (ja) | 掛け算累算命令を使用したデータ処理 | |
JPH10187438A (ja) | 乗算器の入力に対する遷移を減少させる方法 | |
JP2014219994A (ja) | 算術プロセッサ | |
US10409604B2 (en) | Apparatus and method for performing multiply-and-accumulate-products operations | |
US9563401B2 (en) | Extensible iterative multiplier | |
US7519646B2 (en) | Reconfigurable SIMD vector processing system | |
CN112507284B (zh) | 稀疏矩阵乘法在可重构处理器阵列上的实现方法及装置 | |
JP2014229133A (ja) | 移動平均処理プログラム、及びプロセッサ | |
JPWO2019093451A1 (ja) | データ処理装置、ループ制御装置、データ処理方法、ループ制御方法およびプログラム | |
JPH07271556A (ja) | 電子乗算および加算装置および方法 | |
CN112446007A (zh) | 一种矩阵运算方法、运算装置以及处理器 | |
US20130166616A1 (en) | System and Method for Implementing a Multiplication | |
JP7377869B2 (ja) | グラフィックスプロセッシングユニットでのパイプライン化された行列乗算 | |
US11573765B2 (en) | Fused convolution and batch normalization for neural networks | |
CN115408061B (zh) | 复数矩阵运算的硬件加速方法、装置、芯片及存储介质 | |
US20230289191A1 (en) | Vertical and horizontal broadcast of shared operands | |
JP2018005369A (ja) | 演算処理装置及び演算処理装置の制御方法 | |
EP1936492A1 (en) | SIMD processor with reduction unit | |
US20240111530A1 (en) | Matrix multiplication unit with flexible precision operations | |
JP3336986B2 (ja) | 信号処理プロセッサ及びそれに用いる丸め機能付き積和演算器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210701 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20220614 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220614 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20220614 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20220802 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20221101 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20221213 |
|
C60 | Trial request (containing other claim documents, opposition documents) |
Free format text: JAPANESE INTERMEDIATE CODE: C60 Effective date: 20230413 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20231122 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20231222 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20240111 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20240325 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7461945 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |