Rendering Engine Segmentation for Ray Tracing Throughput

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Ray tracing operations in computer graphics cannot be efficiently executed in parallel on conventional GPUs due to the need for different material shader programs for each ray, limiting the leverage of highly parallel architectures.

Innovation Solution

A rendering engine with multiple MIMD processing cores is introduced, allowing asynchronous processing of rays and offloading specialized tasks to optimized pipelines, with a scheduler to optimize task scheduling across these pipelines.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If ray tracing operations are executed on conventional GPUs using SIMD or SIMT execution models, then processing throughput is limited, but if rays are sorted by material type to enable parallel processing, then processing complexity increases

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

Solution Approach 1:

The system segments ray tracing operations into two distinct execution paths: a first execution unit that processes rays requiring serial execution with different material shader programs, and a second execution unit that processes rays that can be executed in parallel using SIMD/SIMT models. This segmentation allows each unit to be optimized for its specific execution mode, resolving the contradiction between throughput and complexity by eliminating the need to sort rays by material type while maintaining parallel processing capabilities for suitable operations.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A scheduling mechanism acts as an intermediary between the first and second execution units, dynamically assigning rays to appropriate execution units based on their material shader requirements. This mediator coordinates the two execution paths, ensuring that rays requiring custom material shaders are handled by the serial processing unit while others are efficiently processed in parallel, thereby maintaining high throughput without requiring complex manual sorting.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If more transistors are added to increase processing capacity for ray tracing, then processing performance improves, but die size increases or transistor density must increase

Engineering Contradiction:
Improveprocessing performanceVSAvoiddie size
Core Design Contradiction:
ProductivityVSArea of stationary object

Solution Approach 1:

The first execution unit is designed to perform multiple functions: it can execute material shader programs for rays requiring serial processing, and it can also handle tasks that would traditionally require specialized hardware. This multi-functional design allows the system to achieve ray tracing performance without adding dedicated specialized transistors, as the first execution unit leverages existing processing resources for multiple purposes, thereby improving performance without increasing die size.

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

Solution Approach 2:

The system dynamically allocates rays to different execution units based on their specific requirements rather than using a static hardware configuration. The scheduling mechanism allows the first execution unit to adaptively handle varying workloads of serial processing tasks, maximizing the utilization of existing transistors and avoiding the need for additional hardware resources.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS11830123B2Accelerated processing via a physically based rendering engine
Publication Date: 2023.11.28 NVIDIA CORP
  • US11830123B2 patent drawing
  • US11830123B2 patent drawing
  • US11830123B2 patent drawing

AI summary

One embodiment of a computer-implemented method for processing data within a fixed-function pipeline included in an execution unit includes receiving a first input from a first processing unit, wherein the first input corresponds to a first fixed-function; executing the first fixed-function on the first input to generate a first output, wherein the first fixed-function is executed on the first input prior to executing the first fixed-function on one or more inputs received from a plurality of processing cores that are processing a plurality of rays, and wherein each ray represents a path from a light source to at least one point within a three-dimensional (3D) environment; and transmitting the first output to the first processing unit for further processing.