SIMD Lane Utilization via Dynamic Warp Scheduling

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing SIMD and SPMD processors underutilize performance potential due to irregular control flow and memory access patterns in applications, leading to inefficient execution and reduced throughput.

Innovation Solution

Implement a method for scheduling and executing primary and secondary instructions simultaneously on a subset of execution lanes, utilizing a warp pool and content addressable memory to optimize lane utilization by identifying compatible execution masks and stalling instructions until all lanes are available for concurrent execution.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If traditional SIMD/SPMD processors execute instructions sequentially on execution lanes, then control flow simplicity is maintained, but lane utilization decreases and throughput is reduced for irregular applications

Engineering Contradiction:
Improveinstruction throughputVSAvoidexecution scheduling complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the execution lanes into multiple independent groups, each capable of executing different instructions simultaneously. This segmentation allows the processor to handle multiple instruction streams in parallel, improving throughput for irregular applications with divergent control flow patterns while maintaining manageable complexity through structured lane organization.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a temporal dimension to instruction execution by enabling out-of-order execution and instruction replay mechanisms. Instructions that cannot be executed immediately are replayed in subsequent cycles when dependencies are resolved, effectively adding a time dimension to the execution pipeline that increases throughput without proportionally increasing hardware complexity.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Productivity

If execution lanes are dedicated to single threads for simplicity, then thread management is simplified, but lane utilization factor decreases when branches cause lanes to wait

Engineering Contradiction:
Improvelane utilization factorVSAvoidinstruction scheduling mechanism
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent makes execution lanes universal by enabling them to execute multiple different instruction streams across different cycles. Lanes are not permanently dedicated to single threads but can be dynamically assigned to different instruction streams based on readiness and dependency resolution, increasing utilization while the scheduler manages the complexity of assignments.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The patent implements preliminary action through instruction replay mechanisms where instructions are prepared and held in a replay buffer before execution. When dependencies are resolved or execution conditions are met, instructions are replayed without requiring complex real-time scheduling decisions, thus increasing lane utilization while keeping the scheduling mechanism relatively simple.

Inventive Principle:
Principle #10Preliminary action

3Productivity

If warps are switched at each cycle for regular applications, then throughput is maximized for regular control flow, but performance is underutilized for irregular applications with divergent branches

Engineering Contradiction:
Improveexecution throughputVSAvoidadaptability to irregular control flow
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent implements dynamic warp scheduling where the processor adapts its execution strategy based on the characteristics of the current workload. For regular control flow, warps are switched at each cycle to maximize throughput. For irregular applications with divergent branches, the system dynamically switches to instruction replay and multi-stream execution modes, providing adaptability across different application types while maintaining high throughput.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent changes execution parameters dynamically based on application characteristics. The instruction replay count, warp switch frequency, and lane assignment strategies are adjusted as parameters based on detected control flow patterns. This allows the processor to optimize for regular applications (high warp switching) or irregular applications (higher instruction replay and multi-stream execution) while maintaining overall high productivity across diverse workloads.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS9851977B2Apparatus and method for combining thread warps with compatible execution masks for simultaneous execution and increased lane utilization
Publication Date: 2017.12.26 KALRAY
  • US9851977B2 patent drawing
  • US9851977B2 patent drawing
  • US9851977B2 patent drawing

AI summary

A method for executing instructions on a single-program, multiple-data processor system having a fixed number of execution lanes, including: scheduling a primary instruction for execution with a first wave of multiple data; assigning the first wave to a corresponding primary subset of the execution lanes; scheduling a secondary instruction having a second wave of multiple data, such that the second wave fits in lanes that are unused by the primary subset of lanes; assigning the second wave to a corresponding secondary subset of the lanes; fetching the primary and secondary instructions; configuring the execution lanes such that the primary subset is responsive to the primary instruction and the secondary subset is simultaneously responsive to the secondary instruction; and simultaneously executing the primary and secondary instructions in the execution lanes.