GPU Resource Sharing via Slice Partitioning

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current large-scale compute infrastructures do not enable applications running on the same server or cluster to share GPUs, leading to decreased utilization, increased costs, and energy wastage due to the lack of a software mechanism for concurrent GPU sharing among applications.

Innovation Solution

The implementation of a GPU gatekeeper module that partitions GPU resources into slices, allowing multiple applications to share processing cores and memory in a fair and secure manner, enabling concurrent execution and optimizing resource utilization across both space and time dimensions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If whole GPU is allocated to a single application, then the application can utilize all GPU resources, but other applications cannot share the GPU leading to decreased utilization

Engineering Contradiction:
ImproveGPU utilizationVSAvoidresource sharing capability
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent divides the GPU into multiple partitions, each with its own dedicated resources (processing cores, memory, caches). This segmentation allows multiple applications to simultaneously access different portions of the GPU without interfering with each other, thereby enabling resource sharing while maintaining high utilization rates.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a GPU partitioning mechanism that acts as an intermediary between multiple applications and the physical GPU resources. This intermediary layer manages resource allocation, enables concurrent access by multiple applications, and maintains isolation between them, thus allowing versatile resource sharing while preserving productivity.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If GPU resources are shared among multiple applications, then utilization increases, but resource hogging may occur where one application monopolizes resources

Engineering Contradiction:
ImproveGPU utilizationVSAvoidresource allocation fairness
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

By dividing the GPU into fixed partitions with dedicated resources, the patent prevents any single application from monopolizing the entire GPU. Each partition has guaranteed resources that cannot be stolen by other applications, ensuring fair resource allocation while maintaining high overall utilization.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent assigns different resource characteristics to different partitions, allowing each application to have its own optimized resource allocation. This local differentiation ensures that each application receives appropriate resources for its needs while preventing resource hogging, thereby maintaining both productivity and fairness.

Inventive Principle:
Principle #3Local quality

3Loss of energy

If GPU resources are shared among applications, then cost and energy consumption are reduced, but security and non-interference guarantees are not provided

Engineering Contradiction:
Improveenergy consumptionVSAvoidsecurity guarantee
Core Design Contradiction:
Loss of energyVSReliability

Solution Approach 1:

The patent creates isolated partitions with dedicated resources that prevent applications from accessing or interfering with each other's memory and processing units. This physical isolation through segmentation provides security guarantees while enabling resource sharing that reduces energy consumption compared to allocating separate GPUs to each application.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The GPU partitioning mechanism serves as a secure intermediary that manages resource access between applications. It enforces isolation policies and prevents unauthorized access between partitions, providing security guarantees while enabling efficient resource sharing that reduces overall energy consumption.

Inventive Principle:
Principle #24Intermediary (Mediator)

4Productivity

If GPU resources are shared concurrently among applications, then utilization increases, but complexity of resource management increases

Engineering Contradiction:
ImproveGPU utilizationVSAvoidsoftware mechanism complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent simplifies resource management complexity by creating fixed, static partitions with predetermined resource allocations. This segmentation approach eliminates the need for complex dynamic scheduling and resource negotiation between applications, as each partition has its own dedicated resources that don't require complex coordination.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS9830677B2Graphics processing unit resource sharing
Publication Date: 2017.11.28 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US9830677B2 patent drawing
  • US9830677B2 patent drawing
  • US9830677B2 patent drawing

AI summary

Examples of GPU resource sharing among applications are disclosed. In one example, a method includes receiving a first request from a first application of the plurality of applications for first requested GPU resources, and receiving a second request from a second application of the plurality of applications for second GPU resources. The method also includes, responsive to determining that the first requested GPU resources are available, allocating a first slice of the GPU resources with a first requested amount of resources to the first application and, responsive to determining that the second requested GPU resources are available, allocating a second slice of the GPU resources with a second requested amount of resources to the second application. Further, the method includes enabling the first application and the second application to execute concurrently within the first slice of the GPU and the second slice of the GPU respectively.