Anchored Data Conversion for Reproducible Parallel Summation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Floating-point arithmetic calculations are non-associative, leading to reproducibility issues and difficulties in parallelizing code, especially in high-performance computing, where sums are not reproducible unless computed in the exact same order, causing problems in high-performance computing environments.

Innovation Solution

The introduction of a high-precision anchored (HPA) number format, which consists of a pair of a long two's complement integer and an anchor integer, allowing for associative and reproducible calculations by maintaining the anchor value unchanged during additions, enabling parallel processing without the need for sequential operations.

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 and sums are not reproducible

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

Solution Approach 1:

The patent segments floating-point numbers into two separate components: an integer part and a fractional part. The integer part is stored in an integer register and the fractional part is stored in a separate fractional register. This segmentation allows integer arithmetic (which is associative) to be applied to the integer part while preserving the fractional precision, thereby achieving both wide range representation and reproducible sums.

Inventive Principle:
Principle #1Segmentation

2Adaptability or versatility

If floating-point arithmetic is used, then numeric values over a large range can be represented, but parallel processing becomes difficult

Engineering Contradiction:
Improverange of numeric valuesVSAvoidparallel processing capability
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

By segmenting floating-point operations into integer and fractional components stored in separate registers, the patent enables parallel processing of integer parts using standard integer arithmetic units while fractional parts are handled separately. This allows multiple operations to proceed in parallel without the sequential constraints imposed by floating-point normalization and rounding.

Inventive Principle:
Principle #1Segmentation

3Reliability

If high-precision anchored numbers are used, then associative and reproducible calculations are achieved, but conversion from floating-point is required

Engineering Contradiction:
Improveassociativity of calculationsVSAvoidconversion circuitry
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent segments the floating-point conversion process into extracting the integer part and fractional part separately. The integer part is converted using standard integer conversion while the fractional part is handled through a dedicated fractional register. This segmentation simplifies the overall conversion circuitry compared to implementing full high-precision anchored number conversion, as each component can be converted independently using simpler logic.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS10963245B2Anchored data element conversion
Publication Date: 2021.03.30 ARM LTD
  • US10963245B2 patent drawing
  • US10963245B2 patent drawing
  • US10963245B2 patent drawing

AI summary

An apparatus is provided, that includes an instruction decoder responsive to an anchored-data processing instruction, to generate one or more control signals. Conversion circuitry is responsive to the one or more control signals to perform a conversion from a data value to an anchored-data select value. The conversion is based on anchor metadata indicative of a given range of significance for the anchored-data select value. Output circuitry is responsive to the one or more control signals, to write the anchored-data select value to a register.