AI Engine And Auto Vectorizer
- Stream Support
VSI Auto-vectorizer supports stream arguments for int16, int32, float, cint16, cint32 and cfloat type. In C/C++ source code, users can use top function complex arguments and using VSI auto-vectorizer, users can generate AIE kernels with input/output stream types.
- Partial Vectorization
If the user already has a code in aie format, and there is just one or few functions that are still in c++, he can use the "partial vectorization" to only vectorize the required functions.
- VSI Complex Operations
Auto vectorizer supports complex arithmetic operations and generates vector complex intrinsic functions/API in AIE Engine kernel. To use the complex type feature, users need to include the "_complex.h" header file in the C/C++ source code.
Auto-Vectorizer supports following complex arithmetic operations for float, int32 and int16 types.
- Complex Addition
- Complex Subtraction
- Complex Multiplication
- Complex Multiplication with int/float
- Complex Multiply-Accumulate
- Complex Multiply-Subtraction
- Complex Conjugate
- Complex Normilization
- Complex Reduction
Here is an example of some c++ code before and after being vectorized by the VSI Auto-Vectorizer
For a complete understanding of the AI Engine and Auto Vectorizer please look at the complete documentation here