10.2.5 : The compilation

Let's compile :

$ make

-- Configuring done

-- Generating done

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

[ 2%] Built target hadamard_product_O2

[ 2%] Built target hadamard_product_O1

[ 4%] Built target hadamard_product_vectorize

[ 6%] Built target hadamard_product_O0

[ 8%] Built target hadamard_product_O3

[ 10%] Built target hadamard_product_Ofast

[ 12%] Built target hadamard_product_intrinsics

[ 14%] Built target asterics_hpc

[ 17%] Built target saxpy_O2

[ 19%] Built target saxpy_O0

[ 21%] Built target saxpy_O3

[ 23%] Built target saxpy_O1

[ 25%] Built target saxpy_Ofast

[ 27%] Built target saxpy_vectorize

[ 27%] Built target saxpy_intrinsics

[ 29%] Built target reduction_real_O2

[ 31%] Built target reduction_real_intrinsics_interleave8_O3

[ 36%] Built target reduction_real_O1

[ 38%] Built target reduction_real_Ofast

[ 40%] Built target reduction_O0

[ 42%] Built target reduction_O1

[ 42%] Built target reduction_O2

[ 44%] Built target reduction_O3

[ 46%] Built target reduction_real_intrinsics_interleave4_O3

[ 48%] Built target reduction_real_vectorize_Ofast

[ 51%] Built target reduction_real_intrinsics_interleave2_O3

[ 55%] Built target reduction_real_intrinsics_O3

[ 57%] Built target reduction_real_O3

[ 59%] Built target reduction_real_O0

[ 63%] Built target reduction_real_vectorize_O3

[ 65%] Built target barycentre_intrinsics

[ 70%] Built target barycentre_base_O2

[ 72%] Built target barycentre_base_O1

[ 74%] Built target barycentre_base_O0

[ 78%] Built target barycentre_vectorizeSplit_O3

[ 80%] Built target barycentre_base_Ofast

[ 82%] Built target barycentre_base_O3

[ 85%] Built target barycentre_vectorize_O3

Scanning dependencies of target sgemm_base_O3

[ 85%] Building CXX object 6-Sgemm/CMakeFiles/sgemm_base_O3.dir/sgemm.cpp.o

[ 87%] Building CXX object 6-Sgemm/CMakeFiles/sgemm_base_O3.dir/main_sgemm.cpp.o

[ 87%] Linking CXX executable sgemm_base_O3

[ 87%] Built target sgemm_base_O3

Scanning dependencies of target sgemm_base_Ofast

[ 89%] Building CXX object 6-Sgemm/CMakeFiles/sgemm_base_Ofast.dir/sgemm.cpp.o

[ 89%] Building CXX object 6-Sgemm/CMakeFiles/sgemm_base_Ofast.dir/main_sgemm.cpp.o

[ 91%] Linking CXX executable sgemm_base_Ofast

[ 91%] Built target sgemm_base_Ofast

Scanning dependencies of target sgemm_base_O0

[ 93%] Building CXX object 6-Sgemm/CMakeFiles/sgemm_base_O0.dir/sgemm.cpp.o

[ 93%] Building CXX object 6-Sgemm/CMakeFiles/sgemm_base_O0.dir/main_sgemm.cpp.o

[ 95%] Linking CXX executable sgemm_base_O0

[ 95%] Built target sgemm_base_O0

Scanning dependencies of target sgemm_base_O1

[ 95%] Building CXX object 6-Sgemm/CMakeFiles/sgemm_base_O1.dir/sgemm.cpp.o

[ 95%] Building CXX object 6-Sgemm/CMakeFiles/sgemm_base_O1.dir/main_sgemm.cpp.o

[ 97%] Linking CXX executable sgemm_base_O1

[ 97%] Built target sgemm_base_O1

Scanning dependencies of target sgemm_base_O2

[ 97%] Building CXX object 6-Sgemm/CMakeFiles/sgemm_base_O2.dir/sgemm.cpp.o

[100%] Building CXX object 6-Sgemm/CMakeFiles/sgemm_base_O2.dir/main_sgemm.cpp.o

[100%] Linking CXX executable sgemm_base_O2

[100%] Built target sgemm_base_O2



Let's get the performances :

$ make plot_all

[ 1%] Built target asterics_hpc

[ 2%] Built target sgemm_base_O2

[ 3%] Built target sgemm_base_O3

[ 6%] Built target sgemm_base_Ofast

[ 8%] Built target sgemm_base_O0

[ 9%] Built target sgemm_base_O1

Scanning dependencies of target plot_sgemmBase

[ 10%] Run sgemm_base_Ofast program

SGEMM

evaluateSgemm : nbElement = 10, cyclePerElement = 16.09 cy/el, elapsedTime = 1609 cy

evaluateSgemm : nbElement = 20, cyclePerElement = 21.3275 cy/el, elapsedTime = 8531 cy

evaluateSgemm : nbElement = 30, cyclePerElement = 29.9233 cy/el, elapsedTime = 26931 cy

evaluateSgemm : nbElement = 50, cyclePerElement = 45.678 cy/el, elapsedTime = 114195 cy

evaluateSgemm : nbElement = 80, cyclePerElement = 64.6194 cy/el, elapsedTime = 413564 cy

evaluateSgemm : nbElement = 100, cyclePerElement = 80.6436 cy/el, elapsedTime = 806436 cy

[ 10%] Run sgemm_base_O0 program

SGEMM

evaluateSgemm : nbElement = 10, cyclePerElement = 76.26 cy/el, elapsedTime = 7626 cy

evaluateSgemm : nbElement = 20, cyclePerElement = 141.25 cy/el, elapsedTime = 56500 cy

evaluateSgemm : nbElement = 30, cyclePerElement = 213.217 cy/el, elapsedTime = 191895 cy

evaluateSgemm : nbElement = 50, cyclePerElement = 354.977 cy/el, elapsedTime = 887443 cy

evaluateSgemm : nbElement = 80, cyclePerElement = 588.488 cy/el, elapsedTime = 3766326 cy

evaluateSgemm : nbElement = 100, cyclePerElement = 724.719 cy/el, elapsedTime = 7247193 cy

[ 12%] Run sgemm_base_O1 program

SGEMM

evaluateSgemm : nbElement = 10, cyclePerElement = 14.26 cy/el, elapsedTime = 1426 cy

evaluateSgemm : nbElement = 20, cyclePerElement = 33.135 cy/el, elapsedTime = 13254 cy

evaluateSgemm : nbElement = 30, cyclePerElement = 55.5922 cy/el, elapsedTime = 50033 cy

evaluateSgemm : nbElement = 50, cyclePerElement = 101.988 cy/el, elapsedTime = 254970 cy

evaluateSgemm : nbElement = 80, cyclePerElement = 187.36 cy/el, elapsedTime = 1199105 cy

evaluateSgemm : nbElement = 100, cyclePerElement = 254.263 cy/el, elapsedTime = 2542630 cy

[ 12%] Run sgemm_base_O2 program

SGEMM

evaluateSgemm : nbElement = 10, cyclePerElement = 17.45 cy/el, elapsedTime = 1745 cy

evaluateSgemm : nbElement = 20, cyclePerElement = 35.305 cy/el, elapsedTime = 14122 cy

evaluateSgemm : nbElement = 30, cyclePerElement = 58.2422 cy/el, elapsedTime = 52418 cy

evaluateSgemm : nbElement = 50, cyclePerElement = 106.94 cy/el, elapsedTime = 267351 cy

evaluateSgemm : nbElement = 80, cyclePerElement = 190.387 cy/el, elapsedTime = 1218476 cy

evaluateSgemm : nbElement = 100, cyclePerElement = 252.578 cy/el, elapsedTime = 2525784 cy

[ 12%] Run sgemm_base_O3 program

SGEMM

evaluateSgemm : nbElement = 10, cyclePerElement = 17.66 cy/el, elapsedTime = 1766 cy

evaluateSgemm : nbElement = 20, cyclePerElement = 35.0475 cy/el, elapsedTime = 14019 cy

evaluateSgemm : nbElement = 30, cyclePerElement = 57.0967 cy/el, elapsedTime = 51387 cy

evaluateSgemm : nbElement = 50, cyclePerElement = 104.308 cy/el, elapsedTime = 260769 cy

evaluateSgemm : nbElement = 80, cyclePerElement = 186.629 cy/el, elapsedTime = 1194424 cy

evaluateSgemm : nbElement = 100, cyclePerElement = 250.513 cy/el, elapsedTime = 2505127 cy

[ 13%] Call gnuplot sgemmBase

[ 13%] Built target plot_sgemmBase

[ 14%] Built target hadamard_product_intrinsics

[ 15%] Built target hadamard_product_vectorize

[ 16%] Built target hadamard_product_O3

[ 19%] Built target plot_hadamardIntrinsics

[ 20%] Built target hadamard_product_Ofast

[ 21%] Built target hadamard_product_O2

[ 21%] Built target hadamard_product_O1

[ 22%] Built target hadamard_product_O0

[ 25%] Built target plot_hadamardBase

[ 26%] Built target plot_hadamardVectorize

[ 26%] Built target saxpy_intrinsics

[ 27%] Built target saxpy_O3

[ 28%] Built target saxpy_vectorize

[ 31%] Built target plot_saxpyIntrinsics

[ 32%] Built target plot_saxpyVectorize

[ 33%] Built target saxpy_Ofast

[ 34%] Built target saxpy_O2

[ 36%] Built target saxpy_O0

[ 37%] Built target saxpy_O1

[ 39%] Built target plot_saxpyBase

[ 42%] Built target reduction_real_intrinsics_O3

[ 43%] Built target reduction_real_intrinsics_interleave8_O3

[ 44%] Built target reduction_real_Ofast

[ 45%] Built target reduction_real_intrinsics_interleave4_O3

[ 46%] Built target reduction_real_vectorize_Ofast

[ 48%] Built target reduction_real_intrinsics_interleave2_O3

[ 51%] Built target plot_reductionIntrinsicsInterleave8

[ 54%] Built target reduction_real_vectorize_O3

[ 55%] Built target reduction_real_O3

[ 57%] Built target plot_reductionVectorize

[ 59%] Built target reduction_O3

[ 60%] Built target reduction_O0

[ 61%] Built target reduction_O1

[ 61%] Built target reduction_O2

[ 63%] Built target plot_reductionBase

[ 65%] Built target reduction_real_O0

[ 66%] Built target reduction_real_O2

[ 68%] Built target reduction_real_O1

[ 72%] Built target plot_reductionReal

[ 74%] Built target plot_reductionIntrinsicsInterleave2

[ 77%] Built target plot_reductionIntrinsicsInterleave4

[ 80%] Built target plot_reductionIntrinsics

[ 81%] Built target barycentre_vectorize_O3

[ 83%] Built target barycentre_intrinsics

[ 85%] Built target barycentre_vectorizeSplit_O3

[ 86%] Built target barycentre_base_O3

[ 89%] Built target plot_barycentreIntrinsics

[ 91%] Built target barycentre_base_O2

[ 92%] Built target barycentre_base_O1

[ 93%] Built target barycentre_base_O0

[ 95%] Built target barycentre_base_Ofast

[ 97%] Built target plot_barycentreBase

[100%] Built target plot_barycentreVectorize

[100%] Built target plot_all