Rendering Virtual Machine for GPU Pass-Through

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Virtualization of GPUs in computer systems leads to performance penalties due to the need for conversion and emulation between different graphics APIs, such as DirectX and OpenGL, which reduces graphics throughput in Linux-based virtual computing systems like XEN.

Innovation Solution

A computing system architecture that includes a graphics processing unit and main processing circuitry with a hypervisor, a control virtual machine, and a specialized rendering virtual machine, allowing direct communication between the rendering virtual machine and the GPU, thereby bypassing the need for performance-reducing conversion and emulation, and enabling support for the Windows D3D API without affecting graphics performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a converter program (Wine) and separate graphics API (OpenGL) are used to provide D3D API support in XEN virtual computing systems, then compatibility with Windows applications is improved, but graphics performance deteriorates due to conversion delays and emulation overhead

Engineering Contradiction:
ImproveD3D API compatibilityVSAvoidgraphics throughput
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The system segments the virtualization architecture into multiple virtual machines: a control VM running Linux with the hypervisor, and a specialized rendering VM running Windows with native D3D drivers. This segmentation allows the rendering VM to handle graphics processing natively without conversion overhead, while the control VM manages system resources. The segmentation resolves the contradiction by isolating the compatibility layer (Windows D3D environment) from the performance-critical graphics processing path.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The rendering VM acts as an intermediary between the guest VMs and the GPU hardware. It receives graphics processing requests from the control VM and executes them using native D3D drivers directly on the GPU, eliminating the need for Wine conversion in the graphics path. This intermediary approach maintains D3D API compatibility while achieving native graphics performance by bypassing the conversion bottleneck.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If a specialized rendering virtual machine with pass-through access to the GPU is introduced, then graphics performance is improved by eliminating conversion overhead, but device complexity increases due to additional virtualization layers

Engineering Contradiction:
Improvegraphics rendering performanceVSAvoidvirtualization architecture complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The rendering VM is designed as a multi-functional component that combines several roles: it serves as a Windows operating system environment for executing D3D applications, hosts native D3D drivers for direct GPU communication, and acts as a bridge between the control VM and GPU hardware. This universality consolidates multiple functions into a single virtualization layer, reducing overall system complexity while maintaining high graphics performance.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The rendering VM is configured with pass-through access to the GPU, enabling it to directly control GPU operations without requiring intermediate virtualization handling for graphics commands. This self-service capability allows the rendering VM to manage its own graphics processing independently, reducing the complexity of inter-VM communication protocols and hypervisor intervention while maximizing rendering performance.

Inventive Principle:
Principle #25Self-service

3Productivity

If native D3D drivers are used in the rendering virtual machine, then graphics throughput is improved by eliminating emulation, but system adaptability decreases due to operating system specificity requirements

Engineering Contradiction:
Improvegraphics processing speedVSAvoidoperating system compatibility
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The system segments the operating system requirements by dedicating the rendering VM to run Windows specifically for D3D compatibility, while the control VM runs Linux for system management. This segmentation allows native D3D drivers to be used in the rendering VM without compromising overall system adaptability, as the control VM maintains compatibility with Linux-based tools and the hypervisor infrastructure.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The rendering VM serves as an intermediary that provides D3D API compatibility to guest VMs while running on a Linux-based hypervisor infrastructure. By isolating the Windows D3D environment to a specialized VM, the system achieves native graphics performance through D3D drivers while maintaining Linux compatibility at the host level. The rendering VM mediates between the Linux hypervisor and D3D-requiring applications, resolving the operating system compatibility conflict.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentEP2888662B1Specialized virtual machine to virtualize hardware resource for guest virtual machines
Publication Date: 2020.06.17 CITRIX SYSTEMS INC
  • EP2888662B1 patent drawingFigure 1
  • EP2888662B1 patent drawingFigure 2(a)~2(c)
  • EP2888662B1 patent drawingFigure 3

AI summary

A computing system includes a graphics processing unit (GPU) and main processing circuitry to execute computer program instructions forming a hypervisor, a control virtual machine (VM) and a specialized rendering VM for graphics processing. An application program of a guest VM generates graphics commands and data according to a graphics API such as Direct 3D. The rendering VM includes a graphics driver native to the GPU and is assigned pass-through access to the GPU by the control VM. The rendering VM receives the graphics information from the application program via an inter-VM communication channel, and it uses the graphics driver to control the GPU to perform graphics rendering. The use of the rendering VM enables native graphics performance to be achieved without constraining the control VM to use a compatible operating system. The technique is generally applicable to virtualization of hardware resources by specialized VMs.