Flexible Inter-Array Routing for Compact CNN Mapping
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
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
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.
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.
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
Implementation Method 2
accumulating, by a set of integrators, an electric charge based on the output electric currents from the crosspoint devices
Data Source
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.


