5.1.4 : CMakeLists.txt
Écrivons le fichier CMakeLists.txt :
On commence par définir le projet :
1
2
|
project(PERFORMANCE_WITH_NAN)
cmake_minimum_required(VERSION 3.0)
|
Ensuite, on inclue les macros que l'on vient d'écrire :
1
|
include(multiplePerfTestFunction.cmake)
|
On définie les différentes tailles de vecteurs qui seront les différents points de nos graphes :
1
|
set(CONFIG_FUNCTION "512, 1024, 2048, 2664, 4096, 5008, 10000")
|
Définissions ce qu'est un
NaN (qui se signal) :
1
|
set(NAN_DEF "std::numeric_limits<float>::signaling_NaN()")
|
Définissions ce qu'est un
infini :
1
|
set(INF_DEF "std::numeric_limits<float>::infinity()")
|
Définissons un nombre dénormalisé :
1
|
set(DENORM_DEF "std::numeric_limits<float>::denorm_min()")
|
Testons avec le plus petit nombre possible (si on le multiplie par lui même il sera dénormalisé) :
1
|
set(MIN_TO_DENORM_DEF "std::numeric_limits<float>::min()")
|
Appelons tous les tests pour le sinus (
sin) :
1
2
|
allTestFunction("sin" "${CONFIG_FUNCTION}" "${VECTORIZED_OPTION}"
"${NAN_DEF}" "${INF_DEF}" "${DENORM_DEF}" "${MIN_TO_DENORM_DEF}")
|
Appelons tous les tests pour le cosinus (
cos) :
1
2
|
allTestFunction("cos" "${CONFIG_FUNCTION}" "${VECTORIZED_OPTION}"
"${NAN_DEF}" "${INF_DEF}" "${DENORM_DEF}" "${MIN_TO_DENORM_DEF}")
|
Appelons tous les tests pour la tangente (
tan) :
1
2
|
allTestFunction("tan" "${CONFIG_FUNCTION}" "${VECTORIZED_OPTION}"
"${NAN_DEF}" "${INF_DEF}" "${DENORM_DEF}" "${MIN_TO_DENORM_DEF}")
|
Vous pouvez ajouter toutes les fonctions que vous voulez mais nous nous arrêterons ici pour ce cours
Le fichier
CMakeLists.txt complet :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
project(PERFORMANCE_WITH_NAN)
cmake_minimum_required(VERSION 3.0)
include(multiplePerfTestFunction.cmake)
set(CONFIG_FUNCTION "512, 1024, 2048, 2664, 4096, 5008, 10000")
set(NAN_DEF "std::numeric_limits<float>::signaling_NaN()")
set(INF_DEF "std::numeric_limits<float>::infinity()")
set(DENORM_DEF "std::numeric_limits<float>::denorm_min()")
set(MIN_TO_DENORM_DEF "std::numeric_limits<float>::min()")
allTestFunction("sin" "${CONFIG_FUNCTION}" "${VECTORIZED_OPTION}"
"${NAN_DEF}" "${INF_DEF}" "${DENORM_DEF}" "${MIN_TO_DENORM_DEF}")
allTestFunction("cos" "${CONFIG_FUNCTION}" "${VECTORIZED_OPTION}"
"${NAN_DEF}" "${INF_DEF}" "${DENORM_DEF}" "${MIN_TO_DENORM_DEF}")
allTestFunction("tan" "${CONFIG_FUNCTION}" "${VECTORIZED_OPTION}"
"${NAN_DEF}" "${INF_DEF}" "${DENORM_DEF}" "${MIN_TO_DENORM_DEF}")
|
Vous pouvez le télécharger
ici.
Il n'a fallu que quelques lignes pour créer tous les tests dont nous avons besoin.