Multi-Format Floating-Point Multiplication With Unified Hardware

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing hardware solutions for neural networks face challenges in efficiently performing matrix multiplication operations across multiple floating-point number formats, leading to increased complexity and expense due to the need for separate hardware for each format.

Innovation Solution

A single multipurpose logic/multiplication unit is designed to handle various floating-point formats by extending bit width to accommodate the worst-case format, using adders for exponents and multipliers for mantissas, and employing control logic to route appropriate bits, allowing efficient performance of dot products and other arithmetic operations in multiple formats.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If separate hardware is used for each floating-point format, then each format can be handled with optimized hardware, but hardware complexity and expense increase significantly

Engineering Contradiction:
Improvecompatibility with multiple number formatsVSAvoidhardware complexity and expense
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent implements a universal multiplication unit that can handle multiple floating-point formats (BF16, FP16, FP32) through a single hardware structure. The unit uses format identification logic to detect the input format and automatically configures the bit-width parameters (exponent bits, mantissa bits) accordingly, eliminating the need for separate dedicated hardware for each format while maintaining full compatibility.

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

Solution Approach 2:

The multiplication unit dynamically adjusts its operational parameters based on the detected floating-point format. The control logic modifies the bit-width configuration of exponent and mantissa components in real-time according to the input format, allowing the same hardware to adapt its structure and behavior to different format requirements without physical reconfiguration.

Inventive Principle:
Principle #15Dynamics

2Device complexity

If a single multipurpose unit is used for multiple formats, then hardware complexity is reduced, but the unit must accommodate the worst-case format which may reduce efficiency for smaller formats

Engineering Contradiction:
Improvehardware complexityVSAvoidthroughput of matrix computations
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The multiplication unit implements local quality by allowing different bit-width configurations for exponent and mantissa components based on the specific format being processed. When BF16 format is detected, the unit configures for 8 exponent bits and 7 mantissa bits; when FP16 is detected, it configures for 5 exponent bits and 10 mantissa bits. This localized adaptation ensures each format operates at optimal efficiency within the unified hardware structure.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The system changes operational parameters (exponent bit-width, mantissa bit-width) based on the detected floating-point format. The control logic receives format identification and automatically adjusts these parameters to match the required format, enabling the single hardware unit to maintain high throughput for all supported formats by optimizing parameters for each specific case rather than being constrained by the worst-case configuration.

Inventive Principle:
Principle #35Parameter changes

3Adaptability or versatility

If bit width is extended to accommodate the worst-case format, then all formats can be handled by the same hardware, but additional padding with zero bits is required which increases processing overhead

Engineering Contradiction:
Improvesupport for multiple formats with minimal hardware modificationsVSAvoidprocessing overhead for format conversion and padding
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The multiplication unit performs preliminary format identification and configuration before the actual multiplication operation. The control logic detects the floating-point format and pre-configures the exponent and mantissa bit-width parameters, then routes the appropriate number of bits from the input operands. This preliminary setup eliminates the need for runtime padding operations and format conversion overhead during the critical multiplication path.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system extracts only the necessary number of exponent bits and mantissa bits based on the detected format, rather than processing the full worst-case bit-width for all operations. The control logic selectively routes the required bit portions to the multiplication unit, eliminating unnecessary processing of padded zero bits and reducing the effective processing overhead while maintaining support for all formats.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS11275560B2Hardware for floating-point arithmetic in multiple formats
Publication Date: 2022.03.15 META PLATFORMS INC
  • US11275560B2 patent drawing
  • US11275560B2 patent drawing
  • US11275560B2 patent drawing

AI summary

A floating-point number in a first format representation is received. Based on an identification of a floating-point format type of the floating-point number, different components of the first format representation are identified. The different components of the first format representation are placed in corresponding components of a second format representation of the floating-point number, wherein a total number of bits of the second format representation is larger than a total number of bits of the first format representation. At least one of the components of the second format representation is padded with one or more zero bits. The floating-point number in the second format representation is stored in a register. A multiplication using the second format representation of the floating-point number is performed.