GPU Thread Priority Mechanism for Shared Resource Arbitration

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvethread execution reliabilityVSAvoidthread latency
Core Design Contradiction:
ReliabilityVSLoss of time

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

Inventive Principle:
Principle #3Local quality

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

Engineering Contradiction:
Improvethread latencyVSAvoidarbitration system complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

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

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10776156B2Thread priority mechanism
Publication Date: 2020.09.15 INTEL CORP
  • US10776156B2 patent drawing
  • US10776156B2 patent drawing
  • US10776156B2 patent drawing

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.