Neural Network Compute Tile With Separate Activation And Parameter Banks

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing technologies face challenges in efficiently performing tensor computations for deep neural networks due to high instruction bandwidth and memory requirements, limiting computational efficiency and scalability.

Innovation Solution

A computing unit with a first memory bank of narrow data width for input activations and a second memory bank of wider data width for parameters, coupled with MAC operators, allows for efficient tensor computations by distributing computations across multiple tiles and exploiting memory hierarchy for high utilization of MAC operators.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a single memory bank is used to store both input activations and parameters, then memory access is simplified, but the data width must be large enough to accommodate both types of data, increasing memory bandwidth requirements and reducing computational efficiency

Engineering Contradiction:
Improvecomputational efficiencyVSAvoidinstruction bandwidth
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The memory system is segmented into two separate memory banks: a first memory bank for storing input activations and a second memory bank for storing parameters. This segmentation allows each memory bank to be optimized for its specific data type, with the first memory bank having a data width matched to activation requirements and the second memory bank having a data width matched to parameter requirements, thereby reducing overall memory bandwidth requirements while maintaining high computational efficiency

Inventive Principle:
Principle #1Segmentation

2Quantity of substance

If a narrow data width memory is used for input activations, then memory bandwidth is reduced, but the data width is insufficient to efficiently store and access parameters

Engineering Contradiction:
Improveinstruction bandwidthVSAvoidcomputational efficiency
Core Design Contradiction:
Quantity of substanceVSProductivity

Solution Approach 1:

The memory system is segmented into two separate memory banks: a first memory bank for storing input activations and a second memory bank for storing parameters. This segmentation allows each memory bank to be optimized for its specific data type, with the first memory bank having a narrower data width suitable for activations and the second memory bank having a wider data width suitable for parameters, thereby reducing overall memory bandwidth requirements while maintaining high computational efficiency

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Each memory bank is designed with local quality optimization: the first memory bank is optimized with a data width specifically matched to input activation requirements, while the second memory bank is optimized with a data width specifically matched to parameter requirements. This local optimization ensures that each memory bank operates at peak efficiency for its specific data type without being constrained by the requirements of the other data type

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS12455737B2Neural network compute tile
Publication Date: 2025.10.28 GOOGLE LLC
  • US12455737B2 patent drawing
  • US12455737B2 patent drawing
  • US12455737B2 patent drawing

AI summary

A computing unit is disclosed, comprising a first memory bank for storing input activations and a second memory bank for storing parameters used in performing computations. The computing unit includes at least one cell comprising at least one multiply accumulate (“MAC”) operator that receives parameters from the second memory bank and performs computations. The computing unit further includes a first traversal unit that provides a control signal to the first memory bank to cause an input activation to be provided to a data bus accessible by the MAC operator. The computing unit performs one or more computations associated with at least one element of a data array, the one or more computations being performed by the MAC operator and comprising, in part, a multiply operation of the input activation received from the data bus and a parameter received from the second memory bank.