Memory Shuffle Engine Parallel Computing Data Reuse

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional parallel computing systems face inefficiencies in data access and power consumption due to repeated memory access for the same data points, particularly in operations like data filtering and matrix multiplication, where each thread processing unit individually accesses its operands, leading to suboptimal performance and energy usage.

Innovation Solution

A memory shuffle engine (MSE) is introduced to efficiently manage data access by loading data elements into an array of registers and using input selectors to transfer these elements to thread processing units, reducing redundant memory access and enabling efficient data reuse, along with a mechanism for configurable workgroup assignments to optimize parallel computations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If each thread processing unit individually accesses its operands from memory, then each processing unit can operate independently, but memory access time and power consumption increase due to repeated access to the same data points

Engineering Contradiction:
Improveparallel processing throughputVSAvoidmemory access time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent applies preliminary action by loading data elements from memory into a shared register file before parallel processing begins. The memory interface unit prefetches and stores operands in the register file, so that when multiple thread processing units need the same data, it is already available locally without requiring repeated memory access. This resolves the contradiction by preparing data in advance, reducing both memory access time and maintaining parallel throughput.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces a shared register file as an intermediary between memory and thread processing units. Instead of each processing unit directly accessing memory, they access the shared register file which acts as a buffer. This intermediary structure allows multiple processing units to share common data efficiently, reducing redundant memory accesses while preserving independent processing capability.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If each thread processing unit individually accesses its operands from memory, then processing independence is maintained, but power consumption increases due to redundant memory access operations

Engineering Contradiction:
Improveparallel processing throughputVSAvoidpower consumption
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The memory interface unit performs preliminary data loading into the shared register file before processing operations begin. By prefetching and storing operands in advance, the system eliminates the need for repeated memory access during parallel processing, thereby reducing power consumption while maintaining high processing throughput.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The shared register file serves as an intermediary that reduces power consumption by localizing data access. Instead of multiple processing units independently accessing high-power memory interfaces, they access the lower-power shared register file, which caches commonly accessed data elements for efficient reuse.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Ease of manufacture

If conventional parallel computing platforms are used with fixed hardware architecture, then implementation is straightforward, but flexibility in workgroup assignment and data access patterns is limited

Engineering Contradiction:
Improveimplementation simplicityVSAvoidworkgroup assignment flexibility
Core Design Contradiction:
Ease of manufactureVSAdaptability or versatility

Solution Approach 1:

The patent implements dynamics by making the number of workgroups per batch configurable rather than fixed. The system allows dynamic adjustment of workgroup batch size according to different computational needs and data access patterns. This dynamic configuration capability provides flexibility in workgroup assignment while maintaining a relatively simple hardware architecture that can adapt to different scenarios.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS11175920B2Efficient work execution in a parallel computing system
Publication Date: 2021.11.16 MEDIATEK INC
  • US11175920B2 patent drawing
  • US11175920B2 patent drawing
  • US11175920B2 patent drawing

AI summary

A computing device operative to perform parallel computations. The computing device includes a controller unit to assign workgroups to a set of batches. Each batch includes a program counter shared by M workgroups assigned to the batch, where M is a positive integer determined according to a configurable batch setting. Each batch further includes a set of thread processing units operative to execute, in parallel, a subset of work items in each of the M workgroups. Each batch further includes a spilling memory to store intermediate data of the M workgroups when one or more workgroups in the M workgroups encounters a synchronization barrier.