Synchronous Microthreading Hardware for Data-Parallel Workloads

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Modern out-of-order processors often have idle functional units, limiting the ability to exploit hardware parallelism in workloads, especially in data-parallel applications with irregular control and data flow, due to overheads in existing GPGPU architectures and spatial accelerators which are not programmer-friendly and lack essential components for efficient parallel code acceleration.

Innovation Solution

Synchronous Microthreading (SyMT) is a hardware/software technique that accelerates data-parallel applications by allowing fine-grained parallelism without exposing vector width to programmers, decoupling it from architecture, and enabling multiple vector-width implementations, handling regular and irregular control and data flow, and supporting low-latency offload mechanisms.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If GPGPU architectures are used for data-parallel applications, then parallel processing capability is improved, but overhead and complexity increase making them not programmer-friendly

Engineering Contradiction:
Improveparallel processing capabilityVSAvoidarchitecture overhead
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent introduces a microthreading layer as an intermediary between the programmer and the underlying parallel hardware architecture. This microthreading abstraction provides a simplified programming model while leveraging the parallel processing capabilities of the hardware, thus reducing the complexity burden on programmers while maintaining high productivity.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The microthreading architecture is designed to be universal and can be implemented across different hardware platforms including CPUs and coprocessors. This multi-functionality allows the same programming model to exploit parallelism in various data-parallel applications without requiring architecture-specific optimizations, reducing overhead while maintaining productivity.

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

2Speed

If spatial accelerators are used for parallel code acceleration, then processing speed is improved, but they lack essential components and are not programmer-friendly

Engineering Contradiction:
Improveparallel code execution speedVSAvoidprogrammer-friendliness
Core Design Contradiction:
SpeedVSEase of operation

Solution Approach 1:

The microthreading abstraction serves as an intermediary layer that provides essential components for efficient parallel code execution while maintaining programmer-friendliness. It handles the complexity of managing multiple execution contexts and resource allocation, allowing programmers to write parallel code without directly dealing with the complex details of spatial accelerator management.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent segments the parallel execution model into manageable microthreads with well-defined entry and exit points. This segmentation allows programmers to work with fine-grained parallelism in a controlled manner, making the system easier to operate while achieving high execution speeds through efficient utilization of spatial accelerator components.

Inventive Principle:
Principle #1Segmentation

3Productivity

If fine-grained parallelism is exposed to programmers, then parallel processing efficiency is improved, but complexity and overhead increase

Engineering Contradiction:
Improveparallel processing efficiencyVSAvoidprogramming complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The microthreading layer acts as an intermediary that manages fine-grained parallelism internally while presenting a simplified interface to programmers. It handles the complexity of creating, scheduling, and synchronizing numerous fine-grained parallel tasks, thereby improving parallel processing efficiency without exposing the full complexity to programmers.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The microthreading system dynamically manages parallel execution contexts, allocating and deallocating microthreads as needed based on workload requirements. This dynamic approach allows the system to achieve high parallel processing efficiency by adapting to different computational patterns while maintaining low overhead through efficient resource reuse and management.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS20230315572A1Synchronous microthreading
Publication Date: 2023.10.05 INTEL CORP
  • US20230315572A1 patent drawing
  • US20230315572A1 patent drawing
  • US20230315572A1 patent drawing

AI summary

Techniques for synchronous microthreaded execution are described. An example includes a logical processor to execute one or more threads in a first mode; and a synchronous microthreading (SyMT) co-processor coupled to the logical processor to execute lightweight microthreads, with each lightweight microthread having an independent register state, upon an execution of an instruction to enter into SyMT mode.