Graphics Driver Batch Command Processing for GPU Resource Synchronization
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current graphics processing systems face inefficiencies due to the need for explicit synchronization between media processors, limited parallelism caused by interrupts, and bottlenecks in shared graphics resources, as well as fractional precision limitations in media processor hardware, which hinder simultaneous execution and accurate scaling of graphics operations.
Innovation Solution
A method and apparatus that update graphics resource usage atomically by monitoring availability and using a stream of graphics commands submitted to a GPU, allowing for batch processing and asynchronous notifications to optimize resource management and scaling, thereby reducing synchronization overhead and enhancing parallel execution.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If explicit synchronization is used between media processors, then reliability of graphics operations is improved, but productivity is degraded due to stopping and starting processors
Solution Approach 1:
The patent applies preliminary action by having the host processor pre-submit multiple graphics commands to the media processor before the media processor begins execution. This allows the media processor to execute a batch of commands autonomously without requiring the host processor to wait for completion of each individual command, thereby maintaining synchronization reliability while improving parallel execution efficiency
Solution Approach 2:
The patent introduces a command buffer as an intermediary data structure between the host processor and media processor. The host processor writes commands to the buffer, and the media processor reads and executes them independently. This intermediary mechanism decouples the two processors, allowing reliable synchronization through buffer management while enabling continuous parallel operation without frequent stopping and starting
2Reliability
If interrupts are used for each graphics operation, then reliability of operation completion tracking is improved, but productivity is degraded due to prevented simultaneous execution
Solution Approach 1:
The patent merges multiple individual graphics commands into a single command batch that is submitted to the media processor as one unit. Instead of generating an interrupt for each individual command completion, the system generates a single interrupt when the entire batch is complete. This combining approach maintains reliable tracking of operation completion while eliminating interrupts that would prevent simultaneous execution of multiple operations
3Reliability
If graphics resources are deleted only when media processors are idle, then reliability of resource management is improved, but productivity is degraded due to prevented parallel operations
Solution Approach 1:
The patent applies preliminary action by having the host processor wait for a confirmation signal from the media processor indicating that graphics resources are no longer needed before deleting them. This allows the media processor to continue using resources during parallel operations, and only after the processor confirms idle status does the host processor proceed with resource deletion. This maintains reliable resource management while enabling parallel operations to proceed without waiting for processor idle status
Data Source
AI summary
A method and an apparatus for updating graphics resource usage according to a stream of graphics commands atomically submitted to a graphics processing unit (GPU) are described. The stream of graphics commands may be received from a plurality of graphics APIs (application programming interfaces) by a graphics driver. Availability of graphics resources of the GPU may be monitored by the graphics driver for submitting the stream of graphics commands. A single notification from the GPU may indicate that all graphics commands submitted to the GPU have been executed for updating a usage of graphics resources associated with the executed graphics commands.


