GPU Virtualization via Intermediary Agent for Latency Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In virtualized environments, non-paravirtualized operating systems face challenges in rendering three-dimensional graphics due to lack of direct access to the graphics processing unit (GPU), leading to performance issues as they rely on indirect access through interfaces and drivers, while existing solutions often fail to provide exclusive access or are limited to specific graphics libraries like OpenGL, introducing latency.

Innovation Solution

A system where a hypervisor allocates direct access to a GPU for a non-paravirtualized operating system, with an agent intercepting three-dimensional draw commands and redirecting them to a rendering agent on the same machine, which then renders the images and transmits them back, allowing for efficient rendering and overcoming access limitations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If a virtualized environment is used to run multiple operating systems on the same physical hardware, then resource utilization is improved, but access to the graphics processing unit becomes indirect and performance deteriorates

Engineering Contradiction:
Improveresource utilizationVSAvoidgraphics rendering performance
Core Design Contradiction:
Quantity of substanceVSProductivity

Solution Approach 1:

A rendering agent is introduced as an intermediary component that runs within the virtual machine and intercepts graphics commands. This agent establishes a direct communication channel with the physical GPU, bypassing the traditional virtualized access path through the hypervisor and host operating system drivers. The intermediary enables the non-paravirtualized operating system to achieve direct GPU access while maintaining the virtualized environment's resource utilization benefits.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If indirect access through interfaces and drivers is used, then system compatibility is improved, but rendering speed and responsiveness worsen due to additional processing layers

Engineering Contradiction:
Improvesystem compatibilityVSAvoidrendering speed
Core Design Contradiction:
Adaptability or versatilityVSSpeed

Solution Approach 1:

The graphics rendering process is segmented into two distinct paths: command interception within the virtual machine and direct execution on the physical GPU. The rendering agent captures graphics commands at the application level, separates them from the traditional driver stack, and transmits them directly to the GPU. This segmentation eliminates the processing delays introduced by multiple driver layers while preserving system compatibility through the agent's ability to translate various graphics library commands.

Inventive Principle:
Principle #1Segmentation

3Adaptability or versatility

If a virtual GPU is implemented to allow multiple virtual machines to share access, then access flexibility is improved, but exclusive access and rendering efficiency deteriorate

Engineering Contradiction:
Improveaccess flexibilityVSAvoidrendering efficiency
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The system implements dynamic access management where the rendering agent within each virtual machine can selectively claim exclusive access to the physical GPU when needed. The agent monitors GPU usage and dynamically establishes direct access paths, allowing the virtual machine to switch between shared and exclusive access modes. This dynamic approach enables high-performance rendering when exclusive access is required while maintaining the flexibility of shared access during normal operation.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS9367947B2Remote rendering of three-dimensional images using virtual machines
Publication Date: 2016.06.14 CITRIX SYSTEMS INC
  • US9367947B2 patent drawing
  • US9367947B2 patent drawing
  • US9367947B2 patent drawing

AI summary

Remote rendering of three-dimensional images using virtual machines includes using a hypervisor executing on a physical computer to allocate exclusive and direct access to a graphics processing unit in the physical computer, to a first virtual machine. An agent executing on a second virtual machine intercepts three-dimensional draw commands generated by a three-dimensional application and forwards the intercepted draw commands to a rendering agent executing on the first virtual machine. The rendering agent then transmits the intercepted draw commands to the graphics processing unit for rendering upon which the graphics processing unit renders a three-dimensional image from the draw commands. The rendering agent obtains the rendered image from the graphics processing unit and forwards the image to the second virtual machine. Upon receiving the rendered image, the second virtual machine transmits the rendered image to another remote, physical computer where the rendered image is displayed to a user.