6.7.6 : The CMakeLists.txt file



Now, let's write the CMakeLists.txt file :



First we manage the project name and the minimal cmake version for the file :
1
2
project(HadamardWrapper)
cmake_minimum_required(VERSION 3.0)


Then, we get the files used to build the module :
1
file(GLOB moduleSrc "${CMAKE_CURRENT_SOURCE_DIR}/*.cpp" "${CMAKE_CURRENT_SOURCE_DIR}/*.py")


We call the cmake function to create a module :
1
createPythonModule(install_hadamard_module setup.py ${moduleSrc})


We should wait for the asterichpc module install
1
add_dependencies(install_hadamard_module install_asterics_hpc_module)


Now, we call the cmake function to run the python performances tests
1
2
3
4
runPythonExample(hadamardIntrinsicsPitchPython.py install_hadamard_module)
runPythonExample(hadamardBasePython.py install_asterics_hpc_module)
runPythonExample(hadamardNumpyPython.py install_asterics_hpc_module)
runPythonExample(hadamardListPython.py install_asterics_hpc_module)


Finally, we make some plots to compare the Python performances with the C++ ones :
1
2
3
4
5
plotPerf("hadamardBasePy" hadamard_product_O3 hadamard_product_vectorize hadamardBasePython hadamardNumpyPython)

plotPerf("hadamardSummaryPython" hadamard_product_O3 hadamard_product_vectorize hadamard_product_intrinsics hadamardIntrinsicsPitchPython)

plotPerf("hadamardListPy" hadamard_product_O3 hadamardBasePython hadamardNumpyPython hadamardListPython)


The full CMakeLists.txt file :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
project(HadamardWrapper)
cmake_minimum_required(VERSION 3.0)

file(GLOB moduleSrc "${CMAKE_CURRENT_SOURCE_DIR}/*.cpp" "${CMAKE_CURRENT_SOURCE_DIR}/*.py")

createPythonModule(install_hadamard_module setup.py ${moduleSrc})

add_dependencies(install_hadamard_module install_asterics_hpc_module)

runPythonExample(hadamardIntrinsicsPitchPython.py install_hadamard_module)
runPythonExample(hadamardBasePython.py install_asterics_hpc_module)
runPythonExample(hadamardNumpyPython.py install_asterics_hpc_module)
runPythonExample(hadamardListPython.py install_asterics_hpc_module)

plotPerf("hadamardBasePy" hadamard_product_O3 hadamard_product_vectorize hadamardBasePython hadamardNumpyPython)

plotPerf("hadamardSummaryPython" hadamard_product_O3 hadamard_product_vectorize hadamard_product_intrinsics hadamardIntrinsicsPitchPython)

plotPerf("hadamardListPy" hadamard_product_O3 hadamardBasePython hadamardNumpyPython hadamardListPython)


You can download it here.