Compiler Precision Transformation for GPU Power Efficiency

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvenumeric resolutionVSAvoidpower consumption
Core Design Contradiction:
Measurement precisionVSUse of energy by moving object

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.

Inventive Principle:
Principle #3Local quality

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.

Inventive Principle:
Principle #35Parameter changes

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

Engineering Contradiction:
Improvedynamic rangeVSAvoidoperation complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

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.

Inventive Principle:
Principle #15Dynamics

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.

Inventive Principle:
Principle #1Segmentation

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

Engineering Contradiction:
Improvecomputation accuracyVSAvoidexecution time
Core Design Contradiction:
ReliabilityVSLoss of time

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.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS9235392B2System, method, and computer program product for improved power efficiency during program code execution
Publication Date: 2016.01.12 NVIDIA CORP
  • US9235392B2 patent drawing
  • US9235392B2 patent drawing
  • US9235392B2 patent drawing

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.