Thread Scheduling Circuitry for Multi-Threaded Data Processing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Multi-threaded data processing apparatuses, such as GPUs, face performance variability due to thread scheduling policies, requiring manual optimizations like memory coalescing and loop tiling, which can impact cache performance and scheduling efficiency.

Innovation Solution

An apparatus with thread schedule configuration storage and scheduling circuitry that allows for the execution of multiple threads in various orders defined by stored configurations, with performance control circuitry to select optimal schedules based on performance data, improving instruction throughput and energy efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If manual data-locality optimizations (memory coalescing, loop tiling) are performed to improve cache performance, then cache performance is improved, but device complexity and programming difficulty increase

Engineering Contradiction:
Improvecache performanceVSAvoidprogramming complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system performs self-service by automatically generating optimized thread schedule configurations without requiring manual programmer intervention. The performance control circuitry analyzes execution data and autonomously selects or generates optimal scheduling configurations, freeing programmers from complex manual optimizations while maintaining high cache performance.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system changes scheduling parameters dynamically by storing multiple thread schedule configurations with different ordering patterns and selecting the appropriate configuration based on performance data. This allows the system to adapt to different data processing scenarios without requiring programmers to manually optimize each case, resolving the contradiction between achieving optimal cache performance and maintaining programming simplicity.

Inventive Principle:
Principle #35Parameter changes

2Ease of operation

If fixed thread schedule configurations are used to simplify programming, then ease of operation is improved, but adaptability to different processing requirements deteriorates

Engineering Contradiction:
Improveprogramming easeVSAvoidscheduling adaptability
Core Design Contradiction:
Ease of operationVSAdaptability or versatility

Solution Approach 1:

The system achieves universality by incorporating a library of multiple thread schedule configurations that can handle various data processing scenarios. The performance control circuitry selects the appropriate configuration based on the specific processing requirements, allowing a single apparatus to adapt to different workloads without requiring separate fixed schedules for each case, thus maintaining both ease of operation and adaptability.

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

Solution Approach 2:

The system transitions from static fixed schedules to dynamic selection of schedule configurations. The performance control circuitry monitors execution performance and dynamically selects or generates optimal thread schedule configurations based on actual processing requirements, enabling the system to adapt flexibly to different scenarios while maintaining simple programming interfaces.

Inventive Principle:
Principle #15Dynamics

3Ease of operation

If thread allocation is freely determined by programmers to improve programming flexibility, then ease of operation is improved, but productivity and cache performance deteriorate

Engineering Contradiction:
Improveprogramming flexibilityVSAvoidprocessing performance
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The system implements feedback by having the performance control circuitry monitor execution performance data and use this information to select or generate optimal thread schedule configurations. This feedback loop ensures that programming flexibility is maintained while productivity is improved, as the system automatically adjusts scheduling based on observed performance rather than relying solely on programmer judgment.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The system performs self-service by automatically optimizing thread scheduling based on performance data without requiring programmers to manually tune scheduling parameters. This allows programmers to focus on high-level algorithm design while the system handles the complex task of optimizing thread allocation and ordering for maximum performance, resolving the contradiction between programming flexibility and processing productivity.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS10733012B2Configuring thread scheduling on a multi-threaded data processing apparatus
Publication Date: 2020.08.04 ARM LTD
  • US10733012B2 patent drawing
  • US10733012B2 patent drawing
  • US10733012B2 patent drawing

AI summary

An apparatus for performing data processing in a single program multiple data fashion on a target data set is provided, having execution circuitry configured to execute multiple threads, thread schedule configuration storage configured to store information defining a plurality of thread schedule configurations, and thread scheduling circuitry configured to cause the execution circuitry to execute the multiple threads in a selected order defined by a selected thread schedule configuration. A method of operating the apparatus, as well as a method of compiling a source program for the apparatus are also provided.