Cache Bank-Aware Thread Scheduling for GPU Load Conflicts

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current graphics processing units face inefficiencies due to cache bank conflicts and dependencies that hinder performance in parallel processing architectures, particularly in SIMT architectures where threads accessing the same cache bank can lead to bottlenecks and reduced throughput.

Innovation Solution

Implementing bank aware thread scheduling and early dependency clearing techniques to arbitrate threads based on cache bank access and clear dependencies before data is loaded, reducing conflicts and improving instructions per clock (IPC).

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If multiple threads access the same cache bank in parallel, then processing throughput is increased, but cache bank conflicts occur leading to bottlenecks and reduced performance

Engineering Contradiction:
Improveprocessing throughputVSAvoidcache access reliability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system performs preliminary actions by clearing cache dependencies before data is loaded into the cache banks. The dependency clearing unit proactively removes dependencies associated with cache load operations before the actual data arrival, preventing future conflicts and ensuring smooth parallel thread execution without bottlenecks

Inventive Principle:
Principle #10Preliminary action

2Productivity

If threads are scheduled without considering cache bank access patterns, then scheduling simplicity is maintained, but cache bank conflicts increase reducing instructions per clock

Engineering Contradiction:
Improveinstructions per clockVSAvoidthread scheduling complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The thread scheduling system is segmented into multiple independent units: a thread arbitration unit that selects threads based on simple criteria, and a dependency clearing unit that handles dependency management separately. This segmentation allows the arbitration logic to remain simple while the dependency clearing unit proactively manages cache bank conflicts, improving instructions per clock without significantly increasing overall scheduling complexity

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A dependency clearing unit acts as an intermediary between thread execution and cache bank access. This intermediary proactively clears dependencies before data loads, mediating between the simple thread arbitration mechanism and the complex cache bank access patterns, thereby improving instructions per clock while maintaining relative simplicity in the core scheduling logic

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If dependencies are cleared after data is loaded, then processing flow is simpler, but operational delays increase reducing system performance

Engineering Contradiction:
Improvesystem performanceVSAvoidoperational delay
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The system performs the dependency clearing action preliminarily, before the data is actually loaded into the cache banks. By proactively removing dependencies in advance of data arrival, the system eliminates waiting time and operational delays, thereby improving overall system performance without adding complex processing steps

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS12504989B2Load store bank aware thread scheduling techniques
Publication Date: 2025.12.23 INTEL CORP
  • US12504989B2 patent drawing
  • US12504989B2 patent drawing
  • US12504989B2 patent drawing

AI summary

Bank aware thread scheduling and early dependency clearing techniques are described herein. In one example, bank aware thread scheduling involves arbitrating and scheduling threads based on the cache bank that is to be accessed by the instructions to avoiding bank conflicts. Early dependency clearing involves clearing dependencies for cache loads in a scoreboard before the data is loaded. In early dependency clearing for loads, delays in operation can be reduced by clearing dependencies before data is required from the cache.