Split Virtual GPU Driver Architecture for Low-Overhead Guest Graphics
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing virtual environments in computing systems face inefficiencies in graphics processing due to the serialization of graphics APIs across host and guest operating systems, leading to high overhead and suboptimal resource utilization.
Innovation Solution
The GPU driver is split between the host and guest operating systems, with the user mode portion moved to the guest OS, and only kernel-mode communications are serialized, utilizing the Windows Display Driver Model (WDDM) for reduced serialization overhead.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If the GPU driver is completely moved to the guest operating system, then graphics processing efficiency is improved, but security and reliability are worsened due to increased guest OS access to host hardware
Solution Approach 1:
The GPU driver is segmented into two parts: a user-mode component in the guest OS for graphics processing and a kernel-mode component in the host OS for hardware access. This segmentation allows efficient graphics processing in the guest while maintaining security through controlled host-mediated hardware access.
Solution Approach 2:
The host OS kernel-mode driver acts as an intermediary between the guest OS user-mode driver and the physical GPU hardware. This intermediary enables the guest to access graphics processing resources efficiently while the host maintains security control over actual hardware access.
2Reliability
If graphics APIs are serialized across host and guest operating systems, then system security is improved, but processing overhead increases due to serialization
Solution Approach 1:
The graphics processing pipeline is segmented into unserialized user-mode operations in the guest OS and serialized kernel-mode operations at the host boundary. This allows most graphics processing to occur without serialization overhead, while maintaining security at the critical host-guest boundary.
Solution Approach 2:
Serialization is applied only partially - specifically at the kernel-mode boundary where security is critical - rather than throughout the entire graphics processing pipeline. This minimizes serialization overhead while maintaining necessary security controls.
3Ease of operation
If the user mode portion of the GPU driver remains in the host OS, then ease of hardware management is improved, but resource utilization deteriorates due to cross-OS communication overhead
Solution Approach 1:
The driver architecture is segmented with user-mode components in the guest OS for resource-intensive graphics processing and kernel-mode components in the host OS for simplified hardware management. This segmentation optimizes both ease of management and resource utilization.
Solution Approach 2:
The host kernel-mode driver serves as an intermediary that simplifies hardware management for the guest while enabling efficient resource utilization through direct user-mode access to graphics processing functions within the guest OS.
Data Source
AI summary
In general, techniques are described for providing a virtual graphics processing unit driver by receiving, in a user mode of a guest process executed by a computing system, one or more graphics commands from an application of the guest process; triggering, in the user mode of the guest process, an operating system call in response to the one or more graphics commands; translating, in a kernel mode of the guest process, the operating system call into a first virtual buffer; translating, in the user mode of a host process executed by the computing system, the first virtual buffer into the operating system call; and sending, in the user mode of the host process, the operating system call to a graphics processing unit driver in a kernel mode of the host process.


