Work Distributor for Parallel Primitive Processing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional graphics systems process primitives serially or in a limited parallel manner, leading to inefficient rendering of complex images and performance bottlenecks in graphics pipelines.

Innovation Solution

A scalable mechanism that distributes primitive groups for parallel processing across multiple shader engines, allowing for efficient rendering by dividing draw calls into workgroups and processing them in a single clock cycle, with the number of workgroups and shader engines scalable to improve performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If primitives are processed serially or in limited parallel manner in conventional graphics systems, then system simplicity is maintained, but rendering performance and productivity deteriorate

Engineering Contradiction:
Improverendering performanceVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the graphics processing system into multiple independent shader engines (e.g., 16 shader engines) that can process primitive groups in parallel. Each shader engine is a self-contained unit capable of independent primitive processing, enabling the system to handle thousands of primitives simultaneously rather than serially, thus dramatically improving rendering performance while maintaining manageable complexity through modular design

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent transitions from single-dimension serial processing to multi-dimension parallel processing by organizing shader engines in a dimensional array structure. Multiple primitive groups are distributed across multiple shader engines operating in parallel within the same clock cycle, effectively adding a parallelism dimension to the processing architecture, which enables exponential performance scaling without proportionally increasing system complexity

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Productivity

If multiple shader engines are introduced for parallel processing, then rendering performance improves, but work distribution complexity increases

Engineering Contradiction:
Improveparallel processing efficiencyVSAvoidwork distribution mechanism
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent implements preliminary action by pre-organizing primitives into structured groups (e.g., 64 primitives per group) before distribution to shader engines. The work distributor pre-calculates and prepares the distribution map of which primitive groups go to which shader engines, so that when parallel processing begins, all shader engines receive their assigned work simultaneously without runtime coordination overhead, thus maintaining high parallel efficiency while managing distribution complexity

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces a work distributor as an intermediary component between the primitive input and multiple shader engines. This mediator receives the stream of primitives, batches them into groups, and intelligently distributes them to appropriate shader engines based on load balancing and resource availability, thereby simplifying the complexity of direct many-to-many connections while maximizing parallel processing throughput

Inventive Principle:
Principle #24Intermediary (Mediator)

3Speed

If conventional limited parallel processing is used, then system complexity remains low, but processing speed and productivity are insufficient for complex images

Engineering Contradiction:
Improveprimitive processing speedVSAvoidscalability
Core Design Contradiction:
SpeedVSAdaptability or versatility

Solution Approach 1:

The patent implements dynamic scalability by designing the shader engine array and work distributor to adaptively adjust the number of active parallel processing units based on the complexity and size of the rendering task. For simple scenes, fewer shader engines are activated to conserve resources; for complex images requiring high processing speed, the system dynamically engages more shader engines in parallel, thus achieving both high speed performance and resource efficiency across different workloads

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS8928679B2Work distribution for higher primitive rates
Publication Date: 2015.01.06 ADVANCED MICRO DEVICES INC
  • US8928679B2 patent drawing
  • US8928679B2 patent drawing
  • US8928679B2 patent drawing

AI summary

A system, method and a computer program product are provided for distributing prim groups for parallel processing in a single clock cycle. A work distributor divides a draw call for primitive processing into a plurality of prim groups according to a prim group size. The work distributor then distributes the plurality of prim groups to a plurality of shader engines for parallel processing of the plurality of prim groups during a clock cycle. The size of a prim group and a number of prim groups are scaled to the plurality of shader engines.