7.1.2 : La compilation



Compilons notre projet :

cmake ..
-- The C compiler identification is GNU 11.3.0
-- The CXX compiler identification is GNU 11.3.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/gcc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/g++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Program FullCalibrationBench version 1.0.0
-- SELF_TESTS_MODE = yes
-- Found MICROBENCHMARK headers : XXX/usr/include/MicroBenchmark
-- Found lib MICROBENCHMARK : XXX/usr/lib
-- Classical mode for performance test refreshing : NO_PERF_REFRESH = no
-- Use nvc++ compiler at /opt/nvidia/hpc_sdk/Linux_x86_64/23.5/compilers/bin/nvc++
-- Configuring done
-- Generating done
-- Build files have been written to: XXX/FullCalibrationBench/build


Appellons make :
1
2
3
4
5
6
7
make
[ 25%] Building CXX object src/CMakeFiles/calibration_nvcpp_O2.dir/main.cpp.o
[ 50%] Linking CXX executable calibration_nvcpp_O2
[ 50%] Built target calibration_nvcpp_O2
[ 75%] Building CXX object src/CMakeFiles/calibration_nvcpp_O2_precomputed_modulo.dir/main_precompute_modulo.cpp.o
[100%] Linking CXX executable calibration_nvcpp_O2_precomputed_modulo
[100%] Built target calibration_nvcpp_O2_precomputed_modulo


Lançons les tests de performances :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
make plot_all
Consolidate compiler generated dependencies of target calibration_nvcpp_O2_precomputed_modulo
[ 22%] Built target calibration_nvcpp_O2_precomputed_modulo
Consolidate compiler generated dependencies of target calibration_nvcpp_O2
[ 44%] Built target calibration_nvcpp_O2
[ 55%] Run calibration_nvcpp_O2_precomputed_modulo program
micro_benchmarkAutoNs : nbCallPerTest = 61
evaluateCalibration nvc++ pre computed modulo : nbElement = 5242880, timePerElement = 0.0400912 ns/el ± 1.48052e-05, elapsedTime = 210193 ns ± 77.6219
micro_benchmarkAutoNs : nbCallPerTest = 31
evaluateCalibration nvc++ pre computed modulo : nbElement = 10485760, timePerElement = 0.0393656 ns/el ± 1.43264e-05, elapsedTime = 412778 ns ± 150.223
micro_benchmarkAutoNs : nbCallPerTest = 14
evaluateCalibration nvc++ pre computed modulo : nbElement = 20971520, timePerElement = 0.0422059 ns/el ± 9.45178e-05, elapsedTime = 885121 ns ± 1982.18
micro_benchmarkAutoNs : nbCallPerTest = 10
evaluateCalibration nvc++ pre computed modulo : nbElement = 41943040, timePerElement = 0.04045 ns/el ± 6.90155e-05, elapsedTime = 1.6966e+06 ns ± 2894.72
micro_benchmarkAutoNs : nbCallPerTest = 10
evaluateCalibration nvc++ pre computed modulo : nbElement = 83886080, timePerElement = 0.0395028 ns/el ± 3.92458e-05, elapsedTime = 3.31373e+06 ns ± 3292.18
micro_benchmarkAutoNs : nbCallPerTest = 10
evaluateCalibration nvc++ pre computed modulo : nbElement = 167772160, timePerElement = 0.0392659 ns/el ± 1.80261e-05, elapsedTime = 6.58773e+06 ns ± 3024.28
[ 66%] Run calibration_nvcpp_O2 program
micro_benchmarkAutoNs : nbCallPerTest = 62
evaluateCalibration nvc++ : nbElement = 5242880, timePerElement = 0.0399364 ns/el ± 2.57325e-05, elapsedTime = 209382 ns ± 134.912
micro_benchmarkAutoNs : nbCallPerTest = 31
evaluateCalibration nvc++ : nbElement = 10485760, timePerElement = 0.0392478 ns/el ± 9.25267e-06, elapsedTime = 411543 ns ± 97.0213
micro_benchmarkAutoNs : nbCallPerTest = 14
evaluateCalibration nvc++ : nbElement = 20971520, timePerElement = 0.0421217 ns/el ± 8.80011e-05, elapsedTime = 883356 ns ± 1845.52
micro_benchmarkAutoNs : nbCallPerTest = 10
evaluateCalibration nvc++ : nbElement = 41943040, timePerElement = 0.040288 ns/el ± 5.79692e-05, elapsedTime = 1.6898e+06 ns ± 2431.4
micro_benchmarkAutoNs : nbCallPerTest = 10
evaluateCalibration nvc++ : nbElement = 83886080, timePerElement = 0.039509 ns/el ± 3.68822e-05, elapsedTime = 3.31426e+06 ns ± 3093.91
micro_benchmarkAutoNs : nbCallPerTest = 10
evaluateCalibration nvc++ : nbElement = 167772160, timePerElement = 0.0389327 ns/el ± 1.96122e-05, elapsedTime = 6.53182e+06 ns ± 3290.39
[ 77%] Call gnuplot calibrationBaseNvcpp
[ 77%] Built target plot_calibrationBaseNvcpp
[ 88%] Built target run_calibration_nvcpp_O2_precomputed_modulo
[100%] Built target run_calibration_nvcpp_O2
[100%] Built target run_all
[100%] Built target plot_thread
[100%] Built target plot_all