Main Page
1.
Introduction
2.
Creation of a HPC/Timer library
❱
2.1.
The rdtsc files
❱
2.1.1.
The header (timer.h)
2.1.2.
The source (timer.cpp)
2.2.
The allocation/deallocation files
❱
2.2.1.
The header (asterics_alloc.h)
2.2.2.
The source (asterics_alloc.cpp)
2.3.
The main header (asterics_hpc.h)
2.4.
The CMakeLists.txt
2.5.
The compilation
3.
Optimisation of Hadamard product
❱
3.1.
What is the Hadamard product ?
3.2.
Main to evaluate the Hadamard product
3.3.
The CMakeLists.txt file
3.4.
Get the performances
3.5.
The first performances
3.6.
How to vectorize the computation
❱
3.6.1.
What is vectorization ?
3.6.2.
Automatic vectorization (by the compiler)
❱
3.6.2.1.
Things to verify before vectorizing
3.6.2.2.
The full main_vectorize.cpp file
3.6.2.3.
The CMakeLists.txt file
3.6.2.4.
Compilation
3.6.2.5.
The performances with vectorization by the compiler
3.6.3.
Manual vectorization (by Intrinsic functions)
❱
3.6.3.1.
Begining of the main_intrinsics.cpp file
3.6.3.2.
The hadamard_product function
3.6.3.3.
The function to evaluate performances
3.6.3.4.
The main function
3.6.3.5.
Full main_intrinsics.cpp file
3.6.3.6.
The CMakeLists.txt file
3.6.3.7.
Compilation
3.6.3.8.
The performances with Intrinsics
3.6.4.
Conclusion on vectorization
3.7.
Code analysis with maqao
❱
3.7.1.
Classical compilation options analysis with maqao
❱
3.7.1.1.
Compilation O0
3.7.1.2.
Compilation O1
3.7.1.3.
Compilation O2
3.7.1.4.
Compilation O3
3.7.1.5.
Compilation Ofast
3.7.2.
Vectorization compilation analysis with maqao
3.7.3.
Intrinsics compilation analysis with maqao
❱
3.7.3.1.
Classical intrinsic version
3.7.3.2.
Classical intrinsic interleaved version
Navy
Chapter 3.6 : How to vectorize the computation