IP Library › Granted Patent US 11,455,142
Granted Patent B2
US 11,455,142 · App. 16/432,358 · Granted Sep 27, 2022

Ultra-low precision floating-point fused multiply-accumulate unit

Inventors: Ankur Agrawal (Chappaqua, NY); Silvia Mueller (Altdorf, DE); Kailash Gopalakrishnan (New York, NY); Bruce Fleischer (Bedford Hills, NY); Balaram Sinharoy (Poughkeepsie, NY); Mingu Kang (Old Tappan, NJ)
Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
G06F7/5443
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,455,142
App. No.
16/432,358
Granted
Sep 27, 2022
Kind
B2
Abstract

Embodiments for implementing a fused multiply-multiply-accumulate (“FMMA”) unit by one or more processors in a computing system. Mantissas for two products, an exponent difference of the two products serving as an alignment shift amount for a product of the two products having a smallest exponent, and an alignment shift amount for an addend relative to an alternative product of the two product having a larger exponent may be determined in parallel. The addend may be aligned relative to the alternative product having the larger exponent. The product having the smallest exponent may be aligned relative to the alternative product having the larger exponent according to the alignment shift amount.

Claims (46)

1. A method, by one or more processors, for implementing a fused multiply-multiply-accumulate (FMMA) operation in a computing environment, comprising:

receiving, by the one or more processors, an instruction stored in a memory, wherein the instruction contains at least two operands of mixed bit-precision formats; and

executing the instruction, wherein, when executing the instruction, the one or more processors implement a FMMA unit to perform an internal rounding operation associated with floating point arithmetic of the instruction by performing each of:

determining by multiplier circuitry within the FMMA unit, in parallel, mantissas for two products, an exponent difference of the two products serving as an alignment shift amount for a product of the two products having a smallest exponent, and an alignment shift amount for an addend relative to an alternative product of the two products having a larger exponent, wherein the mantissas are pre-shifted prior to aligning the addend and the product relative to the alternative product, and wherein the addend and the product having the smallest exponent are aligned prior to receiving a select signal indicating to a selector to select between one of the pre-shifted mantissas when performing the alignment of the addend and the product relative to the alternative product;

aligning, by aligning circuitry within the FMMA unit, the addend relative to the alternative product having the larger exponent; and

aligning, by the aligning circuitry, the product having the smallest exponent relative to the alternative product having the larger exponent according to the alignment shift amount for the product of the two products having the smallest exponent.

2. The method of claim 1 , further including adding or subtracting the mantissas of the two products according to a sign of the addend and the two products.

3. The method of claim 1 , further including retaining a selected number of bits while discarding an alternative number of bits of the product for aligning the product having the smallest exponent relative to the alternative product having the larger exponent.

4. The method of claim 1 , further including retaining a selected number of bits while discarding an alternative number of bits of the addend for aligning the addend relative to the alternative product having the larger exponent.

5. The method of claim 1 , further including normalizing and rounding an intermediate summation or difference of aligned mantissas for each of the two products and the aligned addend to a targeted precision.

6. The method of claim 1 , further including:

performing a mixed-precision FMMA operation by using one or more inputs, one or more outputs, or a combination thereof in a selected format; or

performing a hybrid-fused FMMA operation by enabling a very low precision format (VLP) operand to use a plurality of formats.

7. The method of claim 1 , wherein the FMMA unit implements both a half-precision fused multiple add (FMA) operation and a very low precision format (VLP) FMMA operation, wherein the VLP is a format using less than sixteen bits comprising a sign bit, exponent bits (e), and mantissa bits (m), and the FMMA unit is selectively configured to perform the FMA operation or the FMMA operation.

8. A system for implementing a fused multiply-multiply-accumulate (FMMA) operation in a computing environment, comprising:

one or more hardware memory storing executable instructions;

one or more hardware processors; and

a FMMA unit implemented within the one or more hardware processors, wherein the one or more hardware processors are configured to:

receive, by the one or more hardware processors, one of the executable instructions stored in the one or more memory, wherein the instruction contains at least two operands of mixed bit-precision formats; and

execute the one of the executable instructions by implementing the FMMA unit to perform an internal rounding operation associated with floating point arithmetic performing each of:

determining by multiplier circuitry within the FMMA unit, in parallel, mantissas for two products, an exponent difference of the two products serving as an alignment shift amount for a product of the two products having a smallest exponent, and an alignment shift amount for an addend relative to an alternative product of the two products having a larger exponent, wherein the mantissas are pre-shifted prior to aligning the addend and the product relative to the alternative product, and wherein the addend and the product having the smallest exponent are aligned prior to receiving a select signal indicating to a selector to select between one of the pre-shifted mantissas when performing the alignment of the addend and the product relative to the alternative product;

aligning, by aligning circuitry within the FMMA unit, the addend relative to the alternative product having the larger exponent; and

aligning, by the aligning circuitry, the product having the smallest exponent relative to the alternative product having the larger exponent according to the alignment shift amount for the product of the two products having the smallest exponent.

9. The system of claim 8 , wherein the executable instructions further add or subtract the mantissas of the two products according to a sign of the addend and the two products.

10. The system of claim 8 , wherein the executable instructions further retain a selected number of bits while discarding an alternative number of bits of the product for aligning the product having the smallest exponent relative to the alternative product having the larger exponent.

11. The system of claim 8 , wherein the executable instructions further retain a selected number of bits while discarding an alternative number of bits of the addend for aligning the addend relative to the alternative product having the larger exponent.

12. The system of claim 8 , wherein the executable instructions further normalize and round an intermediate summation or difference of aligned mantissas for each of the two products and the aligned addend to a targeted precision.

13. The system of claim 8 , wherein the executable instructions further:

perform a mixed-precision FMMA operation by using one or more inputs, one or more outputs, or a combination thereof in a selected format; or

perform a hybrid-fused FMMA operation by enabling a very low precision format (VLP) operand to use a plurality of formats.

14. The system of claim 8 , wherein the FMMA unit implements both a half-precision fused multiple add (FMA) operation and a very low precision format (VLP) FMMA operation, wherein the VLP is a format using less than sixteen bits comprising a sign bit, exponent bits (e), and mantissa bits (m), and the FMMA unit is selectively configured to perform the FMA operation or the FMMA operation.

15. A computer program product for, by a processor, implementing a fused multiply-multiply-accumulate (FMMA) operation in a computing environment, the computer program product comprising a non-transitory computer-readable storage medium having computer-readable program code portions stored therein, the computer-readable program code portions comprising:

an executable portion that receives, by the processor, an instruction stored in a memory, wherein the instruction contains at least two operands of mixed bit-precision formats; and

an executable portion that executes the instruction, wherein, when executing the instruction, the one or more processors implement a FMMA unit to perform an internal rounding operation associated with floating point arithmetic of the instruction by performing each of:

determining, in parallel, mantissas for two products, an exponent difference of the two products serving as an alignment shift amount for a product of the two products having a smallest exponent, and an alignment shift amount for an addend relative to an alternative product of the two products having a larger exponent, wherein the mantissas are pre-shifted prior to aligning the addend and the product relative to the alternative product, and wherein the addend and the product having the smallest exponent are aligned prior to receiving a select signal indicating to a selector to select between one of the pre-shifted mantissas when performing the alignment of the addend and the product relative to the alternative product;

aligning, by aligning circuitry within the FMMA unit, the addend relative to the alternative product having the larger exponent; and

aligning, by the aligning circuitry, the product having the smallest exponent relative to the alternative product having the larger exponent according to the alignment shift amount for the product of the two products having the smallest exponent.

16. The computer program product of claim 15 , further including an executable portion that adds or subtracts the mantissas of the two products according to a sign of the addend and the two products.

17. The computer program product of claim 15 , further including an executable portion that:

retains a selected number of bits while discarding an alternative number of bits of the product for aligning the product having the smallest exponent relative to the alternative product having the larger exponent; and

retains a selected number of bits while discarding an alternative number of bits of the addend for aligning the addend relative to the alternative product having the larger exponent.

18. The computer program product of claim 15 , further including an executable portion that normalizes and rounds an intermediate summation or difference of aligned mantissas for each of the two products and the aligned addend to a targeted precision.

19. The computer program product of claim 15 , further including an executable portion that:

performs a mixed-precision FMMA operation by using one or more inputs, one or more outputs, or a combination thereof in a selected format; or

performs a hybrid-fused FMMA operation by enabling a very low precision format (VLP) operand to use a plurality of formats.

20. The computer program product of claim 15 , wherein the FMMA unit implements both a half-precision fused multiple add (FMA) operation and a very low precision format (VLP) FMMA operation, wherein the VLP is a format using less than sixteen bits comprising a sign bit, exponent bits (e), and mantissa bits (m), and the FMMA unit is selectively configured to perform the FMA operation or the FMMA operation.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 5, 2019
From: AGRAWAL, ANKUR; MUELLER, SILVIA; GOPALAKRISHNAN, KAILASH; FLEISCHER, BRUCE; SINHAROY, BALARAM; KANG, MINGU
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 049381/0691 →
Continuity (1)
Related Publication 20200387351A1 · Dec 10, 2020