Instruction Decode Unit for GPU FP and PP Calculation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current GPU architectures face limitations in efficiently calculating Full Precision (FP) and Partial Precision (PP) values, particularly in applications requiring lower precision calculations such as pixel shaders and image processing, where existing methods do not effectively utilize the capabilities of Stream Processors for FP16, FP18, and FP24 values.

Innovation Solution

The proposed solution involves a method and apparatus where an Instruction Decode unit generates microinstructions for calculating FP and PP values, utilizing a first-type and second-type computation lanes. In a first mode, each lane calculates independently for FP data, while in a second mode, second-type lanes generate partial results that are combined by a first-type lane to produce final results, optimizing the execution of FP and PP operations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If the SP calculates FP32 values to conform to IEEE754 specification, then the calculation precision is improved, but the calculation efficiency deteriorates due to the complex calculation process

Engineering Contradiction:
Improvecalculation precisionVSAvoidcalculation efficiency
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The patent segments the FP32 calculation process into two distinct paths: a first calculation path for FP16 partial precision values and a second calculation path for FP32 full precision values. This segmentation allows the system to choose the appropriate precision level based on application requirements, thereby improving calculation efficiency for applications that do not require full precision while maintaining the option for high precision when needed.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements partial precision calculation (FP16) as a simplified version of full precision (FP32) calculation. For applications like pixel shaders and image processing where full precision is not necessary, the system performs only the necessary subset of calculation operations (partial action), reducing computational complexity and improving efficiency without sacrificing the capability to perform full precision calculations when required.

Inventive Principle:
Principle #16Partial or excessive action

2Measurement precision

If the SP calculates only FP32 values, then the calculation precision is maintained, but the adaptability deteriorates for applications requiring lower precision calculations

Engineering Contradiction:
Improvecalculation precisionVSAvoidprecision adaptability
Core Design Contradiction:
Measurement precisionVSAdaptability or versatility

Solution Approach 1:

The patent designs the Stream Processor with multi-functional calculation units that can operate in multiple precision modes (FP16 and FP32) using the same hardware resources. The first calculation path handles FP16 operations while the second calculation path handles FP32 operations, allowing a single processor to adapt to different precision requirements of various applications without requiring separate specialized hardware for each precision level.

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

Solution Approach 2:

The patent introduces dynamic precision selection capability where the processor can switch between FP16 and FP32 calculation modes based on the specific application requirements. The instruction decoding unit generates different microinstruction sequences (first microinstruction sequence for FP16, second microinstruction sequence for FP32) allowing the system to dynamically adjust its operational precision to match the needs of pixel shaders, image processing, or other computational tasks.

Inventive Principle:
Principle #15Dynamics

3Productivity

If the SP structure is simplified to improve calculation speed, then the calculation efficiency is improved, but the manufacturing precision deteriorates

Engineering Contradiction:
Improvecalculation speedVSAvoidcalculation accuracy
Core Design Contradiction:
ProductivityVSManufacturing precision

Solution Approach 1:

The patent segments the calculation system into two distinct calculation paths with different levels of precision implementation. The first calculation path is optimized for speed with FP16 precision (simplified structure), while the second calculation path provides full FP32 precision (more complex structure). This segmentation allows the system to achieve high calculation speed for applications that can tolerate lower precision while maintaining the capability for high-precision calculations when manufacturing accuracy is critical.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies different precision qualities to different calculation paths based on local requirements. The FP16 calculation path uses simplified operations suitable for applications where approximate results are acceptable (like real-time rendering), while the FP32 calculation path maintains full precision for applications requiring accurate results. Each calculation path is locally optimized for its specific precision level, achieving both speed and accuracy where appropriate.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS10248417B2Methods and apparatuses for calculating FP (full precision) and PP (partial precision) values
Publication Date: 2019.04.02 GLENFLY TECH CO LTD
  • US10248417B2 patent drawing
  • US10248417B2 patent drawing
  • US10248417B2 patent drawing

AI summary

A method for calculating FP (Full Precision) and PP (Partial Precision) values, performed by an ID (Instruction Decode) unit, contains at least the following steps: decoding an instruction request from a compiler; executing a loop m times to generate m microinstructions for calculating first-type data, or n times to generate n microinstructions for calculating second-type data according to the instruction mode of the instruction request, thereby enabling ALGs (Arithmetic Logic Groups) to execute lanes of a thread. m is less than n and the precision of the first-type data is lower than the precision of the second-type data.