GPU Preemption via Double-Buffered Read-Modify-Write Memory
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional preemption techniques in graphics processing units (GPUs) rely on 'safe points' for stopping and resuming tasks, which can lead to unpredictable and potentially long delays due to asynchronous processing, impacting user experience by delaying higher priority graphics tasks.
Innovation Solution
Implementing double-buffering for read-modify-write memory resources to allow preemption at arbitrary control points, enabling immediate handling of preemption requests while maintaining a stable state for restarting the original task, by storing original data in one buffer and modified data in another, allowing the GPU to restart from the beginning.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If conventional preemption techniques using safe points are used, then the GPU can resume tasks, but unpredictable and long delays occur due to asynchronous processing
Solution Approach 1:
The patent applies preliminary action by pre-storing original task state information in a separate state buffer before preemption occurs. This allows the GPU to immediately restore the original state without waiting for asynchronous operations to complete, eliminating unpredictable delays while maintaining reliable preemption handling.
2Adaptability or versatility
If the GPU tracks progress through command streams for preemption, then higher priority tasks can be executed, but the system complexity increases
Solution Approach 1:
The patent segments the GPU state into separate buffers: an original task buffer for current operations and a state buffer for preserving original task information. This segmentation allows independent management of task states, enabling versatile task prioritization while reducing overall system complexity through modular state management.
3Stability of the object's composition
If the GPU returns to the original task at the stopping point, then continuity is maintained, but memory resources may be compromised
Solution Approach 1:
The patent creates a copy of the original task state information and stores it in a dedicated state buffer before preemption. This copying mechanism allows the GPU to restore the exact original state after preemption, maintaining task state continuity while ensuring memory resource integrity by preserving an unchanged copy of the original data.
Data Source
AI summary
This disclosure presents techniques and structures for preemption at arbitrary control points in graphics processing. A method of graphics processing may comprise executing commands in a command buffer, the commands operating on data in a read-modify-write memory resource, double buffering the data in the read-modify-write memory resource, such that a first buffer stores original data of the read-modify-write memory resource and a second buffer stores any modified data produced by executing the commands in the command buffer, receiving a request to preempt execution of the commands in the command buffer before completing all commands in the command buffer, and restarting execution of the commands at the start of the command buffer using the original data in the first buffer.


