This Assembly project involves using the SIMD AVX2 instruction set to vectorize arrays of floats. The project implements a dot product function and a polynomial mapping function, with a 32-bit and 64-bit version for each. The Dot product function returns the dot product of two equal-sized arrays of either single or double-precision float values, while the polynomial mapping function passes each index through a polynomial. The AVX2 instruction set has been used to drastically speed up the process, by using projections and horizontal operations to reduce the number of steps required. This same vectorization technique is replicated in C++ using the vector class library by Agner Fog, to achieve similar results in performance.
Follow these steps to set up and run the Vectorized C++ and Assembly Array Demo:
-
Clone the repository to your local machine:
git clone
Feel free to reach out if you have any questions, suggestions, or feedback:
- Email: dpa45@sfu.ca
- LinkedIn: @Daksh Patel