GPU Dynamic Shader Instruction Nullification

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Graphics processing units (GPUs) face inefficiencies due to the execution of unnecessary instructions during draw calls, which waste processing cycles and cannot be effectively detected by compilers without access to constants stored in uniform buffers.

Innovation Solution

A GPU is configured to detect and nullify unnecessary instructions by executing all instructions in a first warp and identifying those that do not change the output value, then overwriting or skipping these instructions in subsequent warps, or by executing preamble code to identify and nullify them before execution.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If the GPU executes all instructions in a draw call, then complete graphics processing is achieved, but processing efficiency decreases due to unnecessary instructions

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidexecution time of unnecessary instructions
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent applies preliminary action by executing a preamble code before the main draw call instructions to detect which instructions are unnecessary. The GPU executes the preamble first, identifies instructions that will not change output values (such as multiplications by one), and then nullifies these instructions before the main execution phase, thereby avoiding wasted processing time.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent extracts unnecessary instructions from the draw call by detecting them through preamble execution and separating them from the necessary instructions. The GPU identifies instructions that do not affect the output and removes them from the execution sequence, leaving only the essential instructions to be executed in the main draw call.

Inventive Principle:
Principle #2Taking out (Extraction)

2Productivity

If compilers attempt to detect unnecessary instructions, then instruction optimization is achieved, but the compiler cannot access constants stored in uniform buffers

Engineering Contradiction:
Improveinstruction optimizationVSAvoidcompiler capability limitations
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent introduces an intermediary solution by using a specialized GPU unit that acts as a mediator between the compiler and the uniform buffers. This unit can access the constants stored in uniform buffers at runtime and use this information to detect unnecessary instructions, a capability that the compiler alone cannot achieve due to its lack of access to runtime constant values.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The GPU performs the optimization task itself rather than relying on the compiler. The GPU executes the preamble code and detects unnecessary instructions during runtime when it has access to the actual constant values in uniform buffers, making the optimization self-service and eliminating the need for enhanced compiler capabilities.

Inventive Principle:
Principle #25Self-service

3Use of energy by moving object

If the GPU executes all instructions, then all operations are performed, but power consumption increases due to unnecessary executions

Engineering Contradiction:
Improvepower consumptionVSAvoidprocessing throughput
Core Design Contradiction:
Use of energy by moving objectVSProductivity

Solution Approach 1:

The patent uses preliminary action to identify and nullify unnecessary instructions before the main execution phase. By executing the preamble code first and detecting which instructions are redundant, the GPU avoids executing unnecessary operations in the main draw call, thereby reducing power consumption without compromising the execution of essential instructions.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent applies local quality by selectively nullifying only the unnecessary instructions while leaving the necessary instructions intact. The GPU identifies specific instructions that are redundant (such as multiplications by one) and removes only those, maintaining the quality and correctness of the overall processing while improving energy efficiency.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS10430912B2Dynamic shader instruction nullification for graphics processing
Publication Date: 2019.10.01 QUALCOMM INC
  • US10430912B2 patent drawing
  • US10430912B2 patent drawing
  • US10430912B2 patent drawing

AI summary

A GPU may be configured to detect and nullify unnecessary instructions. Nullifying unnecessary instructions include overwriting a detected unnecessary instruction with a no operation (NOP) instruction. In another example, nullifying unnecessary instructions may include writing a value to a 1-bit instruction memory. Each bit of the 1-bit instruction memory may be associated with a particular instruction of the draw call. If the 1-bit instruction memory has a true value (e.g., 1), the GPU is configured to not execute the particular instruction.