GPU Thread Priority Mechanism for Shared Resource Arbitration
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In graphics processing, threads executed by a GPU lack priority differentiation, leading to potential latency issues and pipeline bubbles due to equal resource access priorities, which can hinder efficient execution of high-priority threads.
Innovation Solution
Assigning priority classes to processing threads before dispatch, allowing higher-priority threads to access shared resources preferentially, with different priority levels applicable across various shared resources and shader stages.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If threads are executed with equal priority in a GPU, then all threads can access shared resources uniformly, but high-priority threads experience latency and pipeline bubbles due to inability to differentiate access priority
Solution Approach 1:
The patent applies local quality by assigning different priority levels to different threads based on their specific requirements. The arbitration unit examines the priority class of each thread and grants shared resource access preferentially to high-priority threads, allowing each thread to receive differentiated treatment according to its local needs rather than uniform treatment for all threads
2Loss of time
If priority classes are assigned to threads and arbitration is implemented for shared resource access, then high-priority threads gain preferential access reducing latency, but the system complexity increases due to arbitration logic and priority management
Solution Approach 1:
The patent applies preliminary action by assigning priority classes to threads before they are dispatched to execution units. The thread dispatcher pre-categorizes threads into different priority classes based on their execution characteristics and resource access patterns, so that when threads contend for shared resources, the arbitration unit can quickly determine access order without complex real-time analysis, thereby reducing the complexity of the arbitration system while maintaining effective priority-based access
Data Source
AI summary
A processing apparatus is described. The apparatus includes a graphics processing unit (GPU), including a thread dispatcher to assign a priority class to each of a plurality of processing threads prior to dispatching the one or more processing threads, a plurality of execution units to process the threads, a shared resource coupled to each of the plurality of execution units and an arbitration unit to grant access to the shared resource to a first of the plurality of execution units based on the priority class of a thread being executed at the first execution unit.


