Flexible Inter-Array Routing for Compact CNN Mapping

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing techniques for mapping convolutional neural networks (CNNs) into analog arrays suffer from low area utilization and scalability issues due to the 'row-by-row' mapping technique, requiring a large number of analog arrays for large CNNs, making the implementation inefficient and unwieldy.

Innovation Solution

A flexible inter-array routing scheme is implemented to facilitate a compact mapping of CNN layers, allowing for efficient workload mapping and reducing the number of analog arrays needed, while preserving the advantages of streamlined activation for row-by-row mapping.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of manufacture

If row-by-row mapping technique is used for CNNs into analog arrays, then the implementation is simple and preserves streamlined activation, but the area utilization is low and the number of analog arrays required is large

Engineering Contradiction:
Improvemapping simplicityVSAvoidarray utilization
Core Design Contradiction:
Ease of manufactureVSArea of stationary object

Solution Approach 1:

The patent segments the CNN computation into multiple tiles, where each tile processes a portion of the input data. This segmentation allows the same analog array to be reused across different tiles, improving area utilization while maintaining the simplicity of row-by-row mapping within each tile.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a temporal dimension by processing different tiles sequentially over time. This allows the system to handle large CNNs with a smaller number of analog arrays by reusing them across multiple time steps, effectively trading time for space without complicating the mapping technique.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Ease of manufacture

If row-by-row mapping technique is used for CNNs into analog arrays, then the implementation is simple and preserves streamlined activation, but the scalability is poor for large CNNs

Engineering Contradiction:
Improvemapping simplicityVSAvoidscalability
Core Design Contradiction:
Ease of manufactureVSAdaptability or versatility

Solution Approach 1:

By dividing the CNN into manageable tiles that can be processed independently, the system can scale to handle larger networks. Each tile uses the simple row-by-row mapping technique, while the overall scalability is achieved through systematic tiling and reuse across multiple tiles.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The analog array is designed to be universal and reusable across multiple tiles and different CNN configurations. This multi-functionality allows the same hardware to scale to different network sizes and complexities without requiring fundamentally different mapping approaches.

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

3Productivity

If a large number of analog arrays are used to maintain high array utilization, then the productivity improves, but the device complexity and implementation become unwieldy

Engineering Contradiction:
Improvecomputation throughputVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent employs periodic action by cycling through different tiles in a systematic sequence. The analog arrays are reused in a periodic manner across tiles, maintaining high utilization without requiring a large permanent array of hardware. This periodic reuse achieves productivity comparable to having many arrays while keeping the actual device count low.

Inventive Principle:
Principle #19Periodic action

Solution Approach 2:

The system performs preliminary organization of CNN computations into tiles before execution. This pre-planning allows efficient reuse of analog arrays across tiles, achieving high productivity through careful scheduling rather than through raw hardware quantity, thereby reducing system complexity.

Inventive Principle:
Principle #10Preliminary action

Applied Scientific Principles

This section explains which scientific principles are used to turn an abstract innovation direction into a practical engineering solution.

Function Achieved in This Case

This approach enables comparable array utilization for a wide range of CNNs, improving scalability and reducing the number of analog arrays required, thus enhancing the efficiency and compactness of CNN implementations.

Implementation Method 1

outputting electric currents that are representative of performing multiplication operations at the one or more crosspoint device in the crosspoint array, the electric currents based on weight values stored by the crosspoint devices and the voltage pulses from the input data

Methodology Applied
Scientific EffectOhm's law: Ohm's Law

Implementation Method 2

accumulating, by a set of integrators, an electric charge based on the output electric currents from the crosspoint devices

Methodology Applied
Scientific EffectElectrical accumulation: Electrical Accumulator

Data Source

PatentUS11868893B2Efficient tile mapping for row-by-row convolutional neural network mapping for analog artificial intelligence network inference
Publication Date: 2024.01.09 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US11868893B2 patent drawing
  • US11868893B2 patent drawing
  • US11868893B2 patent drawing

AI summary

Implementing a convolutional neural network (CNN) includes configuring a crosspoint array to implement a convolution layer in the CNN. Convolution kernels of the layer are stored in crosspoint devices of the array. Computations for the CNN are performed by iterating a set of operations for a predetermined number of times. The operations include transmitting voltage pulses corresponding to a subpart of a vector of input data to the crosspoint array. The voltage pulses generate electric currents that are representative of performing multiplication operations at the crosspoint device based on weight values stored at the crosspoint devices. A set of integrators accumulates an electric charge based on the output electric currents from the respective crosspoint devices. The crosspoint array outputs the accumulated charge after iterating for the predetermined number of times. The accumulated charge represents a multiply-add result of the vector of input data and the one or more convolution kernels.