11.2.3 : The compilation

Let's compile :

$ make

-- Configuring done

-- Generating done

-- Build files have been written to: ExampleOptimisation/build

[ 0%] Built target hadamard_product_O2

[ 2%] Built target hadamard_product_O1

[ 4%] Built target hadamard_product_vectorize

[ 4%] Built target hadamard_product_O0

[ 6%] Built target hadamard_product_O3

[ 8%] Built target hadamard_product_Ofast

[ 8%] Built target hadamard_product_intrinsics

[ 8%] Built target asterics_hpc

[ 8%] Built target saxpy_O2

[ 8%] Built target saxpy_O0

[ 11%] Built target saxpy_O3

[ 13%] Built target saxpy_O1

[ 15%] Built target saxpy_Ofast

[ 17%] Built target saxpy_vectorize

[ 17%] Built target saxpy_intrinsics

[ 20%] Built target reduction_real_O2

[ 22%] Built target reduction_real_intrinsics_interleave8_O3

[ 24%] Built target reduction_real_O1

[ 26%] Built target reduction_real_Ofast

[ 28%] Built target reduction_O0

[ 28%] Built target reduction_O1

[ 31%] Built target reduction_O2

[ 33%] Built target reduction_O3

[ 35%] Built target reduction_real_intrinsics_interleave4_O3

[ 37%] Built target reduction_real_vectorize_Ofast

[ 40%] Built target reduction_real_intrinsics_interleave2_O3

[ 42%] Built target reduction_real_intrinsics_O3

[ 42%] Built target reduction_real_O3

[ 44%] Built target reduction_real_O0

[ 46%] Built target reduction_real_vectorize_O3

[ 48%] Built target barycentre_intrinsics

[ 51%] Built target barycentre_base_O2

[ 53%] Built target barycentre_base_O1

[ 55%] Built target barycentre_base_O0

[ 57%] Built target barycentre_vectorizeSplit_O3

[ 60%] Built target barycentre_base_Ofast

[ 62%] Built target barycentre_base_O3

[ 64%] Built target barycentre_vectorize_O3

[ 66%] Built target sgemm_intrinsicsPitch_O3

[ 68%] Built target sgemm_vectorize_Ofast

[ 71%] Built target sgemm_base_O1

[ 73%] Built target sgemm_vectorize_O3

[ 75%] Built target sgemm_base_Ofast

[ 77%] Built target sgemm_base_O3

[ 80%] Built target sgemm_base_O0

[ 82%] Built target sgemm_intrinsics_O3

[ 84%] Built target sgemm_swap_Ofast

[ 86%] Built target sgemm_swap_O3

[ 88%] Built target sgemm_base_O2

[ 91%] Built target branchPrediction_O1

[ 91%] Built target branchPrediction_O2

[ 93%] Built target branchPrediction_O0

[ 95%] Built target branchPrediction_O3

[ 97%] Built target branchPrediction_Ofast

Scanning dependencies of target branchOptimise_O3

[ 97%] Building CXX object 7-BranchingPredicator/CMakeFiles/branchOptimise_O3.dir/main_optimise.cpp.o

[100%] Linking CXX executable branchOptimise_O3

[100%] Built target branchOptimise_O3

Scanning dependencies of target branchOptimise_Ofast

[100%] Building CXX object 7-BranchingPredicator/CMakeFiles/branchOptimise_Ofast.dir/main_optimise.cpp.o

[100%] Linking CXX executable branchOptimise_Ofast

[100%] Built target branchOptimise_Ofast



Let's get the performances :

$ make plot_all

[ 0%] Built target asterics_hpc

[ 0%] Built target branchOptimise_Ofast

[ 1%] Built target branchPrediction_O3

[ 2%] Built target branchPrediction_Ofast

[ 3%] Built target branchOptimise_O3

Scanning dependencies of target plot_branchOptimise

[ 3%] Run branchOptimise_Ofast program

Branching probability no branching

evaluateDummyCopy : proba = 0.1, nbElement = 10000, cyclePerElement = 0.6877 cy/el, elapsedTime = 6877 cy

evaluateDummyCopy : proba = 0.2, nbElement = 10000, cyclePerElement = 0.7236 cy/el, elapsedTime = 7236 cy

evaluateDummyCopy : proba = 0.3, nbElement = 10000, cyclePerElement = 0.6525 cy/el, elapsedTime = 6525 cy

evaluateDummyCopy : proba = 0.4, nbElement = 10000, cyclePerElement = 0.6275 cy/el, elapsedTime = 6275 cy

evaluateDummyCopy : proba = 0.5, nbElement = 10000, cyclePerElement = 0.6795 cy/el, elapsedTime = 6795 cy

evaluateDummyCopy : proba = 0.6, nbElement = 10000, cyclePerElement = 0.6808 cy/el, elapsedTime = 6808 cy

evaluateDummyCopy : proba = 0.7, nbElement = 10000, cyclePerElement = 0.6762 cy/el, elapsedTime = 6762 cy

evaluateDummyCopy : proba = 0.8, nbElement = 10000, cyclePerElement = 0.6578 cy/el, elapsedTime = 6578 cy

evaluateDummyCopy : proba = 0.9, nbElement = 10000, cyclePerElement = 0.6798 cy/el, elapsedTime = 6798 cy

[ 3%] Run branchOptimise_O3 program

Branching probability no branching

evaluateDummyCopy : proba = 0.1, nbElement = 10000, cyclePerElement = 0.7829 cy/el, elapsedTime = 7829 cy

evaluateDummyCopy : proba = 0.2, nbElement = 10000, cyclePerElement = 0.7822 cy/el, elapsedTime = 7822 cy

evaluateDummyCopy : proba = 0.3, nbElement = 10000, cyclePerElement = 0.7729 cy/el, elapsedTime = 7729 cy

evaluateDummyCopy : proba = 0.4, nbElement = 10000, cyclePerElement = 0.753 cy/el, elapsedTime = 7530 cy

evaluateDummyCopy : proba = 0.5, nbElement = 10000, cyclePerElement = 0.7696 cy/el, elapsedTime = 7696 cy

evaluateDummyCopy : proba = 0.6, nbElement = 10000, cyclePerElement = 0.7435 cy/el, elapsedTime = 7435 cy

evaluateDummyCopy : proba = 0.7, nbElement = 10000, cyclePerElement = 0.7851 cy/el, elapsedTime = 7851 cy

evaluateDummyCopy : proba = 0.8, nbElement = 10000, cyclePerElement = 0.7331 cy/el, elapsedTime = 7331 cy

evaluateDummyCopy : proba = 0.9, nbElement = 10000, cyclePerElement = 0.734 cy/el, elapsedTime = 7340 cy

[ 3%] Call gnuplot branchOptimise

[ 4%] Built target plot_branchOptimise

[ 4%] Built target hadamard_product_intrinsics

[ 6%] Built target hadamard_product_vectorize

[ 7%] Built target hadamard_product_O3

[ 8%] Built target plot_hadamardIntrinsics

[ 9%] Built target hadamard_product_Ofast

[ 9%] Built target hadamard_product_O2

[ 10%] Built target hadamard_product_O1

[ 10%] Built target hadamard_product_O0

[ 13%] Built target plot_hadamardBase

[ 14%] Built target plot_hadamardVectorize

[ 14%] Built target saxpy_intrinsics

[ 15%] Built target saxpy_O3

[ 17%] Built target saxpy_vectorize

[ 18%] Built target plot_saxpyIntrinsics

[ 19%] Built target plot_saxpyVectorize

[ 20%] Built target saxpy_Ofast

[ 20%] Built target saxpy_O2

[ 20%] Built target saxpy_O0

[ 21%] Built target saxpy_O1

[ 24%] Built target plot_saxpyBase

[ 25%] Built target reduction_real_intrinsics_O3

[ 26%] Built target reduction_real_intrinsics_interleave8_O3

[ 28%] Built target reduction_real_Ofast

[ 29%] Built target reduction_real_intrinsics_interleave4_O3

[ 30%] Built target reduction_real_vectorize_Ofast

[ 31%] Built target reduction_real_intrinsics_interleave2_O3

[ 35%] Built target plot_reductionIntrinsicsInterleave8

[ 36%] Built target reduction_real_vectorize_O3

[ 36%] Built target reduction_real_O3

[ 39%] Built target plot_reductionVectorize

[ 40%] Built target reduction_O3

[ 41%] Built target reduction_O0

[ 41%] Built target reduction_O1

[ 42%] Built target reduction_O2

[ 45%] Built target plot_reductionBase

[ 46%] Built target reduction_real_O0

[ 47%] Built target reduction_real_O2

[ 48%] Built target reduction_real_O1

[ 50%] Built target plot_reductionReal

[ 51%] Built target plot_reductionIntrinsicsInterleave2

[ 53%] Built target plot_reductionIntrinsicsInterleave4

[ 56%] Built target plot_reductionIntrinsics

[ 57%] Built target barycentre_vectorize_O3

[ 58%] Built target barycentre_intrinsics

[ 59%] Built target barycentre_vectorizeSplit_O3

[ 60%] Built target barycentre_base_O3

[ 62%] Built target plot_barycentreIntrinsics

[ 63%] Built target barycentre_base_O2

[ 64%] Built target barycentre_base_O1

[ 65%] Built target barycentre_base_O0

[ 67%] Built target barycentre_base_Ofast

[ 69%] Built target plot_barycentreBase

[ 71%] Built target plot_barycentreVectorize

[ 73%] Built target sgemm_intrinsics_O3

[ 74%] Built target sgemm_intrinsicsPitch_O3

[ 75%] Built target sgemm_vectorize_Ofast

[ 76%] Built target sgemm_vectorize_O3

[ 79%] Built target plot_sgemmIntrinsicsPitch

[ 80%] Built target plot_sgemmIntrinsics

[ 81%] Built target sgemm_base_O2

[ 82%] Built target sgemm_base_O1

[ 84%] Built target sgemm_base_Ofast

[ 85%] Built target sgemm_base_O3

[ 86%] Built target sgemm_base_O0

[ 89%] Built target plot_sgemmBase

[ 90%] Built target sgemm_swap_O3

[ 91%] Built target sgemm_swap_Ofast

[ 92%] Built target plot_sgemmVectorize

[ 95%] Built target plot_sgemmSwap

[ 96%] Built target branchPrediction_O1

[ 96%] Built target branchPrediction_O2

[ 97%] Built target branchPrediction_O0

[100%] Built target plot_branchPredicator

[100%] Built target plot_all