Part 8 : Optimisation of a reduction
- 8.1) What is a reduction ?
- 8.2) The classical approach
- 8.3) The vectorization of reduction
- 8.4) The vectorization of reduction with intrinsic functions
- 8.5) How to optimize more
- 8.6) How to create a reduction python module
You can find the associated presentation here.
Let's create a directory 4-Reduction in the directory ExampleOptimisation for this example :
$ mkdir 4-Reduction
Do not forget to complete the ExampleOptimisation/CMakeLists.txt file :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
project(HPC_ASTERICS) cmake_minimum_required(VERSION 3.0) set(PYTHON_EXECUTABLE "python3" CACHE BOOL "Python program") add_subdirectory(Performances) include(runExample.cmake) include(pythonCheck.cmake) set(VECTOR_ALIGNEMENT 32) add_definitions(-DVECTOR_ALIGNEMENT=${VECTOR_ALIGNEMENT}) add_subdirectory(0-CMakeHelloWorld) add_subdirectory(AstericsHPC) include_directories(${CMAKE_CURRENT_SOURCE_DIR}/AstericsHPC) add_subdirectory(1-HadamardProduct) add_subdirectory(3-Saxpy) add_subdirectory(4-Reduction) |