Floating Point Accumulator with Pre-Aligned Exponents
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing artificial intelligence accelerators face challenges in performing accumulation operations on floating-point type data due to errors caused by exponent alignment and normalization processes, leading to reduced reliability and performance.
Innovation Solution
The proposed solution involves a method and structure for an accelerator that includes a unified buffer unit, a pre-alignment unit, and a normalization unit, which performs bit shifts and accumulation operations on floating-point data to minimize errors by finding and aligning exponents, and normalizing results based on maximum exponents, thereby improving reliability and performance.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If traditional accumulation operations are performed on floating point data, then the operation can be executed, but errors are introduced due to exponent alignment and normalization processes
Solution Approach 1:
The patent performs preliminary exponent alignment by finding the maximum exponent among all operands before executing the accumulation operation. This pre-computation of the maximum exponent allows all fractions to be aligned to the same reference level, eliminating the need for iterative normalization during the accumulation process and preventing precision losses.
Solution Approach 2:
The patent changes the approach from traditional iterative normalization to a single-pass alignment method. By transforming all floating point numbers to have the same exponent (the maximum exponent) before accumulation, the system eliminates the harmful normalization process while maintaining computational accuracy. This parameter change in the alignment strategy directly resolves the contradiction between reliability and measurement precision.
2Reliability
If exponent alignment and normalization processes are performed, then floating point data can be accumulated, but performance is reduced due to additional operations
Solution Approach 1:
The maximum exponent is computed once as a preliminary action before the accumulation loop. This single pre-computation replaces multiple iterative normalization operations that would otherwise be performed during each accumulation step, significantly reducing the total number of operations and improving performance while maintaining correctness.
Solution Approach 2:
The patent enables continuous accumulation of aligned fractions without interruption for normalization. By pre-aligning all fractions to the maximum exponent, the accumulation process becomes a simple continuous addition operation, eliminating the discontinuities introduced by iterative normalization and thereby improving operational throughput.
3Productivity
If multiple data are processed simultaneously, then productivity increases, but complexity of managing exponents and alignment increases
Solution Approach 1:
The system performs a preliminary scan of all input data to identify the maximum exponent before processing. This single pre-computation step simplifies the subsequent simultaneous processing by establishing a common reference frame for all fractions, eliminating the need for complex dynamic exponent management during parallel operations.
Solution Approach 2:
The patent transforms the complex dynamic exponent management problem into a simple static alignment problem. By changing all exponents to the maximum exponent in advance, the system reduces the complexity of managing multiple exponents during simultaneous processing to a trivial operation, enabling high throughput without increased complexity.
Data Source
AI summary
Disclosed is an accelerator performing an accumulation operation on a plurality of data, each being a floating point type. A method of operating the accelerator includes loading first data, finding a first exponent, which is a maximum value among exponents of the first data, generating aligned first fractions by performing a bit shift on first fractions of the first data based on the first exponent, and generating a first accumulated value by an accumulation operation on the aligned first fractions, loading second data, finding a second exponent, which is a maximum value among exponents of the second data, and generating a first aligned accumulated value by a bit shift on the first accumulated value, generating aligned second fractions by a bit shift on second fractions of the second data, and generating a second accumulated value by an accumulation operation on the aligned second fractions and the first aligned accumulated value.


