Sparse Weight Matrix Processing for Reconfigurable Processors
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing methods for neural network computations on smart devices face bottlenecks due to high storage, computing, and bandwidth requirements, particularly in convolution and fully-connected computations, and random sparse weights do not effectively utilize hardware resources.
Innovation Solution
A method for processing sparse data in reconfigurable processors involves dividing sparse weight matrices into unit blocks, grouping them into computing groups, and obtaining effective weight addresses to optimize computations, reducing storage and bandwidth needs while maintaining algorithm accuracy.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If random sparse weights are used to reduce storage overhead, then storage resources are reduced, but hardware computing resources and bandwidth resources cannot be fully utilized
Solution Approach 1:
The weight matrix is segmented into multiple blocks, and each block is processed independently. This segmentation allows the system to identify and utilize dense substructures within the sparse matrix, enabling better hardware resource utilization while maintaining storage efficiency. The block-wise processing structure facilitates parallel computation and optimizes the use of computing resources.
Solution Approach 2:
The patent transforms the weight matrix from a fully dense format to a sparse format by changing the storage parameters. It introduces a block sparse structure that changes how data is organized and accessed, allowing the system to reduce storage overhead while creating patterns that can be efficiently processed by hardware, thus resolving the contradiction between storage reduction and resource utilization.
2Quantity of substance
If aggregated regular sparsity method is used, then storage overhead is reduced, but algorithm accuracy deteriorates
Solution Approach 1:
The patent applies different processing strategies to different blocks of the weight matrix. By identifying blocks with higher density and processing them differently from sparser blocks, the method preserves important computational information locally while maintaining overall sparsity. This local quality approach ensures that algorithm accuracy is maintained in critical regions while still achieving storage reduction globally.
Solution Approach 2:
The patent performs preliminary analysis of the weight matrix to identify dense substructures and patterns before the main computation. This preliminary action involves examining the sparsity pattern and organizing blocks in a way that preserves computational accuracy. By preparing the data structure in advance with block-wise organization, the method ensures that subsequent computations maintain high accuracy while benefiting from reduced storage requirements.
3Quantity of substance
If sparse weights are used to reduce bandwidth requirements, then bandwidth resources are reduced, but computing efficiency decreases
Solution Approach 1:
By segmenting the weight matrix into blocks, the patent enables more efficient data access patterns. The block structure allows the system to load and process data in optimized chunks, reducing the total bandwidth required for data transmission while maintaining computing efficiency. The segmented approach facilitates better cache utilization and reduces memory access overhead.
Solution Approach 2:
The patent introduces a dynamic block-wise processing approach where the computation adapts to the actual data distribution. By dynamically selecting which blocks to process and how to process them based on their density and importance, the system optimizes the trade-off between bandwidth usage and computing efficiency. This dynamic approach ensures that critical computations receive adequate bandwidth while less important operations utilize reduced bandwidth.
Data Source
AI summary
The disclosure provides a method and apparatus for processing sparse data. The method is applied to a reconfigurable processor that includes a PE array, and the PE array includes P×Q PE units. The method includes: dividing a sparse weight matrix to be calculated into at least one unit block; grouping a plurality of unit blocks into a computing group; and obtaining an effective weight address corresponding to each effective weight in the computing group.


