JP2020527778A - レジスタ・ベースの行列乗算 - Google Patents
レジスタ・ベースの行列乗算 Download PDFInfo
- Publication number
- JP2020527778A JP2020527778A JP2019571000A JP2019571000A JP2020527778A JP 2020527778 A JP2020527778 A JP 2020527778A JP 2019571000 A JP2019571000 A JP 2019571000A JP 2019571000 A JP2019571000 A JP 2019571000A JP 2020527778 A JP2020527778 A JP 2020527778A
- Authority
- JP
- Japan
- Prior art keywords
- matrix
- register
- data elements
- data element
- source
- 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
- 239000011159 matrix material Substances 0.000 title claims abstract description 576
- 239000013598 vector Substances 0.000 claims abstract description 99
- 230000004044 response Effects 0.000 claims abstract description 52
- 238000000034 method Methods 0.000 claims abstract description 49
- 239000000284 extract Substances 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 6
- 238000007667 floating Methods 0.000 claims description 5
- 230000001419 dependent effect Effects 0.000 claims description 3
- 238000005516 engineering process Methods 0.000 description 41
- 238000013459 approach Methods 0.000 description 14
- 238000009825 accumulation Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 5
- 230000006399 behavior Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 230000001186 cumulative effect Effects 0.000 description 3
- 230000004927 fusion Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
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/30098—Register arrangements
- G06F9/30105—Register structure
- G06F9/30109—Register structure having multiple operands in a single register
-
- 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
- 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/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/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- 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/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
-
- 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/30181—Instruction operation extension or modification
- G06F9/30189—Instruction operation extension or modification according to execution mode, e.g. mode flag
Abstract
Description
Claims (44)
- 装置であって、
複数のレジスタを有するレジスタ記憶回路構成であって、各レジスタは、少なくとも4つのデータ要素を記憶する、レジスタ記憶回路構成と、
行列乗算命令に応答して制御信号を生成する復号器回路構成であって、前記行列乗算命令は、前記複数のレジスタにおいて、第1のソース・レジスタ、第2のソース・レジスタ、及び宛先レジスタを指定する、復号器回路構成と、
前記制御信号に応答して、行列乗算演算を実行するデータ処理回路構成とを備え、前記行列乗算演算は、
前記第1のソース・レジスタからデータ要素の第1の行列を抽出することと、
前記第2のソース・レジスタからデータ要素の第2の行列を抽出することと、
結果データ要素の正方行列を生成するために、複数の点乗積演算を実行することであって、各点乗積演算は、結果データ要素の前記正方行列のそれぞれの結果データ要素を生成するために、データ要素の前記第1の行列のそれぞれの行と、データ要素の前記第2の行列のそれぞれの列とに作用する、実行することと、
結果データ要素の前記正方行列を、前記宛先レジスタに適用することとを含む、装置。 - 結果データ要素の前記正方行列を、前記宛先レジスタに適用することは、結果データ要素の前記正方行列を前記宛先レジスタに記憶することを含む、請求項1に記載の装置。
- 結果データ要素の前記正方行列を、前記宛先レジスタに適用することは、結果データ要素の前記正方行列を、前記宛先レジスタに記憶された結果データ要素の以前に記憶された正方行列とともに累積することを含む、請求項1に記載の装置。
- データ要素の前記第1の行列の各データ要素と、データ要素の前記第2の行列の各データ要素は、結果データ要素の前記正方行列の各データ要素の結果要素のビット長に等しいソース要素のビット長を有する、請求項1から3までのいずれか一項に記載の装置。
- データ要素の前記第1の行列の各データ要素と、データ要素の前記第2の行列の各データ要素は、結果データ要素の前記正方行列の各データ要素の結果要素のビット長とは異なるソース要素のビット長を有する、請求項1から3までのいずれか一項に記載の装置。
- 前記ソース要素のビット長が、前記結果要素のビット長と2倍異なる、請求項5に記載の装置。
- 前記ソース要素のビット長が、前記結果要素のビット長と2倍よりも大きく異なる、請求項5に記載の装置。
- 前記行列乗算命令は、結果データ要素の前記正方行列の次元を指定する、請求項1から7までのいずれか一項に記載の装置。
- データ要素の前記第1の行列の前記データ要素、データ要素の前記第2の行列の前記データ要素、及び結果データ要素は、浮動小数点値である、請求項1から8までのいずれか一項に記載の装置。
- データ要素の前記第1の行列の前記データ要素、データ要素の前記第2の行列の前記データ要素、及び結果データ要素は、整数値である、請求項1から8までのいずれか一項に記載の装置。
- データ要素の前記第1の行列の前記データ要素、データ要素の前記第2の行列の前記データ要素、及び結果データ要素は、符号のない整数値である、請求項10に記載の装置。
- データ要素の前記第1の行列の前記データ要素、データ要素の前記第2の行列の前記データ要素、及び結果データ要素は、符号付きの整数値である、請求項10に記載の装置。
- データ要素の前記第1の行列と、データ要素の前記第2の行列は、正方行列である、請求項1から12までのいずれか一項に記載の装置。
- データ要素の前記第1の行列と、データ要素の前記第2の行列は、非正方の長方行列である、請求項1から12までのいずれか一項に記載の装置。
- 前記復号器回路構成はさらに、構成命令に応答して構成制御信号を生成し、前記構成命令は、最大ベクトル長を指定し、前記データ処理回路構成は、前記構成制御信号に応答して、前記結果データ要素の合計サイズが、前記最大ベクトル長を超えないように、後続する行列乗算演算に制約を課す、請求項1から14までのいずれか一項に記載の装置。
- 前記後続する行列乗算演算に制約を課すことは、前記結果データ要素の合計サイズが、前記最大ベクトル長を超えない次元を有する結果データ要素の前記正方行列の生成を含む、請求項15に記載の装置。
- 前記後続する行列乗算演算に制約を課すことは、前記結果データ要素の合計サイズが、前記最大ベクトル長を超えない、結果データ要素の正方行列の数を生成することを含む、請求項15に記載の装置。
- 前記結果要素の合計サイズが、前記宛先レジスタの記憶容量未満である、請求項15から17までのいずれか一項に記載の装置。
- 前記行列乗算命令において指定された次元を有する結果データ要素の前記正方行列は、前記宛先レジスタの記憶容量に対応する、請求項8に記載の装置、又は、請求項8に従属する場合、請求項9から18までのいずれか一項に記載の装置。
- 前記宛先レジスタは、少なくとも8つのデータ要素を収容し、結果データ要素の少なくとも第2の正方行列を記憶するための記憶容量を有する、請求項1から18までのいずれか一項に記載の装置。
- 前記宛先レジスタの記憶容量は、前記行列乗算命令で指定された次元を有する結果データ要素の1つよりも多くの正方行列を記憶できる、請求項8に記載の装置、又は、請求項8に従属する場合、請求項9から18までのいずれか一項に記載の装置。
- 前記データ処理回路構成は、前記制御信号に応答して、結果データ要素の前記正方行列を、前記宛先レジスタの第1の部分に適用する、請求項20又は21に記載の装置。
- 前記宛先レジスタの前記第1の部分は、前記データ処理回路構成のために事前に決定される、請求項22に記載の装置。
- 前記行列乗算命令はさらに、前記宛先レジスタの前記第1の部分を指定する、請求項22に記載の装置。
- 前記データ処理回路構成はさらに、前記制御信号に応答して、第2の行列乗算演算を実行して、結果データ要素の前記第2の正方行列を生成し、結果データ要素の前記第2の正方行列を、前記宛先レジスタの第2の部分に適用する、請求項20に従属する場合、請求項22から24までのいずれか一項に記載の装置。
- 前記第1のソース・レジスタからのデータ要素の前記第1の行列は、前記第1のソース・レジスタの第1の部分から抽出され、前記データ処理回路構成は、前記制御信号に応答して、
前記第2のソース・レジスタの第1の部分から、データ要素の前記第2の行列を抽出することと、
結果データ要素の前記正方行列を、前記宛先レジスタの第1の部分に適用することとを含む第1の行列乗算演算として前記行列乗算演算を実行し、
前記データ処理回路構成は、前記制御信号に応答して、
前記第2のソース・レジスタの第2の部分から、データ要素の前記第2の行列を抽出することと、
結果データ要素の前記正方行列を、前記宛先レジスタの前記第2の部分に適用することとを含む前記第2の行列乗算演算を実行する、請求項25に記載の装置。 - 前記データ処理回路構成は、前記制御信号に応答して、
前記第1のソース・レジスタの第1の部分から、データ要素の前記第1の行列を抽出することと、
前記第2のソース・レジスタの第1の部分から、データ要素の前記第2の行列を抽出することと、
結果データ要素の前記正方行列を、前記宛先レジスタの第1の部分に適用することとを含む第1の行列乗算演算として前記行列乗算演算を実行し、前記データ処理回路構成は、前記制御信号に応答して、
前記第1のソース・レジスタの第2の部分から、データ要素の前記第1の行列を抽出することと、
前記第2のソース・レジスタの第2の部分から、データ要素の前記第2の行列を抽出することと、
結果データ要素の前記正方行列を、前記宛先レジスタの前記第2の部分に適用することとを含む前記第2の行列乗算演算を実行する、請求項25に記載の装置。 - 前記第1のソース・レジスタの前記第1の部分は、前記データ処理回路構成のために事前に決定される、請求項26又は27に記載の装置。
- 前記行列乗算命令はさらに、前記第1のソース・レジスタの前記第1の部分を指定する、請求項26又は27に記載の装置。
- 前記データ処理回路構成はさらに、前記制御信号に応答して、少なくとも1つのさらなる行列乗算演算を実行し、結果データ要素の少なくともさらなる正方行列を生成する、請求項26から29までのいずれか一項に記載の装置。
- 前記復号器回路構成は、前記行列乗算命令に先行するコピー・ロード命令に応答して、メモリ位置及び前記第1のソース・レジスタを指定して、コピー・ロード制御信号を生成し、前記データ処理回路構成は、前記コピー・ロード制御信号に応答して、
データ要素の前記第1の正方行列を、前記指定されたメモリ位置から、前記第1のソース・レジスタの前記第1の部分にロードすることと、
データ要素の前記第1の正方行列を、前記第1のソース・レジスタの前記第2の部分にコピーすることであって、前記第2のソース・レジスタからのデータ要素の前記第2の行列は、前記第2のソース・レジスタの前記第1の部分から抽出される、コピーすることと、を含むコピー・ロード動作を実行する、請求項26から30までのいずれか一項に記載の装置。 - 前記第1のソース・レジスタの前記第1の部分は、前記第1のソース・レジスタの第1の半分であり、前記第2のソース・レジスタの前記第1の部分は、前記第2のソース・レジスタの第1の半分であり、前記宛先レジスタの前記第1の部分は、前記宛先レジスタの第1の半分である、請求項26から31までのいずれか一項に記載の装置。
- 前記データ処理回路構成はさらに、レジスタ内容スワッピング命令に応答して、レジスタ内容スワッピング動作を実行し、前記第1のソース・レジスタ及び前記第2のソース・レジスタの一方の前記第1の半分と第2の半分との内容を交換する、請求項27に従属する場合、請求項32に記載の装置。
- 前記データ処理回路構成はさらに、前記制御信号に応答して、前記第1の行列乗算演算の後、前記第2の行列乗算演算の前に、レジスタ内容スワッピング動作を実行して、前記第1のソース・レジスタ及び前記第2のソース・レジスタの一方の前記第1の半分と第2の半分との内容を交換する、請求項27に従属する場合、請求項32に記載の装置。
- 前記行列乗算命令は、前記レジスタ内容スワッピング動作が実行されるべきか否かを指定する、請求項34に記載の装置。
- 前記行列乗算命令は、前記第1のソース・レジスタと前記第2のソース・レジスタのどちらが前記レジスタ内容スワッピング動作の対象となるべきかを指定する、請求項34又は35に記載の装置。
- 前記行列乗算命令がさらに、第3のソース・レジスタを指定し、前記行列乗算演算は、前記第1のソース・レジスタ及び前記第3のソース・レジスタから、データ要素の前記第1の行列を抽出することを含む、請求項1から36までのいずれか一項に記載の装置。
- 前記行列乗算命令はさらに、第4のソース・レジスタを指定し、前記行列乗算演算は、前記第2のソース・レジスタ及び前記第4のソース・レジスタから、データ要素の前記第2の行列を抽出することを含む、請求項1から37までのいずれか一項に記載の装置。
- 前記行列乗算命令はさらに、さらなる宛先レジスタを指定し、前記行列乗算演算は、前記宛先レジスタと、前記さらなる宛先レジスタとの間の結果データ要素分割の前記正方行列を適用することを含む、請求項1から38までのいずれか一項に記載の装置。
- データ処理装置を動作させる方法であって、
行列乗算命令に応答して制御信号を生成することであって、前記行列乗算命令は、複数のレジスタにおいて、第1のソース・レジスタ、第2のソース・レジスタ、及び宛先レジスタを指定し、各レジスタは、少なくとも4つのデータ要素を記憶することができる、生成することと、
前記制御信号に応答して、行列乗算演算を実行することとを含み、前記行列乗算演算は、
前記第1のソース・レジスタからデータ要素の第1の行列を抽出することと、
前記第2のソース・レジスタからデータ要素の第2の行列を抽出することと、
結果データ要素の正方行列を生成するために、複数の点乗積演算を実行することであって、各点乗積演算は、結果データ要素の前記正方行列のそれぞれの結果データ要素を生成するために、データ要素の前記第1の行列のそれぞれの行と、データ要素の前記第2の行列のそれぞれの列とに作用する、実行することと、
結果データ要素の前記正方行列を、前記宛先レジスタに適用することとを含む、方法。 - 装置であって、
行列乗算命令に応答して制御信号を生成するための手段であって、
前記行列乗算命令は、複数のレジスタにおいて、第1のソース・レジスタ、第2のソース・レジスタ、及び宛先レジスタを指定し、各レジスタは、少なくとも4つのデータ要素を記憶することができる、生成するための手段と、
前記制御信号に応答して、行列乗算演算を実行するための手段とを備え、実行するための手段は、
前記第1のソース・レジスタからデータ要素の第1の行列を抽出するための手段と、
前記第2のソース・レジスタからデータ要素の第2の行列を抽出するための手段と、
結果データ要素の正方行列を生成するために、複数の点乗積演算を実行するための手段であって、各点乗積演算は、結果データ要素の前記正方行列のそれぞれの結果データ要素を生成するために、データ要素の前記第1の行列のそれぞれの行と、データ要素の前記第2の行列のそれぞれの列とに作用する、実行するための手段と、
結果データ要素の前記正方行列を、前記宛先レジスタに適用するための手段とを備えた、装置。 - 請求項1から39までのいずれか一項に記載の装置に対応する命令実行環境を提供するようにホスト・データ処理装置を制御するためのプログラム命令を含む仮想マシン・コンピュータ・プログラム。
- 請求項40に記載の方法が実行される命令実行環境を提供するようにホスト・データ処理装置を制御するためのプログラム命令を含む仮想マシン・コンピュータ・プログラム。
- 請求項42又は43に記載の仮想マシン・コンピュータ・プログラムが非一時的な様式で記憶されるコンピュータ可読記憶媒体。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1710332.6 | 2017-06-28 | ||
GB1710332.6A GB2563878B (en) | 2017-06-28 | 2017-06-28 | Register-based matrix multiplication |
PCT/GB2018/051573 WO2019002811A1 (en) | 2017-06-28 | 2018-06-08 | REGISTRY-BASED MATRIX MULTIPLICATION |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2020527778A true JP2020527778A (ja) | 2020-09-10 |
JP7253506B2 JP7253506B2 (ja) | 2023-04-06 |
Family
ID=59523560
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019571000A Active JP7253506B2 (ja) | 2017-06-28 | 2018-06-08 | レジスタ・ベースの行列乗算 |
Country Status (8)
Country | Link |
---|---|
US (2) | US11288066B2 (ja) |
EP (1) | EP3646169B1 (ja) |
JP (1) | JP7253506B2 (ja) |
KR (1) | KR102583997B1 (ja) |
CN (1) | CN110770701B (ja) |
GB (1) | GB2563878B (ja) |
IL (1) | IL271174B1 (ja) |
WO (1) | WO2019002811A1 (ja) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018174934A1 (en) | 2017-03-20 | 2018-09-27 | Intel Corporation | Systems, methods, and apparatus for matrix move |
WO2019009870A1 (en) | 2017-07-01 | 2019-01-10 | Intel Corporation | SAVE BACKGROUND TO VARIABLE BACKUP STATUS SIZE |
US10528642B2 (en) * | 2018-03-05 | 2020-01-07 | International Business Machines Corporation | Multiple precision integer multiple by matrix-matrix multiplications using 16-bit floating point multiplier |
US10970076B2 (en) * | 2018-09-14 | 2021-04-06 | Intel Corporation | Systems and methods for performing instructions specifying ternary tile logic operations |
US10853067B2 (en) | 2018-09-27 | 2020-12-01 | Intel Corporation | Computer processor for higher precision computations using a mixed-precision decomposition of operations |
US10963246B2 (en) * | 2018-11-09 | 2021-03-30 | Intel Corporation | Systems and methods for performing 16-bit floating-point matrix dot product instructions |
US11615307B2 (en) * | 2018-12-06 | 2023-03-28 | MIPS Tech, LLC | Neural network data computation using mixed-precision |
US20200210517A1 (en) * | 2018-12-27 | 2020-07-02 | Intel Corporation | Systems and methods to accelerate multiplication of sparse matrices |
JP7296574B2 (ja) * | 2019-03-04 | 2023-06-23 | パナソニックIpマネジメント株式会社 | プロセッサ及びプロセッサの制御方法 |
US11334647B2 (en) * | 2019-06-29 | 2022-05-17 | Intel Corporation | Apparatuses, methods, and systems for enhanced matrix multiplier architecture |
US11119772B2 (en) * | 2019-12-06 | 2021-09-14 | International Business Machines Corporation | Check pointing of accumulator register results in a microprocessor |
US20210200711A1 (en) * | 2019-12-28 | 2021-07-01 | Intel Corporation | System and Method for Configurable Systolic Array with Partial Read/Write |
US11355175B2 (en) | 2020-04-09 | 2022-06-07 | Micron Technology, Inc. | Deep learning accelerator and random access memory with a camera interface |
US11726784B2 (en) | 2020-04-09 | 2023-08-15 | Micron Technology, Inc. | Patient monitoring using edge servers having deep learning accelerator and random access memory |
US11887647B2 (en) * | 2020-04-09 | 2024-01-30 | Micron Technology, Inc. | Deep learning accelerator and random access memory with separate memory access connections |
US11874897B2 (en) | 2020-04-09 | 2024-01-16 | Micron Technology, Inc. | Integrated circuit device with deep learning accelerator and random access memory |
CN114168895A (zh) * | 2020-09-11 | 2022-03-11 | 北京希姆计算科技有限公司 | 矩阵计算电路、方法、电子设备及计算机可读存储介质 |
CN112182496B (zh) * | 2020-09-24 | 2022-09-16 | 成都海光集成电路设计有限公司 | 用于矩阵乘法的数据处理方法及装置 |
CN112433760B (zh) * | 2020-11-27 | 2022-09-23 | 海光信息技术股份有限公司 | 数据排序方法和数据排序电路 |
CN112434255B (zh) * | 2020-12-03 | 2023-12-08 | 成都海光微电子技术有限公司 | 向量-矩阵运算和数据处理方法、乘法器和处理器芯片 |
CN116109468B (zh) * | 2023-04-04 | 2023-07-21 | 南京砺算科技有限公司 | 图形处理单元及指令编译方法、存储介质、终端设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040111587A1 (en) * | 2002-12-09 | 2004-06-10 | Nair Gopalan N | Apparatus and method for matrix data processing |
US6901422B1 (en) * | 2001-03-21 | 2005-05-31 | Apple Computer, Inc. | Matrix multiplication in a vector processing system |
US7873812B1 (en) * | 2004-04-05 | 2011-01-18 | Tibet MIMAR | Method and system for efficient matrix multiplication in a SIMD processor architecture |
US20110153707A1 (en) * | 2009-12-23 | 2011-06-23 | Boris Ginzburg | Multiplying and adding matrices |
US20120124332A1 (en) * | 2010-11-11 | 2012-05-17 | Fujitsu Limited | Vector processing circuit, command issuance control method, and processor system |
US20130159665A1 (en) * | 2011-12-15 | 2013-06-20 | Verisilicon Holdings Co., Ltd. | Specialized vector instruction and datapath for matrix multiplication |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7003542B2 (en) * | 2002-01-02 | 2006-02-21 | Intel Corporation | Apparatus and method for inverting a 4×4 matrix |
US20040122887A1 (en) * | 2002-12-20 | 2004-06-24 | Macy William W. | Efficient multiplication of small matrices using SIMD registers |
US7610466B2 (en) * | 2003-09-05 | 2009-10-27 | Freescale Semiconductor, Inc. | Data processing system using independent memory and register operand size specifiers and method thereof |
US7275148B2 (en) * | 2003-09-08 | 2007-09-25 | Freescale Semiconductor, Inc. | Data processing system using multiple addressing modes for SIMD operations and method thereof |
US7792895B1 (en) * | 2006-06-16 | 2010-09-07 | Nvidia Corporation | Efficient matrix multiplication on a parallel processing device |
US20080071851A1 (en) * | 2006-09-20 | 2008-03-20 | Ronen Zohar | Instruction and logic for performing a dot-product operation |
US8631224B2 (en) * | 2007-09-13 | 2014-01-14 | Freescale Semiconductor, Inc. | SIMD dot product operations with overlapped operands |
US8626815B1 (en) * | 2008-07-14 | 2014-01-07 | Altera Corporation | Configuring a programmable integrated circuit device to perform matrix multiplication |
US8458442B2 (en) * | 2009-08-26 | 2013-06-04 | International Business Machines Corporation | Method and structure of using SIMD vector architectures to implement matrix multiplication |
US9600281B2 (en) * | 2010-07-12 | 2017-03-21 | International Business Machines Corporation | Matrix multiplication operations using pair-wise load and splat operations |
WO2013095504A1 (en) * | 2011-12-22 | 2013-06-27 | Intel Corporation | Matrix multiply accumulate instruction |
-
2017
- 2017-06-28 GB GB1710332.6A patent/GB2563878B/en active Active
-
2018
- 2018-06-08 JP JP2019571000A patent/JP7253506B2/ja active Active
- 2018-06-08 CN CN201880041798.0A patent/CN110770701B/zh active Active
- 2018-06-08 EP EP18732444.7A patent/EP3646169B1/en active Active
- 2018-06-08 IL IL271174A patent/IL271174B1/en unknown
- 2018-06-08 WO PCT/GB2018/051573 patent/WO2019002811A1/en unknown
- 2018-06-08 US US16/626,701 patent/US11288066B2/en active Active
- 2018-06-08 KR KR1020207000266A patent/KR102583997B1/ko active IP Right Grant
-
2022
- 2022-02-23 US US17/678,221 patent/US20220291923A1/en active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6901422B1 (en) * | 2001-03-21 | 2005-05-31 | Apple Computer, Inc. | Matrix multiplication in a vector processing system |
US20040111587A1 (en) * | 2002-12-09 | 2004-06-10 | Nair Gopalan N | Apparatus and method for matrix data processing |
US7873812B1 (en) * | 2004-04-05 | 2011-01-18 | Tibet MIMAR | Method and system for efficient matrix multiplication in a SIMD processor architecture |
US20110153707A1 (en) * | 2009-12-23 | 2011-06-23 | Boris Ginzburg | Multiplying and adding matrices |
US20120124332A1 (en) * | 2010-11-11 | 2012-05-17 | Fujitsu Limited | Vector processing circuit, command issuance control method, and processor system |
US20130159665A1 (en) * | 2011-12-15 | 2013-06-20 | Verisilicon Holdings Co., Ltd. | Specialized vector instruction and datapath for matrix multiplication |
Also Published As
Publication number | Publication date |
---|---|
US20220291923A1 (en) | 2022-09-15 |
KR102583997B1 (ko) | 2023-10-04 |
IL271174A (en) | 2020-01-30 |
EP3646169A1 (en) | 2020-05-06 |
KR20200019942A (ko) | 2020-02-25 |
GB2563878B (en) | 2019-11-20 |
US11288066B2 (en) | 2022-03-29 |
GB2563878A (en) | 2019-01-02 |
CN110770701A (zh) | 2020-02-07 |
EP3646169B1 (en) | 2022-08-31 |
WO2019002811A1 (en) | 2019-01-03 |
JP7253506B2 (ja) | 2023-04-06 |
US20200117450A1 (en) | 2020-04-16 |
CN110770701B (zh) | 2023-11-17 |
GB201710332D0 (en) | 2017-08-09 |
IL271174B1 (en) | 2024-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2020527778A (ja) | レジスタ・ベースの行列乗算 | |
KR102492356B1 (ko) | 데이터 처리장치에서의 산술 확대 | |
JP7253492B2 (ja) | データ処理装置における乗累算 | |
JP7148526B2 (ja) | データ処理装置におけるベクトルによる要素演算 | |
KR102659495B1 (ko) | 벡터 프로세서 및 그 제어 방법 | |
TWI766056B (zh) | 用於資料處理的方法、設備、電腦程式及電腦可讀取儲存媒體 | |
TW202305588A (zh) | 用於向量組合指令之處理設備、方法、及電腦程式 | |
TW202340947A (zh) | 用於處置儲存在陣列儲存器中之資料元素之技術 | |
GB2617828A (en) | Technique for handling data elements stored in an array storage |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20210601 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20220818 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20221117 |
|
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: 20230303 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20230327 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7253506 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |