GPU Partitioning for Isolated Multi-Context Virtualization
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional GPUs struggle with efficiently supporting multiple CPU processes due to resource underutilization and interference between processing subcontexts, leading to reduced performance and multitenancy issues in cloud-based deployments.
Innovation Solution
A parallel processing unit (PPU) is partitioned into logical processors, each with exclusive use of a subset of hardware resources, allowing multiple processing contexts to execute in functional isolation, enhancing resource utilization and multitenancy.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If multiple CPU processes offload processing tasks to a GPU simultaneously using processing subcontexts, then resource utilization improves, but resource interference and unfair consumption occur
Solution Approach 1:
The patent segments the GPU into multiple isolated partitions, each dedicated to a specific CPU process or virtual machine. This physical segmentation prevents resource interference between processes while maintaining high utilization, as each partition operates independently with its own resources rather than sharing a common pool that causes contention.
Solution Approach 2:
Each GPU partition is configured with specific local resources (processing cores, memory, caches) tailored to the requirements of the assigned CPU process. This local quality ensures that each process receives appropriate resource allocation without affecting others, eliminating the unfair consumption problem while maintaining overall system productivity.
2Device complexity
If processing subcontexts share a parent context, then device complexity is reduced, but functional isolation and fault containment are compromised
Solution Approach 1:
The patent creates completely separate partition contexts instead of nested subcontexts within a parent context. Each partition has its own independent context structure, which provides full fault isolation while maintaining manageable complexity through standardized partition creation and management interfaces.
Solution Approach 2:
The patent introduces a partition management layer that acts as an intermediary between CPU processes and GPU resources. This intermediary handles context creation, resource allocation, and fault containment, providing functional isolation without requiring complex nested context structures, thus maintaining device complexity at acceptable levels.
3Device complexity
If a GPU is configured for a single processing context, then device complexity is minimized, but resource utilization decreases when multiple CPU processes need service
Solution Approach 1:
The patent divides the GPU into multiple independent partitions, each capable of handling a separate CPU process simultaneously. This segmentation enables the GPU to service multiple processes in parallel rather than serially, dramatically improving utilization while keeping each partition's complexity equivalent to a single-context configuration.
Solution Approach 2:
The patent merges multiple single-context GPU configurations into a unified multi-partition architecture. Each partition maintains the simplicity of a single-context GPU, but their combination enables simultaneous service of multiple CPU processes, achieving high utilization without excessive complexity at the individual partition level.
Data Source
AI summary
A parallel processing unit (PPU), operating in a traditional processing environment or in a virtualized processing environment, can be divided into partitions. Each partition is configured to operate similarly to how the entire PPU operates. A given partition includes a subset of the computational and memory resources associated with the entire PPU. Software that executes on a CPU partitions the PPU for an admin user. A guest user is assigned to a partition and can perform processing tasks within that partition in isolation from any other guest users assigned to any other partitions. Because the PPU can be divided into isolated partitions, multiple CPU processes can efficiently utilize PPU resources.


