Vectorize your code for High Performance AIE

VSI Auto-Vectorizer generates AI kernel from C/C++ source code and all necessary host code. After generating AI Kernel and host code Xilinx AIE compiler compiles it and generates the executables to run in AI Engine. In the compilation flow, VSI auto-vectorizer sits in front of the AIE Compiler.

Vectorized Code

AI Engine And Auto Vectorizer

Features

  1. 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.

  2. 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.

  3. 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

Docs

Access comprehensive developer documentation for System View

View Docs

Tutorials

Get in-depth tutorials for beginners and advanced developers

View Tutorials

Resources

Find development resources and get your questions answered

View Resources