Compiler-Based Scoreboard Partitioning for GPU Register Tracking
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The complexity and size of register scoreboards in multi-processor and GPU environments become significant, consuming a substantial portion of the die size and increasing complexity, especially in parallel processing environments like CPUs and GPUs.
Innovation Solution
Implementing compiler-based instruction scoreboarding that simplifies the data dependency graph, partitions it into sub-graphs, and assigns different scoreboard indices for interfering live ranges, using a hardware scoreboard counter array to track dependencies between instructions with define and use indices.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If a hardware register scoreboard is used to track data dependencies in parallel processing environments, then data hazard avoidance is effective, but the scoreboard consumes a substantial portion of the die size and increases hardware complexity
Solution Approach 1:
The patent segments the scoreboard functionality by partitioning the data dependency graph into multiple sub-graphs, each handled by separate scoreboard logic. This divides the large complex scoreboard into smaller manageable units, reducing overall hardware complexity while maintaining data hazard avoidance through coordinated tracking of dependencies across sub-graphs
Solution Approach 2:
The patent extracts and removes unnecessary dependence edges from the data dependency graph before partitioning. By eliminating redundant dependency tracking requirements, the scoreboard logic needs to track fewer dependencies, directly reducing hardware complexity while preserving essential data hazard avoidance functionality
2Loss of information
If a hardware register scoreboard tracks status of multiple registers for multiple registers access instructions, then data dependency tracking is complete, but the scoreboard logic becomes even more complex
Solution Approach 1:
The patent segments the dependency tracking by creating separate scoreboard logic for each sub-graph. Each scoreboard instance tracks dependencies for its specific sub-graph, avoiding the need for a single complex scoreboard to track all dependencies. This segmentation maintains complete dependency tracking while reducing individual scoreboard complexity
Solution Approach 2:
The patent performs preliminary simplification of the data dependency graph by removing unnecessary dependence edges before partitioning into sub-graphs. This preliminary action reduces the number of dependencies that need to be tracked, thereby reducing scoreboard logic complexity while maintaining complete tracking of essential data dependencies
3Productivity
If an EU includes seven hardware threads with 128 GRF registers each, then thread parallelism is high, but the scoreboard requires tracking 896 registers per EU
Solution Approach 1:
The patent segments the 896-register scoreboard into multiple smaller scoreboards, one for each sub-graph of the dependency graph. Each scoreboard tracks dependencies for a subset of registers, reducing the area required for each scoreboard instance. The segmentation allows high thread parallelism to be maintained while reducing total scoreboard die size through distributed tracking
Solution Approach 2:
The patent performs preliminary removal of unnecessary dependence edges from the data dependency graph before partitioning. This reduces the number of active dependencies that need to be tracked across the 896 registers, thereby reducing the effective scoreboard size required while maintaining support for seven hardware threads with 128 GRF registers each
Data Source
AI summary
Methods and apparatus relating to techniques for compiler-based instruction scoreboarding. In an example, an apparatus comprises logic, at least partially comprising hardware logic, to remove unnecessary dependence edges from a data dependency graph, partition the data dependency graph into a plurality of sub-graphs, determine a live range for each of the plurality of sub-graphs, and assign a scoreboard entry to each of the plurality of sub-graphs, wherein sub-graphs which have interfering live ranges are assigned different scoreboard entries. Other embodiments are also disclosed and claimed.


