Scalarization of Vector Processing in SIMT Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Single-instruction multiple-thread (SIMT) computing systems face inefficiencies due to lock-step execution models, leading to poor resource utilization, particularly in scenarios with conditional control-flow paths and redundant calculations across threads.

Innovation Solution

The method involves analyzing instruction sequences during compile time to identify inactive threads with shared source operands, generating code for scalar execution, and dispatching instructions to a scalar unit during execution time, allowing for scalarization of operations and reducing redundant computations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If lock-step execution model is used in SIMT computing system, then program counter and instruction fetching overhead is reduced, but resource utilization deteriorates due to threads waiting on different control-flow paths

Engineering Contradiction:
Improveprogram counter and instruction fetching overheadVSAvoidresource utilization
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent segments threads into active and inactive groups based on control-flow path divergence. The warp scheduler divides the thread block into subsets, where only active threads execute instructions in each cycle, preventing inactive threads from blocking resource utilization while maintaining lock-step execution benefits.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces dynamic thread activation and deactivation mechanisms. Threads can be dynamically enabled or disabled based on control-flow conditions, allowing the system to adapt resource allocation to actual execution needs rather than statically allocating all threads for every instruction cycle.

Inventive Principle:
Principle #15Dynamics

2Reliability

If all threads execute in lock-step, then SIMT execution model is maintained, but redundant computations occur when threads have same source operands

Engineering Contradiction:
ImproveSIMT execution model consistencyVSAvoidredundant computations
Core Design Contradiction:
ReliabilityVSLoss of energy

Solution Approach 1:

The patent merges execution of threads with identical source operands into a single execution instance. When multiple threads have the same source operands, the system identifies this redundancy and executes the instruction once, then broadcasts the result to all affected threads, eliminating redundant computations while maintaining SIMT semantics.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent changes the execution parameter from per-thread execution to per-unique-operand-set execution. By detecting when multiple threads share the same source operands, the system modifies the execution parameter to execute once for the group rather than once per thread, reducing computational redundancy.

Inventive Principle:
Principle #35Parameter changes

3Productivity

If vector units execute N threads in parallel, then throughput is increased, but scalar operations consume vector unit resources

Engineering Contradiction:
Improveparallel processing throughputVSAvoidvector unit resource utilization
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent makes the scalar unit multi-functional by enabling it to handle both scalar and vectorized operations. When threads have identical source operands, the scalar unit executes the operation once and broadcasts results, effectively performing vector operations without consuming vector unit resources, thus resolving the resource conflict.

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

Solution Approach 2:

The patent uses broadcast copying to distribute scalar execution results to multiple thread destinations. Instead of executing the same operation multiple times in vector units, the scalar unit executes once and copies the result to all N threads, achieving parallel throughput without vector unit resource consumption.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS10318307B2Scalarization of vector processing
Publication Date: 2019.06.11 MEDIATEK INC
  • US10318307B2 patent drawing
  • US10318307B2 patent drawing
  • US10318307B2 patent drawing

AI summary

A Single-Instruction-Multiple-Treads (SIMT) computing system includes multiple processors and a scheduler to schedule multiple threads to each of the processors. Each processor includes a scalar unit to provide a scalar lane for scalar execution and vector units to provide N parallel lanes for vector execution. During execution time, a processor detects that an instruction of N threads has been predicted by a compiler to have (N−M) inactive threads and the same source operands for M active threads, where N>M≥1. Upon the detection, the instruction is sent to the scalar unit for scalar execution.