Vector Processor LUT Reuse for Convolution and Function Approximation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The existing vector processors face challenges in efficiently utilizing the Look-Up Table (LUT) memory, which occupies a significant space, limiting its use to function approximation and impacting computational performance for other operations.
Innovation Solution
The vector processor incorporates a LUT memory that stores data corresponding to index values, allowing it to perform operations beyond function approximation, including convolution, depthwise convolution, activation, pooling, and normalization, by using a controller to manage data storage and retrieval efficiently.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If the LUT memory is used to store coefficients for function approximation, then the accuracy of function approximation is improved, but the LUT memory occupies a large amount of space and cannot be used for other operations
Solution Approach 1:
The LUT memory is designed to serve multiple functions: it can store coefficients for function approximation (improving accuracy) while simultaneously storing data for other operations such as convolution, depthwise convolution, activation, pooling, and normalization (improving versatility). This multi-functional design resolves the contradiction by allowing the same memory resource to be utilized for diverse computational tasks.
Solution Approach 2:
The controller dynamically manages the LUT memory by identifying index values based on instructions and storing appropriate data in the LUT memory using these index values. This dynamic allocation allows the LUT memory to switch between storing function approximation coefficients and other operational data, thereby achieving both high accuracy in function approximation and high versatility in supporting multiple operations.
2Measurement precision
If the LUT memory is dedicated to function approximation, then the accuracy of function approximation is improved, but the computational performance for other operations deteriorates
Solution Approach 1:
The LUT memory is designed to serve multiple functions: it can store coefficients for function approximation (improving accuracy) while simultaneously storing data for other operations such as convolution, depthwise convolution, activation, pooling, and normalization (improving versatility). This multi-functional design resolves the contradiction by allowing the same memory resource to be utilized for diverse computational tasks.
Solution Approach 2:
The controller dynamically manages the LUT memory by identifying index values based on instructions and storing appropriate data in the LUT memory using these index values. This dynamic allocation allows the LUT memory to switch between storing function approximation coefficients and other operational data, thereby achieving both high accuracy in function approximation and high versatility in supporting multiple operations.
3Productivity
If additional storage space is allocated for other operations, then the computational performance for various operations is improved, but the total device complexity increases
Solution Approach 1:
The patent merges the function approximation storage and other operation data storage into a single LUT memory structure. By using the same memory resource for multiple purposes through dynamic management, the device avoids the complexity of implementing separate storage structures, thereby improving computational performance without significantly increasing device complexity.
Data Source
AI summary
A vector processor and an operation method of the vector processor are disclosed. Specifically, the vector processor may include a look-up table (LUT) memory in which data corresponding to an index value is stored, a processing unit configured to perform an operation based on the data, and a controller configured to identify a first index value based on an instruction and store first data in the LUT memory using the first index value.


