Multiple-thread processing loop segmentation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing multiple-thread processing methods in graphics systems face inefficiencies due to the inability to effectively manage and process loops across threads, leading to suboptimal performance and synchronization issues.

Innovation Solution

A method and apparatus for multiple-thread processing that involves searching for loops, calculating their repetitions, determining thread rankings, dividing top-ranked threads into child threads, and processing these child threads separately to enable parallel reduction and improve processing efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If threads are processed simultaneously using SIMT model with single instruction shared across threads, then processing throughput increases, but synchronization issues and performance bottlenecks occur when threads cannot be performed immediately

Engineering Contradiction:
Improveprocessing throughputVSAvoidsynchronization reliability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent segments threads into different priority levels (first threads and second threads) based on loop repetition characteristics. Threads with higher loop repetition counts are classified as first threads and processed with higher priority, while others are second threads. This segmentation allows the system to manage thread execution more effectively, reducing synchronization bottlenecks while maintaining high throughput by processing threads in optimized batches.

Inventive Principle:
Principle #1Segmentation

2Use of energy by moving object

If threads share the same code and instructions are read once from memory, then memory access efficiency improves, but processing flexibility decreases when threads have different loop repetition requirements

Engineering Contradiction:
Improvememory access efficiencyVSAvoidprocessing flexibility
Core Design Contradiction:
Use of energy by moving objectVSAdaptability or versatility

Solution Approach 1:

The patent applies local quality by assigning different processing priorities to different threads based on their specific loop repetition characteristics. While all threads share the same base code structure for memory efficiency, the system locally adapts execution priorities - first threads (with higher loop repetitions) receive priority processing, while second threads are processed subsequently. This allows the system to maintain memory access efficiency through code sharing while achieving processing flexibility through priority-based execution scheduling.

Inventive Principle:
Principle #3Local quality

3Reliability

If threads are processed in synchronization, then correctness of parallel processing is maintained, but processing time increases when threads with different loop repetitions are handled together

Engineering Contradiction:
Improveprocessing correctnessVSAvoidprocessing time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent performs preliminary classification of threads into first threads and second threads based on loop repetition counts before execution. By pre-identifying which threads require priority processing, the system can organize synchronization more efficiently - processing first threads with their specific synchronization requirements, then handling second threads. This preliminary action reduces overall processing time while maintaining correctness by ensuring each thread group undergoes appropriate synchronization.

Inventive Principle:
Principle #10Preliminary action

4Speed

If the number of processors is increased to improve performance in proportion to thread count, then processing speed increases, but system complexity and synchronization overhead increase

Engineering Contradiction:
Improveprocessing speedVSAvoidsystem complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The patent segments the thread processing workload into two distinct groups (first threads and second threads) based on loop repetition characteristics. This segmentation allows the processor system to manage complexity by handling threads in organized batches rather than managing all threads uniformly. The system can scale processor count to improve speed while using the segmentation strategy to manage synchronization overhead, as each segment can be processed with optimized synchronization protocols.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS10296315B2Multiple-thread processing methods and apparatuses
Publication Date: 2019.05.21 SAMSUNG ELECTRONICS CO LTD
  • US10296315B2 patent drawing
  • US10296315B2 patent drawing
  • US10296315B2 patent drawing

AI summary

Multiple-thread processing apparatuses and methods are provided. The multiple-thread processing method may include searching for loops in a plurality of threads, calculating a number of repetitions of each of found loops in respective threads among the plurality of threads, determining one or more threads based on the calculated number of repetitions of each of the found loops, dividing at least one of the one or more determined threads into child threads, and processing the child threads separately from one another in the plurality of threads.