Assembly tasks are implemented for the Linux environment (WSL) and NASM assembler.
C++ tasks are implemented for the Linux environment (WSL) and gcc compiler (g++)
Tasks list:
- vector addition;
- vector addition with aligned dynamic memory allocation;
- dot product;
- matrix multiplication;
- substring search.
git clone https://github.com/denyskryvytskyi/capgemini-simd
sudo apt update
sudo apt install nasm gdb gcc g++
nasm -f elf64 task_<n>.asm
ld -o task_<n> task_<n>.o
nasm -f elf64 task_<n>.asm
gcc task_<n>.o -o task_<n> -no-pie
g++ -o task_<n> task_<n>.cpp
SSE
g++ -Wall -o task_<n> task_<n>.cpp -O3 -msse2
AVX integer calculations
g++ -Wall -o task_<n> task_<n>.cpp -O3 -mavx2
AVX float calculations
g++ -Wall -o task_<n> task_<n>.cpp -O3 -mavx2 -mfma
./task_<n>