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 |