GPU Shader Ray Data Store Logic for Selective Transfers
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing graphics processing units (GPUs) face inefficiencies in loading and storing ray tracing data due to the need to transfer large amounts of data between shader processing units and external storage, leading to inefficient use of interfaces and reduced performance.
Innovation Solution
Implementing shader processing units with load and store logic that allow for efficient retrieval and storage of ray data by identifying and grouping related data elements, enabling the use of single instructions to transfer multiple related data elements, thereby optimizing data transfer between the shader processing units and external storage.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If ray data is transferred between shader processing units and external storage, then data availability is improved, but data transfer efficiency deteriorates due to large data volumes and inefficient interface usage
Solution Approach 1:
The patent segments ray data into structured groups (e.g., by ray index or data type) and organizes them in hierarchical storage structures. This segmentation enables selective transfer of specific data groups rather than entire datasets, reducing transfer volume while maintaining reliable access to required ray data elements.
Solution Approach 2:
The system performs preliminary actions by pre-organizing ray data in external storage with metadata indices and grouping related data elements together. This preparation allows the shader processing units to quickly identify and request only the necessary data groups, reducing transfer time and improving efficiency without compromising data availability.
2Measurement precision
If multiple ray data elements are transferred individually, then data precision is maintained, but interface usage efficiency deteriorates due to excessive transfer operations
Solution Approach 1:
The patent merges multiple related ray data elements into unified data groups or bundles that can be transferred together in single operations. By combining data elements that are frequently accessed together (such as spatial coordinates, intersection data, or acceleration structure information), the system maintains data precision while reducing the number of separate transfer operations and improving interface usage efficiency.
3Adaptability or versatility
If ray data is dynamically loaded and stored during processing, then data accessibility is improved, but processing time increases due to frequent data transfers
Solution Approach 1:
The system introduces an intermediary layer in the form of a memory hierarchy or buffer structure between the shader processing units and external storage. This intermediary cache or buffer stores frequently accessed ray data groups, enabling fast access during processing while maintaining the ability to dynamically load additional data from external storage when needed, thus reducing overall processing time while preserving data accessibility.
Data Source
AI summary
Shader processing units for a graphics processing unit execute ray tracing shaders that generate ray data associated with rays. The ray data includes a plurality of ray data elements. Store logic receives, as part of a ray tracing shader, a ray store instruction that includes: (i) information identifying a store group of a plurality of store groups, each store group 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 store group to be stored in an external unit. In response to receiving the ray store instruction, the store logic retrieves the identified ray data elements for one or more rays from the storage. The store logic then sends one or more store requests to an external unit which cause the external unit to store the identified ray data elements for the one or more rays.


