10.4.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 [ 4%] Built target hadamard_product_O1 [ 6%] Built target hadamard_product_vectorize [ 6%] Built target hadamard_product_O0 [ 8%] Built target hadamard_product_O3 [ 8%] Built target hadamard_product_Ofast [ 10%] Built target hadamard_product_intrinsics [ 12%] Built target asterics_hpc [ 12%] Built target saxpy_O2 [ 14%] Built target saxpy_O0 [ 17%] Built target saxpy_O3 [ 19%] Built target saxpy_O1 [ 21%] Built target saxpy_Ofast [ 21%] Built target saxpy_vectorize [ 23%] Built target saxpy_intrinsics [ 25%] Built target reduction_real_O2 [ 29%] Built target reduction_real_intrinsics_interleave8_O3 [ 31%] Built target reduction_real_O1 [ 34%] Built target reduction_real_Ofast [ 36%] Built target reduction_O0 [ 38%] Built target reduction_O1 [ 40%] Built target reduction_O2 [ 40%] Built target reduction_O3 [ 42%] Built target reduction_real_intrinsics_interleave4_O3 [ 44%] Built target reduction_real_vectorize_Ofast [ 46%] Built target reduction_real_intrinsics_interleave2_O3 [ 48%] Built target reduction_real_intrinsics_O3 [ 51%] Built target reduction_real_O3 [ 55%] Built target reduction_real_O0 [ 57%] Built target reduction_real_vectorize_O3 [ 59%] Built target barycentre_intrinsics [ 61%] Built target barycentre_base_O2 [ 63%] Built target barycentre_base_O1 [ 65%] Built target barycentre_base_O0 [ 70%] Built target barycentre_vectorizeSplit_O3 [ 72%] Built target barycentre_base_Ofast [ 74%] Built target barycentre_base_O3 [ 76%] Built target barycentre_vectorize_O3 Scanning dependencies of target sgemm_vectorize_Ofast [ 78%] Building CXX object 6-Sgemm/CMakeFiles/sgemm_vectorize_Ofast.dir/sgemm_vectorize.cpp.o [ 78%] Building CXX object 6-Sgemm/CMakeFiles/sgemm_vectorize_Ofast.dir/main_sgemm_vectorize.cpp.o [ 80%] Linking CXX executable sgemm_vectorize_Ofast [ 80%] Built target sgemm_vectorize_Ofast [ 85%] Built target sgemm_base_O1 Scanning dependencies of target sgemm_vectorize_O3 [ 87%] Building CXX object 6-Sgemm/CMakeFiles/sgemm_vectorize_O3.dir/sgemm_vectorize.cpp.o [ 87%] Building CXX object 6-Sgemm/CMakeFiles/sgemm_vectorize_O3.dir/main_sgemm_vectorize.cpp.o [ 87%] Linking CXX executable sgemm_vectorize_O3 [ 87%] Built target sgemm_vectorize_O3 [ 89%] Built target sgemm_base_Ofast [ 91%] Built target sgemm_base_O3 [ 93%] Built target sgemm_base_O0 [ 95%] Built target sgemm_swap_Ofast [ 97%] Built target sgemm_swap_O3 [100%] Built target sgemm_base_O2 |
Let's get the performances :
|
$ make plot_all [ 1%] Built target asterics_hpc [ 2%] Built target sgemm_swap_O3 [ 3%] Built target sgemm_base_Ofast [ 4%] Built target sgemm_base_O3 [ 6%] Built target sgemm_swap_Ofast [ 8%] Built target plot_sgemmSwap [ 9%] Built target hadamard_product_intrinsics [ 10%] Built target hadamard_product_vectorize [ 12%] Built target hadamard_product_O3 [ 13%] Built target plot_hadamardIntrinsics [ 13%] Built target hadamard_product_Ofast [ 14%] Built target hadamard_product_O2 [ 15%] Built target hadamard_product_O1 [ 15%] Built target hadamard_product_O0 [ 18%] Built target plot_hadamardBase [ 19%] Built target plot_hadamardVectorize [ 20%] Built target saxpy_intrinsics [ 21%] Built target saxpy_O3 [ 21%] Built target saxpy_vectorize [ 22%] Built target plot_saxpyIntrinsics [ 24%] Built target plot_saxpyVectorize [ 25%] Built target saxpy_Ofast [ 25%] Built target saxpy_O2 [ 26%] Built target saxpy_O0 [ 27%] Built target saxpy_O1 [ 31%] Built target plot_saxpyBase [ 32%] Built target reduction_real_intrinsics_O3 [ 34%] Built target reduction_real_intrinsics_interleave8_O3 [ 36%] Built target reduction_real_Ofast [ 37%] Built target reduction_real_intrinsics_interleave4_O3 [ 38%] Built target reduction_real_vectorize_Ofast [ 39%] Built target reduction_real_intrinsics_interleave2_O3 [ 42%] Built target plot_reductionIntrinsicsInterleave8 [ 43%] Built target reduction_real_vectorize_O3 [ 44%] Built target reduction_real_O3 [ 45%] Built target plot_reductionVectorize [ 45%] Built target reduction_O3 [ 46%] Built target reduction_O0 [ 48%] Built target reduction_O1 [ 49%] Built target reduction_O2 [ 51%] Built target plot_reductionBase [ 54%] Built target reduction_real_O0 [ 55%] Built target reduction_real_O2 [ 56%] Built target reduction_real_O1 [ 60%] Built target plot_reductionReal [ 61%] Built target plot_reductionIntrinsicsInterleave2 [ 65%] Built target plot_reductionIntrinsicsInterleave4 [ 68%] Built target plot_reductionIntrinsics [ 69%] Built target barycentre_vectorize_O3 [ 71%] Built target barycentre_intrinsics [ 73%] Built target barycentre_vectorizeSplit_O3 [ 74%] Built target barycentre_base_O3 [ 77%] Built target plot_barycentreIntrinsics [ 78%] Built target barycentre_base_O2 [ 79%] Built target barycentre_base_O1 [ 80%] Built target barycentre_base_O0 [ 81%] Built target barycentre_base_Ofast [ 84%] Built target plot_barycentreBase [ 86%] Built target plot_barycentreVectorize [ 87%] Built target sgemm_base_O2 [ 90%] Built target sgemm_base_O1 [ 91%] Built target sgemm_base_O0 [ 95%] Built target plot_sgemmBase [ 97%] Built target sgemm_vectorize_Ofast [ 98%] Built target sgemm_vectorize_O3 Scanning dependencies of target plot_sgemmVectorize [ 98%] Run sgemm_vectorize_Ofast program SGEMM Vectorize evaluateSgemm : nbElement = 10, cyclePerElement = 15.69 cy/el, elapsedTime = 1569 cy evaluateSgemm : nbElement = 20, cyclePerElement = 14.745 cy/el, elapsedTime = 5898 cy evaluateSgemm : nbElement = 30, cyclePerElement = 19.4833 cy/el, elapsedTime = 17535 cy evaluateSgemm : nbElement = 50, cyclePerElement = 24.2376 cy/el, elapsedTime = 60594 cy evaluateSgemm : nbElement = 80, cyclePerElement = 22.5441 cy/el, elapsedTime = 144282 cy evaluateSgemm : nbElement = 100, cyclePerElement = 33.9227 cy/el, elapsedTime = 339227 cy [ 98%] Run sgemm_vectorize_O3 program SGEMM Vectorize evaluateSgemm : nbElement = 10, cyclePerElement = 15.36 cy/el, elapsedTime = 1536 cy evaluateSgemm : nbElement = 20, cyclePerElement = 14.5525 cy/el, elapsedTime = 5821 cy evaluateSgemm : nbElement = 30, cyclePerElement = 18.9722 cy/el, elapsedTime = 17075 cy evaluateSgemm : nbElement = 50, cyclePerElement = 23.6192 cy/el, elapsedTime = 59048 cy evaluateSgemm : nbElement = 80, cyclePerElement = 22.8923 cy/el, elapsedTime = 146511 cy evaluateSgemm : nbElement = 100, cyclePerElement = 34.0368 cy/el, elapsedTime = 340368 cy [ 98%] Call gnuplot sgemmVectorize [100%] Built target plot_sgemmVectorize [100%] Built target plot_all |