Anchored-Data Encoding for Reproducible Floating-Point Accumulation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Floating-point arithmetic is non-associative, leading to reproducibility issues in sums, which complicates parallelization and debugging, especially in high-performance computing where millions of values need to be added.

Innovation Solution

The introduction of High-Precision Anchored (HPA) numbers, which consist of a pair (i, a) where i is a long two's complement integer and a is an anchor integer representing the weights of the bits of i, allowing for reproducible and associative addition.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If floating-point arithmetic is used, then a large range of numeric values can be represented, but calculations become non-associative leading to reproducibility issues

Engineering Contradiction:
Improverange of numeric valuesVSAvoidreproducibility of calculations
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The floating-point number is segmented into two parts: a long two's complement integer (200 bits) and a smaller anchor integer. This segmentation allows the significant bits to be stored with higher precision while the anchor specifies the weight, enabling reproducible accumulation without losing the ability to represent a large range of values.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a new dimension to the data structure by adding the anchor integer that specifies the significance weight. This transforms the traditional single-value floating-point representation into a two-component structure (i, a), where the anchor dimension provides the scaling factor, enabling both large range representation and reproducible arithmetic.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Reliability

If high-precision anchored numbers are used, then reproducible and associative addition is achieved, but the data structure becomes more complex

Engineering Contradiction:
Improvereproducibility of calculationsVSAvoiddata structure complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent changes the parameters of the number representation by using a long two's complement integer instead of a traditional floating-point format. The anchor integer serves as a parameter that specifies the significance weight, allowing the system to maintain simple two's complement arithmetic while achieving reproducible results through parameter specification rather than structural complexity.

Inventive Principle:
Principle #35Parameter changes

3Ease of manufacture

If traditional floating-point format is used, then data processing is simple, but special values like NaN and infinity cannot be properly represented in anchored format

Engineering Contradiction:
Improvesimplicity of data processingVSAvoidrepresentation of special values
Core Design Contradiction:
Ease of manufactureVSAdaptability or versatility

Solution Approach 1:

The patent uses the anchor integer as an intermediary to represent special values. Instead of having separate hardware or complex structures for NaN and infinity, the anchor parameter serves as a mediator that can indicate special states (such as zero or negative anchor values), allowing traditional simple arithmetic to handle special cases through parameter interpretation.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentEP3921942B1Encoding special value in anchored-data element
Publication Date: 2025.03.05 ARM LTD
  • EP3921942B1 patent drawingFigure 1
  • EP3921942B1 patent drawingFigure 2
  • EP3921942B1 patent drawingFigure 3

AI summary

An apparatus comprises: processing circuitry to perform data processing; and an instruction decoder to control the processing circuitry to perform an anchored-data processing operation to generate an anchored-data element. The anchored-data element has an encoding including type information indicative of whether the anchored-data element represents: a portion of bits of a two's complement number, said portion of bits corresponding to a given range of significance representable using the anchored-data element; or a special value other than said portion of bits of a two's complement number.