Shader Partitioning via Priority Scheduling

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current graphics hardware limitations restrict the complexity and size of programmable shaders, necessitating inefficient multipass methods for implementing larger shaders, with conventional partitioning methods like Recursive Dominator Split (RDS) being too slow and not accommodating multiple outputs.

Innovation Solution

A method and system for prioritizing and partitioning operations into smaller programs that can be executed in multiple passes, using priority schemes like Sethi-Ullman numbering and depth-first traversal to minimize register usage and accommodate multiple outputs, allowing for faster compilation and more efficient use of graphics hardware resources.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If conventional partitioning methods like Recursive Dominator Split (RDS) are used, then shader programs can be divided into smaller programs, but the compilation time becomes excessively long (O(N³) runtime)

Engineering Contradiction:
Improveshader compilation speedVSAvoidpartitioning compilation time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent segments the shader program into smaller sub-programs by dividing operations into partitions that respect hardware resource constraints. Each partition is a smaller program that can be executed independently in the graphics pipeline, allowing the large original shader to be compiled into multiple manageable units rather than attempting to compile one large program.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent employs dynamic priority assignment to operations based on their resource usage characteristics. Operations are assigned priorities dynamically during the partitioning process, allowing the system to adaptively schedule operations into partitions. This dynamic approach enables faster compilation by making intelligent decisions about operation ordering without requiring exhaustive search algorithms.

Inventive Principle:
Principle #15Dynamics

2Adaptability or versatility

If shader program size is increased to handle complex computations, then more computational capability is achieved, but hardware resource constraints (registers, instruction length) are violated

Engineering Contradiction:
Improveshader computational capabilityVSAvoidhardware resource constraints
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent divides the shader program into multiple partitions, each of which individually satisfies hardware resource constraints. By segmenting the computational workload into smaller programs that can be executed in sequence through the graphics pipeline, the system achieves complex computational capability while respecting the limited register and instruction constraints of individual hardware executions.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements a nested structure where multiple smaller shader programs are organized within a larger shader program. The smaller programs are nested within the larger program structure and are executed in sequence through multiple passes of the graphics pipeline, allowing complex computations to be achieved through composition of simpler, hardware-compliant units.

Inventive Principle:
Principle #7Nested doll (Nesting)

3Adaptability or versatility

If conventional partitioning methods are used, then programs can be divided into smaller shaders, but the method does not accommodate multiple outputs per pass

Engineering Contradiction:
Improvemultiple output supportVSAvoidpartitioning efficiency
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent creates a universal partitioning framework that can handle multiple output types and configurations within the same system. The partitioning method is designed to accommodate various output requirements (single output, multiple outputs, different output types) without requiring separate specialized algorithms, making the system versatile while maintaining high partitioning efficiency through a unified approach.

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

Data Source

PatentUS7589719B2Fast multi-pass partitioning via priority based scheduling
Publication Date: 2009.09.15 PIXAR CORP
  • US7589719B2 patent drawing
  • US7589719B2 patent drawing
  • US7589719B2 patent drawing

AI summary

Computer operations are partitioned for execution by a processor. A plurality of operations to be partitioned is received. The respective priorities for each of the plurality of operations is determined. Ready operations are identified, where a ready operation is an operation that does not have any predecessor operations that have not yet been added to a partition. A determination is made whether adding the ready operations with the highest priorities to the current partition would violate a hardware resource constraint. Based on this determination, the ready operations are added to the partition. The operations added to the partition are provided to a processor for execution.