Large Tensor Tiling for Systolic Array Efficiency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Convolutional neural networks (CNNs) face inefficiencies when processing large tensors of varying sizes, leading to increased power consumption, complexity, and reduced processing efficiency due to the need for re-reading duplicated data and reorganizing hardware for larger tiles.

Innovation Solution

The implementation of large tensor tiling (LTT) techniques, which divide large input tensors into smaller overlapping or crossover tiles with duplicated edges, allowing for efficient processing by reusing data across shared boundaries within a systolic array, thereby avoiding the need for re-reading duplicated data and reorganizing hardware.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If large tensors are processed as single large tiles, then processing accuracy is maintained, but power consumption increases and hardware complexity increases due to re-reading duplicated data and reorganizing hardware

Engineering Contradiction:
Improveprocessing accuracyVSAvoidpower consumption
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The patent divides large input tensors into smaller overlapping tiles that can be processed by individual processing elements in the systolic array. Each tile is smaller than the full tensor, allowing parallel processing across multiple PEs without requiring the entire large tensor to be loaded into memory at once, thereby reducing power consumption while maintaining processing accuracy through proper tile overlap and data reuse strategies

Inventive Principle:
Principle #1Segmentation

2Reliability

If large tensors are processed as single large tiles, then processing accuracy is maintained, but hardware complexity increases due to reorganizing hardware for larger tiles

Engineering Contradiction:
Improveprocessing accuracyVSAvoidhardware complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent segments the large tensor processing task into smaller tile processing units that fit within the capabilities of individual processing elements. This segmentation allows the hardware to process tiles of manageable size using fixed hardware configurations, avoiding the need for complex hardware reorganization when handling different tensor sizes while maintaining processing accuracy

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent designs a universal tiling approach where the same hardware architecture can process tensors of various sizes by dynamically adjusting tile dimensions and overlap parameters. This multi-functionality eliminates the need for hardware reconfiguration for different tensor sizes, reducing hardware complexity while maintaining processing accuracy across diverse input dimensions

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

3Reliability

If large tensors are processed as single large tiles, then processing accuracy is maintained, but processing efficiency decreases due to re-reading duplicated data

Engineering Contradiction:
Improveprocessing accuracyVSAvoidprocessing efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments the tensor into overlapping tiles where boundary regions are shared between adjacent tiles. This segmentation enables processing elements to reuse data from shared boundaries without re-reading from external memory, significantly improving processing efficiency while maintaining accuracy through proper overlap management

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary tile division and overlap identification before processing begins. By pre-computing which data elements will be shared between tiles and optimizing the tiling scheme in advance, the system avoids redundant data reads during processing, improving efficiency while maintaining processing accuracy through careful data reuse strategies

Inventive Principle:
Principle #10Preliminary action

4Adaptability or versatility

If tensors of varying sizes are processed, then adaptability to different input dimensions is improved, but processing efficiency decreases without tiling

Engineering Contradiction:
Improveadaptability to tensor sizesVSAvoidprocessing efficiency
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent implements dynamic tile sizing and overlap configuration that adapts to the dimensions of the input tensor. The system can adjust tile dimensions, overlap amounts, and data reuse patterns based on the specific tensor size, maintaining high processing efficiency across varying input dimensions while preserving adaptability to different tensor configurations

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS20240412045A1Large tensor tiling
Publication Date: 2024.12.12 MICROSOFT TECHNOLOGY LICENSING LLC
  • US20240412045A1 patent drawing
  • US20240412045A1 patent drawing
  • US20240412045A1 patent drawing

AI summary

Techniques for performing large tensor tiling (LTT) in hardware are enabled. LTT divides a large tensor (e.g., of unsupported size) into overlapping tiles (e.g., having supported tensor size(s)). A tensor may be processed processing the tiles. The output of each processed tile is stored, for example, in a systolic array considering the tile's placement in the large tensor. The output of all processed tiles is identical to the output of processing the large tensor. Tiles may be processed by reusing data overlapping boundaries shared with other tiles. In some examples, overlapping data may be reused (e.g., written once) or partly reused (e.g., written twice). Tiling large tensors with boundary duplication supports dynamic adaptation to a wide variety of tensor sizes, avoids re-reading duplicated data, and avoids reorganizing hardware for large tiles, which reduces power consumption and area, reduces complexity, and increases processing efficiency.