Fused Multiply-Add Engine for Mixed Binary Integer and Floating Point Output

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current floating-point units face challenges in efficiently performing high-precision floating-point computations, particularly in deep learning neural networks, where numerous floating-point operations are required, leading to computationally demanding workloads and limited throughput due to the need for precise decimal places across various operations.

Innovation Solution

A floating-point unit with a Fused Multiply-Add (FMA) engine that processes three floating-point inputs to produce either a binary integer or floating-point output based on a selector, optimizing computations by avoiding additional conversion operations and enhancing precision through a result format selector.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If floating-point computations are performed with high precision to satisfy different application needs, then measurement precision is improved, but device complexity increases and productivity decreases

Engineering Contradiction:
Improvefloating-point computation precisionVSAvoidFPU complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The FPU is segmented into specialized functional blocks: an FMA engine for fused multiply-add operations, a conversion engine for format transformations, and a selector mechanism for choosing between binary integer and floating-point output formats. This segmentation allows each block to be optimized independently, reducing overall complexity while maintaining high precision capabilities.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The FPU is designed as a multi-functional unit that can perform both floating-point computations and binary integer operations through the selector. The same hardware infrastructure (FMA engine, conversion engine) serves multiple purposes, reducing the need for separate dedicated circuits for each operation type, thereby reducing device complexity while maintaining precision.

Inventive Principle:
Principle #6Universality (Multi-functionality)

2Measurement precision

If multiple floating-point operations are performed in deep learning neural networks, then computational accuracy is improved, but productivity decreases due to computationally demanding workloads

Engineering Contradiction:
Improvecomputational accuracyVSAvoidcomputation throughput
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The FMA engine merges the multiplication and addition operations into a single fused operation that computes (a × b) + c in one computational pass. This merging eliminates the need for separate multiply and add operations, reducing the total number of operations required in deep learning neural networks while maintaining full computational accuracy.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The conversion engine performs format conversions in advance or in parallel with the main computation pipeline. By preparing conversion operations beforehand or concurrently, the FPU avoids sequential processing delays, thereby improving computation throughput without sacrificing accuracy.

Inventive Principle:
Principle #10Preliminary action

3Manufacturing precision

If floating-point to binary integer conversion is performed separately after FMA operations, then manufacturing precision is maintained, but loss of time increases

Engineering Contradiction:
Improveresult precisionVSAvoidconversion time
Core Design Contradiction:
Manufacturing precisionVSLoss of time

Solution Approach 1:

The conversion function is merged with the FMA operation itself. The FPU includes a conversion engine that can transform the result of the FMA operation into binary integer format without requiring a separate conversion step. This integration maintains precision while eliminating the time loss associated with sequential conversion operations.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The conversion engine operates continuously alongside the FMA engine, allowing format transformations to occur in parallel or immediately following the main computation without interrupting the computational flow. This continuity ensures that precision is maintained while minimizing the time penalty for conversions.

Inventive Principle:
Principle #20Continuity of useful action

4Productivity

If specialized accelerators are designed for high throughput density, then productivity is improved, but use of energy increases

Engineering Contradiction:
Improvecomputation throughput densityVSAvoidpower consumption
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

The FPU is designed as a universal accelerator that can handle both floating-point and binary integer operations within the same hardware infrastructure. This multi-functionality reduces the need for separate specialized accelerators, lowering overall power consumption while maintaining high throughput density through efficient resource utilization.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS20240134600A1Floating-point unit with a fused multiply-add (FMA) engine for generating binary integer output or floating point output based on a selector
Publication Date: 2024.04.25 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US20240134600A1 patent drawing
  • US20240134600A1 patent drawing
  • US20240134600A1 patent drawing

AI summary

Provided are a floating-point unit, a system, and method for generating binary integer output or floating-point output based on a selector. A first input operand, a second input operand, a third input operand, and a result format selector value are received. The first input operand, the second input operand, and the third input operand comprise floating-point values. The first input operand, the second input operand, and the third input operand are processed to produce a final result comprising one of a binary integer value and a floating point value based on the result format selector value.