Systolic Array Neural Network Accelerator for RNN Data Processing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Recurrent neural networks (RNNs) based on systolic array architectures are not well-suited for parallel processing of time series data due to their recurrent characteristics, limiting their effectiveness in processing voice data and other time series dependent information.

Innovation Solution

A data processing method that involves receiving and preprocessing time series data into uniform units, vectorizing them, and inputting these vectors into a neural network accelerator with a systolic array architecture, where a single weight matrix is distributed across multiple lines of memory, applied to input vectors, and intermediate vectors are stored in the same lines as input vectors, enabling parallel processing and reducing inter-operation dependency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of manufacture

If a neural network accelerator based on systolic array is used for RNN processing, then the hardware architecture is optimized for matrix operations, but the recurrent characteristics of RNN limit parallel processing capability

Engineering Contradiction:
Improvehardware architecture optimizationVSAvoidparallel processing capability
Core Design Contradiction:
Ease of manufactureVSProductivity

Solution Approach 1:

The patent segments time series data into multiple independent data units (e.g., sentences or time windows) that can be processed in parallel. By dividing the input data into discrete segments and processing them simultaneously across multiple lines of the systolic array, the system overcomes the inherent sequential limitation of RNNs while maintaining the hardware's matrix operation optimization.

Inventive Principle:
Principle #1Segmentation

2Reliability

If time series data is processed sequentially due to recurrent characteristics, then inter-operation dependency is maintained, but processing efficiency is reduced

Engineering Contradiction:
Improveinter-operation dependencyVSAvoidprocessing efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent introduces a new dimension of parallelism by processing multiple time series data units simultaneously across different lines of the systolic array. Instead of processing time steps sequentially in a single line, the system distributes different data units across multiple lines, each performing matrix operations independently, thereby achieving parallel processing while maintaining the recurrent computation structure within each data unit.

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

3Productivity

If multiple weight matrices are used for parallel processing, then processing capacity increases, but memory complexity and weight distribution become problematic

Engineering Contradiction:
Improveparallel processing capacityVSAvoidmemory structure and weight distribution
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent implements a universal weight matrix that is shared across all lines of the systolic array. Instead of duplicating weight matrices for each parallel processing line, the same weight matrix is distributed and reused by multiple lines, reducing memory complexity while maintaining parallel processing capacity. This approach allows the system to process multiple data units simultaneously using a single set of weights.

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

Data Source

PatentUS20230177310A1Data processing method for recurrent neural network using neural network accelerator based on systolic array and neural network accelerator
Publication Date: 2023.06.08 ELECTRONICS & TELECOMM RES INST
  • US20230177310A1 patent drawing
  • US20230177310A1 patent drawing
  • US20230177310A1 patent drawing

AI summary

Proposed is a data parallel processing method for a recurrent neural network in a neural network accelerator based on a systolic array. A data processing device receives voice data of a user in a predetermined time section. The data processing device generates a plurality of voice data units by separating the voice data by sentence. The data processing device generates a plurality of input vectors by vectorizing the plurality of voice data units. The data processing device inputs the plurality of input vectors to a neural network accelerator based on a systolic array. In this manner, the data is processed.