RU2009114818A - Инструкция и логическая схема для выполнения операции скалярного произведения - Google Patents

Инструкция и логическая схема для выполнения операции скалярного произведения Download PDF

Info

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
Application number
RU2009114818/08A
Other languages
English (en)
Other versions
RU2421796C2 (ru
Inventor
Ронен ЗОХАР (US)
Ронен ЗОХАР
Марк СЕКОНИ (US)
Марк СЕКОНИ
Раджеш ПАРТХАСАРАТХИ (US)
Раджеш ПАРТХАСАРАТХИ
Сринивас ЧЕННУПАТИ (US)
Сринивас ЧЕННУПАТИ
Марк БАКСТОН (US)
Марк БАКСТОН
Чак ДЕСИЛЬВА (US)
Чак ДЕСИЛЬВА
Мохаммад А. АБДАЛЛАХ (US)
Мохаммад А. АБДАЛЛАХ
Original Assignee
Интел Корпорейшн (Us)
Интел Корпорейшн
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Интел Корпорейшн (Us), Интел Корпорейшн filed Critical Интел Корпорейшн (Us)
Publication of RU2009114818A publication Critical patent/RU2009114818A/ru
Application granted granted Critical
Publication of RU2421796C2 publication Critical patent/RU2421796C2/ru

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/544Methods 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/5443Sum of products
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic 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 битов данных.
RU2009114818/08A 2006-09-20 2007-09-20 Инструкция и логическая схема для выполнения операции скалярного произведения RU2421796C2 (ru)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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