Transparent GPU Assignment in Multi-GPU Systems
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional multi-GPU systems either consume all resources when processing a single graphical application, preventing other applications from utilizing the system, or degrade performance when running multiple applications simultaneously due to resource sharing, and require rewriting existing applications to leverage multiple GPUs effectively.
Innovation Solution
A driver application that transparently directs graphics commands to specific GPUs within a multi-GPU system, allowing multiple applications to operate simultaneously without performance degradation by assigning each application a dedicated GPU for processing, without the need for application rewriting.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If a multi-GPU system is used to accelerate processing of a single graphics application, then processing performance of that application is improved, but no additional graphics application can utilize the resources of the multi-GPU system
Solution Approach 1:
The system segments the multi-GPU resources by creating separate address spaces for different graphics applications. Each application is assigned a dedicated address space that maps to specific GPU resources, allowing simultaneous operation of multiple applications without resource conflicts. The address space segmentation enables independent resource allocation to each application while maintaining overall system efficiency.
2Adaptability or versatility
If multiple graphics applications are run simultaneously on a multi-GPU system, then resource utilization is improved, but overall performance degrades due to time sharing of available resources
Solution Approach 1:
The system divides the multi-GPU resources into separate address spaces, with each graphics application operating in its own dedicated address space. This segmentation eliminates resource contention and time-sharing overhead, allowing each application to directly access assigned GPU resources without performance degradation from shared resource access.
3Productivity
If a graphics application directs its command stream to a particular GPU, then processing can be optimized for that GPU, but the application must be rewritten to be aware of GPU assignment
Solution Approach 1:
The system introduces an intermediary address space layer between the graphics application and the physical GPUs. This address space acts as a mediator that translates application commands into GPU-specific operations without requiring application modification. The address space mapping automatically routes commands to appropriate GPUs while maintaining application transparency and compatibility.
4Productivity
If existing graphical applications are made aware of GPU assignment, then they can leverage multi-GPU systems, but rewriting and recompilation is required
Solution Approach 1:
The address space serves as an intermediary that enables existing applications to automatically leverage multi-GPU systems without any modification. The address space mapping infrastructure handles GPU assignment and command routing transparently, eliminating the need for application rewriting or recompilation while still providing multi-GPU acceleration capabilities.
Data Source
AI summary
A method for transparently directing data in a multi-GPU system. A driver application receives a first plurality of graphics commands from a first graphics application and selects a first GPU from the multi-GPU system to exclusively process the first plurality of graphics commands. The first plurality of graphics commands is transmitted to the first GPU for processing and producing a first plurality of renderable data. The first plurality of renderable data is stored in a first frame buffer associated with the first GPU. A second plurality of graphics commands is received from a second graphics application and a second GPU is selected to exclusively process the second plurality of graphics commands. The second GPU processing the second plurality of graphics commands produces a second plurality of renderable data. The second plurality of renderable data is stored in a second frame buffer associated with the second GPU.


