IP Library Granted Patent US 10,430,912
Granted Patent B2
US 10,430,912 · App. 15/432,170 · Granted Oct 1, 2019

Dynamic shader instruction nullification for graphics processing

Inventors: Andrew Evan Gruber (Arlington, MA); Lin Chen (San Diego, CA)
Assignee: QUALCOMM Incorporated
G06T1/20G06T1/60G06T15/005
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,430,912
App. No.
15/432,170
Granted
Oct 1, 2019
Kind
B2
Abstract

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.

Claims (33)

1. A method of graphics processing, the method comprising:

compiling instructions for a draw call, wherein the compiled instructions include preamble instructions and main instructions, and wherein the draw call is executable in a first warp and a plurality of other warps;

receiving, by a graphics processing unit (GPU), the preamble instructions and the main instructions for the draw call to be executed by the GPU;

loading constants to a constant memory, wherein the constants are used when executing the instructions for the draw call;

executing the preamble instructions once in the first warp of the draw call before executing the main instructions in the plurality of other warps of the draw call, wherein the preamble instructions are configured to:

detect one or more unnecessary instructions from the main instructions for the draw call based on the constants, wherein the one or more unnecessary instructions are instructions that do not alter an output of a particular one of the received main instructions for the draw call, and

nullify the detected one or more unnecessary instructions, wherein nullifying the detected one or more unnecessary instructions comprises one of overwriting the detected one or more unnecessary instructions with a no operation or writing a value to a register associated with the detected one or more unnecessary instructions, wherein the value in the register indicates that the GPU is not to perform the detected one or more unnecessary instructions; and

executing the main instructions in the plurality of other warps of the draw call after executing the preamble instructions.

2. An apparatus for graphics processing, the apparatus comprising:

a processor configured to compile instructions for a draw call, wherein the compiled instructions include preamble instructions and main instructions, and wherein the draw call is executable in a first warp and a plurality of other warps, and

load constants to a constant memory, wherein the constants are used when executing the instructions for the draw call; and

a graphics processing unit (GPU) configured to:

receive the preamble instructions and the main instructions for the draw call to be executed by the GPU;

execute the preamble instructions once in the first warp of the draw call before executing the main instructions in the plurality of other warps of the draw call, wherein the preamble instructions are configured to:

detect one or more unnecessary instructions from the instructions for the draw call based on the constants, wherein the one or more unnecessary instructions are instructions that do not alter an output of a particular one of the received main instructions for the draw call, and

nullify the detected one or more unnecessary instructions, wherein to nullify the detected one or more unnecessary instructions, the GPU is further configured to perform one of overwriting the detected one or more unnecessary instructions with a no operation or writing a value to a register associated with the detected one or more unnecessary instructions, wherein the value in the register indicates that the GPU is not to perform the detected one or more unnecessary instructions; and

execute the main instructions in the plurality of other warps of the draw call after executing the preamble instructions.

3. An apparatus for graphics processing, the apparatus comprising:

means for compiling instructions for a draw call, wherein the compiled instructions include preamble instructions and main instructions, and wherein the draw call is executable in a first warp and a plurality of other warps;

means for receiving the preamble instructions and the main instructions for the draw call to be executed by a graphics processing unit (GPU);

means for loading constants to a constant memory, wherein the constants are used when executing the instructions for the draw call;

means for executing the preamble instructions once in the first warp of the draw call before executing the main instructions in the plurality of other warps of the draw call, wherein the preamble instructions are configured to:

detect one or more unnecessary instructions from the instructions for the draw call based on the constants, wherein the one or more unnecessary instructions are instructions that do not alter an output of a particular one of the received main instructions for the draw call, and

nullify the detected one or more unnecessary instructions, wherein nullifying the detected one or more unnecessary instructions comprises one of overwriting the detected one or more unnecessary instructions with a no operation or writing a value to a register associated with the detected one or more unnecessary instructions, wherein the value in the register indicates that the GPU is not to perform the detected one or more unnecessary instructions; and

means for executing the main instructions in the plurality of other warps of the draw call after executing the preamble instructions.

4. A non-transitory computer-readable storage medium storing instructions that, when executed, causes one or more processors of a device for graphics processing to:

compile instructions for a draw call, wherein the compiled instructions include preamble instructions and main instructions, and wherein the draw call is executable in a first warp and a plurality of other warps; and

load constants to a constant memory, wherein the constants are used when executing the instructions for the draw call;

receive the preamble instructions and the main instructions for the draw call to be executed by a graphics processing unit (GPU);

execute the preamble instructions once in the first warp of the draw call before executing the main instructions in the plurality of other warps of the draw call, wherein the preamble instructions are configured to:

detect one or more unnecessary instructions from the instructions for the draw call based on the constants, wherein the one or more unnecessary instructions are instructions that do not alter an output of a particular one of the received main instructions for the draw call, and

nullify the detected one or more unnecessary instructions, wherein to nullify the detected one or more unnecessary instructions, the instructions further cause the one or more processors to perform one of overwriting the detected one or more unnecessary instructions with a no operation or writing a value to a register associated with the detected one or more unnecessary instructions, wherein the value in the register indicates that the GPU is not to perform the detected one or more unnecessary instructions; and

execute the main instructions in the plurality of other warps of the draw call after executing the preamble instructions.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 14, 2017
From: GRUBER, ANDREW EVAN; CHEN, LIN
To: QUALCOMM INCORPORATED
Reel/Frame 041252/0125 →
Continuity (1)
Related Publication 20180232846A1 · Aug 16, 2018