Skip to content

This C++ program is a demonstration of array vectorization techniques utilized in the AVX2 SIMD Assembly library, being run with C++ arrays through the vector class library created by Agner Fog. An ASM version of the same process has been implemented for comparison.

Notifications You must be signed in to change notification settings

Daksh2060/vectorized-arrays-demo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Vectorized Arrays Demo in Assembly and C++

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.

Features

How does it work?

Installation and Use

Follow these steps to set up and run the Vectorized C++ and Assembly Array Demo:

  1. Clone the repository to your local machine:

    git clone

Contact

Feel free to reach out if you have any questions, suggestions, or feedback:

About

This C++ program is a demonstration of array vectorization techniques utilized in the AVX2 SIMD Assembly library, being run with C++ arrays through the vector class library created by Agner Fog. An ASM version of the same process has been implemented for comparison.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages