Hierarchical GEMM Control for Dynamic Resource Allocation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing GEMM operation tiling and execution methods on accelerators are inflexible and inefficient, leading to suboptimal resource utilization and bandwidth degradation due to fixed control schemes that do not account for varying GEMM sizes and resource capacities, resulting in wasted resources and reduced performance.

Innovation Solution

A programmable and hierarchical control system for GEMM operation tiling and execution, utilizing a global controller and local controllers coupled via queues to dynamically determine execution manners and allocate computation units, allowing for flexible scheduling and efficient data movement based on available resources and memory subsystems.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If fixed control schemes are used for GEMM operation tiling and execution, then device complexity is reduced, but adaptability to varying GEMM sizes and resource capacities deteriorates

Engineering Contradiction:
Improvecontrol scheme complexityVSAvoidadaptability to varying GEMM sizes and resource capacities
Core Design Contradiction:
Device complexityVSAdaptability or versatility

Solution Approach 1:

The patent implements a hierarchical control system where a global controller dynamically determines execution manners based on GEMM operation sizes and resource capacities, while local controllers adaptively manage data movement. This dynamic structure allows the system to adjust to varying workloads and resource availability, resolving the contradiction between maintaining simple fixed control schemes and achieving adaptability to different GEMM sizes and resource capacities.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The control system is segmented into a global controller and multiple local controllers. The global controller handles high-level execution manner determination and computation unit allocation, while local controllers handle specific data movement tasks. This segmentation allows each controller to operate with appropriate complexity for its function, achieving overall adaptability without requiring the entire system to be highly complex.

Inventive Principle:
Principle #1Segmentation

2Ease of operation

If fixed tiling methods are used, then ease of operation is improved, but resource utilization deteriorates

Engineering Contradiction:
Improveease of GEMM operation executionVSAvoidresource utilization efficiency
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The system dynamically determines execution manners and partitions GEMM operations based on available resources and operation sizes. This dynamic approach automatically optimizes resource utilization without requiring manual intervention, maintaining ease of operation while significantly improving productivity through adaptive resource allocation and parallel execution strategies.

Inventive Principle:
Principle #15Dynamics

3Device complexity

If simple control structures are used, then device complexity is reduced, but execution efficiency deteriorates

Engineering Contradiction:
Improvecontroller structure complexityVSAvoidGEMM operation execution efficiency
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The control structure is segmented into a global controller that makes high-level decisions about execution manners and computation unit allocation, and local controllers that handle specific data movement operations. This segmentation distributes complexity across multiple components, each with specialized functions, improving execution efficiency through coordinated parallel operations while keeping individual controller structures relatively simple.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Queues are introduced as intermediary structures between the global controller and local controllers. These queues buffer and manage the flow of control signals and data movement requests, enabling efficient coordination without requiring complex direct communication pathways, thus maintaining simpler controller structures while achieving high execution efficiency.

Inventive Principle:
Principle #24Intermediary (Mediator)

4Productivity

If parallel execution is implemented, then productivity is improved, but device complexity increases

Engineering Contradiction:
ImproveGEMM operation processing throughputVSAvoidcontrol system complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The parallel execution system is segmented into independent local controllers, each managing specific data movement tasks for different computation units. This segmentation allows multiple data movement operations to proceed in parallel without requiring a single complex controller to manage all operations, thus improving productivity while keeping individual controller components relatively simple.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS11409839B2Programmable and hierarchical control of execution of GEMM operation on accelerator
Publication Date: 2022.08.09 ALIBABA GROUP HOLDING LTD
  • US11409839B2 patent drawing
  • US11409839B2 patent drawing
  • US11409839B2 patent drawing

AI summary

The present disclosure relates to a method for controlling execution of a GEMM operation on an accelerator comprising multiple computation units, a first memory device, and a second memory device. The method comprises determining an execution manner of the GEMM operation, the execution manner comprising partition information of the GEMM operation and computation unit allocation information of the partitioned GEMM operation; generating one or more instructions to compute the partitioned GEMM operation on one or more allocated computation units; and issuing the one or more instructions to at least one of a first queue and a second queue, which enables at least one of a first local controller and a second local controller to execute the one or more instructions, wherein the first local controller and the second local controller are configured to control data movement between the computation units, the first memory device, and the second memory device.