JP2023542261A - 複数のアキュムレータを有するシストリックアレイセル - Google Patents
複数のアキュムレータを有するシストリックアレイセル Download PDFInfo
- Publication number
- JP2023542261A JP2023542261A JP2022570187A JP2022570187A JP2023542261A JP 2023542261 A JP2023542261 A JP 2023542261A JP 2022570187 A JP2022570187 A JP 2022570187A JP 2022570187 A JP2022570187 A JP 2022570187A JP 2023542261 A JP2023542261 A JP 2023542261A
- Authority
- JP
- Japan
- Prior art keywords
- input
- submatrix
- multiplication
- sub
- matrix
- 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.)
- Pending
Links
- 239000011159 matrix material Substances 0.000 claims abstract description 104
- 238000004364 calculation method Methods 0.000 claims description 23
- 238000000034 method Methods 0.000 claims description 20
- 230000004913 activation Effects 0.000 description 15
- 238000010801 machine learning Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 9
- 238000003491 array Methods 0.000 description 6
- 238000007792 addition Methods 0.000 description 5
- 238000013528 artificial neural network Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 5
- 238000004590 computer program Methods 0.000 description 5
- 238000011144 upstream manufacturing Methods 0.000 description 4
- 238000013136 deep learning model Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000011143 downstream manufacturing Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 229940050561 matrix product Drugs 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Images
Classifications
-
- 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
- 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
- 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
- G06F15/8046—Systolic arrays
-
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/38—Indexing scheme relating to groups G06F7/38 - G06F7/575
- G06F2207/3804—Details
- G06F2207/386—Special constructional features
- G06F2207/3884—Pipelining
- G06F2207/3892—Systolic array
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Biophysics (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Databases & Information Systems (AREA)
- Algebra (AREA)
- Computer Hardware Design (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Complex Calculations (AREA)
- Image Processing (AREA)
Abstract
Description
本出願は、米国特許法119条の下、2020年11月30日提出の米国仮出願63/119,556への優先権の利益を主張し、その全体が参照により本明細書に組み込まれる。
本明細書は、ハードウェア処理ユニットのシストリックアレイに関する。
シストリックアレイは、データを計算し、ネットワークを介して渡す処理ユニットのネットワークである。シストリックアレイ内のデータは、処理ユニット間をパイプライン方式で流れ、各処理ユニットは、その上流の隣接する処理ユニットから受信したデータに基づいて部分的な結果を独立して計算し得る。セルとも称され得る処理ユニットは、データを上流処理ユニットから下流処理ユニットに渡すよう、共に結線され得る。シストリックアレイは、機械学習適用例において、例えば、行列乗算を実行するために、使用される。
概して、本明細書で説明する主題の1つの革新的な局面は、シストリックアレイに配置された複数のセルを含む行列計算ユニットにおいて具現化され得る。各セルは、入力行列の要素または部分行列の積を求めるよう構成される乗算回路と、入力累算値と乗算回路によって出力された積との和を求めるよう構成される加算回路と、加算回路の出力に接続される複数のアキュムレータと、複数のアキュムレータから、加算回路によって出力された和を受け取るための所与のアキュムレータを選択するよう構成されるコントローラ回路とを含む。
詳細な説明
概して、本文書は、複数のアキュムレータを含むセルのシストリックアレイを説明する。セルは、計算を実行するための計算ユニット、例えば乗算および/または加算回路を含み得る。例えば、シストリックアレイは、入力行列に対して行列-行列乗算を実行し得、各セルは、各入力行列の一部の部分的な行列積を求め得る。セルのシストリックアレイは、処理システム、例えば、機械学習モデルをトレーニングおよび/または機械学習計算を実行するために使用される専用機械学習プロセッサ、グラフィックス処理ユニット(GPU)、または行列乗算を実行する別の適切な処理システムの行列計算ユニットの一部とし得る。
Claims (14)
- データ処理セルであって、
入力行列の部分行列の積を求めるよう構成される乗算回路と、
入力累算値と前記乗算回路によって出力された前記積との和を求めるよう構成される加算回路と、
前記加算回路の出力に接続される複数のアキュムレータと、
前記複数のアキュムレータから、前記加算回路によって出力された前記和を受け取る所与のアキュムレータを選択するよう構成されるコントローラ回路とを備える、データ処理セル。 - 前記コントローラ回路は、前記データ処理セルによって受け取られたセレクタデータに基づいて、前記乗算回路によって求められる複数の積の各々について、前記所与のアキュムレータを選択するよう構成される、請求項1に記載のデータ処理セル。
- 第1の部分行列を受け取るよう構成される第1の入力レジスタと、第2の部分行列を受け取るよう構成される第2の入力レジスタとをさらに備え、前記乗算回路によって求められる前記積は、前記第1の部分行列と前記第2の部分行列との積を含む、請求項1または2に記載のデータ処理セル。
- セレクタデータを受け取るよう構成される1つ以上のセレクタレジスタをさらに備え、前記コントローラ回路は、前記セレクタデータに基づいて、前記乗算回路によって求められる複数の積の各々について、前記所与のアキュムレータを選択する、請求項3に記載のデータ処理セル。
- 前記セレクタデータは、前記第1の部分行列内の非ゼロ要素の位置を示す、前記第1の部分行列のスパース性パターンを定義するデータを含み、および/または、
前記セレクタデータは、前記第2の部分行列内の非ゼロ要素の位置を示す、前記第2の部分行列のスパース性パターンを定義するデータを含む、請求項4に記載のデータ処理セル。 - 前記セレクタデータは、前記第1の部分行列が属する第1のサブ乗算を示し、
前記セレクタデータは、前記第2の部分行列が属する第2のサブ乗算を示し、
前記第1のサブ乗算が前記第2のサブ乗算と一致する場合、前記コントローラは、前記第1のサブ乗算および前記第2のサブ乗算に対応する前記所与のアキュムレータを選択するよう構成され、
前記第1のサブ乗算が前記第2のサブ乗算と一致しない場合、前記コントローラは、前記複数のアキュムレータのすべてへの書き込み入力を無効にするよう構成される、請求項4に記載のデータ処理セル。 - 前記複数のアキュムレータの各アキュムレータは、入力行列の所与のセットについて前記加算回路によって出力された値を累算する、先行する請求項のいずれか1項に記載のデータ処理セル。
- 複数の、請求項1に記載の前記データ処理セルを備える、行列計算ユニット。
- 行列を乗算するための方法であって、
セルの第1の入力レジスタが、第1の入力部分行列を受け取ることと、
前記セルの第2の入力レジスタが、第2の入力部分行列を受け取ることと、
(i)前記第1の入力部分行列と前記第2の入力部分行列との積と(ii)所与のアキュムレータの現在の累算値との和を受け取るよう、前記セルのコントローラが、前記セルの複数のアキュムレータから前記所与のアキュムレータを選択することと、
前記セルの乗算回路が、前記第1の入力行列と前記第2の入力行列との積を生成することと、
前記セルの加算回路が、前記第1の入力行列と前記第2の入力行列との前記積を前記現在の累算値に加算することによって、更新された累算値を生成することと、
前記更新された累算値を前記所与のアキュムレータに記憶することとを含む、方法。 - 前記乗算回路によって求められる前記積は、前記第1の部分行列と前記第2の部分行列との積を含む、請求項9に記載の方法。
- 前記セルの1つ以上のセレクタレジスタがセレクタデータを受け取ることを含み、前記所与のアキュムレータを選択することは、前記セレクタデータに基づいて前記所与のアキュムレータを選択することを含む、請求項9または10に記載の方法。
- 前記セレクタデータは、前記第1の部分行列内の非ゼロ要素の位置を示す、前記第1の入力部分行列のスパース性パターンを定義するデータを含み、および/または、
前記セレクタデータは、前記第2の部分行列内の非ゼロ要素の位置を示す、前記第2の入力部分行列のスパース性パターンを定義するデータを含む、請求項11に記載の方法。 - 前記セレクタデータは、前記第1の入力部分行列が属する第1のサブ乗算を示し、
前記セレクタデータは、前記第2の入力部分行列が属する第2のサブ乗算を示し、
前記第1のサブ乗算が前記第2のサブ乗算と一致する場合、前記コントローラは、前記第1のサブ乗算および前記第2のサブ乗算に対応する前記所与のアキュムレータを選択し、
前記第1のサブ乗算が前記第2のサブ乗算と一致しない場合、前記コントローラは、前記複数のアキュムレータのすべてへの書き込み入力を無効にする、請求項11に記載の方法。 - 前記複数のアキュムレータの各アキュムレータは、入力行列の所与のセットについて前記加算回路によって出力された値を累算する、請求項9に記載の方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202063119556P | 2020-11-30 | 2020-11-30 | |
US63/119,556 | 2020-11-30 | ||
PCT/US2021/061198 WO2022115783A1 (en) | 2020-11-30 | 2021-11-30 | Systolic array cells with multiple accumulators |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023542261A true JP2023542261A (ja) | 2023-10-06 |
Family
ID=79093069
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022570187A Pending JP2023542261A (ja) | 2020-11-30 | 2021-11-30 | 複数のアキュムレータを有するシストリックアレイセル |
Country Status (6)
Country | Link |
---|---|
US (1) | US20220171605A1 (ja) |
EP (1) | EP4136552A1 (ja) |
JP (1) | JP2023542261A (ja) |
KR (1) | KR20220161485A (ja) |
CN (1) | CN115552396A (ja) |
WO (1) | WO2022115783A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11635958B1 (en) * | 2022-01-03 | 2023-04-25 | Globalfoundries U.S. Inc. | Multi-port register file for partial-sum accumulation |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11328037B2 (en) * | 2017-07-07 | 2022-05-10 | Intel Corporation | Memory-size- and bandwidth-efficient method for feeding systolic array matrix multipliers |
-
2021
- 2021-11-30 CN CN202180035151.9A patent/CN115552396A/zh active Pending
- 2021-11-30 US US17/538,101 patent/US20220171605A1/en active Pending
- 2021-11-30 KR KR1020227039598A patent/KR20220161485A/ko unknown
- 2021-11-30 EP EP21831404.5A patent/EP4136552A1/en active Pending
- 2021-11-30 WO PCT/US2021/061198 patent/WO2022115783A1/en unknown
- 2021-11-30 JP JP2022570187A patent/JP2023542261A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
CN115552396A (zh) | 2022-12-30 |
WO2022115783A1 (en) | 2022-06-02 |
KR20220161485A (ko) | 2022-12-06 |
US20220171605A1 (en) | 2022-06-02 |
EP4136552A1 (en) | 2023-02-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111291859B (zh) | 通用矩阵-矩阵乘法数据流加速器半导体电路 | |
EP3627338B1 (en) | Efficient utilization of systolic arrays in computational processing | |
JP5408913B2 (ja) | 高速かつ効率的な行列乗算ハードウェアモジュール | |
CN109324827B (zh) | 用于处理用于访问数据的指令的装置、方法和系统 | |
JP2022084674A (ja) | 代替ループ限界値 | |
CN110383300B (zh) | 一种计算装置及方法 | |
TWI832006B (zh) | 實行卷積運算的系統及方法 | |
JP2018055677A (ja) | 外積累算演算のためのプロセッサおよび方法 | |
Hickmann et al. | Intel nervana neural network processor-t (nnp-t) fused floating point many-term dot product | |
JP2023542261A (ja) | 複数のアキュムレータを有するシストリックアレイセル | |
JP2014186461A (ja) | 演算処理装置及び演算処理方法 | |
WO2020060885A1 (en) | Digital circuit with compressed carry | |
CN112241251B (zh) | 用于处理浮点数的设备和方法 | |
CN112241252A (zh) | 用于处理浮点数的设备和方法 | |
WO2023114417A2 (en) | One-dimensional computational unit for an integrated circuit | |
JP7566931B2 (ja) | 出力後処理を伴うシストリックアレイセル | |
GB2614705A (en) | Neural network accelerator with configurable pooling processing unit | |
CN117492838A (zh) | 访问序言和结尾数据 | |
CN114443146A (zh) | 基于存算一体存储器的矢量处理器及其运行方法 | |
US20240220202A1 (en) | Multi-Modal Systolic Array For Matrix Multiplication | |
Murakami | FPGA implementation of a SIMD-based array processor with torus interconnect | |
WO2024144950A1 (en) | Multi-modal systolic array for matrix multiplication | |
JP2024510625A (ja) | 行列乗算演算のための行列の近似 | |
GB2614327A (en) | Configurable pooling process unit for neural network accelerator | |
CN113626760A (zh) | 用于对矩阵值灵活求和的设备和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230327 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20230327 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20240229 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20240319 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20240614 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20241001 |