Compiler Precision Transformation for GPU Power Efficiency
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional GPUs waste power due to executing thirty-two bit floating-point instructions that generate data with only eight to twelve bit color channels, leading to unnecessary computation and power inefficiency, as most bits of numeric resolution and exponent bits are discarded.
Innovation Solution
A system and method that transform floating-point operations into fixed-point or lower-precision floating-point operations based on dynamic range and numeric resolution requirements, using a compiler to generate code that reduces power consumption by eliminating unnecessary circuit switching and combining arithmetic and casting operations into single instructions.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If thirty-two bit floating-point instructions are executed to generate color channel data, then adequate dynamic range and numeric resolution are provided, but power consumption increases due to unnecessary computation of unused data bits
Solution Approach 1:
The patent applies local quality by determining different numeric precision requirements for different parts of the computation. Instead of uniformly using thirty-two bit floating-point precision throughout, the system analyzes the data flow graph to identify specific operations and data paths that require only lower precision (eight to twelve bits), and executes those operations at the appropriate precision level. This resolves the contradiction by providing adequate precision where needed while avoiding unnecessary high-precision computation elsewhere, thereby reducing power consumption.
Solution Approach 2:
The patent employs parameter changes by dynamically adjusting the numeric precision parameter based on the specific computational requirements of each operation in the shader program. The system transforms the intermediate representation to annotate operations with their required precision parameters, then executes operations using matching precision levels (e.g., using eight-bit or twelve-bit operations when sufficient, rather than always using thirty-two-bit operations). This parameter adaptation resolves the contradiction between maintaining adequate precision and reducing power consumption from unnecessary high-precision computation.
2Adaptability or versatility
If thirty-two bit floating-point instructions are used for all arithmetic operations, then sufficient dynamic range is maintained, but device complexity increases due to uniform high-precision operation requirements
Solution Approach 1:
The patent applies dynamics by making the numeric precision adaptive rather than static. The system dynamically determines the appropriate precision level for each arithmetic operation by analyzing the data flow graph and propagating precision requirements through the computation. Operations are executed with varying precision levels (eight-bit, twelve-bit, or thirty-two-bit floating-point) depending on their specific requirements, rather than uniformly using thirty-two-bit precision. This dynamic adaptation resolves the contradiction by maintaining sufficient dynamic range where needed while reducing operation complexity elsewhere.
Solution Approach 2:
The patent employs segmentation by dividing the shader program's arithmetic operations into distinct segments based on their precision requirements. The system segments the data flow graph into different precision domains, identifying which operations can be performed at lower precision (eight to twelve bits) and which require full thirty-two-bit precision. This segmentation allows the device to handle different precision levels independently, resolving the contradiction between maintaining adequate dynamic range and reducing overall operation complexity.
3Reliability
If full precision floating-point operations are performed, then accurate computation results are achieved, but execution time increases due to processing unnecessary data bits
Solution Approach 1:
The patent applies partial action by performing computations at the minimum necessary precision level rather than using full precision for all operations. The system analyzes the data flow graph to determine the sufficient precision required for each operation's output, then executes only that necessary portion of the precision computation. For example, if an operation's result will be truncated to twelve bits anyway, the system performs the computation at twelve-bit precision rather than thirty-two-bit precision. This partial action resolves the contradiction by achieving adequate computation accuracy while reducing execution time from processing unnecessary high-precision data bits.
Data Source
AI summary
A system, method, and computer program product are provided for compiling a computer program comprising arithmetic operations having different requirements with respect to numeric dynamic range, numeric resolution, or any combination thereof. The method comprises generating a transformed graph representation of the computer program by applying propagation rules that provide for relaxed numeric requirements, where applicable, and generating output code based on the transformed graph representation. Relaxing numeric requirements, such as dynamic range and resolution requirements, may advantageously lower power consumption during execution of the computer program.


