Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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
- Host: GitHub
- URL: https://github.com/denyskryvytskyi/capgemini-simd
- Owner: denyskryvytskyi
- Created: 2024-09-10T17:06:45.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2024-10-28T13:47:25.000Z (4 months ago)
- Last Synced: 2024-12-16T06:45:00.256Z (about 2 months ago)
- Topics: assembly, cpp, gpgpu, gpgpu-computing, matrix, matrix-multiplication, simd, substring-search, vector, vectorization
- Language: Assembly
- Homepage:
- Size: 12 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
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_`