Dynamic Thread Arbitration for GPU Stall Avoidance

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional scheduling techniques in graphics processing units (GPUs) are inefficient and wasteful of system resources, leading to low performance per watt and suboptimal thread execution.

Innovation Solution

A novel thread execution arbitration mechanism that observes stalls in shared function units and selectively schedules threads to avoid potential stalls further down the pipeline, using detection and estimation logic to assign priority based on congestion levels.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If conventional scheduling techniques are used in graphics processors, then thread execution can be maintained with simple scheduling logic, but performance per watt deteriorates and system resources are wasted

Engineering Contradiction:
Improveperformance per wattVSAvoidenergy wastage
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The arbitration mechanism performs preliminary observation of stall conditions in shared function units before threads are scheduled. By detecting congestion levels in advance and estimating potential stalls, the system proactively assigns priorities to threads that are likely to encounter stalls, preventing energy wastage before it occurs. This preliminary action allows the scheduler to avoid selecting threads that would waste energy due to pipeline stalls.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system implements a feedback mechanism where the arbitration mechanism continuously monitors stall signals from shared function units and uses this information to dynamically adjust thread priorities. The observation logic detects congestion levels and feeds this information back to the scheduler, which then selects threads with lower expected stall rates. This closed-loop feedback enables the system to adapt to changing pipeline conditions and optimize energy efficiency continuously.

Inventive Principle:
Principle #23Feedback

2Productivity

If conventional scheduling techniques are used, then scheduling implementation remains simple, but resource utilization efficiency deteriorates

Engineering Contradiction:
Improveresource utilization efficiencyVSAvoidscheduling mechanism complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The scheduling mechanism is segmented into distinct functional components: an arbitration mechanism with observation logic that monitors stall conditions, and a scheduler that uses this information for thread selection. This segmentation allows the complex task of optimizing resource utilization to be divided into manageable parts - observation, estimation, and decision-making - making the overall system more tractable while improving efficiency.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

An arbitration mechanism acts as an intermediary between the shared function units and the thread scheduler. This intermediary observes congestion levels, estimates potential stalls, and translates this information into priority assignments for threads. By introducing this intermediary layer, the system can implement sophisticated resource allocation without requiring the scheduler itself to be overly complex, as the arbitration mechanism handles the complex analysis and estimation tasks.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If threads are scheduled without observing pipeline stalls, then scheduling speed remains fast, but thread execution efficiency deteriorates due to frequent stalls

Engineering Contradiction:
Improvethread execution efficiencyVSAvoidtime lost to stalls
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The system performs preliminary observation of stall conditions and estimation of potential pipeline stalls before threads are scheduled for execution. By detecting congestion levels in shared function units in advance, the arbitration mechanism can identify threads that are likely to encounter stalls and adjust their priorities accordingly. This preliminary action prevents threads that would cause or suffer from frequent stalls from being selected, thereby reducing time lost to stalls before execution begins.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The arbitration mechanism continuously monitors stall signals from shared function units and uses this feedback to dynamically adjust thread scheduling decisions. By observing actual stall conditions in real-time and feeding this information back to the scheduler, the system can adaptively select threads that are currently most likely to execute efficiently. This feedback loop enables the system to respond to changing pipeline conditions and minimize time lost to stalls.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS10269088B2Dynamic thread execution arbitration
Publication Date: 2019.04.23 INTEL CORP
  • US10269088B2 patent drawing
  • US10269088B2 patent drawing
  • US10269088B2 patent drawing

AI summary

A mechanism is described for facilitating thread execution arbitration for thread scheduling relating to graphics processors at computing devices. A method of embodiments, as described herein, includes assigning priority levels to threads based on stall signals communicated from the one or more shared function units to one or more execution units of a processor including a graphics processor, and selecting a first thread to be scheduled and a second thread to be ignored based on the stall signals.