Matrix Multiplication Processor Architecture with Wallace Tree Multipliers

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing dedicated processors for matrix multiplication in deep learning algorithms face limitations in universality and computing performance due to restricted parallelism, especially when dealing with matrices having a small number of rows or columns, leading to inefficient resource utilization and reduced processing speed.

Innovation Solution

A processor architecture with an array processor comprising multiple processing units and on-chip memory units, where 1×n row vectors from the multiplicand matrix and n×k submatrices from the multiplier matrix are read and processed in parallel, utilizing Wallace tree multipliers to execute vector multiplication operations, thereby avoiding parallelism in the M dimension and enhancing parallelism in the K and N dimensions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If parallelism is mined in the M dimension, then computing performance is improved, but architecture universality deteriorates when dealing with matrices having a small number of rows

Engineering Contradiction:
Improvecomputing performanceVSAvoidarchitecture universality
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent segments the matrix multiplication operation into two independent parallelism mining dimensions: K dimension (column vectors of multiplier matrix) and N dimension (row vectors of multiplicand matrix). Each dimension can be processed independently through separate processing units, allowing flexible adaptation to different matrix sizes without requiring parallelism in both dimensions simultaneously, thus maintaining universality while improving computing performance.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a new dimension of parallelism by simultaneously exploiting both K dimension and N dimension parallelism in the array processor. Instead of choosing one dimension, the system creates a two-dimensional parallelism structure where processing units can operate independently in both dimensions, achieving higher computing performance while maintaining architectural flexibility for various matrix configurations.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Adaptability or versatility

If parallelism is mined only in the K dimension, then architecture universality is maintained, but computing performance deteriorates due to limited degree of parallelism

Engineering Contradiction:
Improvearchitecture universalityVSAvoidcomputing performance
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent merges the parallelism mining of K dimension and N dimension into a unified array processor architecture. Multiple processing units simultaneously exploit parallelism in both dimensions, combining the benefits of K-dimension parallelism (maintaining universality) with N-dimension parallelism (enhancing computing performance), thereby achieving both goals simultaneously.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent creates a dynamic parallelism exploitation mechanism where the array processor can flexibly allocate processing units to different dimensions based on the specific matrix dimensions and computational requirements. This dynamic adaptation allows the system to maintain universality for various matrix sizes while maximizing computing performance through optimized parallelism mining in both K and N dimensions.

Inventive Principle:
Principle #15Dynamics

3Productivity

If dedicated FPGA- or ASIC-based processor is used, then computing performance is improved, but device complexity and design cost increase

Engineering Contradiction:
Improvecomputing performanceVSAvoiddesign complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent designs a universal array processor architecture that can execute matrix multiplication operations with high computing performance while avoiding the complexity of dedicated FPGA- or ASIC-based designs. The array processor uses standard processing units that can be configured to handle different matrix dimensions and parallelism requirements, providing multi-functionality without the high design complexity and cost associated with dedicated hardware implementations.

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

Data Source

PatentUS10140251B2Processor and method for executing matrix multiplication operation on processor
Publication Date: 2018.11.27 BEIJING BAIDU NETCOM SCI & TECH CO LTD
  • US10140251B2 patent drawing
  • US10140251B2 patent drawing
  • US10140251B2 patent drawing

AI summary

A processor and a method for executing a matrix multiplication operation on a processor. A specific implementation of the processor includes a data bus and an array processor having k processing units. The data bus is configured to sequentially read n columns of row vectors from an M×N multiplicand matrix and input same to each processing unit in the array processor, read an n×k submatrix from an N×K multiplier matrix and input each column vector of the submatrix to a corresponding processing unit in the array processor, and output a result obtained by each processing unit after executing a multiplication operation. Each processing unit in the array processor is configured to execute in parallel a vector multiplication operation on the input row and column vectors. Each processing unit includes a Wallace tree multiplier having n multipliers and n−1 adders. This implementation improves the processing efficiency of a matrix multiplication operation.