Shader Ray Data Load Groups for GPU Local Storage Limits

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing graphics processing units (GPUs) face inefficiencies in loading and storing ray tracing data due to the large size of ray data associated with in-flight rays, which can overwhelm local storage and reduce the efficiency of shader processing units (SPUs) by requiring inefficient transfer of unwanted data and multiple instructions.

Innovation Solution

Implementing shader processing units (SPUs) with load and store logic that allow for efficient loading and storing of ray data by identifying and retrieving related ray data elements in groups using predefined load groups and instructions, reducing unnecessary data transfer and optimizing interface usage.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If ray data is dynamically loaded into shader processing unit as needed, then shader processing capability is improved, but data transfer efficiency deteriorates due to large size of ray data and multiple instructions required

Engineering Contradiction:
Improveshader processing capabilityVSAvoiddata transfer efficiency
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent segments ray data into multiple load groups, where each load group contains a subset of ray data elements that can be loaded together in a single instruction. This segmentation allows the shader processing unit to load only the necessary portions of ray data efficiently, reducing the number of instructions and improving data transfer efficiency while maintaining full processing capability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements partial loading of ray data by allowing the shader processing unit to load only specific portions of ray data (partial action) rather than requiring complete data transfer. The load groups enable selective loading of required ray data elements, reducing unnecessary data transfer overhead while maintaining sufficient data for processing.

Inventive Principle:
Principle #16Partial or excessive action

2Speed

If local storage is used for ray data, then processing speed is improved, but storage capacity is insufficient for large ray data

Engineering Contradiction:
Improveprocessing speedVSAvoidstorage capacity
Core Design Contradiction:
SpeedVSQuantity of substance

Solution Approach 1:

The patent divides ray data into multiple load groups that can be selectively loaded into local storage. This segmentation allows the system to load only the necessary portions of ray data into fast local storage for processing, while the remaining data remains in slower external storage. This resolves the contradiction by enabling high-speed processing of required data without requiring all data to be stored in local storage simultaneously.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements partial loading of ray data into local storage, where only the necessary portions of ray data are loaded into fast local storage for processing. This partial action approach allows the system to maintain high processing speed for the data that is actually needed, while avoiding the storage capacity constraints that would require all ray data to be stored in local memory.

Inventive Principle:
Principle #16Partial or excessive action

3Reliability

If all ray data is loaded into shader processing unit, then processing completeness is improved, but interface efficiency deteriorates due to transfer of unwanted data

Engineering Contradiction:
Improveprocessing completenessVSAvoidinterface efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments ray data into load groups that can be selectively loaded based on processing requirements. This segmentation enables the system to load only the necessary portions of ray data into the shader processing unit, improving interface efficiency by transferring less unwanted data while maintaining processing completeness for the required data through proper selection of load groups.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements partial loading of ray data by allowing selective loading of specific load groups into the shader processing unit. This partial action approach ensures that only necessary data is transferred, improving interface efficiency, while processing completeness is maintained by loading the appropriate portions of ray data that are actually needed for the rendering operations.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS12511812B2Methods and hardware logic for loading ray tracing data into a shader processing unit of a graphics processing unit
Publication Date: 2025.12.30 IMAGINATION TECH LTD
  • US12511812B2 patent drawing
  • US12511812B2 patent drawing
  • US12511812B2 patent drawing

AI summary

Shader processing units for a graphics processing unit that are configured to execute one or more ray tracing shaders that process ray data associated with one or more rays. The ray data for a ray includes a plurality of ray data elements. The shader processing unit comprises storage, and load logic. The load logic is configured to receive, as part of a ray tracing shader, a ray load instruction that comprises: (i) information identifying a load group of a plurality of load groups, each load group of the plurality of load groups comprising one or more ray data elements of the plurality of ray data elements, and (ii) information identifying one or more ray data elements of the identified load group to be retrieved from an external unit. In response to the ray load instruction, the load logic sends one or more load requests to the external unit which cause the external unit to retrieve the identified ray data elements of the identified load group for one or more rays. The received ray data elements are then stored in the storage of the shader processing unit for processing by the ray tracing shader.