Graphics and Compute API Memory Management for Explicit GPU Allocation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing graphics processing unit (GPU) memory management APIs do not allow clients to explicitly participate in memory allocation and management for GPU objects, leading to inflexible and inefficient use of GPU memory.
Innovation Solution
Implementing an application programming interface (API) that enables clients to request and manage memory requirements and locations for GPU objects, allowing for explicit memory allocation and binding, thereby enhancing memory flexibility and efficiency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of operation
If GPU memory management is automated without client participation, then memory allocation is simplified, but memory flexibility and efficiency deteriorate
Solution Approach 1:
The API dynamically switches between automated and manual memory management modes. Clients can choose to either let the system automatically allocate memory or explicitly participate in the allocation process by providing memory locations and requirements, allowing the system to adapt to different operational needs.
Solution Approach 2:
The system provides self-service memory management capabilities where clients can query memory requirements, specify memory locations, and manage their own GPU object memory allocation. This empowers clients to optimize memory usage while maintaining the ability to use automated management when convenient.
2Productivity
If GPU memory is allocated automatically, then allocation speed is improved, but memory utilization efficiency deteriorates
Solution Approach 1:
The API implements feedback mechanisms where clients can query memory requirements before allocation and provide information about available memory locations. This feedback loop enables the system to make informed allocation decisions that optimize memory utilization while maintaining efficient allocation processes.
Solution Approach 2:
Clients can perform preliminary actions by querying memory requirements and preparing memory locations before actual allocation occurs. This preliminary preparation enables more efficient memory utilization during the allocation process without sacrificing allocation speed.
3Stability of the object's composition
If memory locations are fixed for GPU objects, then memory stability is improved, but memory reuse capability deteriorates
Solution Approach 1:
The system dynamically manages memory location assignments. While memory locations are assigned specifically to GPU objects for stability, the API enables clients to manage and reuse these memory locations for different objects at different times, providing both stability during object lifetime and reuse capability across different objects.
Solution Approach 2:
The API enables clients to recover and reuse memory locations after GPU objects are destroyed or no longer need the memory. This allows stable memory assignment during object lifetime while enabling efficient memory reuse across different objects, eliminating waste and improving overall memory utilization.
Data Source
AI summary
Methods are provided for creating objects in a way that permits an API client to explicitly participate in memory management for an object created using the API. Methods for managing data object memory include requesting memory requirements for an object using an API and expressly allocating a memory location for the object based on the memory requirements. Methods are also provided for cloning objects such that a state of the object remains unchanged from the original object to the cloned object or can be explicitly specified.


