Matrix Multiplication Vector Multiply-Add Instruction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current matrix multiplication methods are computationally intensive and energy inefficient due to high time complexity and memory bandwidth limitations, particularly when dealing with large matrices, and existing approaches to optimize these methods either require significant power consumption or complex hardware modifications.

Innovation Solution

The introduction of a vector multiply-add (vma) instruction that allows concurrent computation of multiple product matrix elements, reducing the number of iterations and clock cycles required, implemented through modifications to the arithmetic-logic unit and use of dedicated and dynamically allocated registers.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If traditional matrix multiplication algorithms are used, then computational accuracy is maintained, but computational time complexity remains O(n^3) and energy consumption is high

Engineering Contradiction:
Improvecomputational speedVSAvoidenergy consumption
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

The patent divides the matrix multiplication computation into multiple independent processing elements (PEs) organized in a grid architecture. Each PE handles a specific portion of the computation (multiplying a row segment by a column segment), allowing parallel execution of multiple multiply-accumulate operations simultaneously. This segmentation enables the system to achieve O(n^2) time complexity by processing multiple elements in parallel rather than sequentially.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a spatial dimension by organizing processing elements in a two-dimensional grid array rather than using a single sequential processor. Data flows through this spatial architecture along rows and columns, with each PE positioned at a specific coordinate (i,j) handling computations for that position. This dimensional transformation from sequential to parallel spatial processing enables significant speedup while maintaining energy efficiency through localized operations.

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

2Speed

If computational speed is increased through traditional methods, then processing time is reduced, but memory bandwidth limitations prevent further optimization

Engineering Contradiction:
Improveprocessing speedVSAvoidmemory bandwidth requirements
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The patent implements preliminary action by pre-loading matrix data into the local memory of processing elements before computation begins. Each PE receives and stores the necessary row and column data segments in advance, eliminating the need for repeated memory accesses during the computation phase. This pre-positioning of data in close proximity to processing elements reduces memory bandwidth requirements and enables faster processing.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces local memory buffers and data routing networks as intermediaries between the main memory system and processing elements. These intermediaries cache data locally and manage data flow between PEs, reducing the burden on the main memory bandwidth. The intermediary structures enable efficient data exchange within the parallel architecture without requiring proportionally high memory bandwidth from the main system.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If parallel processing is implemented to reduce computation time, then productivity increases, but hardware complexity and power consumption increase significantly

Engineering Contradiction:
Improvecomputation throughputVSAvoidhardware complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent designs processing elements as universal, identical units that can handle any multiplication and accumulation operation. Each PE is a standardized component with the same functionality, allowing the system to scale by simply replicating the same basic unit rather than designing complex specialized hardware for each position. This universality reduces overall hardware complexity while maintaining high computational throughput through parallelism.

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

Solution Approach 2:

The patent employs homogeneous processing elements throughout the architecture, where each PE has identical structure, capabilities, and interface requirements. This homogeneity simplifies the control logic, data routing, and resource management compared to heterogeneous architectures with specialized units. The uniform design enables easier fabrication, testing, and scaling while achieving high productivity through parallel execution of identical operations across multiple PEs.

Inventive Principle:
Principle #33Homogeneity

Data Source

PatentUS10521225B2Matrix multiplication at memory bandwidth
Publication Date: 2019.12.31 ORACLE INT CORP
  • US10521225B2 patent drawing
  • US10521225B2 patent drawing
  • US10521225B2 patent drawing

AI summary

Techniques related to matrix multiplication at memory bandwidth are disclosed. Computing device(s) perform multiplication of a first matrix with a second matrix to generate a third matrix. A first register stores contiguous element values of the first matrix. Furthermore, a second register stores a first set of contiguous element values of the second matrix, and a third register stores a second set of contiguous element values of the second matrix. The first set and the second set correspond to a first row and a second row, respectively, of the second matrix. The first row and the second row are contiguous rows. A single instruction is executed to cause at least a partial computation of contiguous element values of the third matrix. The single instruction causes multiplication of element values stored in the first register with element values stored in the second and third registers and grouped accumulation of the products.