Reverse Thread Dispatch for Graphics Cache Efficiency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current graphics processing systems face inefficiencies in cache utilization due to the sequential execution of threads, leading to increased memory bandwidth requirements and latency, particularly in scenarios where producer and consumer operations have a large data working set that exceeds cache capacity.

Innovation Solution

The proposed solution involves modifying the thread dispatch order to execute threads in a reverse sequence, ensuring that data produced by one operation is still resident in the cache when consumed by subsequent operations, thereby optimizing cache and shared local memory usage.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If threads are executed in sequential order, then program simplicity is maintained, but cache efficiency deteriorates and memory bandwidth consumption increases

Engineering Contradiction:
Improvethread dispatch complexityVSAvoidmemory bandwidth consumption
Core Design Contradiction:
Device complexityVSLoss of energy

Solution Approach 1:

The patent inverts the traditional thread execution order by implementing reverse chronological scheduling. Instead of executing threads in the order they are submitted (first-in-first-out), the system executes them in reverse order (last-in-first-out). This inversion allows data produced by later threads to remain in cache when earlier threads need to consume it, dramatically improving cache efficiency and reducing memory bandwidth consumption without adding significant system complexity

Inventive Principle:
Principle #13The other way round (Inversion)

2Device complexity

If threads are executed in sequential order, then implementation simplicity is maintained, but latency increases due to repeated memory accesses

Engineering Contradiction:
Improvescheduling mechanism complexityVSAvoidprocessing latency
Core Design Contradiction:
Device complexityVSLoss of time

Solution Approach 1:

By reversing the thread execution sequence, the patent ensures that data flows through the cache in an optimized pattern. Data produced by consumer operations remains in cache when producer operations need to access it, eliminating repeated memory accesses and reducing processing latency while maintaining a relatively simple scheduling mechanism

Inventive Principle:
Principle #13The other way round (Inversion)

3Productivity

If data working set exceeds cache capacity with sequential thread execution, then memory operations are performed, but power consumption increases

Engineering Contradiction:
Improvedata processing throughputVSAvoidpower consumption
Core Design Contradiction:
ProductivityVSUse of energy by stationary object

Solution Approach 1:

The reverse chronological scheduling ensures that when the data working set exceeds cache capacity, data is accessed in an order that maximizes cache hits. By executing threads in reverse order, the system keeps frequently accessed data in cache longer, reducing the need for high-power memory accesses and thereby reducing overall power consumption while maintaining data processing throughput

Inventive Principle:
Principle #13The other way round (Inversion)

Data Source

PatentUS11204801B2Method and apparatus for scheduling thread order to improve cache efficiency
Publication Date: 2021.12.21 INTEL CORP
  • US11204801B2 patent drawing
  • US11204801B2 patent drawing
  • US11204801B2 patent drawing

AI summary

Systems and methods for scheduling thread order to improve cache efficiency are disclosed. In one embodiment, a graphics processor includes processing resources and schedule and dispatch logic to schedule and dispatch threads to the processing resources. The schedule and dispatch logic is configured to receive threads, to schedule and dispatch the threads based on a forward thread dispatch having a forward thread order, and to determine whether to disable a reversing of a thread order upon completion of at least a portion of the forward thread dispatch including a completion or ending of a draw call or a dispatch.