JP2024063060A - 低レイテンシ行列乗算ユニット - Google Patents
低レイテンシ行列乗算ユニット Download PDFInfo
- Publication number
- JP2024063060A JP2024063060A JP2024024596A JP2024024596A JP2024063060A JP 2024063060 A JP2024063060 A JP 2024063060A JP 2024024596 A JP2024024596 A JP 2024024596A JP 2024024596 A JP2024024596 A JP 2024024596A JP 2024063060 A JP2024063060 A JP 2024063060A
- Authority
- JP
- Japan
- Prior art keywords
- weight
- register
- matrix
- vector
- multiplication unit
- 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
Images
Classifications
-
- 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/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F5/01—Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising
- G06F5/015—Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising having at least two separately controlled shifting levels, e.g. using shifting matrices
-
- 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/52—Multiplying; Dividing
- G06F7/523—Multiplying only
-
- 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/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 OR CALCULATING; 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/30032—Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/30098—Register arrangements
- G06F9/30101—Special purpose registers
-
- 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
- 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 OR CALCULATING; 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Biophysics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Computer Hardware Design (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Neurology (AREA)
- Complex Calculations (AREA)
- Magnetic Resonance Imaging Apparatus (AREA)
- Measurement And Recording Of Electrical Phenomena And Electrical Characteristics Of The Living Body (AREA)
- Fuel Cell (AREA)
- Shift Register Type Memory (AREA)
Abstract
【解決手段】シストリックアレイ内のマルチセル300において、行列乗算の各セルは、転置されたまたは転置されない重みシフトレジスタから重み入力を受け取る重み行列レジスタ325と、重み行列レジスタに格納されるよう水平方向から重み入力を受け取る転置された重みシフトレジスタと、重み行列レジスタに格納されるよう垂直方向から重み入力を受け取る転置されない重みシフトレジスタと、重み行列レジスタに結合され、乗算結果を得るために重み行列レジスタの重み入力をベクトルデータ入力で乗算する乗算ユニットとを含む。
【選択図】図3
Description
この明細書は、ハードウェアでのニューラルネットワーク計算の実行に関する。
この明細書では、ニューラルネットワークのトレーニング、ニューラルネットワークの推論の計算、またはその両方を行う専用ハードウェア回路、および特に重み値が行列乗算ユニット内の重み行列レジスタにロードされる速度を増大させることによって行列乗算ユニット全体のレイテンシを低減する専用ハードウェア回路に関する技術について記載する。
ることである。
詳細な説明
複数の層を有するニューラルネットワークをトレーニングし、それを推論の計算に用いることができる。たとえば、ニューラルネットワークは、ある値で各々初期化されるパラメータを有する。トレーニング中、ニューラルネットワークは、ニューラルネットワークのトレーニング手順を実行して、ニューラルネットワークのパラメータの値を調整して、たとえば、逆伝播を用いてパラメータの初期値からパラメータのトレーニングを経た値を判断する。トレーニングされたニューラルネットワークは、推論を計算でき、つまり、ニューラルネットワークの層を介して入力を処理し、その入力に対するニューラルネットワーク出力を生成できる。
されたベクトルに変換される。識別子をテーブルインデックスとして用いて、埋め込みテーブルは対応する密なベクトルを返し、それは、次の層への入力活性化ベクトルになることができる。疎計算コアは、検索クエリワードにわたって簡約操作を実行して、1つの密な活性化ベクトルを作成することもできる。疎計算コアは、協働して、効率的な疎の、分散されたルックアップを実行し、なぜならば、埋め込みテーブルが巨大であり得、専用ハードウェアチップの1つの限られた容量の高帯域幅メモリに収まらないためである。疎計算コア機能に関する詳細は、2016年2月5日に提出された「MATRIX PROCESSING APPARATUS(行列処理装置)」と題される米国特許出願第15/016,486号に見ること
ができる。
モリまたはベクトルメモリを介してのみ実行できる。さらに、スカラーメモリとベクトルメモリとの間でダイレクトメモリ転送が行われない場合がある。
、それ自体のオフセットアドレスを計算できる。
13への左辺データ入力として用いることができる。
ルのアレイまたはセーデキム(16)セルと呼ばれる4×4の積和サブユニットセルのアレイにグループ化できる。入力データを1つの積和サブユニットセルからクロックサイクルごとに1つの速度で次のセルに移動する代わりに、データはクロックサイクルごとに1つのマルチセルでシストリックアレイを移動できる。
の左辺データレジスタ315a(ある左辺データレジスタ)は、第1の行のセル350aおよび350cに結合される。同様に、マルチセル内の左辺データレジスタ315b(第2の左辺レジスタ)は、第2の行のセル350bおよび350dに結合される。各左辺レジスタ315は、格納されたベクトルデータ入力を、左辺レジスタが結合されるセル350に転送する。したがって、第1の次元に沿って(たとえば、所与の行または所与の列に沿って)延びる所与の数のセルについて、単一のセルだけでなく、マルチセル内のすべてのセルにベクトルデータ入力を渡すことができ、これにより、ベクトルデータ入力がセルのアレイ全体に速く拡散し、マルチセルの動作の効率が向上する。
積出力を格納する部分和レジスタ310b、311bを含むことができる。マルチセルの各列について、列のサブユニットセルによって生成された積は、上のマルチセルからの入来部分和と結合され、次の部分和として送られる。特定のマルチセル、例えばシストリックアレイの一番下の列のマルチセルなどの場合、累積出力は、ベクトル計算ユニットに転送できる最終的な累積値を含んでもよい。いくつかの実装形態では、最終的な累積値はアレイの一番下のマルチセルからベクトル計算ユニットに直接転送されるが、他の実装形態では、最終的な累積値はまずメモリに保存されるか、または異なるコンポーネントによって処理されてからベクトル計算ユニットに送られる。
複数の重み値が利用可能な場合、インターフェイスは、重み値を、シフトチェーンによって、クロックサイクルで、マルチセル内のセル435の重みシフトレジスタにシフトする(504)。
部(680a、6801a)および下の別のポイント(680b、680b)に送られる。説明した複数の注入ポイントを有する実施形態は、本明細書で説明する他の実施形態および特徴と組み合わせることができる。
ロードされたn/2サイクル後に開始でき、新たな重みのセットをn/2サイクルごとにシフトレジスタから重み行列レジスタにロードしてもよい。
合せであり得る。代替的に、または加えて、プログラム命令は、データ処理装置による実行に対して好適な受信側装置への送信のために情報をエンコードするよう生成される、たとえばマシンにより生成された電気信号、光信号、または電磁気信号などの、人為的に生成された伝搬される信号上でエンコードすることができる。
報端末(PDA)、モバイルオーディオまたはビデオプレーヤ、ゲームコンソール、全地球測位システム(GPS)受信機、またはポータブル記憶装置(たとえばユニバーサルシリアルバス(USB)フラッシュドライブ)といった別のデバイスに埋め込まれ得る。
、セルのシストリックアレイの各セルは、転置されたまたは転置されない重みシフトレジスタから重み入力を受け取るように構成される重み行列レジスタと、重み行列レジスタに格納されるよう水平方向から重み入力を受け取るように構成される転置された重みシフトレジスタと、重み行列レジスタに格納されるよう垂直方向から重み入力を受け取るように構成される転置されない重みシフトレジスタと、重み行列レジスタに結合され、乗算結果を得るために重み行列レジスタの重み入力をベクトルデータ入力で乗算するように構成される乗算ユニットとを含む。
の重み値が利用可能でない場合、第1の重み値が利用可能な第1のクロックサイクルで、保持レジスタに、第1の重み値が、保持される値としてロードされ、シフトは行われず、次のクロックサイクルで、第2の重み値が利用可能な場合、第2の重み値と保持された値とは、2つのシフトチェーンによって、1つの値が各シフトチェーンによりシフトされて、シフトチェーンに接続された重みシフトレジスタにシフトされる。
Claims (11)
- セルのシストリックアレイとして実装される行列乗算ユニットであって、前記セルのシストリックアレイの各セルは、
転置されたまたは転置されない重みシフトレジスタから重み入力を受け取るように構成される重み行列レジスタと、
前記重み行列レジスタに格納されるよう水平方向から重み入力を受け取るように構成される転置された重みシフトレジスタと、
前記重み行列レジスタに格納されるよう垂直方向から重み入力を受け取るように構成される転置されない重みシフトレジスタと、
前記重み行列レジスタに結合され、乗算結果を得るために前記重み行列レジスタの重み入力をベクトルデータ入力で乗算するように構成される乗算ユニットとを備える、セルのシストリックアレイ。 - 各セルは、前記転置された重みシフトレジスタの重み入力と前記転置されない重みシフトレジスタとの間で選択を行い、選択された重み入力を前記重み行列レジスタに転送するように構成されるマルチプレクサをさらに備える、請求項1に記載の行列乗算ユニット。
- 前記転置された重みシフトレジスタまたは前記転置されない重みシフトレジスタのいずれかからの重み値を保持するように構成された第1の重み保持レジスタをさらに備える、請求項1または請求項2に記載の行列乗算ユニット。
- 前記転置された重みシフトレジスタまたは前記転置されない重みシフトレジスタのいずれかからの重み値を保持するように構成された第2の重み保持レジスタをさらに備える、請求項3に記載の行列乗算ユニット。
- ある重み値は、転置された重みシフトレジスタから前記第1の重み保持レジスタにロードされ、ある重み値は、垂直方向から前記第2の重み保持レジスタにロードされる、請求項4に記載の行列乗算ユニット。
- 前記重み行列レジスタには、前記第1の重み保持レジスタまたは前記第2の重み保持レジスタから値がロードされる、請求項5に記載の行列乗算ユニット。
- 前記データが前記重み行列レジスタにあるとき、前記データは任意の数の乗算サイクルで用いられる、請求項6に記載の行列乗算ユニット。
- 前記任意の数の乗算サイクルの間に、次の乗算セットに備えて、より多くの重みがバックグラウンドで前記重みシフトレジスタにシフトされる、請求項7に記載の行列乗算ユニット。
- 前記任意の数の乗算サイクルの間に、乗算結果を得るために、前記重み行列レジスタの重み入力がベクトルデータ入力で乗算される、請求項7に記載の行列乗算ユニット。
- ベクトルデータ入力がクロックサイクルごとに1マルチセルだけ移動する、請求項1に記載の行列乗算ユニット。
- 命令が受け取られると、前記命令に基づいて重みがシフトされる、請求項1に記載の行列乗算ユニット。
Applications Claiming Priority (5)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US201762507766P | 2017-05-17 | 2017-05-17 | |
| US62/507,766 | 2017-05-17 | ||
| JP2019553237A JP6929958B2 (ja) | 2017-05-17 | 2018-05-17 | 低レイテンシ行列乗算ユニット |
| JP2021131278A JP7135181B2 (ja) | 2017-05-17 | 2021-08-11 | 低レイテンシ行列乗算ユニット |
| JP2022138332A JP7444936B2 (ja) | 2017-05-17 | 2022-08-31 | 低レイテンシ行列乗算ユニット |
Related Parent Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2022138332A Division JP7444936B2 (ja) | 2017-05-17 | 2022-08-31 | 低レイテンシ行列乗算ユニット |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2024063060A true JP2024063060A (ja) | 2024-05-10 |
| JP7674549B2 JP7674549B2 (ja) | 2025-05-09 |
Family
ID=62815117
Family Applications (4)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2019553237A Active JP6929958B2 (ja) | 2017-05-17 | 2018-05-17 | 低レイテンシ行列乗算ユニット |
| JP2021131278A Active JP7135181B2 (ja) | 2017-05-17 | 2021-08-11 | 低レイテンシ行列乗算ユニット |
| JP2022138332A Active JP7444936B2 (ja) | 2017-05-17 | 2022-08-31 | 低レイテンシ行列乗算ユニット |
| JP2024024596A Active JP7674549B2 (ja) | 2017-05-17 | 2024-02-21 | 低レイテンシ行列乗算ユニット |
Family Applications Before (3)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2019553237A Active JP6929958B2 (ja) | 2017-05-17 | 2018-05-17 | 低レイテンシ行列乗算ユニット |
| JP2021131278A Active JP7135181B2 (ja) | 2017-05-17 | 2021-08-11 | 低レイテンシ行列乗算ユニット |
| JP2022138332A Active JP7444936B2 (ja) | 2017-05-17 | 2022-08-31 | 低レイテンシ行列乗算ユニット |
Country Status (8)
| Country | Link |
|---|---|
| US (12) | US10635740B2 (ja) |
| EP (4) | EP3800563B1 (ja) |
| JP (4) | JP6929958B2 (ja) |
| KR (1) | KR102302608B1 (ja) |
| CN (4) | CN116414350A (ja) |
| BR (2) | BR112019022916A2 (ja) |
| TW (6) | TWI771155B (ja) |
| WO (2) | WO2018213628A1 (ja) |
Families Citing this family (97)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10489479B1 (en) | 2016-09-12 | 2019-11-26 | Habana Labs Ltd. | Matrix multiplication engine |
| CN116414350A (zh) | 2017-05-17 | 2023-07-11 | 谷歌有限责任公司 | 低时延矩阵乘法部件 |
| US10671349B2 (en) | 2017-07-24 | 2020-06-02 | Tesla, Inc. | Accelerated mathematical engine |
| US11409692B2 (en) | 2017-07-24 | 2022-08-09 | Tesla, Inc. | Vector computational unit |
| US11157287B2 (en) | 2017-07-24 | 2021-10-26 | Tesla, Inc. | Computational array microprocessor system with variable latency memory access |
| US11157441B2 (en) | 2017-07-24 | 2021-10-26 | Tesla, Inc. | Computational array microprocessor system using non-consecutive data formatting |
| US11893393B2 (en) | 2017-07-24 | 2024-02-06 | Tesla, Inc. | Computational array microprocessor system with hardware arbiter managing memory requests |
| US11243880B1 (en) | 2017-09-15 | 2022-02-08 | Groq, Inc. | Processor architecture |
| US11868804B1 (en) * | 2019-11-18 | 2024-01-09 | Groq, Inc. | Processor instruction dispatch configuration |
| US11360934B1 (en) | 2017-09-15 | 2022-06-14 | Groq, Inc. | Tensor streaming processor architecture |
| US11170307B1 (en) | 2017-09-21 | 2021-11-09 | Groq, Inc. | Predictive model compiler for generating a statically scheduled binary with known resource constraints |
| US11321092B1 (en) | 2017-11-08 | 2022-05-03 | Habana Labs Ltd. | Tensor-based memory access |
| US10915297B1 (en) * | 2017-11-15 | 2021-02-09 | Habana Labs Ltd. | Hardware accelerator for systolic matrix multiplication |
| US11373088B2 (en) | 2017-12-30 | 2022-06-28 | Intel Corporation | Machine learning accelerator mechanism |
| US11561791B2 (en) | 2018-02-01 | 2023-01-24 | Tesla, Inc. | Vector computational unit receiving data elements in parallel from a last row of a computational array |
| US11769042B2 (en) | 2018-02-08 | 2023-09-26 | Western Digital Technologies, Inc. | Reconfigurable systolic neural network engine |
| US11494620B2 (en) | 2018-02-08 | 2022-11-08 | Western Digital Technologies, Inc. | Systolic neural network engine capable of backpropagation |
| US11275997B1 (en) * | 2018-04-30 | 2022-03-15 | Amazon Technologies, Inc. | Weight loading in an array |
| FR3085517B1 (fr) * | 2018-08-31 | 2020-11-13 | Commissariat Energie Atomique | Architecture de calculateur d'une couche de convolution dans un reseau de neurones convolutionnel |
| US12340300B1 (en) | 2018-09-14 | 2025-06-24 | Groq, Inc. | Streaming processor architecture |
| US10719323B2 (en) | 2018-09-27 | 2020-07-21 | Intel Corporation | Systems and methods for performing matrix compress and decompress instructions |
| US10817042B2 (en) * | 2018-09-27 | 2020-10-27 | Intel Corporation | Power savings for neural network architecture with zero activations during inference |
| US10990396B2 (en) * | 2018-09-27 | 2021-04-27 | Intel Corporation | Systems for performing instructions to quickly convert and use tiles as 1D vectors |
| CN111291874B (zh) * | 2018-12-06 | 2023-12-01 | 神盾股份有限公司 | 卷积神经网络处理器及其数据处理方法 |
| US11494645B2 (en) | 2018-12-06 | 2022-11-08 | Egis Technology Inc. | Convolutional neural network processor and data processing method thereof |
| US20200210517A1 (en) | 2018-12-27 | 2020-07-02 | Intel Corporation | Systems and methods to accelerate multiplication of sparse matrices |
| US11928582B1 (en) * | 2018-12-31 | 2024-03-12 | Cadence Design Systems, Inc. | System, media, and method for deep learning |
| US20200226444A1 (en) | 2019-01-15 | 2020-07-16 | BigStream Solutions, Inc. | Systems, apparatus, methods, and architecture for precision heterogeneity in accelerating neural networks for inference and training |
| WO2020155044A1 (zh) * | 2019-01-31 | 2020-08-06 | 深圳市大疆创新科技有限公司 | 卷积计算的装置、方法、处理器和可移动设备 |
| WO2020160490A1 (en) * | 2019-02-01 | 2020-08-06 | Lightelligence, Inc. | Processing matrix operations for rate limited systems |
| KR102792986B1 (ko) * | 2019-03-07 | 2025-04-11 | 에스케이하이닉스 주식회사 | 시스톨릭 어레이 및 프로세싱 시스템 |
| KR102894763B1 (ko) | 2019-03-15 | 2025-12-03 | 인텔 코포레이션 | 하이브리드 부동 소수점 포맷에 대한 내적 누산 명령어를 갖는 그래픽 프로세서 및 그래픽 프로세싱 유닛 |
| KR102838677B1 (ko) * | 2019-03-15 | 2025-07-25 | 인텔 코포레이션 | 매트릭스 가속기 아키텍처를 위한 희소 최적화 |
| US10929058B2 (en) | 2019-03-25 | 2021-02-23 | Western Digital Technologies, Inc. | Enhanced memory device architecture for machine learning |
| US11783176B2 (en) | 2019-03-25 | 2023-10-10 | Western Digital Technologies, Inc. | Enhanced storage device memory architecture for machine learning |
| US10990397B2 (en) * | 2019-03-30 | 2021-04-27 | Intel Corporation | Apparatuses, methods, and systems for transpose instructions of a matrix operations accelerator |
| CN112149049A (zh) * | 2019-06-26 | 2020-12-29 | 北京百度网讯科技有限公司 | 用于变换矩阵的装置和方法、数据处理系统 |
| KR102393916B1 (ko) * | 2019-06-27 | 2022-05-02 | 주식회사 사피온코리아 | 위노그라드 알고리즘에 기반한 행렬 곱셈 방법 및 장치 |
| CN110210615B (zh) * | 2019-07-08 | 2024-05-28 | 中昊芯英(杭州)科技有限公司 | 一种用于执行神经网络计算的脉动阵列系统 |
| US20210012202A1 (en) * | 2019-07-12 | 2021-01-14 | Facebook Technologies, Llc | Systems and methods for asymmetrical scaling factor support for negative and positive values |
| US11481471B2 (en) | 2019-08-16 | 2022-10-25 | Meta Platforms, Inc. | Mapping convolution to a matrix processor unit |
| US11188618B2 (en) * | 2019-09-05 | 2021-11-30 | Intel Corporation | Sparse matrix multiplication acceleration mechanism |
| US11195818B2 (en) * | 2019-09-12 | 2021-12-07 | Taiwan Semiconductor Manufacturing Company, Ltd. | Backside contact for thermal displacement in a multi-wafer stacked integrated circuit |
| US11842169B1 (en) | 2019-09-25 | 2023-12-12 | Amazon Technologies, Inc. | Systolic multiply delayed accumulate processor architecture |
| US11409838B2 (en) * | 2019-10-29 | 2022-08-09 | Meta Platforms, Inc. | High throughput matrix processor with support for concurrently processing multiple matrices |
| US20210149677A1 (en) * | 2019-11-15 | 2021-05-20 | Intel Corporation | Enhanced processor functions for calculation |
| US11816446B2 (en) | 2019-11-27 | 2023-11-14 | Amazon Technologies, Inc. | Systolic array component combining multiple integer and floating-point data types |
| US11467806B2 (en) | 2019-11-27 | 2022-10-11 | Amazon Technologies, Inc. | Systolic array including fused multiply accumulate with efficient prenormalization and extended dynamic range |
| KR102785402B1 (ko) * | 2019-12-06 | 2025-03-21 | 삼성전자주식회사 | 뉴럴 네트워크의 행렬 곱셈 연산을 수행하는 장치 및 방법 |
| US11809798B2 (en) * | 2019-12-13 | 2023-11-07 | Intel Corporation | Implementing large multipliers in tensor arrays |
| US11907719B2 (en) * | 2019-12-13 | 2024-02-20 | Intel Corporation | FPGA specialist processing block for machine learning |
| KR102836069B1 (ko) * | 2020-02-18 | 2025-07-18 | 에스케이하이닉스 주식회사 | 연산 회로 및 그것을 포함하는 딥 러닝 시스템 |
| CN112602094A (zh) * | 2020-03-11 | 2021-04-02 | 深圳市大疆创新科技有限公司 | 数据处理装置、数据处理方法以及加速器 |
| US20210303987A1 (en) * | 2020-03-26 | 2021-09-30 | Advanced Micro Devices, Inc. | Power reduction for machine learning accelerator background |
| KR102827870B1 (ko) * | 2020-03-26 | 2025-06-30 | 서강대학교산학협력단 | 전치 합성곱 신경망의 가속 장치 및 동작 방법 |
| US12073310B2 (en) * | 2020-04-01 | 2024-08-27 | Microsoft Technology Licensing, Llc | Deep neural network accelerator with independent datapaths for simultaneous processing of different classes of operations |
| US11507817B2 (en) | 2020-04-17 | 2022-11-22 | Samsung Electronics Co., Ltd. | System and method for performing computations for deep neural networks |
| GB2594971B (en) * | 2020-05-13 | 2022-10-05 | Advanced Risc Mach Ltd | Variable position shift for matrix processing |
| US11308027B1 (en) | 2020-06-29 | 2022-04-19 | Amazon Technologies, Inc. | Multiple accumulate busses in a systolic array |
| US11308026B1 (en) * | 2020-06-29 | 2022-04-19 | Amazon Technologies, Inc. | Multiple busses interleaved in a systolic array |
| US11422773B1 (en) | 2020-06-29 | 2022-08-23 | Amazon Technologies, Inc. | Multiple busses within a systolic array processing element |
| GB202011959D0 (en) * | 2020-07-31 | 2020-09-16 | Nordic Semiconductor Asa | Hardware accelerator |
| KR102883343B1 (ko) | 2020-07-31 | 2025-11-07 | 삼성전자주식회사 | 딥러닝 연산 수행 방법 및 장치 |
| JP7358312B2 (ja) | 2020-08-25 | 2023-10-10 | 株式会社東芝 | 記憶装置およびニューラルネットワーク装置 |
| US20220156344A1 (en) * | 2020-11-19 | 2022-05-19 | Google Llc | Systolic array cells with output post-processing |
| KR20220071723A (ko) | 2020-11-24 | 2022-05-31 | 삼성전자주식회사 | 딥러닝 연산 수행 방법 및 장치 |
| CN112434255B (zh) * | 2020-12-03 | 2023-12-08 | 成都海光微电子技术有限公司 | 向量-矩阵运算和数据处理方法、乘法器和处理器芯片 |
| CN112434256B (zh) * | 2020-12-03 | 2022-09-13 | 海光信息技术股份有限公司 | 矩阵乘法器和处理器 |
| US12321852B2 (en) * | 2020-12-26 | 2025-06-03 | International Business Machines Corporation | Filtering hidden matrix training DNN |
| US20220245217A1 (en) * | 2021-01-29 | 2022-08-04 | Oracle International Corporation | Adaptive Selection of Source Matrix Version for Matrix Multiply Operations |
| EP4285286A1 (en) * | 2021-02-01 | 2023-12-06 | Microsoft Technology Licensing, LLC | Semi-programmable and reconfigurable co-accelerator for a deep neural network with normalization or non-linearity |
| US11734214B2 (en) * | 2021-02-01 | 2023-08-22 | Microsoft Technology Licensing, Llc | Semi-programmable and reconfigurable co-accelerator for a deep neural network with normalization or non-linearity |
| CN116848531A (zh) * | 2021-02-01 | 2023-10-03 | 微软技术许可有限责任公司 | 针对具有归一化或非线性的深度神经网络的半可编程和可重构协同加速器 |
| KR102868994B1 (ko) * | 2021-04-21 | 2025-10-10 | 삼성전자주식회사 | 뉴럴 네트워크 장치 및 그의 동작 방법 |
| KR102906579B1 (ko) | 2021-05-03 | 2025-12-30 | 삼성전자주식회사 | 시스톨릭 어레이, 및 이를 포함하는 가속기 |
| US20220383081A1 (en) * | 2021-05-28 | 2022-12-01 | Meta Platforms Technologies, Llc | Bandwidth-aware flexible-scheduling machine learning accelerator |
| KR102597802B1 (ko) * | 2021-06-11 | 2023-11-02 | 강원대학교산학협력단 | 시분할 다채널 아날로그 행렬 연산기, 이의 동작 방법, 및 이를 포함하는 장치 |
| US11880682B2 (en) | 2021-06-30 | 2024-01-23 | Amazon Technologies, Inc. | Systolic array with efficient input reduction and extended array performance |
| US12423058B2 (en) | 2021-06-30 | 2025-09-23 | Amazon Technologies, Inc. | Systolic array with input reduction to multiple reduced inputs |
| CN115964085A (zh) * | 2021-10-08 | 2023-04-14 | 平头哥(上海)半导体技术有限公司 | 运算单元和矩阵转置及运算融合执行方法 |
| CN113821701B (zh) * | 2021-10-14 | 2023-09-26 | 厦门半导体工业技术研发有限公司 | 提升电路访问效率的方法及装置 |
| US20220075659A1 (en) * | 2021-11-18 | 2022-03-10 | Intel Corporation | Runtime configurable register files for artificial intelligence workloads |
| US11829321B2 (en) * | 2022-03-24 | 2023-11-28 | Google Llc | General-purpose systolic array |
| US12517700B1 (en) | 2022-03-30 | 2026-01-06 | Amazon Technologies, Inc. | Systolic array with output rounding for multiple source/destination data type pairs |
| WO2024025852A1 (en) * | 2022-07-27 | 2024-02-01 | Texas Instruments Incorporated | Transient current management |
| CN115329263B (zh) * | 2022-08-30 | 2026-01-13 | 无锡江南计算技术研究所 | 一种支持低开销北向数据加载的矩阵乘运算脉动阵列装置 |
| CN115469826B (zh) * | 2022-09-16 | 2023-04-07 | 深圳思谋信息科技有限公司 | 数据处理方法、装置、计算机设备及计算机可读存储介质 |
| US20240095492A1 (en) * | 2022-09-21 | 2024-03-21 | Qualcomm Incorporated | Memory management for mathematical operations in computing systems with heterogeneous memory architectures |
| US12141095B2 (en) * | 2022-09-30 | 2024-11-12 | Nanjing Semidrive Technology Ltd. | Systolic array, systolic array system, computation method, device, and storage medium |
| FR3142815B1 (fr) * | 2022-12-05 | 2025-03-14 | Safran Electronics & Defense | Structure de parallélisation de convolution à bas besoin de bande passante |
| CN116243977B (zh) * | 2022-12-14 | 2025-11-18 | 清华大学无锡应用技术研究院 | 线性反馈移位寄存器及构建方法、装置、设备和介质 |
| JP2025542466A (ja) * | 2022-12-30 | 2025-12-25 | グーグル エルエルシー | 行列乗算のためのマルチモーダルシストリックアレイ |
| US12073216B1 (en) | 2023-02-14 | 2024-08-27 | Google Llc | Transposition of left-hand-side operand to systolic matrix multiplication |
| US12007937B1 (en) | 2023-11-29 | 2024-06-11 | Recogni Inc. | Multi-mode architecture for unifying matrix multiplication, 1×1 convolution and 3×3 convolution |
| US12008069B1 (en) | 2023-11-29 | 2024-06-11 | Recogni Inc. | Multi-mode architecture for unifying matrix multiplication, 1×1 convolution and 3×3 convolution |
| US12045309B1 (en) | 2023-11-29 | 2024-07-23 | Recogni Inc. | Systems and methods for performing matrix multiplication with a plurality of processing elements |
| US20250181551A1 (en) * | 2023-12-04 | 2025-06-05 | Google Llc | Irregular Cadence Data Processing Units |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH03131965A (ja) * | 1989-10-10 | 1991-06-05 | Hnc Inc | ニューラルネットワーク用二次元収縮アレイ及びその方法 |
| JP2013511891A (ja) * | 2009-11-23 | 2013-04-04 | ザイリンクス インコーポレイテッド | Qr分解およびシストリックアレイを用いたmimo最小二乗平均誤差受信器 |
| US20140289445A1 (en) * | 2013-03-22 | 2014-09-25 | Antony Savich | Hardware accelerator system and method |
| WO2016186810A1 (en) * | 2015-05-21 | 2016-11-24 | Google Inc. | Prefetching weights for use in a neural network processor |
| JP2017021483A (ja) * | 2015-07-08 | 2017-01-26 | 株式会社デンソー | 演算処理装置 |
Family Cites Families (17)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4720780A (en) * | 1985-09-17 | 1988-01-19 | The Johns Hopkins University | Memory-linked wavefront array processor |
| US6023742A (en) * | 1996-07-18 | 2000-02-08 | University Of Washington | Reconfigurable computing architecture for providing pipelined data paths |
| US7161995B1 (en) * | 2002-03-15 | 2007-01-09 | Xilinx, Inc. | Method and apparatus for Viterbi synchronization |
| US20040122887A1 (en) * | 2002-12-20 | 2004-06-24 | Macy William W. | Efficient multiplication of small matrices using SIMD registers |
| US8577950B2 (en) * | 2009-08-17 | 2013-11-05 | International Business Machines Corporation | Matrix multiplication operations with data pre-conditioning in a high performance computing architecture |
| CN101968732B (zh) * | 2010-10-09 | 2012-12-19 | 中国人民解放军信息工程大学 | 检错比特并行脉动阵列移位多项式基乘法器及其构造方法 |
| US20120254591A1 (en) * | 2011-04-01 | 2012-10-04 | Hughes Christopher J | Systems, apparatuses, and methods for stride pattern gathering of data elements and stride pattern scattering of data elements |
| CN103975302B (zh) * | 2011-12-22 | 2017-10-27 | 英特尔公司 | 矩阵乘法累加指令 |
| US8543634B1 (en) * | 2012-03-30 | 2013-09-24 | Altera Corporation | Specialized processing block for programmable integrated circuit device |
| CN103246773B (zh) * | 2013-05-13 | 2016-12-28 | 句容华正电气有限公司 | 电子式互感器中采样率转换的低延迟滤波器设计方法 |
| FR3021428B1 (fr) * | 2014-05-23 | 2017-10-13 | Kalray | Multiplication de matrices de bits utilisant des registres explicites |
| US9805303B2 (en) * | 2015-05-21 | 2017-10-31 | Google Inc. | Rotating data for neural network computations |
| US10438117B1 (en) | 2015-05-21 | 2019-10-08 | Google Llc | Computing convolutions using a neural network processor |
| US9747546B2 (en) | 2015-05-21 | 2017-08-29 | Google Inc. | Neural network processor |
| US10192162B2 (en) * | 2015-05-21 | 2019-01-29 | Google Llc | Vector computation unit in a neural network processor |
| CN116414350A (zh) | 2017-05-17 | 2023-07-11 | 谷歌有限责任公司 | 低时延矩阵乘法部件 |
| US11188814B2 (en) * | 2018-04-05 | 2021-11-30 | Arm Limited | Systolic convolutional neural network |
-
2018
- 2018-05-17 CN CN202310303331.1A patent/CN116414350A/zh active Pending
- 2018-05-17 TW TW110130201A patent/TWI771155B/zh active
- 2018-05-17 TW TW112131703A patent/TWI858883B/zh active
- 2018-05-17 WO PCT/US2018/033261 patent/WO2018213628A1/en not_active Ceased
- 2018-05-17 BR BR112019022916-7A patent/BR112019022916A2/pt unknown
- 2018-05-17 US US15/983,043 patent/US10635740B2/en active Active
- 2018-05-17 TW TW107116872A patent/TWI685757B/zh active
- 2018-05-17 KR KR1020197026961A patent/KR102302608B1/ko active Active
- 2018-05-17 JP JP2019553237A patent/JP6929958B2/ja active Active
- 2018-05-17 WO PCT/US2018/033270 patent/WO2018213635A1/en not_active Ceased
- 2018-05-17 EP EP20198533.0A patent/EP3800563B1/en active Active
- 2018-05-17 EP EP18737049.9A patent/EP3500945B1/en active Active
- 2018-05-17 TW TW113135506A patent/TWI887119B/zh active
- 2018-05-17 CN CN202310556021.0A patent/CN116661732A/zh active Pending
- 2018-05-17 EP EP18738023.3A patent/EP3526683B1/en active Active
- 2018-05-17 TW TW111127382A patent/TWI816475B/zh active
- 2018-05-17 BR BR112019023395-4A patent/BR112019023395B1/pt active IP Right Grant
- 2018-05-17 CN CN201880004328.7A patent/CN109937416B/zh active Active
- 2018-05-17 CN CN201880004576.1A patent/CN109997132B/zh active Active
- 2018-05-17 US US15/983,037 patent/US10698974B2/en active Active
- 2018-05-17 TW TW109105071A patent/TW202024961A/zh unknown
- 2018-05-17 EP EP20188875.7A patent/EP3757823B1/en active Active
-
2019
- 2019-08-01 US US16/529,662 patent/US10698976B2/en active Active
-
2020
- 2020-03-26 US US16/830,894 patent/US11500961B2/en active Active
- 2020-06-29 US US16/915,286 patent/US10970362B2/en active Active
-
2021
- 2021-03-23 US US17/210,293 patent/US11599601B2/en active Active
- 2021-08-11 JP JP2021131278A patent/JP7135181B2/ja active Active
-
2022
- 2022-08-31 JP JP2022138332A patent/JP7444936B2/ja active Active
- 2022-11-10 US US17/985,069 patent/US11989259B2/en active Active
-
2023
- 2023-02-17 US US18/111,468 patent/US11907330B2/en active Active
-
2024
- 2024-02-16 US US18/444,249 patent/US20240303297A1/en active Pending
- 2024-02-21 JP JP2024024596A patent/JP7674549B2/ja active Active
- 2024-04-17 US US18/638,469 patent/US12530426B2/en active Active
-
2025
- 2025-01-15 US US19/023,004 patent/US20250232001A1/en active Pending
- 2025-01-16 US US19/025,486 patent/US20250232003A1/en active Pending
Patent Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH03131965A (ja) * | 1989-10-10 | 1991-06-05 | Hnc Inc | ニューラルネットワーク用二次元収縮アレイ及びその方法 |
| JP2013511891A (ja) * | 2009-11-23 | 2013-04-04 | ザイリンクス インコーポレイテッド | Qr分解およびシストリックアレイを用いたmimo最小二乗平均誤差受信器 |
| US20140289445A1 (en) * | 2013-03-22 | 2014-09-25 | Antony Savich | Hardware accelerator system and method |
| WO2016186810A1 (en) * | 2015-05-21 | 2016-11-24 | Google Inc. | Prefetching weights for use in a neural network processor |
| US20160342892A1 (en) * | 2015-05-21 | 2016-11-24 | Google Inc. | Prefetching weights for use in a neural network processor |
| JP2017021483A (ja) * | 2015-07-08 | 2017-01-26 | 株式会社デンソー | 演算処理装置 |
Non-Patent Citations (2)
| Title |
|---|
| KHAN, EMDADUR R. ET AL.: "Two-Dimensional Multirate Systolic Array Design for Artificial Neural Networks", PUBLISHED IN: [1991] PROCEEDINGS. FIRST GREAT LAKES SYMPOSIUM ON VLSI, JPN6023029955, 2 March 1991 (1991-03-02), US, pages 186 - 193, ISSN: 0005564233 * |
| 加藤 英樹 他: "高並列ニューロコンピュータ", FUJITSU 1991−5月号, vol. 第42巻 第3号, JPN6023029954, 10 May 1991 (1991-05-10), pages 213 - 221, ISSN: 0005564232 * |
Also Published As
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP7674549B2 (ja) | 低レイテンシ行列乗算ユニット | |
| EP3625670B1 (en) | Performing matrix multiplication in hardware |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20240322 |
|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20240322 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20250228 |
|
| 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: 20250401 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20250424 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 7674549 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |