Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/denyskryvytskyi/capgemini-simd

SIMD usage for vector additon, matrix multiplication, dot product, and substring search
https://github.com/denyskryvytskyi/capgemini-simd

assembly cpp gpgpu gpgpu-computing matrix matrix-multiplication simd substring-search vector vectorization

Last synced: 3 days ago
JSON representation

SIMD usage for vector additon, matrix multiplication, dot product, and substring search

Awesome Lists containing this project

README

        

# Capgemini SIMD tasks
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.

## Getting Started
### Work environment preparation
`git clone https://github.com/denyskryvytskyi/capgemini-simd`

`sudo apt update`

`sudo apt install nasm gdb gcc g++`

### Pure assembly program compilation and linking
`nasm -f elf64 task_.asm`

`ld -o task_ task_.o`

### Assembly with extern C function program compilation and linking
`nasm -f elf64 task_.asm`

`gcc task_.o -o task_ -no-pie`

### C++ program compilation
#### Without optimization flags:
`g++ -o task_ task_.cpp`
#### With optimization flags:
**SSE**
`g++ -Wall -o task_ task_.cpp -O3 -msse2`

**AVX integer calculations**
`g++ -Wall -o task_ task_.cpp -O3 -mavx2`

**AVX float calculations**
`g++ -Wall -o task_ task_.cpp -O3 -mavx2 -mfma`

### Run
`./task_`