IP Library Granted Patent US 11,669,586
Granted Patent B2
US 11,669,586 · App. 17/680,483 · Granted Jun 6, 2023

Systems and methods for combining low-mantissa units to achieve and exceed FP64 emulation of matrix multiplication

Inventors: Gregory Henry (Hillsboro, OR); Alexander Heinecke (San Jose, CA)
Assignee: Intel Corporation
G06F17/16G06F9/3001G06F9/3016G06F9/45508
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,669,586
App. No.
17/680,483
Granted
Jun 6, 2023
Kind
B2
Abstract

The present disclosure relates to an apparatus that includes decoding circuitry that decodes a single instruction. The single instruction includes an identifier of a first source operand, an identifier of a second source operand, an identifier of a destination, and an opcode indicative of execution circuitry is to multiply from the identified first source operand and the identified second source operand and store a result in the identified destination. Additionally, the apparatus includes execution circuitry to execute the single decoded instruction to calculate a dot product by calculating a plurality of products using data elements of the identified first and second operands using values less precise than the identified first and second source operands, summing the calculated products, and storing the summed products in the destination.

Claims (72)

1. An apparatus comprising:

decoding circuitry to decode a single instruction, the single instruction comprising:

an identifier of a first source operand, the first source operand comprising at least one first value having a first precision;

an identifier of a second source operand, the second source operand comprising at least one second value having a second precision;

an identifier of a destination; and

an opcode to indicate execution circuitry is to multiply from the first source operand and the second source operand and store a result in the destination; and

execution circuitry to execute the single decoded instruction to calculate a dot product of the first source operand and the second source operand by:

calculating a plurality of products by:

converting the at least one first value into a first plurality of values, wherein each value of the first plurality of values has a third precision that is less precise than the first precision;

converting the at least one second value into a second plurality of values, wherein each value of the second plurality of values has a fourth precision that is less precise than the second precision; and

multiplying respective values of the first plurality of values by respective values of the second plurality of values;

summing the calculated plurality of products to generate summed products; and

storing the summed products in the destination.

2. The apparatus of claim 1 , wherein the first and second source operands are matrices.

3. The apparatus of claim 1 , wherein the first precision and the second precision are equal.

4. The apparatus of claim 3 , wherein the at least one first value and the at least one second value are double-precision floating-point values.

5. The apparatus of claim 1 , wherein multiplying respective values of the first plurality of values by respective values of the second plurality of values comprises multiplying the respective values of the first plurality of values by the respective values of the second plurality of values using multiplier circuitry that is only configured to multiply values having precisions less precise than the first precision.

6. The apparatus of claim 1 , wherein apparatus comprises a processor, a processor core, or a system on a chip.

7. The apparatus of claim 1 , wherein each value of the first plurality of values comprises fewer exponent bits than the at least one first value.

8. The apparatus of claim 1 , wherein:

the first plurality of values comprises a first set of three values;

the second plurality of values comprises a second set of three values; and

the execution circuitry is to calculate the plurality of products by multiplying at least one value of the first set of three values by fewer than all values of the second set of three values.

9. The apparatus of claim 1 , wherein:

the execution circuitry comprises a floating-point unit configured to multiply the at least one first value by the at least one second value; and

the execution circuitry is to calculate the dot product without using the floating-point unit.

10. A non-transitory, computer-readable medium comprising instructions that, when executed, are configured to cause a processor to:

decode, via decoding circuitry of the processor, a single instruction, wherein the single instruction comprises:

an identifier of a first source operand, the first source operand comprising at least one first value having a first floating-point data format with a first precision;

an identifier of a second source operand, the second source operand comprising at least one second value having a second floating-point data format with a second precision;

an identifier of a destination; and

an opcode to indicate execution circuitry is to multiply from the first source operand and the second source operand and store a result in the destination; and

execute, via execution circuitry of the processor, the single decoded instruction to calculate a dot product of the first source operand and the second source operand by:

calculating a plurality of products by:

converting the at least one first value into a first plurality of values, wherein each value of the first plurality of values has a third floating-point data format with a third precision that is less precise than the first precision;

converting the at least one second value into a second plurality of values, wherein each value of the second plurality of values has a fourth floating-point data format with a fourth precision that is less precise than the second precision; and

multiplying respective values of the first plurality of values by respective values of the second plurality of values;

summing the calculated plurality of products to generate summed products; and

storing the summed products in the destination.

11. The non-transitory, computer-readable medium of claim 10 , wherein:

the second floating-point data format is the first floating-point data format; and

the fourth floating-point data format is the third floating-point data format.

12. The non-transitory, computer-readable medium of claim 11 , wherein the processor is configured to select the third floating-point data format from a plurality of floating-point data formats based on:

an amount of area of the processor associated with performing multiplication operations using a particular floating-point data format;

a number of multiplication operations associated with the particular floating-point data format; or

both.

13. The non-transitory, computer-readable medium of claim 11 , wherein the third floating-point data format is a user-selected data format.

14. The non-transitory computer-readable medium of claim 11 , wherein the third floating-point data format is bfloat16 floating-point format or a half-precision floating-point data format.

15. The non-transitory, computer-readable medium of claim 11 , wherein:

a third value included in the at least one first value comprises a first number of implicit mantissa bits;

the first plurality of values comprises at least two values having the third floating-point data format generated by converting the third value into the at least two values; and

the at least two values comprise a total number of implicit mantissa bits that is greater than the first number of implicit mantissa bits.

16. The non-transitory, computer-readable medium of claim 11 , wherein:

the second floating-point data format differs from the first floating-point data format;

the fourth floating-point data format differs from the third floating-point data format; or

both.

17. A processor-implemented method, comprising:

decoding, via decoding circuitry of a processor, a single instruction, wherein the single instruction comprises:

an identifier of a first source operand, the first source operand comprising at least one first value having a first floating-point data format with a first precision;

an identifier of a second source operand, the second source operand comprising at least one second value having a second floating-point data format with a second precision;

an identifier of a destination; and

an opcode to indicate execution circuitry is to multiply from the first source operand and the second source operand and store a result in the destination; and

executing, via execution circuitry of the processor, the single decoded instruction to calculate a dot product of the first source operand and the second source operand by:

calculating a plurality of products by:

converting the at least one first value into a first plurality of values, wherein each value of the first plurality of values has a third floating-point data format with a third precision that is less precise than the first precision;

converting the at least one second value into a second plurality of values, wherein each value of the second plurality of values has a fourth floating-point data format with a fourth precision that is less precise than the second precision; and

multiplying respective values of the first plurality of values by respective values of the second plurality of values;

summing the calculated plurality of products to generate summed products; and

storing the summed products in the destination.

18. The processor-implemented method of claim 17 , wherein the first plurality of values comprises at least three values.

19. The processor-implemented method of claim 17 , wherein the third floating-point data format comprises a first number of exponent bits that is less than or equal to a second number of exponent bits included in the first floating-point data format.

20. The processor-implemented method of claim 17 , wherein the first and second source operands comprise one or more matrices or vectors.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 15, 2026
From: INTEL CORPORATION
To: INTEL PRODUCTS IP LLC
Reel/Frame 076025/0681 →
Continuity (2)
Continuation 16913911 · Jun 26, 2020
Related Publication 20220391470A1 · Dec 8, 2022