Sparse Matrix Processing Circuitry for Neural Network Acceleration

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing technologies face challenges in efficiently accelerating matrix multiplication, particularly for large sparse matrices, due to limitations in computational complexity and hardware acceleration, especially when dealing with sparse matrices from neural networks, which are not effectively handled by dense matrix multipliers and require significant memory access and scheduling complexities.

Innovation Solution

A circuit arrangement utilizing a memory configuration with FIFO buffers and split-and-merge circuitry to format sparse matrix data into parallel streams, allowing for efficient pairing and processing of matrix-vector data elements in parallel, reducing memory access bandwidth and enabling larger matrix processing without padding, and utilizing on-chip memory banks for vector loading.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of manufacture

If a dense matrix multiplier is used for sparse matrix multiplication, then the implementation is simple, but the performance is poor due to unnecessary processing of zero elements

Engineering Contradiction:
Improveimplementation simplicityVSAvoidmatrix multiplication performance
Core Design Contradiction:
Ease of manufactureVSProductivity

Solution Approach 1:

The patent segments the matrix multiplication process into multiple specialized functional units: sparse matrix loading units that selectively load only non-zero elements, vector loading units, multiple parallel multiply-accumulate units, and control units. This segmentation allows each unit to be optimized for its specific function, achieving high performance while maintaining implementation feasibility through modular design.

Inventive Principle:
Principle #1Segmentation

2Productivity

If a custom multiplier is used to improve performance, then the processing speed increases, but the device complexity increases due to specialized hardware requirements

Engineering Contradiction:
Improvematrix multiplication speedVSAvoidhardware architecture complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent employs dynamic scheduling and control mechanisms that adapt the operation of multiple functional units based on the sparsity pattern and distribution of non-zero elements. The control units dynamically allocate tasks to different multiply-accumulate units, adjust loading strategies, and manage data flow, allowing the system to achieve high performance across varying matrix characteristics without requiring a completely different hardware architecture for each case.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent designs functional units that can handle multiple operations and data formats. The multiply-accumulate units can process different data types and sparsity patterns, the loading units can accommodate various matrix storage formats (CSR, CSC, COO), and the control units can manage different multiplication strategies. This multi-functionality reduces overall system complexity by avoiding the need for completely separate specialized hardware for each operation type.

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

3Productivity

If vector loading and scheduling are optimized to improve performance, then the computational efficiency increases, but the device complexity increases due to additional control mechanisms

Engineering Contradiction:
Improvecomputational efficiencyVSAvoidcontrol mechanism complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent implements preliminary action by pre-loading vector elements into dedicated vector loading units before they are needed for multiplication operations. The control units anticipate future computation needs and prepare data in advance, organizing it in optimal formats for the multiply-accumulate units. This pre-processing reduces runtime complexity and control overhead during the actual computation phase.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces intermediary buffer structures and control units that mediate between the sparse matrix loading units and the multiply-accumulate units. These intermediaries handle the complex scheduling and data reorganization tasks, simplifying the control logic at other stages. The buffers act as intermediaries that decouple the loading phase from the computation phase, allowing independent optimization of each while reducing overall control complexity.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS10572409B1Sparse matrix processing circuitry
Publication Date: 2020.02.25 XILINX INC
  • US10572409B1 patent drawing
  • US10572409B1 patent drawing
  • US10572409B1 patent drawing

AI summary

A memory arrangement can store a matrix of matrix data elements specified as index-value pairs that indicate row and column indices and associated values. First split-and-merge circuitry is coupled between the memory arrangement and a first set of FIFO buffers for reading the matrix data elements from the memory arrangement and putting the matrix data elements in the first set of FIFO buffers based on column indices. A pairing circuit is configured to read vector data elements, pair the vector data elements with the matrix data elements, and put the paired matrix and vector data elements in a second set of FIFO buffers based on column indices. Second split-and-merge circuitry is configured to read paired matrix and vector data elements from the second set of FIFO buffers and put the paired matrix and vector data elements in a third set of FIFO buffers based on row indices.