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 |