Dynamically Structured SIMD Instructions for Compressed Multiplier Efficiency
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Static SIMD structures in processing systems are inefficient as they cannot compress separate multipliers, leading to increased instructions and executions for achieving desired width or cascade carry length, resulting in suboptimal performance for multiply-accumulate operations.
Innovation Solution
Implementing dynamically structured SIMD instructions that include compressed data, allowing for increased width or padding by incorporating one or more compressed separate multipliers, which reduces the number of instructions needed for processing.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If static SIMD structures are used, then the structure is simple and easy to implement, but the processing efficiency is low and more instructions are needed
Solution Approach 1:
The patent applies dynamics by transitioning from static SIMD structures to dynamically structured SIMD instructions. The SIMD structure can be configured at runtime to include compressed separate multipliers based on the specific processing requirements, allowing the system to adapt the structure dynamically rather than being fixed. This enables fewer instructions to be executed while maintaining processing efficiency.
Solution Approach 2:
The patent utilizes parameter changes by allowing the SIMD structure to vary in terms of the number and type of multipliers included. By changing the parameters of the SIMD structure (e.g., including compressed separate multipliers with fewer bits), the system can optimize processing efficiency for specific operations without requiring a completely different hardware architecture.
2Productivity
If compressed separate multipliers are used, then the number of instructions is reduced, but the complexity of data packing and unpacking increases
Solution Approach 1:
The patent applies self-service by implementing self-contained packing and unpacking logic within the numerical engine circuitry. The packing logic circuitry automatically packs data into SIMD instructions according to the dynamic structure, and the unpacking logic circuitry automatically unpacks products from responses. This eliminates the need for complex external data manipulation routines and reduces overall system complexity despite the dynamic structure.
Solution Approach 2:
The numerical engine circuitry is designed with multi-functionality, where the packing logic circuitry can handle various compressed and uncompressed separate multipliers, and the unpacking logic circuitry can process different product configurations. This universal approach allows the same circuitry to handle diverse SIMD structures without requiring specialized handling for each case.
3Length of moving object
If more separate multipliers are included in SIMD structure, then the width and cascade carry length increase, but the number of executions increases
Solution Approach 1:
The patent applies local quality by using compressed separate multipliers that have different bit widths depending on their position and function within the SIMD structure. Not all multipliers need to be the same size; compressed multipliers with fewer bits can be used where sufficient precision is achieved, allowing the overall SIMD width to increase without proportionally increasing the number of executions required.
Data Source
AI summary
Examples described herein relate to dynamically structured single instruction, multiple data (SIMD) instructions, and systems and circuits implementing such dynamically structured SIMD instructions. An example is a method for processing data. A first SIMD structure is determined by a processor. A characteristic of the first SIMD structure is altered by the processor to obtain a second SIMD structure. An indication of the second SIMD structure is communicated from the processor to a numerical engine. Data is packed by the numerical engine into an SIMD instruction according to the second SIMD structure. The SIMD instruction is transmitted from the numerical engine.


