JP2019526866A - ベクトル積和命令 - Google Patents
ベクトル積和命令 Download PDFInfo
- Publication number
- JP2019526866A JP2019526866A JP2019512719A JP2019512719A JP2019526866A JP 2019526866 A JP2019526866 A JP 2019526866A JP 2019512719 A JP2019512719 A JP 2019512719A JP 2019512719 A JP2019512719 A JP 2019512719A JP 2019526866 A JP2019526866 A JP 2019526866A
- Authority
- JP
- Japan
- Prior art keywords
- vector
- value
- instruction
- product
- processing
- 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 title claims abstract description 406
- 238000012545 processing Methods 0.000 claims abstract description 175
- 230000004044 response Effects 0.000 claims abstract description 27
- 238000004590 computer program Methods 0.000 claims description 4
- 238000003860 storage Methods 0.000 claims description 4
- 238000003672 processing method Methods 0.000 claims description 2
- 238000000034 method Methods 0.000 description 30
- 230000001066 destructive effect Effects 0.000 description 13
- 230000008569 process Effects 0.000 description 13
- 230000000873 masking effect Effects 0.000 description 11
- 238000013459 approach Methods 0.000 description 8
- 230000008901 benefit Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 241000238876 Acari Species 0.000 description 2
- 230000000295 complement effect Effects 0.000 description 2
- 229920006395 saturated elastomer Polymers 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- XPYGGHVSFMUHLH-UUSULHAXSA-N falecalcitriol Chemical compound C1(/[C@@H]2CC[C@@H]([C@]2(CCC1)C)[C@@H](CCCC(O)(C(F)(F)F)C(F)(F)F)C)=C\C=C1\C[C@@H](O)C[C@H](O)C1=C XPYGGHVSFMUHLH-UUSULHAXSA-N 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000009738 saturating Methods 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/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/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
- 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/8053—Vector processors
- G06F15/8076—Details on data register access
-
- 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
- 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
- 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
- G06F9/30038—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations using a mask
-
- 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
-
- 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/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/3013—Organisation of register space, e.g. banked or distributed register file according to data content, e.g. floating-point registers, address registers
-
- 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/30141—Implementation provisions of register files, e.g. ports
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (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)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Computer Hardware Design (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Complex Calculations (AREA)
- Advance Control (AREA)
Abstract
Description
データ処理を実施するための処理回路と、
複数のデータ要素を含むベクトル値を記憶するための複数のベクトル・レジスタと、
スカラー値を記憶するための複数のスカラー・レジスタと、
複数の結果データ要素を含む結果ベクトル値を生成するために、少なくとも1つのベクトル・レジスタと少なくとも1つのスカラー・レジスタとを含む複数のレジスタを指定するベクトル積和命令(vector multiply−add instruction)によって指定された第1のベクトル・レジスタに記憶された第1のベクトル値に対する処理の複数のレーンを含むベクトル積和演算(vector multiply−add operation)を実施するように処理回路を制御するために、ベクトル積和命令を復号するための命令デコーダと
を備える装置であって、
処理の各レーンが、積値(product value)と加数値(addend value)との和又は差に対応する結果ベクトル値のそれぞれの結果データ要素を生成することを含み、積値が、第1のベクトル値のそれぞれのデータ要素と乗数値(multiplier value)との積に対応し、
処理の各レーンについて、乗数値と加数値とのうちの少なくとも一方が、ベクトル積和命令によって指定されたスカラー・レジスタに記憶されたスカラー値の少なくとも部分を含む、
装置を提供する。
データ処理を実施するための手段と、
複数のデータ要素を含むベクトル値を記憶するための複数の手段と、
スカラー値を記憶するための複数の手段と、
複数の結果データ要素を含む結果ベクトル値を生成するために、ベクトル値を記憶するための少なくとも1つの手段とスカラー値を記憶するための少なくとも1つの手段とを指定するベクトル積和命令によって指定された、ベクトル値を記憶するための第1の手段に記憶された第1のベクトル値に対する処理の複数のレーンを含むベクトル積和演算を実施するように、データ処理を実施するための手段を制御するために、ベクトル積和命令を復号するための手段と
を備える装置であって、
処理の各レーンが、積値と加数値との和又は差に対応する結果ベクトル値のそれぞれの結果データ要素を生成することを含み、積値が、第1のベクトル値のそれぞれのデータ要素と乗数値との積に対応し、
処理の各レーンについて、乗数値と加数値とのうちの少なくとも一方が、ベクトル積和命令によって指定された、スカラー値を記憶するための手段に記憶されたスカラー値の少なくとも部分を含む、
装置を提供する。
少なくとも1つのベクトル・レジスタと少なくとも1つのスカラー・レジスタとを含む複数のレジスタを指定するベクトル積和命令を復号するステップと、
ベクトル積和命令に応答して、複数の結果データ要素を含む結果ベクトル値を生成するために、ベクトル積和命令によって指定された第1のベクトル・レジスタに記憶された第1のベクトル値に対する処理の複数のレーンを含むベクトル積和演算を実施するように処理回路を制御するステップと
を含むデータ処理方法であって、
処理の各レーンが、積値と加数値との和又は差に対応する結果ベクトル値のそれぞれの結果データ要素を生成することを含み、積値が、第1のベクトル値のそれぞれのデータ要素と乗数値との積に対応し、
処理の各レーンについて、乗数値と加数値とのうちの少なくとも一方が、ベクトル積和命令によって指定されたスカラー・レジスタに記憶されたスカラー値の少なくとも部分を含む、
データ処理方法を提供する。
ax3+bx2+cx+d(命令が有用である多くの他の事例がある)が、これは、良好な実例として働くことになる)。ホーナー法(Horner’s method)を使用して、これは、より計算効率の良い形式x(x(ax+b)+c)+dで表され得る。これは、通常、3つの乗算累算(multiply−accumulate)演算に等しい。
a) レーン結果L[i]の最下位Jビット(たとえば、2J+1ビット・レーン結果のビット[J−1:0])が選択され得る。
b) レーン結果L[i]の最上位Jビット(たとえば、2J+1ビット・レーン結果のビット[2J:J+1])が選択され得る。
c) レーン結果L[i]の最上位Jビットが選択され、レーン結果の少なくとも1つの下位ビットに基づいて丸められ得る。たとえば、選択された部分中に含まれない最上位ビットが選択された部分に加算されて、Jビット結果データ要素Q0’[i]に丸められ得るか、又は代替的に、2つ以上の下位ビットが丸めのために使用されて、より複雑な丸めモードが実装され得る。丸めを実施することによって、トランケーションによって引き起こされる結果に対する負バイアスが回避され得る。
d) レーン結果L[i]の最上位ビット[2J]が無視され、次のJ最上位ビット[2J−1:J]が、選択されて、結果が形成され得る。2J+1ビット結果の先頭ビットは、一般に、Jビット入力要素のうちの3つすべてがそれらの最大値にあるか又はその近くにある場合のみ、1になり、したがって、しばしば、大部分の計算について0になる。したがって、先頭ビット以外の次のJビットが、有用な情報をよりしばしば与え得、したがって、トランケートされた結果についてこれらを使用することが、好ましくなり得る。
e) 実例c)と同様のやり方で、レーン結果L[i]のビット[2J−1:J]は、少なくとも1つの下位ビットに基づいて丸められて、結果が生成され得る。
Claims (24)
- データ処理を実施するための処理回路と、
複数のデータ要素を含むベクトル値を記憶するための複数のベクトル・レジスタと、
スカラー値を記憶するための複数のスカラー・レジスタと、
複数の結果データ要素を含む結果ベクトル値を生成するために、少なくとも1つのベクトル・レジスタと少なくとも1つのスカラー・レジスタとを含む複数のレジスタを指定するベクトル積和命令によって指定された第1のベクトル・レジスタに記憶された第1のベクトル値に対する処理の複数のレーンを含むベクトル積和演算を実施するように前記処理回路を制御するために、前記ベクトル積和命令を復号するための命令デコーダと
を備える装置であって、
処理の各レーンが、積値と加数値との和又は差に対応する前記結果ベクトル値のそれぞれの結果データ要素を生成することを含み、前記積値が、前記第1のベクトル値のそれぞれのデータ要素と乗数値との積に対応し、
処理の各レーンについて、前記乗数値と前記加数値とのうちの少なくとも一方が、前記ベクトル積和命令によって指定されたスカラー・レジスタに記憶されたスカラー値の少なくとも部分を含む、装置。 - 処理の各レーンについて、前記乗数値と前記加数値とのうちの一方が前記スカラー値の前記少なくとも部分を含み、前記乗数値と前記加数値とのうちの他方が、前記ベクトル積和命令によって指定された第2のベクトル・レジスタに記憶された第2のベクトル値のそれぞれのデータ要素を含む、請求項1に記載の装置。
- 前記ベクトル積和命令の第1の変形態に応答して、前記命令デコーダが、前記ベクトル積和演算を実施するように前記処理回路を制御するように構成され、前記ベクトル積和演算において、処理の各レーンについて、前記加数値が前記スカラー値の前記少なくとも部分を含み、前記乗数値が前記第2のベクトル値の前記それぞれのデータ要素を含む、請求項2に記載の装置。
- 前記ベクトル積和命令の第2の変形態に応答して、前記命令デコーダが、前記ベクトル積和演算を実施するように前記処理回路を制御するように構成され、前記ベクトル積和演算において、処理の各レーンについて、前記乗数値が前記スカラー値の前記少なくとも部分を含み、前記加数値が前記第2のベクトル値の前記それぞれのデータ要素を含む、請求項2及び3のいずれか一項に記載の装置。
- 前記処理回路は、前記結果ベクトル値の所与の部分がマスキングされるべき部分であることを識別するプレディケーション指示に応答して、前記所与の部分に関連する演算をマスキングするように構成された、請求項1から4までのいずれか一項に記載の装置。
- 前記結果データ要素の各部分についての前記プレディケーション指示が、前記ベクトル積和命令によって指定されたプレディケート・レジスタにおいて指定される、請求項5に記載の装置。
- 前記結果データ要素の各部分についての前記プレディケーション指示が、前記ベクトル積和命令の符号化から独立して、プレディケーション回路によって与えられるか、又はプレディケート・レジスタにおいて指定される、請求項5に記載の装置。
- 所与のベクトル命令に応答して、前記処理回路が、ベクトル値のセクションに各々対応する処理の複数のビートを実施するように構成され、
前記処理回路が、第1のベクトル命令と第2のベクトル命令との重複実行をサポートするように構成され、前記重複実行において、前記第2のベクトル命令のビートの第1のサブセットが、前記第1のベクトル命令のビートの第2のサブセットと並行して実施される、請求項1から7までのいずれか一項に記載の装置。 - 前記ベクトル積和命令の加算変形態に応答して、前記命令デコーダが、前記ベクトル積和演算を実施するように前記処理回路を制御するように構成され、ここで、処理の各レーンが、前記加数値と前記積値との前記和に対応する前記それぞれの結果データ要素を生成することを含む、請求項1から8までのいずれか一項に記載の装置。
- 前記ベクトル積和命令の減算変形態に応答して、前記命令デコーダが、前記ベクトル積和演算を実施するように前記処理回路を制御するように構成され、ここで、処理の各レーンが、前記加数値と前記積値との前記差に対応する前記それぞれの結果データ要素を生成することを含む、請求項1から9までのいずれか一項に記載の装置。
- 前記ベクトル積和命令の飽和変形態に応答して、前記命令デコーダは、処理の対応するレーンの結果が所定の範囲外にあるとき、前記結果ベクトル値の所与の結果データ要素を前記所定の範囲の最小値又は最大値にクランプするように前記処理回路を制御するように構成された、請求項1から10までのいずれか一項に記載の装置。
- 前記第1のベクトル値が、前記処理回路によってサポートされる複数のデータ要素サイズのうちの1つを有するデータ要素を含む、請求項1から11までのいずれか一項に記載の装置。
- 前記第1のベクトル値の前記データ要素のデータ要素サイズが前記スカラー・レジスタの幅よりも小さいとき、前記命令デコーダが、前記ベクトル積和演算を実施するように前記処理回路を制御するように構成され、前記乗数値と前記加数値とのうちの前記少なくとも一方が、前記データ要素サイズに対応する幅を有する前記スカラー値の部分に対応する、請求項1から12までのいずれか一項に記載の装置。
- 前記ベクトル積和命令の整数又は固定小数点変形態に応答して、前記命令デコーダが、整数又は固定小数点算術を使用して前記結果ベクトル値の前記それぞれの結果データ要素を生成するように前記処理回路を制御するように構成された、請求項1から13までのいずれか一項に記載の装置。
- 前記ベクトル積和命令の要素拡大変形態に応答して、前記命令デコーダが、Kビット結果データ要素を含む前記結果ベクトル値を生成するために、Jビット・データ要素を含む前記第1のベクトル値に対して前記ベクトル積和演算を実施するように前記処理回路を制御するように構成され、ここで、K>Jである、請求項14に記載の装置。
- 前記ベクトル積和命令の要素サイズ保存変形態に応答して、前記命令デコーダが、Jビット結果データ要素を含む前記結果ベクトル値を生成するために、Jビット・データ要素を含む前記第1のベクトル値に対して前記ベクトル積和演算を実施するように前記処理回路を制御するように構成された、請求項14及び15のいずれか一項に記載の装置。
- 前記ベクトル積和命令の前記要素サイズ保存変形態に応答して、前記命令デコーダが、前記ベクトル積和演算を実施するように前記処理回路を制御するように構成され、ここで、処理の所与のレーンについて、前記それぞれの結果データ要素が、
前記積値と前記加数値との前記和又は前記差に対応する値の最下位Jビットと、
前記和又は前記差に対応する前記値の最上位Jビットと、
前記和又は前記差に対応する前記値の最上位Jビットであって、前記最上位Jビットよりも小さい、前記和又は前記差に対応する前記値の少なくとも1つの下位ビットに基づいて丸められた、最上位Jビットと、
前記積値と前記加数値との前記和又は前記差に対応する2J+1ビット値のビット[2J−1:J]と、
前記2J+1ビット値のビット[J−1:0]のうちの少なくとも1つに基づいて丸められた、前記2J+1ビット値のビット[2J−1:J]と
のうちの1つに対応する、請求項16に記載の装置。 - 前記ベクトル積和命令の浮動小数点変形態に応答して、前記命令デコーダが、浮動小数点算術を使用して前記結果ベクトル値の前記それぞれの結果データ要素を生成するために、前記ベクトル積和演算を実施するように前記処理回路を制御するように構成された、請求項1から13までのいずれか一項に記載の装置。
- 前記ベクトル積和命令の分割浮動小数点変形態に応答して、前記命令デコーダが、前記ベクトル積和演算を実施するように前記処理回路を制御するように構成され、前記ベクトル積和演算において、処理の各レーンが、前記第1のベクトル値の前記それぞれのデータ要素と前記乗数値との丸められた積を生成することと、前記丸められた積と前記加数値との和又は差に従って前記結果ベクトル値の前記それぞれの結果データ要素を生成することとを含む、請求項18に記載の装置。
- 前記ベクトル積和命令の融合浮動小数点変形態に応答して、前記命令デコーダが、前記ベクトル積和演算を実施するように前記処理回路を制御するように構成され、前記ベクトル積和演算において、処理の各レーンが、前記第1のベクトル値の前記それぞれのデータ要素と前記乗数値との丸められていない積を生成することと、前記丸められていない積と前記加数値との和又は差に従って前記結果ベクトル値の前記それぞれの結果データ要素を生成することとを含む、請求項18及び19のいずれか一項に記載の装置。
- データ処理を実施するための手段と、
複数のデータ要素を含むベクトル値を記憶するための複数の手段と、
スカラー値を記憶するための複数の手段と、
複数の結果データ要素を含む結果ベクトル値を生成するために、ベクトル値を記憶するための少なくとも1つの手段とスカラー値を記憶するための少なくとも1つの手段とを指定するベクトル積和命令によって指定された、ベクトル値を記憶するための第1の手段に記憶された第1のベクトル値に対する処理の複数のレーンを含むベクトル積和演算を実施するように、データ処理を実施するための前記手段を制御するために、前記ベクトル積和命令を復号するための手段と
を備える装置であって、
処理の各レーンが、積値と加数値との和又は差に対応する前記結果ベクトル値のそれぞれの結果データ要素を生成することを含み、前記積値が、前記第1のベクトル値のそれぞれのデータ要素と乗数値との積に対応し、
処理の各レーンについて、前記乗数値と前記加数値とのうちの少なくとも一方が、前記ベクトル積和命令によって指定された、スカラー値を記憶するための手段に記憶されたスカラー値の少なくとも部分を含む、装置。 - 少なくとも1つのベクトル・レジスタと少なくとも1つのスカラー・レジスタとを含む複数のレジスタを指定するベクトル積和命令を復号するステップと、
前記ベクトル積和命令に応答して、複数の結果データ要素を含む結果ベクトル値を生成するために、前記ベクトル積和命令によって指定された第1のベクトル・レジスタに記憶された第1のベクトル値に対する処理の複数のレーンを含むベクトル積和演算を実施するように処理回路を制御するステップと
を含むデータ処理方法であって、
処理の各レーンが、積値と加数値との和又は差に対応する前記結果ベクトル値のそれぞれの結果データ要素を生成することを含み、前記積値が、前記第1のベクトル値のそれぞれのデータ要素と乗数値との積に対応し、
処理の各レーンについて、前記乗数値と前記加数値とのうちの少なくとも一方が、前記ベクトル積和命令によって指定されたスカラー・レジスタに記憶されたスカラー値の少なくとも部分を含む、データ処理方法。 - 請求項1から20までのいずれか一項に記載の装置に対応する、命令実行環境を与えるようにホスト・データ処理装置を制御するためのプログラム命令を含む、仮想マシン・コンピュータ・プログラム。
- 請求項23に記載の仮想マシン・コンピュータ・プログラムを記憶するコンピュータ可読記憶媒体。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1615526.9 | 2016-09-13 | ||
GB1615526.9A GB2553783B (en) | 2016-09-13 | 2016-09-13 | Vector multiply-add instruction |
PCT/GB2017/052386 WO2018051057A1 (en) | 2016-09-13 | 2017-08-14 | Vector multiply-add instruction |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2019526866A true JP2019526866A (ja) | 2019-09-19 |
JP7203016B2 JP7203016B2 (ja) | 2023-01-12 |
Family
ID=57234431
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019512719A Active JP7203016B2 (ja) | 2016-09-13 | 2017-08-14 | ベクトル積和命令 |
Country Status (9)
Country | Link |
---|---|
US (1) | US11188330B2 (ja) |
EP (1) | EP3513281B1 (ja) |
JP (1) | JP7203016B2 (ja) |
KR (1) | KR102413832B1 (ja) |
CN (1) | CN109661647B (ja) |
GB (1) | GB2553783B (ja) |
IL (1) | IL264683B (ja) |
TW (1) | TWI763698B (ja) |
WO (1) | WO2018051057A1 (ja) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11789734B2 (en) * | 2018-08-30 | 2023-10-17 | Advanced Micro Devices, Inc. | Padded vectorization with compile time known masks |
US11403256B2 (en) | 2019-05-20 | 2022-08-02 | Micron Technology, Inc. | Conditional operations in a vector processor having true and false vector index registers |
US11327862B2 (en) * | 2019-05-20 | 2022-05-10 | Micron Technology, Inc. | Multi-lane solutions for addressing vector elements using vector index registers |
US11507374B2 (en) | 2019-05-20 | 2022-11-22 | Micron Technology, Inc. | True/false vector index registers and methods of populating thereof |
US11340904B2 (en) | 2019-05-20 | 2022-05-24 | Micron Technology, Inc. | Vector index registers |
CN112286578A (zh) * | 2019-07-25 | 2021-01-29 | 北京百度网讯科技有限公司 | 由计算设备执行的方法、装置、设备和计算机可读存储介质 |
CN110750232B (zh) * | 2019-10-17 | 2023-06-20 | 电子科技大学 | 一种基于sram的并行乘加装置 |
CN111027018B (zh) * | 2019-12-20 | 2023-03-31 | 支付宝(杭州)信息技术有限公司 | 加速计算设备建模的方法、装置、计算设备及介质 |
US11887647B2 (en) * | 2020-04-09 | 2024-01-30 | Micron Technology, Inc. | Deep learning accelerator and random access memory with separate memory access connections |
US11355175B2 (en) | 2020-04-09 | 2022-06-07 | Micron Technology, Inc. | Deep learning accelerator and random access memory with a camera interface |
US11874897B2 (en) | 2020-04-09 | 2024-01-16 | Micron Technology, Inc. | Integrated circuit device with deep learning accelerator and random access memory |
CN112181494B (zh) * | 2020-09-28 | 2022-07-19 | 中国人民解放军国防科技大学 | 一种浮点物理寄存器文件的实现方法 |
CN113220268B (zh) * | 2021-06-11 | 2022-08-02 | 上海交通大学 | 光电混合乘累加计算结构 |
CN114579083B (zh) * | 2022-05-09 | 2022-08-05 | 上海擎昆信息科技有限公司 | 一种基于矢量处理器的数据处理装置和方法 |
US20240103858A1 (en) * | 2022-09-22 | 2024-03-28 | Apple Inc. | Instruction Support for Matrix Multiplication |
Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS641059A (en) * | 1986-07-16 | 1989-01-05 | Nec Corp | Vector computing system |
US5081573A (en) * | 1984-12-03 | 1992-01-14 | Floating Point Systems, Inc. | Parallel processing system |
JPH0476772A (ja) * | 1990-07-18 | 1992-03-11 | Hitachi Ltd | ベクトルデータ処理装置 |
US5226171A (en) * | 1984-12-03 | 1993-07-06 | Cray Research, Inc. | Parallel vector processing system for individual and broadcast distribution of operands and control information |
JPH0962655A (ja) * | 1995-08-24 | 1997-03-07 | Hitachi Ltd | マルチプロセッサシステム |
JP2001256199A (ja) * | 2000-03-13 | 2001-09-21 | Hitachi Ltd | データプロセッサ及びデータ処理システム |
JP2005174298A (ja) * | 2003-12-09 | 2005-06-30 | Arm Ltd | “ベクトル×スカラ”演算 |
JP2006039840A (ja) * | 2004-07-26 | 2006-02-09 | Nec Computertechno Ltd | ベクトル処理装置、情報処理装置、および、ベクトル処理方法 |
JP2006171827A (ja) * | 2004-12-13 | 2006-06-29 | Seiko Epson Corp | 演算処理装置および演算処理プログラム |
JP2008083947A (ja) * | 2006-09-27 | 2008-04-10 | Nec Computertechno Ltd | 情報処理装置、記憶領域制御方法及びプログラム |
JP2010539593A (ja) * | 2007-09-13 | 2010-12-16 | フリースケール セミコンダクター インコーポレイテッド | 重複オペランドを使用したsimdの内積演算 |
JP2011096254A (ja) * | 2009-10-30 | 2011-05-12 | Arm Ltd | 乗累算演算を実行するための装置および方法 |
JP2012505455A (ja) * | 2008-10-08 | 2012-03-01 | アーム・リミテッド | Simd積和演算動作を行うための装置及び方法 |
JP2013543173A (ja) * | 2010-09-24 | 2013-11-28 | インテル・コーポレーション | ベクトル先頭ゼロ、ベクトル末尾ゼロ、ベクトルオペランド1sカウントおよびベクトルパリティ計算のための機能ユニット |
JP2015194844A (ja) * | 2014-03-31 | 2015-11-05 | Necプラットフォームズ株式会社 | 情報処理装置及び制御方法 |
WO2016003740A1 (en) * | 2014-07-02 | 2016-01-07 | Via Alliance Semiconductor Co., Ltd. | Split-path fused multiply-accumulate operation using first and second sub-operations |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4974198A (en) | 1986-07-16 | 1990-11-27 | Nec Corporation | Vector processing system utilizing firm ware control to prevent delays during processing operations |
US5197130A (en) | 1989-12-29 | 1993-03-23 | Supercomputer Systems Limited Partnership | Cluster architecture for a highly parallel scalar/vector multiprocessor system |
US6857061B1 (en) * | 2000-04-07 | 2005-02-15 | Nintendo Co., Ltd. | Method and apparatus for obtaining a scalar value directly from a vector register |
JP3857614B2 (ja) * | 2002-06-03 | 2006-12-13 | 松下電器産業株式会社 | プロセッサ |
US7877582B2 (en) | 2008-01-31 | 2011-01-25 | International Business Machines Corporation | Multi-addressable register file |
US8667042B2 (en) * | 2010-09-24 | 2014-03-04 | Intel Corporation | Functional unit for vector integer multiply add instruction |
CN101986264B (zh) * | 2010-11-25 | 2013-07-31 | 中国人民解放军国防科学技术大学 | 用于simd向量微处理器的多功能浮点乘加运算装置 |
US9411585B2 (en) * | 2011-09-16 | 2016-08-09 | International Business Machines Corporation | Multi-addressable register files and format conversions associated therewith |
CN107102844B (zh) * | 2011-12-23 | 2021-06-08 | 英特尔公司 | 超级乘加(超级madd)指令 |
CN104011664B (zh) * | 2011-12-23 | 2016-12-28 | 英特尔公司 | 使用三个标量项的超级乘加(超级madd)指令 |
US9501276B2 (en) * | 2012-12-31 | 2016-11-22 | Intel Corporation | Instructions and logic to vectorize conditional loops |
US9275014B2 (en) * | 2013-03-13 | 2016-03-01 | Qualcomm Incorporated | Vector processing engines having programmable data path configurations for providing multi-mode radix-2x butterfly vector processing circuits, and related vector processors, systems, and methods |
CN103440121B (zh) * | 2013-08-20 | 2016-06-29 | 中国人民解放军国防科学技术大学 | 一种面向向量处理器的三角矩阵乘法向量化方法 |
CN104461449B (zh) * | 2014-11-14 | 2018-02-27 | 中国科学院数据与通信保护研究教育中心 | 基于向量指令的大整数乘法实现方法及装置 |
CN105373367B (zh) * | 2015-10-29 | 2018-03-02 | 中国人民解放军国防科学技术大学 | 支持标向量协同工作的向量simd运算结构 |
-
2016
- 2016-09-13 GB GB1615526.9A patent/GB2553783B/en active Active
-
2017
- 2017-08-14 CN CN201780054281.0A patent/CN109661647B/zh active Active
- 2017-08-14 KR KR1020197009798A patent/KR102413832B1/ko active IP Right Grant
- 2017-08-14 WO PCT/GB2017/052386 patent/WO2018051057A1/en unknown
- 2017-08-14 EP EP17752473.3A patent/EP3513281B1/en active Active
- 2017-08-14 US US16/324,239 patent/US11188330B2/en active Active
- 2017-08-14 JP JP2019512719A patent/JP7203016B2/ja active Active
- 2017-08-16 TW TW106127746A patent/TWI763698B/zh active
-
2019
- 2019-02-06 IL IL264683A patent/IL264683B/en unknown
Patent Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5081573A (en) * | 1984-12-03 | 1992-01-14 | Floating Point Systems, Inc. | Parallel processing system |
US5226171A (en) * | 1984-12-03 | 1993-07-06 | Cray Research, Inc. | Parallel vector processing system for individual and broadcast distribution of operands and control information |
JPS641059A (en) * | 1986-07-16 | 1989-01-05 | Nec Corp | Vector computing system |
JPH0476772A (ja) * | 1990-07-18 | 1992-03-11 | Hitachi Ltd | ベクトルデータ処理装置 |
JPH0962655A (ja) * | 1995-08-24 | 1997-03-07 | Hitachi Ltd | マルチプロセッサシステム |
JP2001256199A (ja) * | 2000-03-13 | 2001-09-21 | Hitachi Ltd | データプロセッサ及びデータ処理システム |
JP2005174298A (ja) * | 2003-12-09 | 2005-06-30 | Arm Ltd | “ベクトル×スカラ”演算 |
JP2006039840A (ja) * | 2004-07-26 | 2006-02-09 | Nec Computertechno Ltd | ベクトル処理装置、情報処理装置、および、ベクトル処理方法 |
JP2006171827A (ja) * | 2004-12-13 | 2006-06-29 | Seiko Epson Corp | 演算処理装置および演算処理プログラム |
JP2008083947A (ja) * | 2006-09-27 | 2008-04-10 | Nec Computertechno Ltd | 情報処理装置、記憶領域制御方法及びプログラム |
JP2010539593A (ja) * | 2007-09-13 | 2010-12-16 | フリースケール セミコンダクター インコーポレイテッド | 重複オペランドを使用したsimdの内積演算 |
JP2012505455A (ja) * | 2008-10-08 | 2012-03-01 | アーム・リミテッド | Simd積和演算動作を行うための装置及び方法 |
JP2011096254A (ja) * | 2009-10-30 | 2011-05-12 | Arm Ltd | 乗累算演算を実行するための装置および方法 |
JP2013543173A (ja) * | 2010-09-24 | 2013-11-28 | インテル・コーポレーション | ベクトル先頭ゼロ、ベクトル末尾ゼロ、ベクトルオペランド1sカウントおよびベクトルパリティ計算のための機能ユニット |
JP2015194844A (ja) * | 2014-03-31 | 2015-11-05 | Necプラットフォームズ株式会社 | 情報処理装置及び制御方法 |
WO2016003740A1 (en) * | 2014-07-02 | 2016-01-07 | Via Alliance Semiconductor Co., Ltd. | Split-path fused multiply-accumulate operation using first and second sub-operations |
Also Published As
Publication number | Publication date |
---|---|
US11188330B2 (en) | 2021-11-30 |
GB2553783B (en) | 2020-11-04 |
KR102413832B1 (ko) | 2022-06-28 |
GB2553783A (en) | 2018-03-21 |
TW201812571A (zh) | 2018-04-01 |
EP3513281A1 (en) | 2019-07-24 |
JP7203016B2 (ja) | 2023-01-12 |
IL264683B (en) | 2021-10-31 |
CN109661647B (zh) | 2023-03-03 |
EP3513281B1 (en) | 2022-11-23 |
KR20190045316A (ko) | 2019-05-02 |
US20190196825A1 (en) | 2019-06-27 |
GB201615526D0 (en) | 2016-10-26 |
TWI763698B (zh) | 2022-05-11 |
CN109661647A (zh) | 2019-04-19 |
WO2018051057A1 (en) | 2018-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7203016B2 (ja) | ベクトル積和命令 | |
EP3436928B1 (en) | Complex multiply instruction | |
WO2015118299A1 (en) | A data processing apparatus and method for performing segmented operations | |
CN108780395B (zh) | 矢量预测指令 | |
US9965275B2 (en) | Element size increasing instruction | |
CN111381880A (zh) | 加载-存储指令 | |
CN111381939A (zh) | 多线程处理器中的寄存器文件 | |
JP5326314B2 (ja) | プロセサおよび情報処理装置 | |
JP2006228190A (ja) | 入力値に逆数演算を実施して結果値を作り出すデータ処理装置および方法 | |
US11106465B2 (en) | Vector add-with-carry instruction | |
US11714641B2 (en) | Vector generating instruction for generating a vector comprising a sequence of elements that wraps as required | |
US11275712B2 (en) | SIMD controller and SIMD predication scheme |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200807 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20210818 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20210916 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20211206 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20220427 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20220725 |
|
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: 20221201 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20221226 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7203016 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |