TWI800118B - 用於融合乘加運算的系統、裝置及方法 - Google Patents
用於融合乘加運算的系統、裝置及方法 Download PDFInfo
- Publication number
- TWI800118B TWI800118B TW110143839A TW110143839A TWI800118B TW I800118 B TWI800118 B TW I800118B TW 110143839 A TW110143839 A TW 110143839A TW 110143839 A TW110143839 A TW 110143839A TW I800118 B TWI800118 B TW I800118B
- Authority
- TW
- Taiwan
- Prior art keywords
- apparatuses
- systems
- methods
- fused multiply
- multiply add
- Prior art date
Links
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/3001—Arithmetic instructions
- G06F9/30014—Arithmetic instructions with variable precision
-
- 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
-
- 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/30018—Bit or string 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/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/30105—Register structure
-
- 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/3017—Runtime instruction translation, e.g. macros
-
- 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
-
- 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/3818—Decoding for concurrent execution
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)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
WOPCT/US16/57991 | 2016-10-20 | ||
PCT/US2016/057991 WO2018075052A1 (en) | 2016-10-20 | 2016-10-20 | Systems, apparatuses, and methods for fused multiply add |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202217603A TW202217603A (zh) | 2022-05-01 |
TWI800118B true TWI800118B (zh) | 2023-04-21 |
Family
ID=62019029
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW106130175A TWI761367B (zh) | 2016-10-20 | 2017-09-04 | 用於融合乘加運算的系統、裝置及方法 |
TW112108762A TW202326409A (zh) | 2016-10-20 | 2017-09-04 | 用於融合乘加運算的系統、裝置及方法 |
TW110143839A TWI800118B (zh) | 2016-10-20 | 2017-09-04 | 用於融合乘加運算的系統、裝置及方法 |
Family Applications Before (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW106130175A TWI761367B (zh) | 2016-10-20 | 2017-09-04 | 用於融合乘加運算的系統、裝置及方法 |
TW112108762A TW202326409A (zh) | 2016-10-20 | 2017-09-04 | 用於融合乘加運算的系統、裝置及方法 |
Country Status (5)
Country | Link |
---|---|
US (7) | US11169802B2 (zh) |
EP (7) | EP4198718A1 (zh) |
CN (4) | CN109716290B (zh) |
TW (3) | TWI761367B (zh) |
WO (1) | WO2018075052A1 (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109716290B (zh) | 2016-10-20 | 2023-12-19 | 英特尔公司 | 用于经融合的乘加的***、装置和方法 |
US10483981B2 (en) * | 2016-12-30 | 2019-11-19 | Microsoft Technology Licensing, Llc | Highspeed/low power symbol compare |
WO2018211129A1 (en) * | 2017-05-19 | 2018-11-22 | Movidius Ltd. | Methods, systems and apparatus to improve convolution efficiency |
US10514924B2 (en) | 2017-09-29 | 2019-12-24 | Intel Corporation | Apparatus and method for performing dual signed and unsigned multiplication of packed data elements |
US10534838B2 (en) | 2017-09-29 | 2020-01-14 | Intel Corporation | Bit matrix multiplication |
US11256504B2 (en) | 2017-09-29 | 2022-02-22 | Intel Corporation | Apparatus and method for complex by complex conjugate multiplication |
US10802826B2 (en) * | 2017-09-29 | 2020-10-13 | Intel Corporation | Apparatus and method for performing dual signed and unsigned multiplication of packed data elements |
US11409525B2 (en) | 2018-01-24 | 2022-08-09 | Intel Corporation | Apparatus and method for vector multiply and accumulate of packed words |
US11366663B2 (en) | 2018-11-09 | 2022-06-21 | Intel Corporation | Systems and methods for performing 16-bit floating-point vector dot product instructions |
US11403097B2 (en) | 2019-06-26 | 2022-08-02 | Intel Corporation | Systems and methods to skip inconsequential matrix operations |
KR20210034999A (ko) * | 2019-09-23 | 2021-03-31 | 에스케이하이닉스 주식회사 | Aim 장치 및 aim 장치에서의 곱셈-누산 연산 방법 |
US20210306006A1 (en) | 2019-09-23 | 2021-09-30 | SK Hynix Inc. | Processing-in-memory (pim) devices |
CN112434256B (zh) * | 2020-12-03 | 2022-09-13 | 海光信息技术股份有限公司 | 矩阵乘法器和处理器 |
US12045612B2 (en) | 2022-09-12 | 2024-07-23 | International Business Machines Corporation | Special-purpose digital-compute hardware for efficient element-wise aggregation, scaling and offset |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW242678B (en) * | 1994-05-03 | 1995-03-11 | Advanced Risc Mach Ltd | Multiple instruction set mapping |
US5862067A (en) * | 1995-12-29 | 1999-01-19 | Intel Corporation | Method and apparatus for providing high numerical accuracy with packed multiply-add or multiply-subtract operations |
TW201523439A (zh) * | 2013-06-28 | 2015-06-16 | Intel Corp | 模式相依的頻寬負載至較寬暫存器處理器,方法和系統 |
Family Cites Families (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5784305A (en) * | 1995-05-01 | 1998-07-21 | Nec Corporation | Multiply-adder unit |
US5953241A (en) | 1995-08-16 | 1999-09-14 | Microunity Engeering Systems, Inc. | Multiplier array processing system with enhanced utilization at lower precision for group multiply and sum instruction |
US7395298B2 (en) * | 1995-08-31 | 2008-07-01 | Intel Corporation | Method and apparatus for performing multiply-add operations on packed data |
US6385634B1 (en) | 1995-08-31 | 2002-05-07 | Intel Corporation | Method for performing multiply-add operations on packed data |
US5880984A (en) | 1997-01-13 | 1999-03-09 | International Business Machines Corporation | Method and apparatus for performing high-precision multiply-add calculations using independent multiply and add instruments |
US6014684A (en) * | 1997-03-24 | 2000-01-11 | Intel Corporation | Method and apparatus for performing N bit by 2*N-1 bit signed multiplication |
US7430578B2 (en) * | 2001-10-29 | 2008-09-30 | Intel Corporation | Method and apparatus for performing multiply-add operations on packed byte data |
US6944747B2 (en) * | 2002-12-09 | 2005-09-13 | Gemtech Systems, Llc | Apparatus and method for matrix data processing |
FR2853425B1 (fr) * | 2003-04-07 | 2006-01-13 | Atmel Corp | Sequence de multiplication efficace pour operandes a grands nombres entiers plus larges que le materiel multiplicateur |
US9465611B2 (en) * | 2003-10-02 | 2016-10-11 | Broadcom Corporation | Processor execution unit with configurable SIMD functional blocks for complex number operations |
JP4571903B2 (ja) * | 2005-12-02 | 2010-10-27 | 富士通株式会社 | 演算処理装置,情報処理装置,及び演算処理方法 |
US8122078B2 (en) | 2006-10-06 | 2012-02-21 | Calos Fund, LLC | Processor with enhanced combined-arithmetic capability |
US20080252652A1 (en) | 2007-04-13 | 2008-10-16 | Guofang Jiao | Programmable graphics processing element |
TW200910779A (en) | 2007-08-31 | 2009-03-01 | Univ Nat Taipei Technology | Fast calculation method for characteristic value of software-based wireless decoder |
US8316071B2 (en) | 2009-05-27 | 2012-11-20 | Advanced Micro Devices, Inc. | Arithmetic processing unit that performs multiply and multiply-add operations with saturation and method therefor |
US9104510B1 (en) * | 2009-07-21 | 2015-08-11 | Audience, Inc. | Multi-function floating point unit |
US8458442B2 (en) * | 2009-08-26 | 2013-06-04 | International Business Machines Corporation | Method and structure of using SIMD vector architectures to implement matrix multiplication |
US8990282B2 (en) * | 2009-09-21 | 2015-03-24 | Arm Limited | Apparatus and method for performing fused multiply add floating point operation |
CN101751244B (zh) | 2010-01-04 | 2013-05-08 | 清华大学 | 微处理器 |
GB2478731B (en) | 2010-03-15 | 2013-08-21 | Advanced Risc Mach Ltd | Operand size control |
CN108647044B (zh) * | 2011-12-28 | 2022-09-13 | 英特尔公司 | 浮点缩放处理器、方法、***和指令 |
US20140195783A1 (en) * | 2011-12-29 | 2014-07-10 | Krishnan Karthikeyan | Dot product processors, methods, systems, and instructions |
WO2013101232A1 (en) * | 2011-12-30 | 2013-07-04 | Intel Corporation | Packed rotate processors, methods, systems, and instructions |
US10095516B2 (en) * | 2012-06-29 | 2018-10-09 | Intel Corporation | Vector multiplication with accumulation in large register space |
US9626184B2 (en) | 2013-06-28 | 2017-04-18 | Intel Corporation | Processors, methods, systems, and instructions to transcode variable length code points of unicode characters |
US9417843B2 (en) | 2013-08-20 | 2016-08-16 | Apple Inc. | Extended multiply |
CN106030510A (zh) * | 2014-03-26 | 2016-10-12 | 英特尔公司 | 三源操作数浮点加法处理器、方法、***和指令 |
US9766888B2 (en) * | 2014-03-28 | 2017-09-19 | Intel Corporation | Processor instruction to store indexes of source data elements in positions representing a sorted order of the source data elements |
US10001995B2 (en) * | 2015-06-02 | 2018-06-19 | Intel Corporation | Packed data alignment plus compute instructions, processors, methods, and systems |
US11023231B2 (en) * | 2016-10-01 | 2021-06-01 | Intel Corporation | Systems and methods for executing a fused multiply-add instruction for complex numbers |
US10146535B2 (en) * | 2016-10-20 | 2018-12-04 | Intel Corporatoin | Systems, apparatuses, and methods for chained fused multiply add |
CN109716290B (zh) | 2016-10-20 | 2023-12-19 | 英特尔公司 | 用于经融合的乘加的***、装置和方法 |
US10489063B2 (en) * | 2016-12-19 | 2019-11-26 | Intel Corporation | Memory-to-memory instructions to accelerate sparse-matrix by dense-vector and sparse-vector by dense-vector multiplication |
CN110337635B (zh) | 2017-03-20 | 2023-09-19 | 英特尔公司 | 用于点积操作的***、方法和装置 |
US11768681B2 (en) * | 2018-01-24 | 2023-09-26 | Intel Corporation | Apparatus and method for vector multiply and accumulate of packed bytes |
US11409525B2 (en) * | 2018-01-24 | 2022-08-09 | Intel Corporation | Apparatus and method for vector multiply and accumulate of packed words |
-
2016
- 2016-10-20 CN CN201680089435.5A patent/CN109716290B/zh active Active
- 2016-10-20 CN CN202111331383.7A patent/CN113885833A/zh active Pending
- 2016-10-20 EP EP23156307.3A patent/EP4198718A1/en active Pending
- 2016-10-20 EP EP16919077.4A patent/EP3529695B1/en active Active
- 2016-10-20 EP EP21207387.8A patent/EP3989062A1/en active Pending
- 2016-10-20 US US16/338,324 patent/US11169802B2/en active Active
- 2016-10-20 EP EP22203441.5A patent/EP4148563A1/en active Pending
- 2016-10-20 EP EP21207389.4A patent/EP3971710A1/en active Pending
- 2016-10-20 EP EP21207395.1A patent/EP3971711A1/en active Pending
- 2016-10-20 WO PCT/US2016/057991 patent/WO2018075052A1/en unknown
- 2016-10-20 EP EP21207379.5A patent/EP3971709A1/en active Pending
- 2016-10-20 CN CN202211329959.0A patent/CN115480730A/zh active Pending
- 2016-10-20 CN CN202310172571.2A patent/CN116009814A/zh active Pending
-
2017
- 2017-09-04 TW TW106130175A patent/TWI761367B/zh active
- 2017-09-04 TW TW112108762A patent/TW202326409A/zh unknown
- 2017-09-04 TW TW110143839A patent/TWI800118B/zh active
-
2021
- 2021-09-03 US US17/465,905 patent/US11507369B2/en active Active
- 2021-09-07 US US17/468,258 patent/US11526353B2/en active Active
- 2021-09-28 US US17/487,611 patent/US11544058B2/en active Active
- 2021-09-28 US US17/487,628 patent/US11526354B2/en active Active
-
2022
- 2022-10-13 US US17/964,964 patent/US11782709B2/en active Active
-
2023
- 2023-08-28 US US18/456,699 patent/US20230418602A1/en active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW242678B (en) * | 1994-05-03 | 1995-03-11 | Advanced Risc Mach Ltd | Multiple instruction set mapping |
US5862067A (en) * | 1995-12-29 | 1999-01-19 | Intel Corporation | Method and apparatus for providing high numerical accuracy with packed multiply-add or multiply-subtract operations |
TW201523439A (zh) * | 2013-06-28 | 2015-06-16 | Intel Corp | 模式相依的頻寬負載至較寬暫存器處理器,方法和系統 |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI800118B (zh) | 用於融合乘加運算的系統、裝置及方法 | |
EP3513265A4 (en) | SYSTEMS AND METHODS FOR DETERMINING ALMOST COLLISIONS | |
EP3435848A4 (en) | SYSTEMS AND METHODS FOR INTERCONNECTING COMMUNICATION | |
EP3516920A4 (en) | METHOD AND SYSTEM FOR SELECTING USER PLAN PATH | |
EP3468729A4 (en) | SYSTEMS AND METHODS FOR ARC AND KNOT DESIGN AND MANUFACTURE | |
EP3532902A4 (en) | PATH DETERMINATION SYSTEMS AND METHODS | |
EP3320420A4 (en) | Systems and methods for recommending recommended service location | |
EP3563235A4 (en) | HETEROGENEOUS ELECTRONIC COMPUTING SYSTEMS, METHODS AND APPARATUS | |
EP3386734A4 (en) | SYSTEMS, DEVICES AND METHODS FOR DEPOSIT-BASED THREE DIMENSIONAL PRINTING | |
EP3160220A4 (en) | Agronomic system, methods and apparatuses | |
EP3294503A4 (en) | Systems, methods and apparatus for guided tools | |
EP3417314A4 (en) | GEOLOCATION SYSTEMS, METHODS AND DEVICES | |
EP3224815A4 (en) | Geolocation bracelet, systems, and methods | |
EP3157696A4 (en) | Apparatuses, systems and methods for three-dimensional printing | |
EP3284178A4 (en) | Systems and methods for constellation superposition | |
EP3090239A4 (en) | Spectrometry systems, methods, and applications | |
EP3248360A4 (en) | Systems and methods for trusted path secure communication | |
EP3259386A4 (en) | Systems and methods for performing immunoassays | |
EP3157466A4 (en) | Prostheticcapsular devices, systems, and methods | |
EP3141073A4 (en) | Methods, apparatus, and systems for determining communication priority | |
EP3103038A4 (en) | Systems, apparatuses and methods for communication flow modification | |
EP3122408A4 (en) | Pressurizing masks, systems and methods | |
EP3230132A4 (en) | Smartkey apparatuses, methods and systems | |
EP3655873A4 (en) | SYSTEMS AND PROCEDURES FOR BLOCKCHAIN-DEPENDENT SURGICAL SETS | |
EP3461078A4 (en) | METHOD, DEVICE, AND PATH DETERMINATION SYSTEM |