GPU Failure Recovery via Command Buffering and Readback

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current graphics processing unit (GPU) failure recovery methods are inefficient and inconsistent, as they rely on applications to manage and reissue commands, often leading to slow and undesirable results due to the asynchronous nature of pipelined graphics commands.

Innovation Solution

Implementing a method that transparently manages pipelined graphics commands by delaying the alert to applications until a readback request response is received, allowing for the transmission of rendered frame data and subsequent commands to a functioning GPU, thereby ensuring seamless recovery from failures without application intervention.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If applications are responsible for recovering from GPU failure by deriving graphics state and reissuing commands, then application control over recovery is maintained, but recovery speed decreases and results become inconsistent

Engineering Contradiction:
Improverecovery consistencyVSAvoidrecovery speed
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The graphics driver acts as an intermediary between the application and GPU, taking over the recovery process. The driver captures graphics state and commands before GPU failure, then automatically reconstructs and reissues these to a recovered or alternative GPU, eliminating the need for application intervention while ensuring consistent and fast recovery.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The driver performs preliminary capture and storage of graphics state and commands in a buffer before failure occurs. This advance preparation allows the system to immediately reconstruct and reissue the complete graphics state upon failure detection, achieving fast recovery without application intervention.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If pipelined graphics commands are processed asynchronously, then rendering performance is improved, but failure recovery becomes complex and inconsistent

Engineering Contradiction:
Improverendering performanceVSAvoidfailure recovery complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The driver captures and buffers graphics commands and state in advance as they are processed in the pipeline, before any failure occurs. This preliminary accumulation of complete command sequences allows the system to maintain asynchronous processing during normal operation while having all necessary recovery data ready when failure occurs.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The driver segments the pipelined graphics commands into discrete, complete units with associated state information, capturing each segment before failure. This segmentation allows the recovery process to reconstruct and reissue complete, independent command segments in the correct sequence, simplifying recovery despite the asynchronous pipeline nature of modern graphics processing.

Inventive Principle:
Principle #1Segmentation

3Adaptability or versatility

If applications manually manage recovery by reissuing commands, then application-specific recovery logic is implemented, but recovery time increases significantly

Engineering Contradiction:
Improveapplication-specific recovery logicVSAvoidrecovery time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The graphics driver performs self-service by automatically capturing, storing, and reissuing graphics commands without application intervention. The driver monitors its own state and automatically initiates recovery using pre-captured data, eliminating the time-consuming manual recovery process while maintaining application-specific recovery characteristics through the driver's built-in state management capabilities.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS10049423B2Graphics processing unit failure recovery
Publication Date: 2018.08.14 VMWARE INC
  • US10049423B2 patent drawing
  • US10049423B2 patent drawing
  • US10049423B2 patent drawing

AI summary

Exemplary methods, apparatuses, and systems receive a command from a program to render graphics data on a display device, transmit the command to a graphics processing unit (GPU), and transmit a readback request to the GPU. Upon receiving a response to the readback request from the GPU, the program is alerted that the command has been transmitted to the GPU. The response to the readback request is a pointer to a memory location at which the GPU has written rendered frame data representing the command. In response to receiving notification of a failure of the GPU, the rendered frame data written in response to the readback request and any additional commands to render the additional graphics requests received subsequent to the transmission of the readback request are transmitting to the GPU upon recovery from the failure, or to another GPU.