Dual Mode Floating Point Multiply-Accumulate Unit for GPU Throughput

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current Graphics Processing Units (GPUs) face inefficiencies in processing diverse data formats and mathematical functions, leading to performance degradation, hardware overhead, and stall wait cycles due to limited arithmetic logic unit (ALU) configurations and instruction set capabilities.

Innovation Solution

A Multiply-Accumulate Unit is designed to process multiple data types, including short and long formats, with a mantissa datapath for varied operands, and methods for determining data formats to facilitate efficient processing, reducing stall cycles and improving throughput.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If a shared special function unit (SFU) is used among multiple ALUs in SIMD structure, then hardware overhead is reduced, but thread stall cycles increase due to sequential processing

Engineering Contradiction:
Improvehardware overheadVSAvoidstall wait cycles
Core Design Contradiction:
Device complexityVSLoss of time

Solution Approach 1:

The patent divides the shared SFU into multiple independent execution pipelines, allowing simultaneous processing of multiple threads. Each pipeline can handle one thread at a time, but multiple pipelines operate in parallel, eliminating the sequential bottleneck while maintaining resource sharing benefits

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements dynamic thread scheduling and pipeline allocation mechanisms that adapt to workload characteristics. Threads can be dynamically assigned to available pipelines, and the system can adjust the number of active pipelines based on demand, optimizing both resource utilization and throughput

Inventive Principle:
Principle #15Dynamics

2Device complexity

If ALUs are configured for fixed data format (e.g., 32-bit IEEE), then hardware design is simplified, but performance degrades when processing lower accuracy pixel and texture data

Engineering Contradiction:
ImproveALU configurationVSAvoidthroughput
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent designs ALUs with configurable data path widths that can be dynamically adjusted to match the required precision for different data types. The same ALU hardware can process 32-bit IEEE floating point, 16-bit half precision, or integer formats by reconfiguring the datapath, eliminating the need for separate dedicated units for each format

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

Solution Approach 2:

The patent implements runtime reconfiguration of ALU parameters including data width, precision, and format type based on the incoming workload characteristics. Control logic automatically adjusts ALU configuration to optimize performance for the specific data format being processed, whether it's high-precision vertex data or lower-precision pixel data

Inventive Principle:
Principle #35Parameter changes

3Device complexity

If SIMD factor is fixed, then hardware control is simplified, but efficiency decreases when processing fewer elements than vector unit width

Engineering Contradiction:
Improvecontrol logicVSAvoidprocessing efficiency
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent implements variable SIMD factor capability where the number of simultaneously processed data elements can be dynamically adjusted at runtime. The system can reduce the SIMD factor when processing small datasets to avoid wasting computational resources, and increase it for large datasets to maximize throughput, with control logic that adapts to workload size

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS8024394B2Dual mode floating point multiply accumulate unit
Publication Date: 2011.09.20 S3 GRAPHICS INC
  • US8024394B2 patent drawing
  • US8024394B2 patent drawing
  • US8024394B2 patent drawing

AI summary

Included are embodiments of a Multiply-Accumulate Unit to process multiple format floating point operands. For short format operands, embodiments of the Multiply Accumulate Unit are configured to process data with twice the throughput as long and mixed format data. At least one embodiment can include a short exponent calculation component configured to receive short format data, a long exponent calculation component configured to receive long format data, and a mixed exponent calculation component configured to receive short exponent data, the mixed exponent calculation component further configured to received long format data. Embodiments also include a mantissa datapath configured for implementation to accommodate processing of long, mixed, and short floating point operands.