GPU Instruction Culling via Cull Buffer for Shader Efficiency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Graphics Processing Units (GPUs) face inefficiencies due to the execution of irrelevant shader instructions, which consume processing power and resources without contributing to the application's outcome, as existing mechanisms lack the ability to identify and prevent the execution of such instructions.

Innovation Solution

Implementing a cull buffer to store values representing the relevance of instructions, allowing the GPU to determine and prevent the execution of irrelevant work items and workgroups by using these values before they are processed, thereby optimizing resource allocation and improving efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If the GPU executes all shader instructions without filtering, then complete processing coverage is achieved, but processing efficiency deteriorates due to execution of irrelevant instructions

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidresource consumption
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The patent implements a cull buffer that stores cull values before shader instruction execution, allowing the GPU to pre-determine which work items are irrelevant and prevent their execution beforehand. This preliminary filtering action resolves the contradiction by eliminating wasted processing on irrelevant instructions while maintaining complete processing coverage for relevant work items.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent extracts and removes irrelevant work items from the execution pipeline by using cull values to identify and prevent execution of work items that will not contribute to the final output. This extraction principle resolves the contradiction by separating relevant from irrelevant instructions, ensuring efficient resource utilization while maintaining processing completeness.

Inventive Principle:
Principle #2Taking out (Extraction)

2Productivity

If a cull buffer is implemented to filter instructions, then processing efficiency improves by preventing irrelevant instruction execution, but device complexity increases

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidGPU architecture complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent introduces a cull buffer as an intermediary component between the shader processors and the instruction execution pipeline. This buffer stores cull values that mediate the decision of whether to execute work items, providing a simple yet effective filtering mechanism that improves efficiency without significantly complicating the overall GPU architecture.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent changes the execution state parameter by introducing cull values that indicate whether work items should be executed. This parameter change enables efficient filtering of irrelevant instructions through simple conditional logic based on cull buffer contents, achieving improved processing efficiency with minimal architectural complexity.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentEP2732370B1Instruction culling in graphics processing unit
Publication Date: 2018.08.01 QUALCOMM INC
  • EP2732370B1 patent drawingFigure 1
  • EP2732370B1 patent drawingFigure 2
  • EP2732370B1 patent drawingFigure 3~4

AI summary

Aspects of the disclosure are directed to a method of processing data with a graphics processing unit (GPU). According to some aspects, the method includes executing a first work item with a shader processor of the GPU, wherein the first work item includes one or more instructions for processing input data. The method also includes generating one or more values based on a result of the first work item, wherein the one or more values represent one or more characteristics of the result. The method also includes determining whether to execute a second work item based on the one or more values, wherein the second work item includes one or more instructions that are distinct from the one or more instructions of the first work item for processing the input data.