JP2010539593A - 重複オペランドを使用したsimdの内積演算 - Google Patents
重複オペランドを使用したsimdの内積演算 Download PDFInfo
- Publication number
- JP2010539593A JP2010539593A JP2010524899A JP2010524899A JP2010539593A JP 2010539593 A JP2010539593 A JP 2010539593A JP 2010524899 A JP2010524899 A JP 2010524899A JP 2010524899 A JP2010524899 A JP 2010524899A JP 2010539593 A JP2010539593 A JP 2010539593A
- Authority
- JP
- Japan
- Prior art keywords
- source register
- vector
- subset
- vector elements
- dot product
- 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
- 239000013598 vector Substances 0.000 claims abstract description 186
- 238000012545 processing Methods 0.000 claims abstract description 43
- 238000000034 method Methods 0.000 claims description 8
- 239000000047 product Substances 0.000 description 112
- 239000004020 conductor Substances 0.000 description 35
- 230000015654 memory Effects 0.000 description 16
- 239000011159 matrix material Substances 0.000 description 15
- 239000013067 intermediate product Substances 0.000 description 14
- 230000006870 function Effects 0.000 description 9
- 238000004364 calculation method Methods 0.000 description 8
- 230000002093 peripheral effect Effects 0.000 description 8
- 238000009825 accumulation Methods 0.000 description 7
- 102100039164 Acetyl-CoA carboxylase 1 Human genes 0.000 description 6
- 101710190443 Acetyl-CoA carboxylase 1 Proteins 0.000 description 6
- 102100021641 Acetyl-CoA carboxylase 2 Human genes 0.000 description 6
- 101000677540 Homo sapiens Acetyl-CoA carboxylase 2 Proteins 0.000 description 6
- 101000894929 Homo sapiens Bcl-2-related protein A1 Proteins 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 230000010365 information processing Effects 0.000 description 3
- 230000002457 bidirectional effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- -1 and a second word Proteins 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000001143 conditioned effect Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 229920006395 saturated elastomer Polymers 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000010200 validation analysis Methods 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/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
-
- 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/30098—Register arrangements
- G06F9/30105—Register structure
- G06F9/30109—Register structure having multiple operands in a single register
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Complex Calculations (AREA)
- Advance Control (AREA)
Abstract
Description
図4は、実行ユニット32およびスカラ・レジスタ・ファイル34の一部と、(蓄積が実行され、オフセットフィールドが2に設定される)evdotp5ba命令の演算を表す別のデータフロー例とを示す。図4の演算は、図3の演算と類似しており、同様の数字は同様の要素を表す。図4のデータフローは、オフセットとして(rAにおけるベクトル要素のオフセットに対応する)2が使用されることを除き、図3のデータフローと類似している。すなわち、a0〜a4およびb0〜b4と、a0〜a4およびb1〜b4との同時内積を実行する図3の実施例とは異なり、図4の実施例は、a2〜a6およびb2〜b6と、a2〜a6およびb3〜b7との同時内積を実行する。すなわち、使用されているrAの5つのベクトル要素がa0から2要素分オフセットされることに注意されたい。そのため、図3の実施例の対応サブセットと比較して、rBの第1のサブセットの5つのベクトル要素と、rBの第2のサブセットの5つのベクトル要素とは、2要素分オフセットされている。なお、図3の実施例に示すとおり、rBの第1のサブセット(b2−b6)と比較して、rBの第2のサブセット(b3−b7)は、rBの5つのベクトル要素のうちの4が2つの同時内積演算で重複するように1要素分シフトしている。
なお、ベクトル要素を8つずつ格納するレジスタを使用して効率的な3×3または4×4の行列演算を提供しているシステムでは、ソースレジスタの4要素の対応する互いに素な(すなわち重複しない)セットに対して1対の内積演算が実行される場合には、8つの加算器だけが提供されるのが一般的である。ただし、このようなシステムは、5×5の行列演算(あるいは8つのベクトル要素を格納するレジスタと適合しない他の次元)では非効率的である。そのため、本明細書に記載のとおり、2つの追加乗算器(例えば75および80)とソースレジスタrBの重複サブセットを使用することにより、5×5の内積演算の効率が改善されることがある点に注意されたい。これらの種類の演算は、5×5の行列演算に大きく依存するアプリケーションで特に有用となり得る。他の次元の行列演算に大きく依存することのある他の種類の演算においては、少数の追加乗算器があり、a0〜aNおよびb0〜bNと、a0〜aNおよびb1〜b(N+1)との同時内積を実行できるevdotp5b[a]命令と同様の命令を使用することができる。また、代替実施形態において、rAおよびrBの様々なサブセットを使用することができる。例えば、図3で提供されているサブセット例rAとrBとではなく、rAの第1のサブセットおよびrBの第1のサブセットと、rAの第2のサブセットおよびrBの第2のサブセットとの同時内積を実行してもよく、rAのサブセットの各々は、同じサブセットであっても、重複する要素を有する異なるサブセットであってもよく、rBのサブセットの各々も、同じサブセットであっても、重複する要素を有する異なるサブセットであってもよい。また、rBの要素にオフセットが追加されてもよい。例えば図3では、rBに対してオフセットとして2が指定された場合、rBの第1のサブセットがb0〜b4で、第2のサブセットがb1〜b5となるのではなく、2つの内積演算の一方の第1のサブセットがb2〜b6で、他方の内積演算の第2のサブセットがb3〜b7となる。また、重複指定子が、rBの要素に追加されて、rBの第2のサブセットがrBの第1のサブセットに対してどれだけのベクトル要素分シフトするかを表してもよい。例えば図3では、rBに対して2という重複指定子が指定された場合、rBの第1のサブセットがb0〜b4で、第2のサブセットがb1〜b5となるのではなく、2つの内積演算の一方の第1のサブセットがb0〜b4で、他方の内積演算の第2のサブセットがb2〜b6となる。
さらに別の実施形態において、プロセッサ回路はアキュムレータをさらに含み、ベクトル内積命令は、第1の内積の結果とアキュムレータの第1の値との和と、第2の内積の結果とアキュムレータの第2の値との和とを格納するための宛先レジスタをさらに特定する。
さらに別の実施形態において、第1のソースレジスタのベクトル要素の第1のサブセットは、第2のソースレジスタのベクトル要素の第1のサブセットと同じベクトル要素位置に対応している。
他の実施形態のさらに別の実施形態において、プロセッサ回路はアキュムレータをさらに含み、ベクトル内積命令は、第1の内積の結果とアキュムレータの第1の値との和と、第2の内積の結果とアキュムレータの第2の値との和とを格納するための宛先レジスタをさらに特定する。
他の実施形態のさらに別の実施形態において、第1のソースレジスタのベクトル要素の第1のサブセットは、第2のソースレジスタのベクトル要素の第1のサブセットと同じベクトル要素位置に対応している。
さらに別の実施形態のさらに別の実施形態において、プロセッサ回路はアキュムレータをさらに含み、ベクトル内積命令は、第1の内積の結果とアキュムレータの第1の値との和と、第2の内積の結果とアキュムレータの第2の値との和とを格納するための宛先レジスタをさらに特定する。
さらに別の実施形態のさらに別の実施形態において、ベクトル内積命令は、第1または第2のソースレジスタのどのベクトル要素が、第1または第2のソースレジスタのベクトル要素の第1のサブセットに含まれるべきかを少なくとも示す際に使用するオフセットをさらに示す。
Claims (20)
- データ処理システムであって、
複数の汎用レジスタと、
1つ以上の命令を実行するためのプロセッサ回路と
を備え、前記1つ以上の命令は、少なくとも2つの内積を同時に実行するためのベクトル内積命令を含み、前記ベクトル内積命令は、前記複数の汎用レジスタから第1のソースレジスタと第2のソースレジスタとを特定し、前記第1のソースレジスタと前記第2のソースレジスタとの各々は、複数のベクトル要素を格納するためのものであり、
前記少なくとも2つの内積のうちの第1の内積は、前記第1のソースレジスタのベクトル要素の第1のサブセットと、前記第2のソースレジスタのベクトル要素の第1のサブセットとの間で実行され、
前記少なくとも2つの内積のうちの第2の内積は、前記第1のソースレジスタのベクトル要素の第2のサブセットと、前記第2のソースレジスタのベクトル要素の第2のサブセットとの間で実行され、
前記第2のソースレジスタの前記第1および第2のサブセットは異なっており、
前記第2のソースレジスタの前記第1および第2のサブセットの少なくとも2つのベクトル要素が重複している、データ処理システム。 - 前記ベクトル内積命令が、前記第1の内積の結果と前記第2の内積の結果とを格納するための宛先レジスタをさらに特定する、請求項1に記載のデータ処理システム。
- 前記プロセッサ回路がアキュムレータをさらに含み、前記ベクトル内積命令が、前記第1の内積の結果と前記アキュムレータの第1の値との和と、前記第2の内積の結果と前記アキュムレータの第2の値との和とを格納するための宛先レジスタをさらに特定する、請求項1に記載のデータ処理システム。
- 前記第1のソースレジスタの前記第1および第2のサブセットが同じサブセットである、請求項1に記載のデータ処理システム。
- 前記第1のソースレジスタのベクトル要素の第1のサブセットが、前記第2のソースレジスタのベクトル要素の第1のサブセットと同じベクトル要素位置に対応している、請求項1に記載のデータ処理システム。
- 前記ベクトル内積命令は、前記第1のソースレジスタのどのベクトル要素を前記第1のソースレジスタのベクトル要素の第1のサブセットに含ませるべきかを少なくとも示すために使用するオフセットをさらに示す、請求項1に記載のデータ処理システム。
- 前記ベクトル内積命令は、前記第2のソースレジスタのどのベクトル要素を前記第2のソースレジスタのベクトル要素の第1のサブセットに含ませるべきかを少なくとも示すために使用するオフセットをさらに示す、請求項6に記載のデータ処理システム。
- 前記ベクトル内積命令は、前記第2のソースレジスタのどのベクトル要素を前記第2のソースレジスタのベクトル要素の第1のサブセットに含ませるべきかを少なくとも示すために使用するオフセットをさらに示す、請求項1に記載のデータ処理システム。
- 複数の汎用レジスタと、
1つ以上の命令を実行するためのプロセッサ回路と
を備え、前記1つ以上の命令は、少なくとも2つの内積を同時に実行するためのベクトル内積命令を含み、前記ベクトル内積命令は、前記複数の汎用レジスタから第1のソースレジスタと第2のソースレジスタとを特定し、前記第1のソースレジスタと前記第2のソースレジスタとの各々は、複数のベクトル要素を格納するためのものであり、
前記少なくとも2つの内積のうちの第1の内積は、前記第1のソースレジスタの5つのベクトル要素の第1のサブセットと、前記第2のソースレジスタの5つのベクトル要素の第1のサブセットとの間で実行され、
前記少なくとも2つの内積のうちの第2の内積は、前記第1のソースレジスタの5つのベクトル要素の第2のサブセットと、前記第2のソースレジスタの5つのベクトル要素の第2のサブセットとの間で実行され、
前記第2のソースレジスタの前記第1および第2のサブセットの4つのベクトル要素が重複している、データ処理システム。 - 前記ベクトル内積命令が、前記第1の内積の結果と前記第2の内積の結果とを格納するための宛先レジスタをさらに特定する、請求項9に記載のデータ処理システム。
- 前記プロセッサ回路がアキュムレータをさらに含み、前記ベクトル内積命令が、前記第1の内積の結果と前記アキュムレータの第1の値との和と、前記第2の内積の結果と前記アキュムレータの第2の値との和とを格納するための宛先レジスタをさらに特定する、請求項9に記載のデータ処理システム。
- 前記第1のソースレジスタの前記第1および第2のサブセットが同じサブセットである、請求項9に記載のデータ処理システム。
- 前記第1のソースレジスタのベクトル要素の第1のサブセットが、前記第2のソースレジスタのベクトル要素の第1のサブセットと同じベクトル要素位置に対応している、請求項9に記載のデータ処理システム。
- 前記ベクトル内積命令によって特定される前記第1および第2のソースレジスタの各々は8つのベクトル要素を格納するためのものであり、前記プロセッサ回路は10個の乗算器を含み、10個の乗算器のうちの5つは前記第1の内積を実行するためのものであり、残りの5つは前記第2の内積を実行するためのものである、請求項9に記載のデータ処理システム。
- 前記ベクトル内積命令は、前記第1または第2のソースレジスタのどのベクトル要素を前記第1または第2のソースレジスタのベクトル要素の前記第1のサブセットに含ませるべきかを少なくとも示すために使用するオフセットをさらに示す、請求項9に記載のデータ処理システム。
- 同時内積演算を実行するための方法であって、
複数の汎用レジスタを提供すること、
1つ以上の命令を実行するためのプロセッサ回路を提供すること
を備え、前記1つ以上の命令は、少なくとも2つの内積を同時に実行するためのベクトル内積命令を含み、前記ベクトル内積命令は、前記複数の汎用レジスタから第1のソースレジスタと第2のソースレジスタとを特定し、前記第1のソースレジスタと前記第2のソースレジスタとの各々は、複数のベクトル要素を格納するためのものであり、
前記少なくとも2つの内積のうちの第1の内積は、前記第1のソースレジスタのベクトル要素の第1のサブセットと、前記第2のソースレジスタのベクトル要素の第1のサブセットとの間で実行され、
前記少なくとも2つの内積のうちの第2の内積は、前記第1のソースレジスタのベクトル要素の第2のサブセットと、前記第2のソースレジスタのベクトル要素の第2のサブセットとの間で実行され、
前記第2のソースレジスタの前記第1および第2のサブセットは異なっており、
前記第2のソースレジスタの前記第1および第2のサブセットの少なくとも2つのベクトル要素が重複している、方法。 - 前記ベクトル内積命令が、前記第1の内積の結果と前記第2の内積の結果とを格納するための宛先レジスタをさらに特定する、請求項16に記載の方法。
- 前記プロセッサ回路がアキュムレータをさらに含み、前記ベクトル内積命令が、前記第1の内積の結果と前記アキュムレータの第1の値との和と、前記第2の内積の結果と前記アキュムレータの第2の値との和とを格納するための宛先レジスタをさらに特定する、請求項16に記載の方法。
- 前記第1のソースレジスタの前記第1および第2のサブセットが同じサブセットである、請求項16に記載の方法。
- 前記ベクトル内積命令は、前記第1または第2のソースレジスタのどのベクトル要素を前記第1または第2のソースレジスタのベクトル要素の前記第1のサブセットに含ませるべきかを少なくとも示すために使用するオフセットをさらに示す、請求項16に記載の方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/854,630 | 2007-09-13 | ||
US11/854,630 US8631224B2 (en) | 2007-09-13 | 2007-09-13 | SIMD dot product operations with overlapped operands |
PCT/US2008/071327 WO2009035774A1 (en) | 2007-09-13 | 2008-07-28 | Simd dot product operations with overlapped operands |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2010539593A true JP2010539593A (ja) | 2010-12-16 |
JP2010539593A5 JP2010539593A5 (ja) | 2011-09-15 |
JP5201641B2 JP5201641B2 (ja) | 2013-06-05 |
Family
ID=40452385
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010524899A Expired - Fee Related JP5201641B2 (ja) | 2007-09-13 | 2008-07-28 | 重複オペランドを使用したsimdの内積演算 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8631224B2 (ja) |
JP (1) | JP5201641B2 (ja) |
KR (1) | KR101482540B1 (ja) |
WO (1) | WO2009035774A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019526866A (ja) * | 2016-09-13 | 2019-09-19 | エイアールエム リミテッド | ベクトル積和命令 |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8595467B2 (en) * | 2009-12-29 | 2013-11-26 | International Business Machines Corporation | Floating point collect and operate |
US8478969B2 (en) * | 2010-09-24 | 2013-07-02 | Intel Corporation | Performing a multiply-multiply-accumulate instruction |
JP5528976B2 (ja) | 2010-09-30 | 2014-06-25 | 株式会社メガチップス | 画像処理装置 |
WO2013101018A1 (en) | 2011-12-29 | 2013-07-04 | Intel Corporation | Dot product processors, methods, systems, and instructions |
US9355061B2 (en) | 2014-01-28 | 2016-05-31 | Arm Limited | Data processing apparatus and method for performing scan operations |
GB2523805B (en) * | 2014-03-06 | 2021-09-01 | Advanced Risc Mach Ltd | Data processing apparatus and method for performing vector scan operation |
US10049082B2 (en) | 2016-09-15 | 2018-08-14 | Altera Corporation | Dot product based processing elements |
GB2560159B (en) * | 2017-02-23 | 2019-12-25 | Advanced Risc Mach Ltd | Widening arithmetic in a data processing apparatus |
GB2563878B (en) * | 2017-06-28 | 2019-11-20 | Advanced Risc Mach Ltd | Register-based matrix multiplication |
US11294679B2 (en) | 2017-06-30 | 2022-04-05 | Intel Corporation | Apparatus and method for multiplication and accumulation of complex values |
WO2019005115A1 (en) * | 2017-06-30 | 2019-01-03 | Intel Corporation | APPARATUS AND METHOD FOR MULTIPLICATION AND CUMULATION OF COMPLEX VALUES |
US11409525B2 (en) * | 2018-01-24 | 2022-08-09 | Intel Corporation | Apparatus and method for vector multiply and accumulate of packed words |
US10642620B2 (en) * | 2018-04-05 | 2020-05-05 | Apple Inc. | Computation engine with strided dot product |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0375868A (ja) * | 1989-08-17 | 1991-03-29 | Sony Corp | 行列データ乗算装置 |
JPH05267992A (ja) * | 1992-03-18 | 1993-10-15 | Sony Corp | フイルタ回路 |
JPH10124484A (ja) * | 1996-10-16 | 1998-05-15 | Hitachi Ltd | データプロセッサ及びデータ処理システム |
JP2000322235A (ja) * | 1999-05-07 | 2000-11-24 | Sony Corp | 情報処理装置 |
JP2001256199A (ja) * | 2000-03-13 | 2001-09-21 | Hitachi Ltd | データプロセッサ及びデータ処理システム |
JP2001290633A (ja) * | 2000-04-07 | 2001-10-19 | Nintendo Co Ltd | ベクトルレジスタからスカラ値を直接取得する方法および装置 |
JP2002229970A (ja) * | 2001-01-31 | 2002-08-16 | Fujitsu Ltd | Simd積和演算方法、積和演算回路、および、半導体集積回路装置 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04242861A (ja) * | 1990-12-28 | 1992-08-31 | Sony Corp | 内積演算回路 |
US5721892A (en) * | 1995-08-31 | 1998-02-24 | Intel Corporation | Method and apparatus for performing multiply-subtract operations on packed data |
US6094637A (en) | 1997-12-02 | 2000-07-25 | Samsung Electronics Co., Ltd. | Fast MPEG audio subband decoding using a multimedia processor |
US6230253B1 (en) * | 1998-03-31 | 2001-05-08 | Intel Corporation | Executing partial-width packed data instructions |
US6477203B1 (en) * | 1998-10-30 | 2002-11-05 | Agilent Technologies, Inc. | Signal processing distributed arithmetic architecture |
US6901422B1 (en) | 2001-03-21 | 2005-05-31 | Apple Computer, Inc. | Matrix multiplication in a vector processing system |
US6898691B2 (en) | 2001-06-06 | 2005-05-24 | Intrinsity, Inc. | Rearranging data between vector and matrix forms in a SIMD matrix processor |
US7103756B2 (en) * | 2002-09-30 | 2006-09-05 | Hewlett-Packard Development Company, L.P. | Data processor with individually writable register subword locations |
US7275147B2 (en) * | 2003-03-31 | 2007-09-25 | Hitachi, Ltd. | Method and apparatus for data alignment and parsing in SIMD computer architecture |
US6847313B2 (en) | 2003-06-30 | 2005-01-25 | Intel Corporation | Rational sample rate conversion |
GB2409061B (en) | 2003-12-09 | 2006-09-13 | Advanced Risc Mach Ltd | Table lookup operation within a data processing system |
US8332452B2 (en) | 2006-10-31 | 2012-12-11 | International Business Machines Corporation | Single precision vector dot product with “word” vector write mask |
-
2007
- 2007-09-13 US US11/854,630 patent/US8631224B2/en not_active Expired - Fee Related
-
2008
- 2008-07-28 WO PCT/US2008/071327 patent/WO2009035774A1/en active Application Filing
- 2008-07-28 KR KR20107007865A patent/KR101482540B1/ko active IP Right Grant
- 2008-07-28 JP JP2010524899A patent/JP5201641B2/ja not_active Expired - Fee Related
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0375868A (ja) * | 1989-08-17 | 1991-03-29 | Sony Corp | 行列データ乗算装置 |
JPH05267992A (ja) * | 1992-03-18 | 1993-10-15 | Sony Corp | フイルタ回路 |
JPH10124484A (ja) * | 1996-10-16 | 1998-05-15 | Hitachi Ltd | データプロセッサ及びデータ処理システム |
JP2000322235A (ja) * | 1999-05-07 | 2000-11-24 | Sony Corp | 情報処理装置 |
JP2001256199A (ja) * | 2000-03-13 | 2001-09-21 | Hitachi Ltd | データプロセッサ及びデータ処理システム |
JP2001290633A (ja) * | 2000-04-07 | 2001-10-19 | Nintendo Co Ltd | ベクトルレジスタからスカラ値を直接取得する方法および装置 |
JP2002229970A (ja) * | 2001-01-31 | 2002-08-16 | Fujitsu Ltd | Simd積和演算方法、積和演算回路、および、半導体集積回路装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019526866A (ja) * | 2016-09-13 | 2019-09-19 | エイアールエム リミテッド | ベクトル積和命令 |
US11188330B2 (en) | 2016-09-13 | 2021-11-30 | Arm Limited | Vector multiply-add instruction |
JP7203016B2 (ja) | 2016-09-13 | 2023-01-12 | アーム・リミテッド | ベクトル積和命令 |
Also Published As
Publication number | Publication date |
---|---|
KR101482540B1 (ko) | 2015-01-14 |
JP5201641B2 (ja) | 2013-06-05 |
KR20100075494A (ko) | 2010-07-02 |
US8631224B2 (en) | 2014-01-14 |
US20090077345A1 (en) | 2009-03-19 |
WO2009035774A1 (en) | 2009-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5201641B2 (ja) | 重複オペランドを使用したsimdの内積演算 | |
JP7052171B2 (ja) | プロセッサ、システム及び方法 | |
KR101515311B1 (ko) | 승산-승산-누산 명령 수행 | |
CN107741842B (zh) | 用于执行点积运算的指令和逻辑 | |
RU2263947C2 (ru) | Целочисленное умножение высокого порядка с округлением и сдвигом в архитектуре с одним потоком команд и множеством потоков данных | |
US20240078283A1 (en) | Apparatuses, methods, and systems for instructions of a matrix operations accelerator | |
CN109716290B (zh) | 用于经融合的乘加的系统、装置和方法 | |
JP7481069B2 (ja) | 連鎖タイル演算を実施するためのシステムおよび方法 | |
JP2021057004A (ja) | 行列演算アクセラレータの命令のための装置、方法、及びシステム | |
ES2934513T3 (es) | Sistemas y métodos para omitir operaciones matriciales intrascendentes | |
CN107533460B (zh) | 紧缩有限冲激响应(fir)滤波处理器、方法、系统和指令 | |
JP2018506094A (ja) | 多倍長整数(big integer)の算術演算を実行するための方法および装置 | |
EP4020169A1 (en) | Apparatuses, methods, and systems for 8-bit floating-point matrix dot product instructions | |
US20110072238A1 (en) | Method for variable length opcode mapping in a VLIW processor | |
EP3716050B1 (en) | Using fuzzy-jbit location of floating-point multiply-accumulate results | |
US6275925B1 (en) | Program execution method and program execution device | |
CN112149050A (zh) | 用于增强的矩阵乘法器架构的装置、方法和系统 | |
JPH1115660A (ja) | マイクロプロセッサ | |
TW202418114A (zh) | 用於矩陣運算加速器之指令的裝置,方法和系統 | |
US20030163500A1 (en) | 64-bit scaled sum-of-product operations in a 32-bit environment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110727 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20110727 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20120227 |
|
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: 20130115 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130206 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5201641 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20160222 Year of fee payment: 3 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |