GPU Kernel Memory Allocation With Runtime Coprocessor Adjustment

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional GPU memory allocation is static and inefficient, leading to resource waste and performance overhead due to inability to dynamically adjust memory requirements during kernel execution, which limits concurrent execution of workgroups and reduces efficiency.

Innovation Solution

Integration of a coprocessor within the GPU to manage a memory pool, allowing dynamic allocation and deallocation of memory resources in response to kernel requests, using interrupts, doorbell signals, or polling to modify memory allocations without stopping execution.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If static memory allocation is used for GPU kernels, then memory management is simple, but memory resources cannot be dynamically adjusted during execution leading to resource waste and performance overhead

Engineering Contradiction:
Improvememory allocation adaptabilityVSAvoidmemory management complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent implements dynamic memory allocation by introducing a coprocessor that can modify memory allocations during kernel execution. The system transitions from static pre-allocation to dynamic on-demand allocation, allowing the memory allocation to change adaptively based on actual kernel needs during execution.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

A coprocessor is introduced as an intermediary component between the CPU and GPU memory management. This coprocessor handles the complex tasks of dynamic memory allocation, deallocation, and modification, shielding the main system from the complexity while providing adaptive memory management capabilities.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If memory allocation remains static until kernel completion, then memory management overhead is reduced, but concurrent execution of workgroups is limited and GPU utilization decreases

Engineering Contradiction:
ImproveGPU utilizationVSAvoidmemory allocation time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The system enables continuous memory allocation adjustments during kernel execution rather than waiting for completion. The coprocessor can allocate, deallocate, or modify memory resources at any point during execution, allowing workgroups to dynamically adjust their memory needs and improving overall GPU utilization without time loss.

Inventive Principle:
Principle #20Continuity of useful action

Solution Approach 2:

Memory can be pre-allocated to a certain extent, but the system prepares for dynamic adjustments by establishing a memory management framework that can quickly respond to changing needs. The coprocessor is pre-configured to handle allocation requests without requiring kernel completion.

Inventive Principle:
Principle #10Preliminary action

3Reliability

If memory resources are allocated to satisfy maximum expected needs, then kernel execution can proceed without interruptions, but unnecessary memory resources are wasted when actual needs are lower

Engineering Contradiction:
Improvekernel execution reliabilityVSAvoidmemory resource waste
Core Design Contradiction:
ReliabilityVSLoss of energy

Solution Approach 1:

The system changes the memory allocation parameter from a fixed maximum value to a dynamic value that can be adjusted during execution. The coprocessor monitors actual memory consumption and can modify allocation parameters in real-time, allowing the system to maintain reliability when needed while reducing waste when actual needs are lower than maximum expectations.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The dynamic memory management system incorporates feedback mechanisms where the coprocessor monitors actual memory usage patterns during kernel execution and adjusts allocations accordingly. This feedback loop allows the system to respond to actual needs rather than relying on pre-estimated maximum requirements, eliminating waste while ensuring sufficient resources are available.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS12541813B2Dynamic kernel memory space allocation
Publication Date: 2026.02.03 ADVANCED MICRO DEVICES INC
  • US12541813B2 patent drawing
  • US12541813B2 patent drawing
  • US12541813B2 patent drawing

AI summary

A processing unit includes one or more processor cores and a set of registers to store configuration information for the processing unit. The processing unit also includes a coprocessor configured to receive a request to modify a memory allocation for a kernel concurrently with the kernel executing on the at least one processor core. The coprocessor is configured to modify the memory allocation by modifying the configuration information stored in the set of registers. In some cases, initial configuration information is provided to the set of registers by a different processing unit. The initial configuration information is stored in the set of registers prior to the coprocessor modifying the configuration information.