DNN Weight Sparsity Balancing Across Processing Elements

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Deep neural networks (DNNs) face inefficiencies due to high computation costs and unbalanced sparsity in processing elements (PEs), leading to synchronization bottlenecks and suboptimal energy consumption, despite the potential for sparsity-based acceleration.

Innovation Solution

A sparsity balancing system that uses bitmaps to rearrange weights and activations, ensuring even distribution of sparse data across PEs, thereby balancing workload and improving synchronization efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If sparsity-based acceleration is applied in DNNs, then computation cost is reduced, but unbalanced sparsity distribution across PEs causes synchronization bottlenecks

Engineering Contradiction:
Improvecomputation efficiencyVSAvoidsynchronization delay
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent applies local quality by transforming the global sparsity property into local balance. Specifically, it redistributes sparse weights across PEs such that each PE receives a locally balanced portion with comparable numbers of zero and non-zero elements. This is achieved through algorithms that analyze the sparsity pattern and reassign weights to ensure uniform workload distribution, thereby resolving the synchronization bottleneck caused by unbalanced sparsity while preserving the computation efficiency gains from sparsity-based acceleration.

Inventive Principle:
Principle #3Local quality

2Use of energy by moving object

If sparsity is exploited for acceleration, then energy consumption is reduced, but workload imbalance across PEs occurs

Engineering Contradiction:
Improveenergy consumptionVSAvoidworkload distribution
Core Design Contradiction:
Use of energy by moving objectVSEase of operation

Solution Approach 1:

The patent addresses workload distribution by implementing local balance in sparsity exploitation. It redistributes weights across PEs to ensure each processor receives a balanced subset with comparable computational loads. This involves analyzing the sparsity patterns and reassigning weights through algorithms that minimize workload variance, thereby maintaining energy efficiency benefits while improving operational ease and load balancing across the parallel processing architecture.

Inventive Principle:
Principle #3Local quality

3Loss of time

If weights are rearranged to balance sparsity, then synchronization efficiency is improved, but additional processing overhead is introduced

Engineering Contradiction:
Improvesynchronization timeVSAvoidprocessing complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The patent applies preliminary action by performing sparsity balancing and weight redistribution during the offline training or model preparation phase. The sparsity analysis, PE assignment, and weight reordering are all computed in advance before deployment. This preliminary processing creates a pre-optimized weight configuration that eliminates the need for complex runtime synchronization management, thereby reducing synchronization time without introducing significant overhead during actual DNN inference operations.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS20250322218A1System and method for balancing sparsity in weights for accelerating deep neural networks
Publication Date: 2025.10.16 INTEL CORP
  • US20250322218A1 patent drawing
  • US20250322218A1 patent drawing
  • US20250322218A1 patent drawing

AI summary

An apparatus is provided to access a weight vector of a layer in a sequence of layers in the DNN. The weight vector includes a first sequence of weights having different values. A bitmap is generated based on the weight vector. The bitmap includes a second sequence of bitmap elements. Each bitmap element corresponds to a different weight and has a value determined based at least on the value of the corresponding weight. The index of each bitmap element in the second sequence matches the index of the corresponding weight in the first sequence. A new bitmap is generated by rearranging the bitmap elements in the second sequence based on the values of the bitmap elements. The weight vector is rearranged based on the new bitmap. The rearranged weight vector is divided into subsets, each of which is assigned to a different PE for a MAC operation.