Neural Network Compute Units Using Indexed Non-Zero Activations

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current neural network compute units perform numerous unnecessary computations due to multiplying with zero input activation values, leading to inefficiency and energy wastage.

Innovation Solution

A method and system that identifies and stores only non-zero input activations, generating an index for memory locations with these values, and provides them to computational units while skipping computations with zeros, thereby optimizing memory usage and computational efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If all input activations are processed through matrix multiplication, then complete computational accuracy is maintained, but numerous unnecessary computations are performed multiplying by zero values

Engineering Contradiction:
Improvecomputational efficiencyVSAvoidenergy wastage
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The patent extracts and processes only the non-zero input activations through the neural network compute unit, separating them from zero-valued activations. By identifying and isolating non-zero elements using an index structure, the system performs computations only on necessary data, eliminating wasteful multiplications by zero while maintaining computational accuracy.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent applies partial action by processing only a subset of input activations—specifically, only those with non-zero values. Instead of performing complete matrix multiplication on all input elements, the system selectively applies computations to relevant portions of the data, reducing overall computational workload while preserving essential functionality.

Inventive Principle:
Principle #16Partial or excessive action

2Quantity of substance

If all input activations are stored in memory, then complete data availability is ensured, but memory storage space is wasted on zero values

Engineering Contradiction:
Improvememory storage spaceVSAvoiddata availability
Core Design Contradiction:
Quantity of substanceVSLoss of information

Solution Approach 1:

The patent extracts non-zero input activations from the complete input dataset and stores only these extracted elements in memory. By using an index structure to track positions of non-zero values, the system maintains data availability for computations while significantly reducing the quantity of data that must be stored, thus optimizing memory utilization.

Inventive Principle:
Principle #2Taking out (Extraction)

3Device complexity

If a brute force method is used for matrix multiplication, then computational simplicity is maintained, but the processor architecture limits parallelization capability

Engineering Contradiction:
Improvecomputational simplicityVSAvoidparallelization capability
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent segments the input activations into non-zero and zero-valued groups, with the index structure organizing non-zero elements for efficient access. This segmentation enables the computational system to process only relevant data portions in parallel, overcoming architecture limitations by restructuring data organization rather than changing the fundamental brute force computation approach.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS20250258784A1Exploiting input data sparsity in neural network compute units
Publication Date: 2025.08.14 GOOGLE LLC
  • US20250258784A1 patent drawing
  • US20250258784A1 patent drawing
  • US20250258784A1 patent drawing

AI summary

A computer-implemented method includes receiving, by a computing device, input activations and determining, by a controller of the computing device, whether each of the input activations has either a zero value or a non-zero value. The method further includes storing, in a memory bank of the computing device, at least one of the input activations. Storing the at least one input activation includes generating an index comprising one or more memory address locations that have input activation values that are non-zero values. The method still further includes providing, by the controller and from the memory bank, at least one input activation onto a data bus that is accessible by one or more units of a computational array. The activations are provided, at least in part, from a memory address location associated with the index.