JP2020533691A - Simd命令を用いた効率的な直接畳み込み - Google Patents
Simd命令を用いた効率的な直接畳み込み Download PDFInfo
- Publication number
- JP2020533691A JP2020533691A JP2020513910A JP2020513910A JP2020533691A JP 2020533691 A JP2020533691 A JP 2020533691A JP 2020513910 A JP2020513910 A JP 2020513910A JP 2020513910 A JP2020513910 A JP 2020513910A JP 2020533691 A JP2020533691 A JP 2020533691A
- Authority
- JP
- Japan
- Prior art keywords
- vector
- convolution
- vectors
- data
- instruction
- 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 577
- 238000000034 method Methods 0.000 claims description 50
- 238000000605 extraction Methods 0.000 claims description 30
- 238000013527 convolutional neural network Methods 0.000 claims description 4
- 230000015654 memory Effects 0.000 description 32
- 238000004364 calculation method Methods 0.000 description 27
- 238000010586 diagram Methods 0.000 description 12
- 238000013459 approach Methods 0.000 description 10
- 238000012545 processing Methods 0.000 description 10
- 238000013528 artificial neural network Methods 0.000 description 9
- 238000010801 machine learning Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 208000009119 Giant Axonal Neuropathy Diseases 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 201000003382 giant axonal neuropathy 1 Diseases 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 230000001131 transforming effect Effects 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/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
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/15—Correlation function computation including computation of convolution 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
- 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; 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, look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
- G06F9/3887—Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Abstract
Description
Claims (20)
- ベクトルに対する畳み込みを実行するように構成されているプロセッサであって、前記ベクトルに対する前記畳み込みを実行するために、前記プロセッサが、複数のベクトル命令を実行するように構成されており、前記複数のベクトル命令の各々が、複数のデータビットの複数のデータレーンに対する演算を実行するように構成されており、前記複数のベクトル命令が、
複数のソースベクトルをロードすることであって、前記複数のソースベクトルをロードするために、前記複数のベクトル命令が、中央ベクトル、前記ベクトルの第1のデータレーンの前に1つ以上のデータレーンを開始する複数のデータレーンの左ベクトル、および前記ベクトルの前記第1のデータレーンの後に1つ以上のデータレーンを開始する複数のデータレーンの右ベクトルをロードするように構成されている、ロードすることと、
1つ以上の出力ベクトルを生成することであって、前記1つ以上の出力ベクトルを生成するために、前記複数のベクトル命令が、前記1つ以上の出力ベクトルに、前記畳み込みのためのそれぞれの重み付け値によってスケーリングされた前記複数のソースベクトルの各々を加算するように構成されている、生成することと、を含む、システム。 - 前記左ベクトルおよび前記右ベクトルをロードするために、前記複数のベクトル命令が、
前記ベクトルの直前の前ベクトルをロードし、
前記ベクトルの直後に次ベクトルをロードし、
ベクトル抽出命令を実行して、前記前ベクトルと前記ベクトルを用いて前記左ベクトルを生成し、
別のベクトル抽出命令を実行して、前記ベクトルと前記次ベクトルを用いて前記右ベクトルを生成するように構成されている、請求項1に記載のシステム。 - 前記ベクトル抽出命令が、
第1のベクトルレジスタを第2のベクトルレジスタに連結して、中間結果を生成し、
前記中間結果を複数のレーン左にシフトし、
前記中間結果の上部を含む出力ベクトルを生成するように構成されている、請求項2に記載のシステム。 - 前記複数のベクトル命令は、さらに、前記畳み込みのための複数の重み付け値の1つ以上の重み付けベクトルをロードするように構成されており、
前記1つ以上の前記出力ベクトルのうちの特定の1つに、前記畳み込みのためのそれぞれの重み付け値によってスケーリングされた前記複数のソースベクトルの各々を加算するために、前記複数のベクトル命令は、前記複数のソースベクトルのそれぞれに対するベクトルスケーリング命令を含み、前記ベクトルスケーリング命令が、
前記1つ以上の重み付けベクトルのうちの特定の1つの特定のレーンから、前記畳み込みのためのそれぞれの重み付け値をロードし、
前記複数のソースベクトルのうちの1つの複数のデータレーンの各々に、前記それぞれの重み付け値を乗算して、スケーリングベクトルを生成し、
前記1つ以上の出力ベクトルのうちの前記特定の1つに前記スケーリングベクトルを加算する、ように構成されている、請求項1に記載のシステム。 - 前記ベクトルに対する前記畳み込みは、ストライド値を実装し、含まれる各データレーンに対する前記畳み込みにおける省略されるデータレーンの値は、前記ストライド値に基づき、前記複数のソースベクトルをロードするために、前記複数のベクトル命令が、
前記ベクトルの直前の前ベクトルをロードし、
前記ベクトルの直後の次ベクトルをロードし、
ベクトル抽出命令を実行して、前記前ベクトル、前記ベクトルおよび前記次ベクトルを用いて第1の中間ベクトルおよび第2の中間ベクトルを生成し、
ベクトルシャッフル命令を実行して、前記第1の中間ベクトルおよび前記第2の中間ベクトルを用いて前記左ベクトルをロードし、
ベクトルシャッフル命令を実行して、前記ベクトルおよび前記次ベクトルを用いて前記中央ベクトルと前記右ベクトルをロードする、ように構成されている、請求項1に記載のシステム。 - 前記畳み込みが多次元畳み込みであり、前記1つ以上の出力ベクトルが複数の出力ベクトルを含む、請求項1に記載のシステム。
- 前記プロセッサが、畳み込みニューラルネットワークの一部として前記畳み込みを実行するように構成されている、請求項1に記載のシステム。
- ベクトル命令を実装するプロセッサを含むコンピュータによって、ベクトルの畳み込みを実行することであって、
中央ベクトル、前記ベクトルの第1のデータレーンの前に1つ以上のデータレーンを開始する複数のデータレーンの左ベクトル、および前記ベクトルの前記第1のデータレーンの後に1つ以上のデータレーンを開始する複数のデータレーンの右ベクトルを含む複数のソースベクトルをロードすることと、
前記複数のソースベクトルの重み付け和を含む1つ以上の出力ベクトルを生成することであって、前記1つ以上の出力ベクトルを生成することが、前記1つ以上の出力ベクトルに、前記畳み込みのためのそれぞれの重み付け値によってスケーリングされた前記複数のソースベクトルの各々を加算することを含む、生成することと、を含む、実行することとを含み、
ベクトル命令は、各々が複数のデータビットを含む複数のデータレーンを含む1つ以上のデータレジスタについて動作する命令である、方法。 - 前記左ベクトルおよび右ベクトルの前記ロードが、
前記ベクトルの直前の前ベクトルをロードすることと、
前記ベクトルの直後の次ベクトルをロードすることと、
ベクトル抽出命令を実行して、前記前ベクトルと前記ベクトルを用いて前記左ベクトルを生成することと、
前記ベクトル抽出命令を実行して、前記ベクトルと前記次ベクトルを用いて前記右ベクトルを生成することと、を含む、請求項8に記載の方法。 - 前記ベクトル抽出命令を実行することが、
第1のベクトルレジスタを第2のベクトルレジスタに連結して、中間結果を生成することと、
前記中間結果を複数のレーン左にシフトすることと、
前記中間結果の上部を含む出力ベクトルを生成することと、含む、請求項9に記載の方法。 - 前記ベクトルに対する前記畳み込み演算を実行することが、さらに、前記畳み込みのための複数の重み付け値を含む1つ以上の重み付けベクトルをロードすることを含み、
前記1つ以上の前記出力ベクトルのうちの特定の1つに、前記畳み込みのためのそれぞれの重み付け値によってスケーリングされた前記複数のソースベクトルの各々を加えることが、前記複数のソースベクトルの各々に対してベクトルスケーリング命令を含み、前記ベクトルスケーリング命令を実行することが、
前記1つ以上の重み付けベクトルのうちの特定の1つの特定のレーンから、それぞれの重み付け値をロードすることと、
前記重み付け値によってスケーリングされた前記複数のソースベクトルのうちの前記1つのそれぞれのデータレーンを含むスケーリングベクトルを生成することと、
前記1つ以上の出力ベクトルのうちの前記特定の1つに前記スケーリングベクトルを加算することと、を含む、請求項8に記載の方法。 - 前記畳み込みが多次元畳み込みであり、前記1つ以上の出力ベクトルが複数の出力ベクトルを含む、請求項8に記載の方法。
- 前記畳み込みが、畳み込みニューラルネットワークの一部として行われる、請求項8に記載の方法。
- 複数のベクトル命令を記憶する非一時的コンピュータ読み取り可能記憶媒体であって、前記複数のベクトル命令が、プロセッサ上で実行されると、前記プロセッサにベクトルの畳み込みを実行させ、前記複数のベクトル命令が、
複数のソースベクトルをロードすることであって、ベクトルが複数のデータビットの複数のデータレーンを含み、前記複数のソースベクトルが、中央ベクトル、前記ベクトルの第1のデータレーンの前に1つ以上のデータレーンを開始するデータレーンを含む左ベクトル、および前記ベクトルの第1のデータレーンの後に1つ以上のデータレーンを開始するデータレーンを含む右ベクトルを含む、ロードすることと、
前記複数のソースベクトルの重み付け和を含む1つ以上の出力ベクトルを生成することであって、1つ以上の出力ベクトルを生成することが、前記1つ以上の出力ベクトルに、畳み込みのそれぞれの重み付け値によってスケーリングされた前記複数のソースベクトルの各々を加算することを含む、生成することと、を含む、非一時的コンピュータ読み取り可能記憶媒体。 - 前記左ベクトルおよび右ベクトルの前記ロードが、
前記ベクトルの直前の前ベクトルをロードすることと、
前記ベクトルの直後の次ベクトルをロードすることと、
ベクトル抽出命令を実行して、前記前ベクトルと前記ベクトルを用いて前記左ベクトルを生成することと、
前記ベクトル抽出命令を実行して、前記ベクトルと前記次ベクトルを用いて前記右ベクトルを生成することと、を含む、請求項14に記載の非一時的コンピュータ読み取り可能記憶媒体。 - 前記ベクトル抽出命令を実行することが、
第1のベクトルレジスタを第2のベクトルレジスタに連結して、中間結果を生成することと、
前記中間結果を複数のレーン左にシフトすることと、
前記中間結果の上部を含む出力ベクトルを生成することと、含む、請求項15に記載の非一時的コンピュータ読み取り可能記憶媒体。 - 前記ベクトルに前記畳み込み演算を実行することが、さらに、前記畳み込みのための複数の重み付け値を含む1つ以上の重み付けベクトルをロードすることを含み、
前記1つ以上の複数のソースベクトルのうちの特定の1つに、前記畳み込みのためのそれぞれの重み付け値によってスケーリングされた前記複数のソースベクトルのうちの各々を加算することが、前記複数のソースベクトルのうちの各々に対して、
前記1つ以上の重み付けベクトルのうちの指定された1つのレーンの特定のレーンからそれぞれの重み付け値をロードすることと、
前記重み付け値によってスケーリングされた前記複数のソースベクトルのうちの1つのそれぞれのデータレーンを含むスケーリングベクトルを生成することと、
前記1つ以上の出力ベクトルのうちの前記特定の1つに前記スケーリングベクトルを加算することと、行うベクトルスケーリング命令を実行することを含む、請求項14に記載の非一時的コンピュータ読み取り可能記憶媒体。 - 前記ベクトル上の前記畳み込みがストライド値を実装し、含める各データレーンに対して前記畳み込みにおいて省略するデータレーンの値が前記ストライド値に基づき、前記複数のソースベクトルのロードが、
前記ベクトルの直前の前ベクトルをロードすることと、
前記ベクトルの直後の次ベクトルをロードすることと、
ベクトル抽出命令を実行して、前記前ベクトル、前記ベクトルおよび前記次ベクトルを用いて第1の中間ベクトルおよび第2の中間ベクトルを生成することと、
ベクトルシャッフル命令を実行して、前記第1の中間ベクトルおよび前記第2の中間ベクトルを用いて前記左ベクトルをロードすることと、
ベクトルシャッフル命令を実行して、前記ベクトルおよび前記次ベクトルを用いて前記中央ベクトルと前記右ベクトルをロードすることと、を含む、請求項14に記載の非一時的なコンピュータ読み取り可能記憶媒体。 - 前記畳み込みが多次元畳み込みであり、前記1つ以上の出力ベクトルが複数の出力ベクトルを含む、請求項14に記載の非一時的コンピュータ読み取り可能記憶媒体。
- 前記畳み込みが、畳み込みニューラルネットワークの一部である、請求項14に記載の非一時的コンピュータ読み取り可能記憶媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2023132932A JP2023160833A (ja) | 2017-09-08 | 2023-08-17 | Simd命令を用いた効率的な直接畳み込み |
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762556274P | 2017-09-08 | 2017-09-08 | |
US62/556,274 | 2017-09-08 | ||
US15/941,975 US11803377B2 (en) | 2017-09-08 | 2018-03-30 | Efficient direct convolution using SIMD instructions |
US15/941,975 | 2018-03-30 | ||
PCT/US2018/049666 WO2019051027A1 (en) | 2017-09-08 | 2018-09-06 | EFFECTIVE DIRECT CONVOLUTION USING HMIS INSTRUCTIONS |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2023132932A Division JP2023160833A (ja) | 2017-09-08 | 2023-08-17 | Simd命令を用いた効率的な直接畳み込み |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2020533691A true JP2020533691A (ja) | 2020-11-19 |
JP2020533691A5 JP2020533691A5 (ja) | 2021-10-14 |
JP7335231B2 JP7335231B2 (ja) | 2023-08-29 |
Family
ID=65631104
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020513910A Active JP7335231B2 (ja) | 2017-09-08 | 2018-09-06 | Simd命令を用いた効率的な直接畳み込み |
JP2023132932A Pending JP2023160833A (ja) | 2017-09-08 | 2023-08-17 | Simd命令を用いた効率的な直接畳み込み |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2023132932A Pending JP2023160833A (ja) | 2017-09-08 | 2023-08-17 | Simd命令を用いた効率的な直接畳み込み |
Country Status (5)
Country | Link |
---|---|
US (2) | US11803377B2 (ja) |
EP (1) | EP3676700B1 (ja) |
JP (2) | JP7335231B2 (ja) |
CN (1) | CN111213125B (ja) |
WO (1) | WO2019051027A1 (ja) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10747844B2 (en) * | 2017-12-12 | 2020-08-18 | Tesla, Inc. | Systems and methods for converting a matrix input to a vectorized input for a matrix processor |
US10565285B2 (en) * | 2017-12-18 | 2020-02-18 | International Business Machines Corporation | Processor and memory transparent convolutional lowering and auto zero padding for deep neural network implementations |
US20190392287A1 (en) | 2018-06-22 | 2019-12-26 | Samsung Electronics Co., Ltd. | Neural processor |
CN111813447B (zh) * | 2019-04-12 | 2022-11-08 | 杭州中天微系统有限公司 | 一种数据拼接指令的处理方法和处理装置 |
US11671111B2 (en) | 2019-04-17 | 2023-06-06 | Samsung Electronics Co., Ltd. | Hardware channel-parallel data compression/decompression |
US11211944B2 (en) | 2019-04-17 | 2021-12-28 | Samsung Electronics Co., Ltd. | Mixed-precision compression with random access |
US11880760B2 (en) | 2019-05-01 | 2024-01-23 | Samsung Electronics Co., Ltd. | Mixed-precision NPU tile with depth-wise convolution |
US20210049474A1 (en) * | 2019-08-13 | 2021-02-18 | Samsung Electronics Co., Ltd. | Neural network method and apparatus |
US11726950B2 (en) * | 2019-09-28 | 2023-08-15 | Intel Corporation | Compute near memory convolution accelerator |
US11475283B2 (en) * | 2019-10-24 | 2022-10-18 | Apple Inc. | Multi dimensional convolution in neural network processor |
US20210182025A1 (en) * | 2019-12-12 | 2021-06-17 | Samsung Electronics Co., Ltd. | Accelerating 2d convolutional layer mapping on a dot product architecture |
CN111178505B (zh) * | 2019-12-23 | 2023-04-07 | 福建星网视易信息系统有限公司 | 卷积神经网络的加速方法和计算机可读存储介质 |
CN111797985B (zh) * | 2020-07-22 | 2022-11-22 | 哈尔滨工业大学 | 一种基于gpu的卷积运算内存访问优化方法 |
CN112633505B (zh) * | 2020-12-24 | 2022-05-27 | 苏州浪潮智能科技有限公司 | 一种基于risc-v的人工智能推理方法和系统 |
US20220413853A1 (en) * | 2021-06-25 | 2022-12-29 | Intel Corporation | Apparatuses, methods, and systems for a packed data convolution instruction with shift control and width control |
CN117313803B (zh) * | 2023-11-28 | 2024-02-02 | 进迭时空(杭州)科技有限公司 | 基于risc-v向量处理器架构的滑动窗口2d卷积计算方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03189868A (ja) * | 1989-12-20 | 1991-08-19 | Akira Iwata | データ処理プロセツサ |
US20150086134A1 (en) * | 2013-09-20 | 2015-03-26 | The Board Of Trustees Of The Leland Stanford Junior University | Low power programmable image processor |
US20150261534A1 (en) * | 2014-03-13 | 2015-09-17 | Intel Corporation | Packed two source inter-element shift merge processors, methods, systems, and instructions |
US20170024218A1 (en) * | 2015-07-20 | 2017-01-26 | Qualcomm Incorporated | Sliding window operation |
Family Cites Families (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6489868A (en) | 1987-09-30 | 1989-04-05 | Sony Corp | Video signal processing circuit |
US5734874A (en) * | 1994-04-29 | 1998-03-31 | Sun Microsystems, Inc. | Central processing unit with integrated graphics functions |
DE69519449T2 (de) * | 1994-05-05 | 2001-06-21 | Conexant Systems Inc | Raumzeigersdatenpfad |
US7085795B2 (en) | 2001-10-29 | 2006-08-01 | Intel Corporation | Apparatus and method for efficient filtering and convolution of content data |
US6061711A (en) * | 1996-08-19 | 2000-05-09 | Samsung Electronics, Inc. | Efficient context saving and restoring in a multi-tasking computing system environment |
US5801975A (en) * | 1996-12-02 | 1998-09-01 | Compaq Computer Corporation And Advanced Micro Devices, Inc. | Computer modified to perform inverse discrete cosine transform operations on a one-dimensional matrix of numbers within a minimal number of instruction cycles |
US5909572A (en) * | 1996-12-02 | 1999-06-01 | Compaq Computer Corp. | System and method for conditionally moving an operand from a source register to a destination register |
US5933650A (en) * | 1997-10-09 | 1999-08-03 | Mips Technologies, Inc. | Alignment and ordering of vector elements for single instruction multiple data processing |
US6115812A (en) * | 1998-04-01 | 2000-09-05 | Intel Corporation | Method and apparatus for efficient vertical SIMD computations |
ATE467171T1 (de) * | 1998-08-24 | 2010-05-15 | Microunity Systems Eng | System mit breiter operandenarchitektur und verfahren |
US7685212B2 (en) | 2001-10-29 | 2010-03-23 | Intel Corporation | Fast full search motion estimation with SIMD merge instruction |
US7725521B2 (en) * | 2001-10-29 | 2010-05-25 | Intel Corporation | Method and apparatus for computing matrix transformations |
US6954841B2 (en) * | 2002-06-26 | 2005-10-11 | International Business Machines Corporation | Viterbi decoding for SIMD vector processors with indirect vector element access |
GB2395306B (en) * | 2002-11-15 | 2006-02-15 | Imagination Tech Ltd | A configurable processor architecture |
US7689641B2 (en) | 2003-06-30 | 2010-03-30 | Intel Corporation | SIMD integer multiply high with round and shift |
GB2409065B (en) * | 2003-12-09 | 2006-10-25 | Advanced Risc Mach Ltd | Multiplexing operations in SIMD processing |
GB2409063B (en) | 2003-12-09 | 2006-07-12 | Advanced Risc Mach Ltd | Vector by scalar operations |
US7328230B2 (en) * | 2004-03-26 | 2008-02-05 | Intel Corporation | SIMD four-data element average instruction |
US7623732B1 (en) | 2005-04-26 | 2009-11-24 | Mercury Computer Systems, Inc. | Method and apparatus for digital image filtering with discrete filter kernels using graphics hardware |
US20080071851A1 (en) * | 2006-09-20 | 2008-03-20 | Ronen Zohar | Instruction and logic for performing a dot-product operation |
US8255884B2 (en) | 2008-06-06 | 2012-08-28 | International Business Machines Corporation | Optimized scalar promotion with load and splat SIMD instructions |
US20100180100A1 (en) | 2009-01-13 | 2010-07-15 | Mavrix Technology, Inc. | Matrix microprocessor and method of operation |
CN101923534B (zh) | 2009-06-10 | 2012-02-01 | 新奥特(北京)视频技术有限公司 | 应用sse指令集对视音频信号的对称卷积核进行卷积的方法 |
US8732437B2 (en) * | 2010-01-26 | 2014-05-20 | Oracle America, Inc. | Low-overhead misalignment and reformatting support for SIMD |
US9778902B2 (en) | 2011-10-27 | 2017-10-03 | Intel Corporation | Software digital front end (SoftDFE) signal processing |
CN102495721A (zh) * | 2011-12-02 | 2012-06-13 | 南京大学 | 一种支持fft加速的simd向量处理器 |
CN104025033B (zh) * | 2011-12-30 | 2017-11-21 | 英特尔公司 | 利用控制操纵的simd可变移位和循环 |
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 |
US9813223B2 (en) | 2013-04-17 | 2017-11-07 | Intel Corporation | Non-linear modeling of a physical system using direct optimization of look-up table values |
US9684509B2 (en) * | 2013-11-15 | 2017-06-20 | Qualcomm Incorporated | Vector processing engines (VPEs) employing merging circuitry in data flow paths between execution units and vector data memory to provide in-flight merging of output vector data stored to vector data memory, and related vector processing instructions, systems, and methods |
US10402196B2 (en) | 2015-05-11 | 2019-09-03 | Ceva D.S.P. Ltd. | Multi-dimensional sliding window operation for a vector processor, including dividing a filter into a plurality of patterns for selecting data elements from a plurality of input registers and performing calculations in parallel using groups of the data elements and coefficients |
US9582726B2 (en) * | 2015-06-24 | 2017-02-28 | Qualcomm Incorporated | Systems and methods for image processing in a deep convolution network |
US20170357894A1 (en) * | 2016-06-10 | 2017-12-14 | Apple Inc. | Data packing for convolution of artificial neural networks |
US10282204B2 (en) * | 2016-07-02 | 2019-05-07 | Intel Corporation | Systems, apparatuses, and methods for strided load |
CN106940815B (zh) * | 2017-02-13 | 2020-07-28 | 西安交通大学 | 一种可编程卷积神经网络协处理器ip核 |
CN106991473A (zh) * | 2017-03-30 | 2017-07-28 | 中国人民解放军国防科学技术大学 | 面向向量处理器的基于simd的平均值值池化并行处理方法 |
US10824938B2 (en) * | 2017-04-24 | 2020-11-03 | Intel Corporation | Specialized fixed function hardware for efficient convolution |
JP6958027B2 (ja) * | 2017-07-03 | 2021-11-02 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
-
2018
- 2018-03-30 US US15/941,975 patent/US11803377B2/en active Active
- 2018-09-06 CN CN201880066852.7A patent/CN111213125B/zh active Active
- 2018-09-06 JP JP2020513910A patent/JP7335231B2/ja active Active
- 2018-09-06 EP EP18779130.6A patent/EP3676700B1/en active Active
- 2018-09-06 WO PCT/US2018/049666 patent/WO2019051027A1/en unknown
-
2023
- 2023-08-17 JP JP2023132932A patent/JP2023160833A/ja active Pending
- 2023-09-22 US US18/472,482 patent/US20240012644A1/en active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03189868A (ja) * | 1989-12-20 | 1991-08-19 | Akira Iwata | データ処理プロセツサ |
US20150086134A1 (en) * | 2013-09-20 | 2015-03-26 | The Board Of Trustees Of The Leland Stanford Junior University | Low power programmable image processor |
US20150261534A1 (en) * | 2014-03-13 | 2015-09-17 | Intel Corporation | Packed two source inter-element shift merge processors, methods, systems, and instructions |
US20170024218A1 (en) * | 2015-07-20 | 2017-01-26 | Qualcomm Incorporated | Sliding window operation |
Also Published As
Publication number | Publication date |
---|---|
CN111213125B (zh) | 2023-11-07 |
CN111213125A (zh) | 2020-05-29 |
JP2023160833A (ja) | 2023-11-02 |
US20240012644A1 (en) | 2024-01-11 |
EP3676700B1 (en) | 2022-12-28 |
US11803377B2 (en) | 2023-10-31 |
JP7335231B2 (ja) | 2023-08-29 |
US20190079764A1 (en) | 2019-03-14 |
EP3676700A1 (en) | 2020-07-08 |
WO2019051027A1 (en) | 2019-03-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7335231B2 (ja) | Simd命令を用いた効率的な直接畳み込み | |
KR102353241B1 (ko) | 가속화된 수학 엔진 | |
CN110770701B (zh) | 基于寄存器的矩阵乘法 | |
US11175920B2 (en) | Efficient work execution in a parallel computing system | |
TWI603262B (zh) | 緊縮有限脈衝響應(fir)濾波器處理器,方法,系統及指令 | |
KR20060056855A (ko) | 프로세서 | |
US20210089610A1 (en) | Memory device and method | |
Shahbahrami et al. | Matrix register file and extended subwords: two techniques for embedded media processors | |
JP7324754B2 (ja) | ベクトル・キャリー付き加算命令 | |
KR102586259B1 (ko) | 레지스터 기반의 복소수 처리 | |
US11669489B2 (en) | Sparse systolic array design | |
US20240111530A1 (en) | Matrix multiplication unit with flexible precision operations | |
Chiu et al. | A multi-streaming SIMD architecture for multimedia applications | |
Regnault et al. | SPC5: an efficient SpMV framework vectorized using ARM SVE and x86 AVX-512 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210906 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20210906 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20220930 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20221025 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230124 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20230404 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230704 |
|
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: 20230718 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20230817 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7335231 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |