Rendering Engine MIMD Cores Ray Tracing Parallelization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Ray tracing operations 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 for acceleration.

Innovation Solution

A rendering engine with multiple MIMD processing cores is implemented to asynchronously process different rays or units of serial work, allowing ray tracing and other serial processing tasks to be performed largely in parallel across processing cores, with a scheduler optimizing task distribution across pipelines.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If conventional GPUs use SIMD or SIMT execution models for parallel processing, then processing throughput is increased for tasks with same instructions, but ray tracing operations cannot be efficiently executed because each ray involves different inputs and computations

Engineering Contradiction:
Improveprocessing throughputVSAvoidability to handle different ray computations
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent divides the ray tracing workload into segments that can be processed by different execution models. Rays are grouped and assigned to either SIMD/SIMT cores for standardized operations or MIMD cores for divergent material shading computations, allowing each segment to be processed by the most appropriate execution model

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces dynamic task scheduling and routing mechanisms that adaptively assign rays to different execution models based on the computational characteristics of each ray. The system dynamically determines whether a ray requires standardized SIMD/SIMT processing or divergent MIMD processing, optimizing performance for varying workloads

Inventive Principle:
Principle #15Dynamics

2Productivity

If more transistors are added to GPUs to improve ray tracing performance, then processing capability increases, but die size increases or transistor density must be increased which is becoming difficult

Engineering Contradiction:
Improveray tracing processing capabilityVSAvoidprocessor die size
Core Design Contradiction:
ProductivityVSArea of stationary object

Solution Approach 1:

The patent makes existing GPU hardware resources multi-functional by enabling them to handle both traditional SIMD/SIMT graphics workloads and MIMD ray tracing operations. The same physical cores can dynamically switch between execution models, eliminating the need for separate dedicated hardware for ray tracing

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

Solution Approach 2:

The patent changes the operational parameters of existing processor cores by introducing multiple execution models (SIMD, SIMT, and MIMD) that can be activated based on workload requirements. This allows existing hardware to perform diverse functions without physical expansion

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS11908064B2Accelerated processing via a physically based rendering engine
Publication Date: 2024.02.20 NVIDIA CORP
  • US11908064B2 patent drawing
  • US11908064B2 patent drawing
  • US11908064B2 patent drawing

AI summary

One embodiment of a computer-implemented method for processing ray tracing operations in parallel includes receiving a plurality of rays and a corresponding set of material shading instructions for each ray included in the plurality of rays for processing, wherein each ray represents a path from a light source to at least one point within a three-dimensional (3D) environment, and each corresponding set of material shading instructions is based at least in part on one or more material properties associated with at least one surface of at least one object included in the 3D environment; assigning each ray included in the plurality of rays to a different processing core included in a plurality of processing cores; and for each ray included in the plurality of rays, causing the processing core assigned to the ray to execute the corresponding set of material shading instructions on the ray to generate a color.