RU2009114818A - Инструкция и логическая схема для выполнения операции скалярного произведения - Google Patents
Инструкция и логическая схема для выполнения операции скалярного произведения Download PDFInfo
- Publication number
- RU2009114818A RU2009114818A RU2009114818/08A RU2009114818A RU2009114818A RU 2009114818 A RU2009114818 A RU 2009114818A RU 2009114818/08 A RU2009114818/08 A RU 2009114818/08A RU 2009114818 A RU2009114818 A RU 2009114818A RU 2009114818 A RU2009114818 A RU 2009114818A
- Authority
- RU
- Russia
- Prior art keywords
- values
- operand
- data
- operands
- batch
- 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
-
- 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
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
-
- 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
-
- 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
-
- 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
-
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Executing Machine-Instructions (AREA)
- Complex Calculations (AREA)
- Image Processing (AREA)
Abstract
1. Считываемый устройством носитель информации, на котором сохранена инструкция, которая в случае ее выполнения с помощью устройства обеспечивает выполнение устройством способа, содержащего этапы, на которых ! определяют результат скалярного произведения, по меньшей мере, двух операндов, каждый из которых имеет множество пакетных значений первого типа данных; ! сохраняют результат скалярного произведения. ! 2. Считываемый устройством носитель по п.1, в котором первый тип данных представляет собой целочисленный тип данных. ! 3. Считываемый устройством носитель по п.1, в котором первый тип данных представляет собой тип данных с плавающей запятой. ! 4. Считываемый устройством носитель по п.1, в котором каждый из этих, по меньшей мере, двух операндов имеет только два пакетных значения. ! 5. Считываемый устройством носитель по п.1, в котором каждый из этих, по меньшей мере, двух операндов имеет только четыре пакетных значения. ! 6. Считываемый устройством носитель по п.1, в котором каждое из множества пакетных значений представляет собой значение с одиночной точностью и должно быть представлено 32 битами. ! 7. Считываемый устройством носитель по п.1, в котором каждое из множества пакетных значений представляет собой значение с двойной точностью и должно быть представлено 64 битами. ! 8. Считываемый устройством носитель по п.1, в котором эти, по меньшей мере, два операнда и результат скалярного произведения должны быть сохранены в, меньшей мере, в двух регистрах, предназначенных для сохранения вплоть 128 битов данных. ! 9. Устройство, содержащее ! первую логическую схему для выполнения инструкции скалярного произведения типа "оди�
Claims (39)
1. Считываемый устройством носитель информации, на котором сохранена инструкция, которая в случае ее выполнения с помощью устройства обеспечивает выполнение устройством способа, содержащего этапы, на которых
определяют результат скалярного произведения, по меньшей мере, двух операндов, каждый из которых имеет множество пакетных значений первого типа данных;
сохраняют результат скалярного произведения.
2. Считываемый устройством носитель по п.1, в котором первый тип данных представляет собой целочисленный тип данных.
3. Считываемый устройством носитель по п.1, в котором первый тип данных представляет собой тип данных с плавающей запятой.
4. Считываемый устройством носитель по п.1, в котором каждый из этих, по меньшей мере, двух операндов имеет только два пакетных значения.
5. Считываемый устройством носитель по п.1, в котором каждый из этих, по меньшей мере, двух операндов имеет только четыре пакетных значения.
6. Считываемый устройством носитель по п.1, в котором каждое из множества пакетных значений представляет собой значение с одиночной точностью и должно быть представлено 32 битами.
7. Считываемый устройством носитель по п.1, в котором каждое из множества пакетных значений представляет собой значение с двойной точностью и должно быть представлено 64 битами.
8. Считываемый устройством носитель по п.1, в котором эти, по меньшей мере, два операнда и результат скалярного произведения должны быть сохранены в, меньшей мере, в двух регистрах, предназначенных для сохранения вплоть 128 битов данных.
9. Устройство, содержащее
первую логическую схему для выполнения инструкции скалярного произведения типа "один поток команд, много потоков данных" (ОКМД) по, по меньшей мере, двум пакетным операндам первого типа данных.
10. Устройство по п.9, в котором инструкция скалярного произведения ОКМД включает в себя индикатор операнда источника, индикатор операнда назначения, по меньшей мере, один индикатор непосредственного значения.
11. Устройство по п.10, в котором индикатор операнда источника включает в себя адрес регистра источника, имеющего множество элементов, для сохранения множества пакетных значений.
12. Устройство по п.11, в котором индикатор операнда назначения включает в себя адрес регистра назначения, имеющего множество элементов, для сохранения множества пакетных значений.
13. Устройство по п.12, в котором индикатор непосредственного значения включает в себя а множество битов управления.
14. Устройство по п.9, в котором, по меньшей мере, каждый из двух пакетных операндов представляет собой целые числа с двойной точностью.
15. Устройство по п.9, в котором, по меньшей мере, каждый из двух пакетных операндов представляет собой значения с двойной точностью, с плавающей запятой.
16. Устройство по п.9, в котором, по меньшей мере, каждый из двух пакетных операндов представляет собой целые числа с одиночной точностью.
17. Устройство по п.9, в котором, по меньшей мере, каждый из двух пакетных операндов представляет собой значения с одиночной точностью, с плавающей запятой,
18. Система, содержащая
первое запоминающее устройство, предназначенное для сохранения инструкции скалярного произведения типа "один поток команд - много потоков данных" (ОКМД);
процессор, соединенный с первым запоминающим устройством для выполнения инструкции скалярного произведения ОКМД.
19. Система по п.18, в которой инструкция скалярного произведения ОКМД включает в себя индикатор операнда источника, индикатор операнда назначения, и, по меньшей мере, один индикатор непосредственного значения.
20. Система по п.19, в которой индикатор операнда источника включает в себя адрес регистра источника, имеющий множество элементов, для сохранения множества пакетных значений.
21. Система по п.20, в которой индикатор операнда назначения включает в себя адрес регистра назначения, имеющий множество элементов, для сохранения множества пакетных значений,
22. Система по п.21, в которой индикатор непосредственного значения включает в себя множество битов управления.
23. Система по п.18, в которой, по меньшей мере, каждый из двух пакетных операндов представляет собой целые числа с двойной точностью.
24. Система по п.18, в которой, по меньшей мере, каждый из двух пакетных операндов представляет собой значения с двойной точностью, с плавающей запятой.
25. Система по п.18, в которой, по меньшей мере, каждый из двух пакетных операндов представляет собой целые числа с одиночной точностью.
26. Устройство по п.18, в которой, по меньшей мере, каждый из двух пакетных операндов представляет собой значения с одиночной точностью с плавающей запятой.
27. Способ, содержащий этапы, на которых
умножают первый элемент данных первого пакетного операнда и первый элемент данных второго пакетного операнда для генерирования первого произведения;
умножают второй элемент данных первого пакетного операнда и второй элемент данных второго пакетного операнда для генерирования второго произведения;
суммируют первое произведение со вторым произведением для генерирования результата скалярного произведения.
28. Способ по п.27, дополнительно содержащий: умножают третий элемент данных первого пакетного операнда и третий элемент данных второго пакетного операнда для генерирования третьего произведения.
29. Способ по п.28, дополнительно содержащий следущее: умножают четвертый элемент данных первого пакетного операнда и четвертый элемент данных второго пакетного операнда, для генерирования четвертого произведения.
30. Процессор, содержащий
регистр источника, предназначенный для сохранения первого пакетного операнда, включающий в себя первое и второе значения данных;
регистр назначения, предназначенный для сохранения второго пакетного операнда, включающий в себя третье и четвертое значения данных;
логическую схему для выполнения инструкции скалярного произведения типа "один поток команд - много потоков данных" (ОКМД) в соответствии со значением управления, обозначенным инструкцией скалярного произведения,
причем логическая схема содержит первый умножитель для умножения первого и третьего значений данных для генерирования первого произведения, второй умножитель, для умножения второго и четвертого значений данных, для генерирования второго произведения, причем логическая схема дополнительно включает в себя, по меньшей мере, один сумматор, для суммирования первого и второго произведений для получения, по меньшей мере, одной суммы.
31. Процессор по п.30, в котором логическая схема дополнительно включает в себя первый мультиплексор для выбора между первым произведением и нулевым значением, в зависимости от первого бита значения управления.
32. Процессор по п.31, в котором логическая схема дополнительно включает в себя второй мультиплексор для выбора между вторым произведением и нулевым значением в зависимости от второго бита значения управления.
33. Процессор по п.32, в котором логическая схема дополнительно включает в себя третий мультиплексор для выбора между суммой и нулевым значением для сохранения в первом элементе регистра назначения.
34. Процессор по п.33, в котором логическая схема дополнительно включает в себя четвертый мультиплексор для выбора между суммой и нулевым значением для сохранения во втором элементе регистра назначения.
35. Процессор по п.30, в котором первое, второе, третье и четвертое значения данных представляют собой 64-битные целочисленные значения.
36. Процессор по п.30, в котором первое, второе, третье, четвертое значения данных представляют собой 64-битные значения с плавающей запятой.
37. Процессор по п.30, в котором первое, второе, третье и четвертое значения данных представляют собой 32-битные целочисленные значения.
38. Процессор по п.30, в котором первое, второе, третье и четвертое значения данных представляют собой 32-битные значения с плавающей запятой.
39. Процессор по п.30, в котором регистры источника и назначения предназначены для сохранения, по меньшей мере, 128 битов данных.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/524,852 US20080071851A1 (en) | 2006-09-20 | 2006-09-20 | Instruction and logic for performing a dot-product operation |
US11/524,852 | 2006-09-20 |
Publications (2)
Publication Number | Publication Date |
---|---|
RU2009114818A true RU2009114818A (ru) | 2010-10-27 |
RU2421796C2 RU2421796C2 (ru) | 2011-06-20 |
Family
ID=39189946
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2009114818/08A RU2421796C2 (ru) | 2006-09-20 | 2007-09-20 | Инструкция и логическая схема для выполнения операции скалярного произведения |
Country Status (7)
Country | Link |
---|---|
US (5) | US20080071851A1 (ru) |
JP (1) | JP4697639B2 (ru) |
KR (2) | KR101300431B1 (ru) |
CN (5) | CN105022605B (ru) |
DE (1) | DE112007002101T5 (ru) |
RU (1) | RU2421796C2 (ru) |
WO (1) | WO2008036859A1 (ru) |
Families Citing this family (92)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080071851A1 (en) * | 2006-09-20 | 2008-03-20 | Ronen Zohar | Instruction and logic for performing a dot-product operation |
US8332452B2 (en) * | 2006-10-31 | 2012-12-11 | International Business Machines Corporation | Single precision vector dot product with “word” vector write mask |
US9495724B2 (en) * | 2006-10-31 | 2016-11-15 | International Business Machines Corporation | Single precision vector permute immediate with “word” vector write mask |
KR20080067075A (ko) * | 2007-01-15 | 2008-07-18 | 주식회사 히타치엘지 데이터 스토리지 코리아 | 광디스크의 암호화 데이터 기록 및 재생방법 |
US8515052B2 (en) | 2007-12-17 | 2013-08-20 | Wai Wu | Parallel signal processing system and method |
US9513905B2 (en) * | 2008-03-28 | 2016-12-06 | Intel Corporation | Vector instructions to enable efficient synchronization and parallel reduction operations |
US9747105B2 (en) | 2009-12-17 | 2017-08-29 | Intel Corporation | Method and apparatus for performing a shift and exclusive or operation in a single instruction |
US8577948B2 (en) | 2010-09-20 | 2013-11-05 | Intel Corporation | Split path multiply accumulate unit |
US8688957B2 (en) | 2010-12-21 | 2014-04-01 | Intel Corporation | Mechanism for conflict detection using SIMD |
CN102184521B (zh) * | 2011-03-24 | 2013-03-06 | 苏州迪吉特电子科技有限公司 | 高性能图像处理系统及图像数据处理方法 |
US9672036B2 (en) * | 2011-09-26 | 2017-06-06 | Intel Corporation | Instruction and logic to provide vector loads with strides and masking functionality |
KR101877347B1 (ko) * | 2011-09-26 | 2018-07-12 | 인텔 코포레이션 | 벡터 로드-op/저장-op에 스트라이드 기능을 제공하는 명령어 및 로직 |
WO2013077845A1 (en) | 2011-11-21 | 2013-05-30 | Intel Corporation | Reducing power consumption in a fused multiply-add (fma) unit of a processor |
CN102520906A (zh) * | 2011-12-13 | 2012-06-27 | 中国科学院自动化研究所 | 支持定浮点可重构的向量长度可配置的向量点积累加网络 |
WO2013095558A1 (en) * | 2011-12-22 | 2013-06-27 | Intel Corporation | Method, apparatus and system for execution of a vector calculation instruction |
WO2013095582A1 (en) * | 2011-12-22 | 2013-06-27 | Intel Corporation | Systems, apparatuses, and methods for extracting a writemask from a register |
CN104137055B (zh) * | 2011-12-29 | 2018-06-05 | 英特尔公司 | 点积处理器、方法、系统和指令 |
WO2013101114A1 (en) * | 2011-12-29 | 2013-07-04 | Intel Corporation | Later stage read port reduction |
US9268596B2 (en) | 2012-02-02 | 2016-02-23 | Intel Corparation | Instruction and logic to test transactional execution status |
US20130311753A1 (en) * | 2012-05-19 | 2013-11-21 | Venu Kandadai | Method and device (universal multifunction accelerator) for accelerating computations by parallel computations of middle stratum operations |
WO2014004222A1 (en) * | 2012-06-29 | 2014-01-03 | Intel Corporation | Instruction and logic to test transactional execution status |
US9411584B2 (en) | 2012-12-29 | 2016-08-09 | Intel Corporation | Methods, apparatus, instructions, and logic to provide vector address conflict detection functionality |
US9411592B2 (en) | 2012-12-29 | 2016-08-09 | Intel Corporation | Vector address conflict resolution with vector population count functionality |
JP6378515B2 (ja) * | 2014-03-26 | 2018-08-22 | 株式会社メガチップス | Vliwプロセッサ |
US11544214B2 (en) * | 2015-02-02 | 2023-01-03 | Optimum Semiconductor Technologies, Inc. | Monolithic vector processor configured to operate on variable length vectors using a vector length register |
US9898286B2 (en) | 2015-05-05 | 2018-02-20 | Intel Corporation | Packed finite impulse response (FIR) filter processors, methods, systems, and instructions |
US20170046153A1 (en) * | 2015-08-14 | 2017-02-16 | Qualcomm Incorporated | Simd multiply and horizontal reduce operations |
US10423411B2 (en) | 2015-09-26 | 2019-09-24 | Intel Corporation | Data element comparison processors, methods, systems, and instructions |
US10007519B2 (en) * | 2015-12-22 | 2018-06-26 | Intel IP Corporation | Instructions and logic for vector bit field compression and expansion |
US20170185402A1 (en) * | 2015-12-23 | 2017-06-29 | Intel Corporation | Instructions and logic for bit field address and insertion |
US9875084B2 (en) * | 2016-04-28 | 2018-01-23 | Vivante Corporation | Calculating trigonometric functions using a four input dot product circuit |
US10275243B2 (en) | 2016-07-02 | 2019-04-30 | Intel Corporation | Interruptible and restartable matrix multiplication instructions, processors, methods, and systems |
US10049082B2 (en) | 2016-09-15 | 2018-08-14 | Altera Corporation | Dot product based processing elements |
CN106874796B (zh) * | 2017-02-16 | 2021-03-30 | 中云信安(深圳)科技有限公司 | 系统运行中指令流的安全检测和容错方法 |
GB2560159B (en) * | 2017-02-23 | 2019-12-25 | Advanced Risc Mach Ltd | Widening arithmetic in a data processing apparatus |
IL267998B2 (en) | 2017-02-23 | 2023-12-01 | Advanced Risc Mach Ltd | Element by vector operations in a data processing device |
EP3602278B1 (en) | 2017-03-20 | 2022-09-28 | Intel Corporation | Systems, methods, and apparatuses for tile matrix multiplication and accumulation |
CN106951211B (zh) * | 2017-03-27 | 2019-10-18 | 南京大学 | 一种可重构定浮点通用乘法器 |
US10474458B2 (en) | 2017-04-28 | 2019-11-12 | Intel Corporation | Instructions and logic to perform floating-point and integer operations for machine learning |
CN107220702B (zh) * | 2017-06-21 | 2020-11-24 | 北京图森智途科技有限公司 | 一种低计算能力处理设备的计算机视觉处理方法及装置 |
GB2563878B (en) * | 2017-06-28 | 2019-11-20 | Advanced Risc Mach Ltd | Register-based matrix multiplication |
US11275588B2 (en) | 2017-07-01 | 2022-03-15 | Intel Corporation | Context save with variable save state size |
US11803377B2 (en) * | 2017-09-08 | 2023-10-31 | Oracle International Corporation | Efficient direct convolution using SIMD instructions |
US10749502B2 (en) * | 2017-09-29 | 2020-08-18 | Intel Corporation | Apparatus and method for performing horizontal filter operations |
CN109725936B (zh) | 2017-10-30 | 2022-08-26 | 上海寒武纪信息科技有限公司 | 扩展计算指令的实现方法以及相关产品 |
CN109871236A (zh) * | 2017-12-01 | 2019-06-11 | 超威半导体公司 | 具有低功率并行矩阵乘法流水线的流处理器 |
US11669326B2 (en) * | 2017-12-29 | 2023-06-06 | Intel Corporation | Systems, methods, and apparatuses for dot product operations |
US11809869B2 (en) | 2017-12-29 | 2023-11-07 | Intel Corporation | Systems and methods to store a tile register pair to memory |
US11023235B2 (en) | 2017-12-29 | 2021-06-01 | Intel Corporation | Systems and methods to zero a tile register pair |
US11816483B2 (en) | 2017-12-29 | 2023-11-14 | Intel Corporation | Systems, methods, and apparatuses for matrix operations |
US11789729B2 (en) | 2017-12-29 | 2023-10-17 | Intel Corporation | Systems and methods for computing dot products of nibbles in two tile operands |
US11093247B2 (en) | 2017-12-29 | 2021-08-17 | Intel Corporation | Systems and methods to load a tile register pair |
US11409525B2 (en) * | 2018-01-24 | 2022-08-09 | Intel Corporation | Apparatus and method for vector multiply and accumulate of packed words |
US10921122B2 (en) * | 2018-02-06 | 2021-02-16 | Stmicroelectronics S.R.L. | Tilt event detection device, system and method |
US10664287B2 (en) | 2018-03-30 | 2020-05-26 | Intel Corporation | Systems and methods for implementing chained tile operations |
US10657442B2 (en) * | 2018-04-19 | 2020-05-19 | International Business Machines Corporation | Deep learning accelerator architecture with chunking GEMM |
US11093579B2 (en) | 2018-09-05 | 2021-08-17 | Intel Corporation | FP16-S7E8 mixed precision for deep learning and other algorithms |
US20210098001A1 (en) | 2018-09-13 | 2021-04-01 | Shanghai Cambricon Information Technology Co., Ltd. | Information processing method and terminal device |
US10970076B2 (en) | 2018-09-14 | 2021-04-06 | Intel Corporation | Systems and methods for performing instructions specifying ternary tile logic operations |
US11579883B2 (en) | 2018-09-14 | 2023-02-14 | Intel Corporation | Systems and methods for performing horizontal tile operations |
US10719323B2 (en) | 2018-09-27 | 2020-07-21 | Intel Corporation | Systems and methods for performing matrix compress and decompress instructions |
US10990396B2 (en) | 2018-09-27 | 2021-04-27 | Intel Corporation | Systems for performing instructions to quickly convert and use tiles as 1D vectors |
US10866786B2 (en) | 2018-09-27 | 2020-12-15 | Intel Corporation | Systems and methods for performing instructions to transpose rectangular tiles |
US10896043B2 (en) | 2018-09-28 | 2021-01-19 | Intel Corporation | Systems for performing instructions for fast element unpacking into 2-dimensional registers |
US10929143B2 (en) | 2018-09-28 | 2021-02-23 | Intel Corporation | Method and apparatus for efficient matrix alignment in a systolic array |
US10963256B2 (en) | 2018-09-28 | 2021-03-30 | Intel Corporation | Systems and methods for performing instructions to transform matrices into row-interleaved format |
US10642614B2 (en) * | 2018-09-29 | 2020-05-05 | Intel Corporation | Reconfigurable multi-precision integer dot-product hardware accelerator for machine-learning applications |
US10768895B2 (en) * | 2018-11-08 | 2020-09-08 | Movidius Limited | Dot product calculators and methods of operating the same |
US11366663B2 (en) | 2018-11-09 | 2022-06-21 | Intel Corporation | Systems and methods for performing 16-bit floating-point vector dot product instructions |
US10963246B2 (en) | 2018-11-09 | 2021-03-30 | Intel Corporation | Systems and methods for performing 16-bit floating-point matrix dot product instructions |
US10929503B2 (en) | 2018-12-21 | 2021-02-23 | Intel Corporation | Apparatus and method for a masked multiply instruction to support neural network pruning operations |
US11294671B2 (en) | 2018-12-26 | 2022-04-05 | Intel Corporation | Systems and methods for performing duplicate detection instructions on 2D data |
US11886875B2 (en) | 2018-12-26 | 2024-01-30 | Intel Corporation | Systems and methods for performing nibble-sized operations on matrix elements |
US20200210517A1 (en) * | 2018-12-27 | 2020-07-02 | Intel Corporation | Systems and methods to accelerate multiplication of sparse matrices |
US10942985B2 (en) | 2018-12-29 | 2021-03-09 | Intel Corporation | Apparatuses, methods, and systems for fast fourier transform configuration and computation instructions |
US10922077B2 (en) | 2018-12-29 | 2021-02-16 | Intel Corporation | Apparatuses, methods, and systems for stencil configuration and computation instructions |
US11934342B2 (en) | 2019-03-15 | 2024-03-19 | Intel Corporation | Assistance for hardware prefetch in cache access |
EP3938894B1 (en) | 2019-03-15 | 2023-08-30 | INTEL Corporation | Multi-tile memory management for detecting cross tile access, providing multi-tile inference scaling, and providing optimal page migration |
KR20210136994A (ko) * | 2019-03-15 | 2021-11-17 | 인텔 코포레이션 | 매트릭스 가속기 아키텍처 내에서의 시스톨릭 분리 |
US11016731B2 (en) | 2019-03-29 | 2021-05-25 | Intel Corporation | Using Fuzzy-Jbit location of floating-point multiply-accumulate results |
US11269630B2 (en) | 2019-03-29 | 2022-03-08 | Intel Corporation | Interleaved pipeline of floating-point adders |
US10990397B2 (en) | 2019-03-30 | 2021-04-27 | Intel Corporation | Apparatuses, methods, and systems for transpose instructions of a matrix operations accelerator |
US11175891B2 (en) | 2019-03-30 | 2021-11-16 | Intel Corporation | Systems and methods to perform floating-point addition with selected rounding |
US11403097B2 (en) | 2019-06-26 | 2022-08-02 | Intel Corporation | Systems and methods to skip inconsequential matrix operations |
US11334647B2 (en) | 2019-06-29 | 2022-05-17 | Intel Corporation | Apparatuses, methods, and systems for enhanced matrix multiplier architecture |
US11714875B2 (en) | 2019-12-28 | 2023-08-01 | Intel Corporation | Apparatuses, methods, and systems for instructions of a matrix operations accelerator |
KR102474054B1 (ko) * | 2020-06-22 | 2022-12-06 | 주식회사 퓨리오사에이아이 | 뉴럴네트워크 프로세서 |
US11263291B2 (en) * | 2020-06-26 | 2022-03-01 | Intel Corporation | Systems and methods for combining low-mantissa units to achieve and exceed FP64 emulation of matrix multiplication |
US11972230B2 (en) | 2020-06-27 | 2024-04-30 | Intel Corporation | Matrix transpose and multiply |
US11941395B2 (en) | 2020-09-26 | 2024-03-26 | Intel Corporation | Apparatuses, methods, and systems for instructions for 16-bit floating-point matrix dot product instructions |
US12001385B2 (en) | 2020-12-24 | 2024-06-04 | Intel Corporation | Apparatuses, methods, and systems for instructions for loading a tile of a matrix operations accelerator |
US12001887B2 (en) | 2020-12-24 | 2024-06-04 | Intel Corporation | Apparatuses, methods, and systems for instructions for aligning tiles of a matrix operations accelerator |
Family Cites Families (51)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US1020060A (en) * | 1910-08-19 | 1912-03-12 | Otis Elevator Co | Conveyer. |
US1467622A (en) * | 1922-04-20 | 1923-09-11 | Crawford E Mcmurphy | Nest box |
JPS6297060A (ja) * | 1985-10-23 | 1987-05-06 | Mitsubishi Electric Corp | デイジタルシグナルプロセツサ |
US5119484A (en) * | 1987-02-24 | 1992-06-02 | Digital Equipment Corporation | Selections between alternate control word and current instruction generated control word for alu in respond to alu output and current instruction |
US4949250A (en) * | 1988-03-18 | 1990-08-14 | Digital Equipment Corporation | Method and apparatus for executing instructions for a vector processing system |
EP0418412B1 (de) * | 1989-09-20 | 1994-11-30 | Deutsche ITT Industries GmbH | Schaltungsanordnung zur Produktsummenberechnung |
JPH05242065A (ja) * | 1992-02-28 | 1993-09-21 | Hitachi Ltd | 情報処理装置及びシステム |
US5669010A (en) * | 1992-05-18 | 1997-09-16 | Silicon Engines | Cascaded two-stage computational SIMD engine having multi-port memory and multiple arithmetic units |
US5311459A (en) * | 1992-09-17 | 1994-05-10 | Eastman Kodak Company | Selectively configurable integrated circuit device for performing multiple digital signal processing functions |
ZA938324B (en) * | 1992-11-24 | 1994-06-07 | Qualcomm Inc | Pilot carrier dot product circuit |
US5422799A (en) * | 1994-09-15 | 1995-06-06 | Morrison, Sr.; Donald J. | Indicating flashlight |
GB9514684D0 (en) * | 1995-07-18 | 1995-09-13 | Sgs Thomson Microelectronics | An arithmetic unit |
WO1997008608A1 (en) * | 1995-08-31 | 1997-03-06 | Intel Corporation | A set of instructions for operating on packed data |
US6385634B1 (en) * | 1995-08-31 | 2002-05-07 | Intel Corporation | Method for performing multiply-add operations on packed data |
US5793661A (en) * | 1995-12-26 | 1998-08-11 | Intel Corporation | Method and apparatus for performing multiply and accumulate operations on packed data |
US5983257A (en) * | 1995-12-26 | 1999-11-09 | Intel Corporation | System for signal processing using multiply-add operations |
US6128726A (en) * | 1996-06-04 | 2000-10-03 | Sigma Designs, Inc. | Accurate high speed digital signal processor |
US5996066A (en) * | 1996-10-10 | 1999-11-30 | Sun Microsystems, Inc. | Partitioned multiply and add/subtract instruction for CPU with integrated graphics functions |
JP3790307B2 (ja) | 1996-10-16 | 2006-06-28 | 株式会社ルネサステクノロジ | データプロセッサ及びデータ処理システム |
US5987490A (en) * | 1997-11-14 | 1999-11-16 | Lucent Technologies Inc. | Mac processor with efficient Viterbi ACS operation and automatic traceback store |
US6230253B1 (en) * | 1998-03-31 | 2001-05-08 | Intel Corporation | Executing partial-width packed data instructions |
US6115812A (en) * | 1998-04-01 | 2000-09-05 | Intel Corporation | Method and apparatus for efficient vertical SIMD computations |
JP2000322235A (ja) * | 1999-05-07 | 2000-11-24 | Sony Corp | 情報処理装置 |
US6484255B1 (en) * | 1999-09-20 | 2002-11-19 | Intel Corporation | Selective writing of data elements from packed data based upon a mask using predication |
US6574651B1 (en) * | 1999-10-01 | 2003-06-03 | Hitachi, Ltd. | Method and apparatus for arithmetic operation on vectored data |
US6353843B1 (en) * | 1999-10-08 | 2002-03-05 | Sony Corporation Of Japan | High performance universal multiplier circuit |
US7062526B1 (en) * | 2000-02-18 | 2006-06-13 | Texas Instruments Incorporated | Microprocessor with rounding multiply instructions |
US6557022B1 (en) * | 2000-02-26 | 2003-04-29 | Qualcomm, Incorporated | Digital signal processor with coupled multiply-accumulate units |
JP3940542B2 (ja) * | 2000-03-13 | 2007-07-04 | 株式会社ルネサステクノロジ | データプロセッサ及びデータ処理システム |
US6857061B1 (en) * | 2000-04-07 | 2005-02-15 | Nintendo Co., Ltd. | Method and apparatus for obtaining a scalar value directly from a vector register |
US6675286B1 (en) * | 2000-04-27 | 2004-01-06 | University Of Washington | Multimedia instruction set for wide data paths |
WO2001089098A2 (en) * | 2000-05-05 | 2001-11-22 | Lee Ruby B | A method and system for performing permutations with bit permutation instructions |
US6728874B1 (en) * | 2000-10-10 | 2004-04-27 | Koninklijke Philips Electronics N.V. | System and method for processing vectorized data |
WO2002037259A1 (en) * | 2000-11-01 | 2002-05-10 | Bops, Inc. | Methods and apparatus for efficient complex long multiplication and covariance matrix implementation |
US6774903B1 (en) * | 2000-11-06 | 2004-08-10 | Ati International Srl | Palette anti-sparkle enhancement |
US6922716B2 (en) * | 2001-07-13 | 2005-07-26 | Motorola, Inc. | Method and apparatus for vector processing |
US6813627B2 (en) * | 2001-07-31 | 2004-11-02 | Hewlett-Packard Development Company, L.P. | Method and apparatus for performing integer multiply operations using primitive multi-media operations that operate on smaller operands |
US20040054877A1 (en) * | 2001-10-29 | 2004-03-18 | Macy William W. | Method and apparatus for shuffling data |
US7158141B2 (en) * | 2002-01-17 | 2007-01-02 | University Of Washington | Programmable 3D graphics pipeline for multimedia applications |
JP3857614B2 (ja) * | 2002-06-03 | 2006-12-13 | 松下電器産業株式会社 | プロセッサ |
JP4263693B2 (ja) * | 2002-09-24 | 2009-05-13 | インターデイジタル テクノロジー コーポレーション | 計算量的に効率的な数学エンジン |
EP1623307B1 (en) * | 2003-05-09 | 2015-07-01 | QUALCOMM Incorporated | Processor reduction unit for accumulation of multiple operands with or without saturation |
US7539714B2 (en) * | 2003-06-30 | 2009-05-26 | Intel Corporation | Method, apparatus, and instruction for performing a sign operation that multiplies |
US6862027B2 (en) * | 2003-06-30 | 2005-03-01 | Microsoft Corp. | System and method for parallel execution of data generation tasks |
US7689641B2 (en) * | 2003-06-30 | 2010-03-30 | Intel Corporation | SIMD integer multiply high with round and shift |
US7546330B2 (en) * | 2003-09-30 | 2009-06-09 | Broadcom Corporation | Systems for performing multiply-accumulate operations on operands representing complex numbers |
KR20060044102A (ko) * | 2004-11-11 | 2006-05-16 | 삼성전자주식회사 | 복수 개의 동일한 부분곱 계산 모듈을 포함하는 다중곱셈기 및 다중 곱셈 방법 |
US8074051B2 (en) * | 2004-04-07 | 2011-12-06 | Aspen Acquisition Corporation | Multithreaded processor with multiple concurrent pipelines per thread |
US7475222B2 (en) * | 2004-04-07 | 2009-01-06 | Sandbridge Technologies, Inc. | Multi-threaded processor having compound instruction and operation formats |
US20060149804A1 (en) * | 2004-11-30 | 2006-07-06 | International Business Machines Corporation | Multiply-sum dot product instruction with mask and splat |
US20080071851A1 (en) * | 2006-09-20 | 2008-03-20 | Ronen Zohar | Instruction and logic for performing a dot-product operation |
-
2006
- 2006-09-20 US US11/524,852 patent/US20080071851A1/en not_active Abandoned
-
2007
- 2007-09-20 JP JP2007244076A patent/JP4697639B2/ja active Active
- 2007-09-20 CN CN201510348092.7A patent/CN105022605B/zh active Active
- 2007-09-20 CN CN201710964492.XA patent/CN107741842B/zh active Active
- 2007-09-20 KR KR1020117020282A patent/KR101300431B1/ko active IP Right Grant
- 2007-09-20 DE DE112007002101T patent/DE112007002101T5/de not_active Ceased
- 2007-09-20 CN CN201010535666.9A patent/CN102004628B/zh active Active
- 2007-09-20 KR KR1020097005675A patent/KR101105527B1/ko active IP Right Grant
- 2007-09-20 RU RU2009114818/08A patent/RU2421796C2/ru not_active IP Right Cessation
- 2007-09-20 CN CN2011104607310A patent/CN102622203A/zh active Pending
- 2007-09-20 CN CN2007101806477A patent/CN101187861B/zh active Active
- 2007-09-20 WO PCT/US2007/079098 patent/WO2008036859A1/en active Application Filing
-
2013
- 2013-03-15 US US13/844,366 patent/US20130290392A1/en not_active Abandoned
- 2013-09-30 US US14/042,696 patent/US20140032881A1/en not_active Abandoned
- 2013-09-30 US US14/042,681 patent/US20140032624A1/en not_active Abandoned
-
2017
- 2017-06-30 US US15/640,395 patent/US20170364476A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
CN107741842A (zh) | 2018-02-27 |
RU2421796C2 (ru) | 2011-06-20 |
US20140032624A1 (en) | 2014-01-30 |
CN105022605A (zh) | 2015-11-04 |
US20080071851A1 (en) | 2008-03-20 |
DE112007002101T5 (de) | 2009-07-09 |
KR20110112453A (ko) | 2011-10-12 |
CN102622203A (zh) | 2012-08-01 |
CN101187861B (zh) | 2012-02-29 |
US20170364476A1 (en) | 2017-12-21 |
CN107741842B (zh) | 2021-08-06 |
KR101300431B1 (ko) | 2013-08-27 |
JP2008077663A (ja) | 2008-04-03 |
CN105022605B (zh) | 2018-10-26 |
CN102004628B (zh) | 2015-07-22 |
CN102004628A (zh) | 2011-04-06 |
CN101187861A (zh) | 2008-05-28 |
KR101105527B1 (ko) | 2012-01-13 |
US20130290392A1 (en) | 2013-10-31 |
US20140032881A1 (en) | 2014-01-30 |
JP4697639B2 (ja) | 2011-06-08 |
KR20090042329A (ko) | 2009-04-29 |
WO2008036859A1 (en) | 2008-03-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2009114818A (ru) | Инструкция и логическая схема для выполнения операции скалярного произведения | |
JP5853303B2 (ja) | レジスタ初期化動作の最適化 | |
US8386754B2 (en) | Renaming wide register source operand with plural short register source operands for select instructions to detect dependency fast with existing mechanism | |
US9778911B2 (en) | Reducing power consumption in a fused multiply-add (FMA) unit of a processor | |
US7917568B2 (en) | X87 fused multiply-add instruction | |
JP5607832B2 (ja) | 汎用論理演算の方法および装置 | |
US6463525B1 (en) | Merging single precision floating point operands | |
JP2019197531A (ja) | 連鎖タイル演算を実施するためのシステムおよび方法 | |
KR20110025222A (ko) | 고속 회전 연산들을 수행하기 위한 시스템 및 방법 | |
EP3716047A1 (en) | Apparatus and method for controlling complex multiply-accumulate circuitry | |
US7085917B2 (en) | Multi-pipe dispatch and execution of complex instructions in a superscalar processor | |
US20030005261A1 (en) | Method and apparatus for attaching accelerator hardware containing internal state to a processing core | |
KR20020035739A (ko) | 복수 레지스터 지정이 가능한 simd 연산방식 | |
US20190102198A1 (en) | Systems, apparatuses, and methods for multiplication and accumulation of vector packed signed values | |
WO2022121090A1 (zh) | 支持高吞吐多精度乘法运算的处理器 | |
US7668897B2 (en) | Result partitioning within SIMD data processing systems | |
CN111814093A (zh) | 一种乘累加指令的处理方法和处理装置 | |
US7234044B1 (en) | Processor registers having state information | |
WO2021062178A1 (en) | Bit width reconfiguration using a shadow-latch configured register file | |
JP2014164659A (ja) | プロセッサ | |
US7254670B2 (en) | System, method, and apparatus for realizing quicker access of an element in a data structure | |
WO2019005151A1 (en) | SYSTEMS, APPARATUSES, AND METHODS FOR ADDING-MULTIPLYING COMPLEX DOUBLE NUMBERS OF SIGNED WORDS | |
WO2019005132A1 (en) | APPARATUS AND METHOD FOR MULTIPLICATION AND CUMULATION OF COMPLEX VALUES | |
US20090063609A1 (en) | Static 4:2 Compressor with Fast Sum and Carryout | |
US20210042124A1 (en) | Sharing instruction encoding space |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | The patent is invalid due to non-payment of fees |
Effective date: 20180921 |