Compiler Approximation via Tile Segmentation for Accuracy-Speed Trade-off

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Compute-bound programs face challenges in optimizing performance due to the introduction of computation errors when replacing precise functions with approximations, which can affect execution time, energy consumption, and parallelization, especially in applications like ISR kernels and SAR applications.

Innovation Solution

The system automates transformations to reduce the number of computations by approximating function evolution within a bounded domain, allowing for tradeoffs between approximation, execution time, energy, and power, while ensuring tolerable computation errors through dynamic precision guarantees and adaptive tile sizing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If precise numerical library functions are used for every loop iteration, then computation accuracy is maintained, but execution time and energy consumption increase significantly

Engineering Contradiction:
Improvecomputation accuracyVSAvoidexecution time
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The patent segments the computation domain into tiles, where each tile contains multiple loop iterations. Within each tile, only the first iteration uses the precise numerical library function while subsequent iterations use approximate computations. This segmentation allows the system to maintain accuracy where needed (first iteration of each tile) while improving performance (subsequent iterations), directly resolving the contradiction between computation accuracy and execution time.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent changes the computation parameter from always-precise to conditionally-precise based on the iteration position within a tile. By introducing a tile structure with a threshold parameter, the system dynamically adjusts the precision level: precise computation is applied when the iteration index is less than the tile size, while approximate computation is used otherwise. This parameter change enables the system to balance accuracy and execution time effectively.

Inventive Principle:
Principle #35Parameter changes

2Productivity

If approximate procedures are used to reduce computation cost, then execution time decreases, but computation errors increase and may produce erroneous results

Engineering Contradiction:
Improveexecution timeVSAvoidcomputation error rate
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent applies preliminary action by computing the precise value in the first iteration of each tile before applying approximate computations to subsequent iterations. This preliminary precise computation establishes a reference point that ensures accuracy is maintained at critical positions, while allowing approximate computations to improve overall execution time. The tile-based structure ensures that approximate computations are bounded and controlled.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system implicitly uses feedback by structureuring computations in tiles where each tile's first iteration provides a precise reference that feeds into subsequent approximate iterations. This creates a feedback mechanism where precise computations periodically correct and bound the accumulation of approximation errors, ensuring that reliability is maintained while benefiting from faster approximate computations.

Inventive Principle:
Principle #23Feedback

3Productivity

If ad hoc approximation replacements are applied, then computation speed improves, but loop tiling and memory locality optimizations are adversely affected

Engineering Contradiction:
Improvecomputation speedVSAvoidoptimization complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent creates a universal tile-based framework that simultaneously enables multiple optimization goals. The same tile structure that facilitates approximate computations also supports loop tiling, memory locality optimization, and parallelization. By making the approximation mechanism universal and integrated into the tile structure rather than ad hoc, the system achieves computation speed improvement without adversely affecting other optimizations. The tile size parameter can be tuned to balance approximation benefits with memory and parallelization requirements.

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

Data Source

PatentUS10209971B2Systems and methods for approximation based optimization of data processors
Publication Date: 2019.02.19 QUALCOMM INC
  • US10209971B2 patent drawing
  • US10209971B2 patent drawing
  • US10209971B2 patent drawing

AI summary

A compilation system can apply a smoothness constraint to the arguments of a compute-bound function invoked in a software program, to ensure that the value(s) of one or more function arguments are within specified respective threshold(s) from selected nominal value(s). If the constraint is satisfied, the function invocation is replaced with an approximation thereof. The smoothness constraint may be determined for a range of value(s) of function argument(s) so as to determine a neighborhood within which the function can be replaced with an approximation thereof. The replacement of the function with an approximation thereof can facilitate simultaneous optimization of computation accuracy, performance, and energy/power consumption.