Para-virtualized Asymmetric GPU Processor with Segmented Virtual Nodes
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing para-virtualization solutions underutilize the performant features of physical GPUs by serializing tasks, limiting parallel processing and resulting in inefficient GPU command execution in child partitions.
Innovation Solution
The implementation of a virtual GPU (vGPU) with a kernel-mode driver (KMD) and user-mode driver (UMD) in a child partition, which includes multiple virtual nodes for parallel operation, and a render component in the root partition for executing GPU commands, along with memory access channels for communication, allowing for parallel execution of diverse operations.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Device complexity
If a single virtual GPU node is used to process all GPU commands, then the system is simpler to manage, but the physical GPU is underutilized due to serialization of tasks
Solution Approach 1:
The vGPU is segmented into multiple virtual nodes (first virtual node, second virtual node, etc.), each capable of processing different types of GPU commands in parallel. This segmentation allows the system to maintain simplicity at the vGPU level while achieving high throughput through internal parallelization of command processing across multiple virtual nodes.
2Productivity
If multiple virtual nodes are implemented for parallel processing, then GPU command processing throughput is improved, but the device complexity increases
Solution Approach 1:
Multiple virtual nodes are implemented within the vGPU, where each virtual node can handle different types of GPU commands (e.g., rendering commands, compute commands). This multi-functionality approach enables parallel processing of diverse command types simultaneously, improving throughput while the virtual nodes collectively form a unified vGPU interface that abstracts the complexity from the host system.
3Device complexity
If tasks are serialized on a single virtual GPU node, then the vGPU structure is simpler, but the performant features of the physical GPU are underutilized
Solution Approach 1:
The vGPU is divided into multiple virtual nodes that can process different task types in parallel, enabling the physical GPU's performant features to be fully utilized. Each virtual node maps to specific GPU capabilities, allowing concurrent execution of rendering, compute, and other GPU-accelerated tasks without serialization overhead.
Solution Approach 2:
Multiple virtual nodes enable continuous utilization of the physical GPU by eliminating idle periods between task completions. While one virtual node is processing a task, another can simultaneously handle a different task type, ensuring the physical GPU remains continuously engaged and maximizing its computational throughput.
Data Source
Figure 1
Figure 2
AI summary
The present invention extends to methods, systems, and computer program products for providing asymmetric Graphical Processing Unit ("GPU") processors in a para-virtualized environment. A virtual GPU ("vGPU") within a child partition of the para-virtualized environment includes a kernel-mode driver ("KMD") and a user-mode driver ("UMD"). The KMD includes a plurality of virtual nodes. Each virtual node performs a different type of operation in parallel with other types of operations. The KMD is declared as a multi-engine GPU. The UMD schedules operations for parallel execution on the virtual nodes. A render component within a root partition of the para-virtualized environment executes GPU commands received from the vGPU at the physical GPU. A plurality of memory access channels established between the KMD and the render component communicate GPU commands between a corresponding virtual node at the KMD and the render component.