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 |
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.