Multicore GPU Memory Allocation for In-Order 3-D Rendering

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Implementing rendering tasks in parallel on a multicore GPU while respecting the order in which primitives are provided by the application driver is challenging due to the unpredictability of processing times, leading to potential out-of-sequence completion and deadlock situations.

Innovation Solution

A method and apparatus for memory allocation in a 3-D graphics rendering system that prioritizes memory allocation to the core processing the earliest active work-package, restricting allocations to other cores based on unrecoverable memory and free pool size, using a content addressable memory (CAM) to manage core states and ensure sequence integrity.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If rendering tasks are processed in parallel on multiple cores, then productivity is improved, but the rendering order may be violated leading to incorrect results

Engineering Contradiction:
Improverendering throughputVSAvoidrendering order correctness
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system performs preliminary actions by allocating memory in advance for each work-package before actual rendering occurs. The memory allocation manager pre-allocates buffers based on work-package metadata, ensuring that when rendering tasks are distributed to multiple cores, the memory infrastructure is already prepared to maintain proper sequencing and prevent out-of-order completion issues.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If memory is allocated to all cores simultaneously, then productivity is improved, but memory availability for the earliest work-package may be exhausted causing deadlock

Engineering Contradiction:
Improveparallel processing efficiencyVSAvoidsystem deadlock freedom
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system applies local quality by implementing differentiated memory allocation policies for different cores based on their current work-package status. The memory allocation manager identifies the earliest active work-package and prioritizes memory allocation to the core processing it, while restricting allocations to other cores. This localized, context-aware allocation ensures the earliest work-package always has sufficient memory resources without completely blocking other cores.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The system implements dynamic memory allocation where the allocation policy changes based on real-time system state. The memory allocation manager continuously monitors which core is processing the earliest active work-package and adjusts memory availability dynamically. When a core needs memory for the earliest work-package, it receives priority allocation; otherwise, other cores receive restricted allocations. This dynamic approach prevents deadlock while maintaining parallel processing efficiency.

Inventive Principle:
Principle #15Dynamics

3Reliability

If memory allocation is restricted to maintain order, then rendering order correctness is improved, but productivity decreases due to memory bottlenecks

Engineering Contradiction:
Improverendering order correctnessVSAvoidparallel processing throughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system changes allocation parameters dynamically based on work-package priority and core status. Instead of using a static memory allocation policy, the memory allocation manager adjusts memory availability parameters in real-time. When a core is processing the earliest active work-package, the system changes the allocation parameter to allow full memory access; for other cores, it restricts allocation. This parameter change approach maintains rendering order correctness while minimizing impact on parallel processing throughput.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS12417122B2Memory allocation for 3-D graphics rendering
Publication Date: 2025.09.16 IMAGINATION TECH LTD
  • US12417122B2 patent drawing
  • US12417122B2 patent drawing
  • US12417122B2 patent drawing

AI summary

A method and apparatus are provided for allocating memory for geometry processing in a 3-D graphics rendering system comprising multiple cores. Geometry processing work is divided up into discrete work-packages, which form an ordered sequence. Cores are assigned different work-packages to process, and make memory allocation requests to enable them to store the results of the processing. Memory allocation requests relating to the current earliest uncompleted work-package in the sequence are treated differently to other requests, and may be prioritised.