Virtual Graphics Driver for Seamless GPU Resource Switching

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Users of electronic devices with multiple GPUs face disruptions when switching GPU resources, requiring power cycling or logging out, and existing solutions are not applicable to all software or provide seamless switching.

Innovation Solution

A virtual graphics driver that routes function calls between multiple GPUs, allowing seamless switching without user intervention by abstracting the device driver layer into a single virtual driver, enabling seamless rendering between GPUs and managing frame buffer access.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Use of energy by moving object

If GPU resources are switched between multiple GPUs, then power consumption is reduced and rendering efficiency is improved, but user operation continuity is disrupted requiring power cycling or logout

Engineering Contradiction:
Improvepower consumptionVSAvoiduser operation continuity
Core Design Contradiction:
Use of energy by moving objectVSEase of operation

Solution Approach 1:

A virtual graphics driver is introduced as an intermediary layer between applications and physical GPUs. This virtual driver abstracts the complexity of multiple GPU resources and enables seamless switching between them without requiring user intervention, power cycling, or logout. The virtual driver maintains a consistent interface while routing graphics calls to appropriate physical GPUs dynamically.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The graphics driver functionality is segmented into a virtual graphics driver that manages multiple physical GPUs independently. Each physical GPU can be controlled and switched individually through the virtual driver, allowing granular resource management while maintaining overall system continuity and user operation seamless experience.

Inventive Principle:
Principle #1Segmentation

2Adaptability or versatility

If individual applications are modified to enable GPU resource switching, then application-specific GPU switching is achieved, but system-wide compatibility and complexity are reduced

Engineering Contradiction:
Improveapplication-specific GPU switchingVSAvoidsystem-wide compatibility
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The virtual graphics driver provides a universal interface that works with all applications without requiring individual application modifications. It enables multi-functionality by supporting both application-specific GPU switching requirements and system-wide compatibility through a standardized abstraction layer that handles diverse graphics workloads across different software.

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

Data Source

PatentUS10504203B2Virtual graphics device driver
Publication Date: 2019.12.10 APPLE INC
  • US10504203B2 patent drawing
  • US10504203B2 patent drawing
  • US10504203B2 patent drawing

AI summary

Systems and methods are disclosed to enable switching of graphics processing unit (GPU) resources based on different factors. Embodiments include a virtual graphics driver as an interface between GPU drivers and the applications or graphics framework executing on an electronic device. The virtual graphics driver may switch GPU resources from a first GPU to a second GPU by routing function calls to the first GPU or the second GPU. The switching of GPU resources may be based on power management, system events such as hot-plug events, load management, user requests, any other factor, or any combination thereof. In some embodiments, a virtual frame buffer driver is provided that interfaces with the frame buffer of the GPU and provides a virtual view of the frame buffer to manage additional system application programming interfaces (APIs) during the switch.