Persistent Render Target Memory for Lower GPU Bandwidth
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current graphics processing techniques face inefficiencies in storing acceleration structures, leading to increased memory bandwidth consumption and performance costs, particularly in deferred rendering due to the high number of render targets and memory operations.
Innovation Solution
Implement a method to identify and prioritize render targets that contribute most to memory bandwidth usage, using persistent graphics memory to manage and optimize their storage, thereby reducing the number of read and write operations.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If all render targets are stored in memory using current node storage techniques, then complete rendering data is preserved, but memory bandwidth consumption increases and performance decreases
Solution Approach 1:
The patent extracts only the most frequently accessed render targets from the complete set and stores them in a dedicated cache structure, separating commonly used data from less frequently used data. This extraction principle reduces memory bandwidth consumption by keeping hot data in fast storage while maintaining the ability to access all rendering data when needed.
Solution Approach 2:
The patent applies local quality by creating a specialized cache structure with different storage characteristics for different render targets. Frequently accessed render targets receive premium cache storage with faster access, while less frequently accessed targets use standard memory storage, optimizing the overall system based on local access patterns.
2Adaptability or versatility
If multiple render targets are stored in buffer or cache, then rendering flexibility is improved, but device complexity increases due to space management requirements
Solution Approach 1:
The patent implements dynamic render target management where the cache allocation and eviction policies adapt based on access patterns. The system dynamically determines which render targets to keep in cache and which to evict, providing rendering flexibility while managing complexity through adaptive rather than static rules.
Solution Approach 2:
The cache management system operates autonomously using eviction policies that automatically determine when and what to evict based on usage patterns. This self-service approach reduces the need for complex manual management while maintaining rendering flexibility, as the system manages itself based on observed behavior.
3Loss of energy
If render targets are evicted from cache to make space, then memory bandwidth is reduced, but access time increases for evicted targets
Solution Approach 1:
The patent applies preliminary action by pre-loading frequently accessed render targets into the cache before they are needed for rendering. By anticipating which render targets will be accessed based on usage patterns, the system prepares the data in advance in fast storage, reducing both memory bandwidth utilization and access time for common operations.
Solution Approach 2:
The system uses feedback from access patterns to continuously optimize cache content. By monitoring which render targets are accessed and adjusting cache allocation accordingly, the system ensures that high-frequency targets remain in cache, minimizing access time penalties while maintaining low overall memory bandwidth utilization.
Data Source
AI summary
Aspects presented herein relate to methods and devices for graphics processing including an apparatus, e.g., a GPU. The apparatus may obtain an indication of a plurality of render targets (RTs) associated with a rendering process, where each of the plurality of RTs is associated with a subset of a graphics surface for the rendering process. The apparatus may also select at least one RT in the plurality of RTs based on the subset of the graphics surface associated with the at least one RT. Further, the apparatus may store the selected at least one RT in a buffer or a cache, or refraining from storing the selected at least one RT in the buffer or the cache.


