Vector Integer Operands 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 and difficulties in parallelization, especially in high-performance computing, where programs need to add millions of numbers, resulting in different answers depending on the order of operations and making debugging challenging.

Innovation Solution

The introduction of high-precision anchored (HPA) numbers and new instructions that allow for fast and correct accumulation of floating-point numbers in a programmer-selectable range, using a vector of 64-bit integers and metadata to represent bit significance, enabling associative operations and parallelization.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If floating-point arithmetic is used for high-performance computing, then computation speed is improved, but reproducibility deteriorates due to non-associative operations

Engineering Contradiction:
Improvecomputation speedVSAvoidreproducibility
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent segments floating-point numbers into multiple integer components (e.g., splitting a floating-point number into high-order and low-order 32-bit integer parts). This segmentation allows arithmetic operations to be performed on integer components separately while maintaining the ability to reconstruct the original floating-point value, thereby enabling reproducible results through controlled rounding modes and metadata tracking of significant bits.

Inventive Principle:
Principle #1Segmentation

2Reliability

If sequential addition is used for floating-point numbers, then reproducibility is improved, but computation speed deteriorates

Engineering Contradiction:
ImprovereproducibilityVSAvoidcomputation speed
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent performs preliminary actions by converting floating-point numbers to integer representations before arithmetic operations, and by pre-computing metadata about significant bit positions. This preliminary conversion allows subsequent arithmetic operations to be performed using fast integer arithmetic while maintaining reproducibility through controlled rounding, eliminating the need for slow sequential floating-point addition.

Inventive Principle:
Principle #10Preliminary action

3Measurement precision

If high precision is used for floating-point operations, then accuracy is improved, but device complexity deteriorates

Engineering Contradiction:
ImproveaccuracyVSAvoidhardware complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent substitutes complex floating-point arithmetic hardware with simpler integer arithmetic operations. By representing floating-point numbers as integers with associated metadata about their significance, the system performs arithmetic using straightforward integer addition and multiplication, then converts results back to floating-point format. This substitution maintains accuracy while dramatically reducing hardware complexity and improving speed.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Data Source

PatentUS9766858B2Vector operands with component representing different significance portions
Publication Date: 2017.09.19 ARM LTD
  • US9766858B2 patent drawing
  • US9766858B2 patent drawing
  • US9766858B2 patent drawing

AI summary

A data processing system supports vector operands with components representing different bit significance portions of an integer number. Processing circuitry performs a processing operation specified by a program instruction in dependence upon a number of components comprising the vector as specified by metadata for the vector.