Dynamic GPU Resource Allocation for Load Balancing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Modern graphics processing units (GPUs) face inefficiencies when executing multiple processes due to static allocation of texture processing clusters (TPCs) and memory resources, which restricts load balancing and cannot adapt to changing processing and memory requirements of processes.

Innovation Solution

A dynamic method for allocating execution resources and local memory within a GPU, where subcontexts can dynamically acquire and release TPCs and memory blocks based on load balancing, allowing for flexible and efficient resource allocation across multiple processes.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If static allocation of TPCs and memory resources is used for different subcontexts, then resource assignment is simple and deterministic, but load balancing is restricted and resource utilization is inefficient

Engineering Contradiction:
Improveresource utilization efficiencyVSAvoidresource allocation complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent implements dynamic resource allocation by allowing subcontexts to acquire and release TPCs and memory blocks at runtime based on load conditions. The compute work distributor monitors processor loads and dynamically assigns TPCs to subcontexts that need them, rather than using fixed static allocation. This dynamic approach resolves the contradiction by improving resource utilization through adaptability while managing complexity through centralized control logic.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes the allocation parameters of TPCs and memory blocks dynamically based on runtime conditions. When a subcontext needs additional processing resources, the system modifies the assignment parameters by allocating unused TPCs from other subcontexts. This parameter change approach allows the system to adapt resource distribution to current workload demands, resolving the efficiency-complexity contradiction.

Inventive Principle:
Principle #35Parameter changes

2Power

If more TPCs are allocated to a single subcontext, then that subcontext can execute more threads in parallel, but other subcontexts suffer from resource starvation and reduced parallelism

Engineering Contradiction:
Improveprocessing capacity of single subcontextVSAvoidoverall system throughput
Core Design Contradiction:
PowerVSProductivity

Solution Approach 1:

The compute work distributor implements a feedback mechanism by monitoring the load status of each TPC and the resource needs of each subcontext. When one subcontext acquires too many TPCs and other subcontexts have idle TPCs available, the feedback loop triggers reallocation to balance the distribution. This feedback control resolves the contradiction by preventing any single subcontext from monopolizing resources while maintaining overall system throughput.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

TPCs are designed to be universally allocatable to any subcontext that needs them, rather than being dedicated to specific subcontexts. The compute work distributor can dynamically assign any unused TPC to any subcontext that requires additional processing capacity. This universal allocation approach ensures that processing capacity can be flexibly distributed to maintain overall system productivity while supporting individual subcontext needs.

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

3Adaptability or versatility

If static memory assignment is used for each TPC, then memory allocation is predictable and simple, but memory resources cannot be increased or decreased as conditions change

Engineering Contradiction:
Improvememory resource flexibilityVSAvoidmemory management complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent implements dynamic memory allocation where the amount of local memory assigned to each TPC can change at runtime based on the needs of executing subcontexts. When a subcontext acquires additional TPCs dynamically, it also receives additional local memory blocks. This dynamic memory management resolves the contradiction by providing flexibility to adapt memory resources to changing conditions while managing complexity through centralized control by the compute work distributor.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS11307903B2Dynamic partitioning of execution resources
Publication Date: 2022.04.19 NVIDIA CORP
  • US11307903B2 patent drawing
  • US11307903B2 patent drawing
  • US11307903B2 patent drawing

AI summary

Embodiments of the present invention set forth techniques for allocating execution resources to groups of threads within a graphics processing unit. A compute work distributor included in the graphics processing unit receives an indication from a process that a first group of threads is to be launched. The compute work distributor determines that a first subcontext associated with the process has at least one processor credit. In some embodiments, CTAs may be launched even when there are no processor credits, if one of the TPCs that was already acquired has sufficient space. The compute work distributor identifies a first processor included in a plurality of processors that has a processing load that is less than or equal to the processor loads associated with all other processors included in the plurality of processors. The compute work distributor launches the first group of threads to execute on the first processor.