Primitive Distribution System for Parallel Index Processing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The existing method of distributing indices in computer graphics processing is computationally intensive and creates a performance bottleneck due to the need to analyze and eliminate duplicate indices, leading to inefficiencies in GPU resource utilization and increased memory bandwidth demand.

Innovation Solution

The method involves dividing the indices into work slices, allowing for parallel analysis and processing, where each work slice is assigned to a graphics processing pipeline, enabling simultaneous scanning and processing of indices, and utilizing feedback packets to ensure correct rendering across slices.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Manufacturing precision

If the primitive distributor analyzes indices to eliminate duplicates, then rendering accuracy is improved, but processing speed deteriorates due to computational intensity

Engineering Contradiction:
Improverendering accuracyVSAvoidprocessing speed
Core Design Contradiction:
Manufacturing precisionVSProductivity

Solution Approach 1:

The patent divides the index buffer into multiple work slices and distributes them to different graphics processing pipelines for parallel processing. Each pipeline receives a subset of indices and processes them independently, eliminating the single-point bottleneck of the traditional primitive distributor while maintaining duplicate elimination functionality across all pipelines through coordinated processing.

Inventive Principle:
Principle #1Segmentation

2Productivity

If the primitive distributor accesses more indices simultaneously, then processing throughput is improved, but memory bandwidth consumption increases

Engineering Contradiction:
Improveprocessing throughputVSAvoidmemory bandwidth consumption
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The index buffer is segmented into multiple work slices that are distributed across parallel pipelines. Each pipeline accesses only its assigned subset of indices from memory, rather than all indices being accessed by a single primitive distributor. This segmentation reduces the peak memory bandwidth requirement while maintaining high throughput through parallel processing.

Inventive Principle:
Principle #1Segmentation

3Productivity

If the primitive distributor increases the number of indices analyzed simultaneously, then processing speed is improved, but design complexity increases

Engineering Contradiction:
Improveprocessing speedVSAvoiddesign complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent distributes the index analysis task across multiple independent pipelines, each handling a portion of the work. This segmentation allows each pipeline to process indices at high speed without requiring an overly complex single-unit design. The parallel architecture achieves high overall processing speed while keeping individual pipeline designs manageable and modular.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS10332310B2Distributed index fetch, primitive assembly, and primitive batching
Publication Date: 2019.06.25 NVIDIA CORP
  • US10332310B2 patent drawing
  • US10332310B2 patent drawing
  • US10332310B2 patent drawing

AI summary

One embodiment of the present invention includes a technique for distributing work slices associated with a graphics processing unit for processing. A primitive distribution system receives a draw command related to a graphics object associated with a plurality of indices. The primitive distribution system creates a plurality of work slices, where each work slice is associated with a different subset of the indices included in the plurality of indices. The primitive distribution system scans a first subset of indices to identify a first set of characteristics that is needed to process a second subset of indices. The primitive distribution system processes the second subset of indices based at least in part on the one or more characteristics. Advantageously, because multiple work slices are analyzed in parallel for duplicate indices, the time required to analyze work slices is more in balance with the time required to process the work slices, leading to greater utilization of GPU resources and improved overall performance.