GPU Rasterizer Interrupt Handling via Tile Count Checkpointing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current graphics processing units (GPUs) face challenges in efficiently handling interrupts during the rasterization process, leading to prolonged interruption times, especially when processing large primitives that cover numerous tiles and pixels, which is undesirable as future systems aim for quicker context switching.

Innovation Solution

The implementation of context save and context replay techniques in the GPU's rasterizer, where the state of the rasterizer is saved during coarse rasterization, allowing for immediate service of interrupts and resuming rasterization from the last completed tile, reducing interruption time by saving only the tile count or state information for quicker recovery.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If the rasterizer completes the current primitive before servicing an interrupt, then the rasterization process maintains simplicity and continuity, but the interrupt response time becomes unacceptably long

Engineering Contradiction:
Improveinterrupt response timeVSAvoidrasterizer control logic
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The rasterizer performs preliminary actions by saving the current processing state (tile count, primitive index, rasterization mode) to a backing store before servicing the interrupt. This allows the system to quickly restore state and resume processing without completing the entire current primitive, significantly reducing interrupt response time while maintaining manageable control logic through structured state management

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The rasterization process is segmented into discrete tile units with checkpointable state. By dividing the primitive processing into tile-level segments and saving state at tile boundaries, the system can interrupt and resume at precise points without requiring complex mid-primitive state capture, balancing interrupt responsiveness with control logic simplicity

Inventive Principle:
Principle #1Segmentation

2Loss of time

If the rasterizer saves complete rasterization state for every primitive, then context recovery is rapid, but memory usage increases significantly

Engineering Contradiction:
Improvecontext switch timeVSAvoidmemory usage
Core Design Contradiction:
Loss of timeVSQuantity of substance

Solution Approach 1:

The system extracts and saves only the essential state information needed for context recovery (tile count, primitive index, rasterization mode) to the backing store, rather than saving the complete rasterization state. This selective extraction enables rapid context switching while minimizing memory consumption by storing only the minimum necessary data to resume processing

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The backing store uses a simplified, lightweight state representation that is inexpensive to save and restore. Rather than maintaining complex persistent state structures, the system uses disposable state snapshots that can be quickly written to and read from the backing store, enabling fast context switches with minimal memory overhead

Inventive Principle:
Principle #27Cheap short-living objects (Disposable)

3Loss of time

If the rasterizer checks for interrupts after every tile during coarse rasterization, then interrupt responsiveness is maximized, but processing overhead increases

Engineering Contradiction:
Improveinterrupt detection delayVSAvoidprocessing overhead
Core Design Contradiction:
Loss of timeVSUse of energy by moving object

Solution Approach 1:

The rasterizer implements periodic interrupt checking at tile boundaries during coarse rasterization. This periodic approach balances interrupt responsiveness with processing overhead by checking for interrupts at regular, manageable intervals (tile completions) rather than continuously, maximizing interrupt detection capability while minimizing the energy cost of frequent checks

Inventive Principle:
Principle #19Periodic action

Data Source

PatentUS9064333B2Interrupt handling techniques in the rasterizer of a GPU
Publication Date: 2015.06.23 NVIDIA CORP
  • US9064333B2 patent drawing
  • US9064333B2 patent drawing
  • US9064333B2 patent drawing

AI summary

Techniques for handling an interrupt in the rasterizer, in accordance with embodiment of the present technology, start with rasterizing one or more primitives of a first context. If an interrupt is received, the tile count of tiles of a current primitive that have been coarse rasterized is saved in a backing store. After storing the tile count, the one or more primitives of a second context are rasterized. After the second context is served, the coarse rasterization of the current primitive of the previous context is rerun without output until the tile corresponding to the stored tile count is coarse rasterized. Thereafter, rasterization of the current primitive of the first context from the next tile beyond the stored tile count is continued until rasterization is completed or another interrupt is received and the above described process is repeated.