Skip to content

Implementation of the simd-version of the dilation + erosion

Edwin Carlinet requested to merge development/morpho-pipeline into next

Comparison of the SIMD vs non-SIMD version:

Benchmark Time CPU Time_Old Time_New CPU_Old CPU_New
BMMorpho/Dilation_ApproximatedDisc/2 -0.8659 -0.8659 541950368 72669064 540700234 72502281
BMMorpho/Dilation_ApproximatedDisc/4 -0.7812 -0.7812 1276842321 279377098 1274189319 278766630
BMMorpho/Dilation_ApproximatedDisc/8 -0.7310 -0.7315 2061994131 554613159 2057824021 552622900
BMMorpho/Dilation_ApproximatedDisc/16 -0.7131 -0.7142 2106786311 604408547 2103059669 601117129
BMMorpho/Dilation_ApproximatedDisc/32 -0.6704 -0.6708 2866293847 944851239 2861064044 941946828
BMMorpho/Dilation_ApproximatedDisc/64 -0.5733 -0.5735 2939813774 1254538857 2934387533 1251502080
BMMorpho/Dilation_ApproximatedDisc/128 -0.1777 -0.1793 3061168779 2517120443 3055584439 2507812718
BMMorpho/Dilation_EuclideanDisc_naive/2 -0.0043 -0.0045 1572851019 1566056458 1570632869 1563629938
BMMorpho/Dilation_EuclideanDisc_naive/4 -0.3396 -0.3399 4172147063 2755124163 4167294200 2750848334
BMMorpho/Dilation_EuclideanDisc_naive/8 -0.4211 -0.4209 10736498880 6215749783 10720037711 6207507286
BMMorpho/Dilation_EuclideanDisc_naive/16 -0.4712 -0.4710 35201872554 18614376840 35141724957 18591223190
BMMorpho/Dilation_EuclideanDisc_incremental/2 +0.0104 +0.0100 1804395403 1823108396 1801711079 1819744001
BMMorpho/Dilation_EuclideanDisc_incremental/4 -0.2970 -0.2973 3428653486 2410183391 3423962174 2405866331
BMMorpho/Dilation_EuclideanDisc_incremental/8 -0.4155 -0.4158 4643025765 2714062188 4636872034 2708805195
BMMorpho/Dilation_EuclideanDisc_incremental/16 -0.4156 -0.4157 6866483607 4013023717 6857678208 4006796002
BMMorpho/Dilation_EuclideanDisc_incremental/32 -0.2896 -0.2892 12259731397 8709050065 12235650606 8696760720
BMMorpho/Dilation_EuclideanDisc_incremental/64 -0.2355 -0.2353 22787165218 17420871765 22750505766 17396416322
BMMorpho/Dilation_EuclideanDisc_incremental/128 -0.2541 -0.2542 65683465698 48994085637 65584444573 48910673821
BMMorpho/Dilation_Square/2 -0.8569 -0.8569 535187997 76609639 534178852 76439920
BMMorpho/Dilation_Square/4 -0.8542 -0.8542 497961210 72603777 497002944 72441305
BMMorpho/Dilation_Square/8 -0.8553 -0.8553 476434224 68960360 475475257 68812751
BMMorpho/Dilation_Square/16 -0.8440 -0.8439 479265735 74788366 478241794 74633548
BMMorpho/Dilation_Square/32 -0.8067 -0.8068 487729673 94258433 486739596 94048615
BMMorpho/Dilation_Square/64 -0.7168 -0.7168 504197532 142776763 503008118 142462679
BMMorpho/Dilation_Square/128 -0.3785 -0.3787 519816850 323080487 518815272 322350927
BMMorpho/Opening_Disc -0.6666 -0.6666 5717045025 1906197243 5705134568 1901967861
BMMorpho/Median_Filter_Disc +0.0016 +0.0020 69837168106 69946279052 69721674401 69860260896
BMMorpho/Opening_By_Reconstruction_Disc -0.0207 -0.0206 4558977809 4464462162 4541016274 4447599919
BMMorpho/Hit_or_miss_corner -0.0225 -0.0217 1387897485 1356710501 1384690825 1354707968
BMMorpho/minima -0.0585 -0.0578 589723367 555244031 588260799 554237788
BMMorpho/cdt_2_3 -0.0308 -0.0301 215305608 208673984 214707456 208246069
BMMorpho/watershed -0.0539 -0.0536 3534137449 3343791817 3522403121 3333436941

Comparaison of parallel vs non-parallel version

Benchmark Time CPU Time Old Time New CPU Old CPU New
BMMorpho/Dilation_[Square/ vs. Square_parallel/]2 -0.6791 -0.6941 78810069 25288063 78612017 24044876
BMMorpho/Dilation_[Square/ vs. Square_parallel/]4 -0.6856 -0.6963 73916845 23236893 73736597 22395696
BMMorpho/Dilation_[Square/ vs. Square_parallel/]8 -0.6573 -0.6648 71660750 24557115 71479678 23962315
BMMorpho/Dilation_[Square/ vs. Square_parallel/]16 -0.6590 -0.6675 78098386 26629532 77901621 25904505
BMMorpho/Dilation_[Square/ vs. Square_parallel/]32 -0.6444 -0.6522 96415998 34283505 96185968 33455582
BMMorpho/Dilation_[Square/ vs. Square_parallel/]64 -0.5759 -0.6990 157041036 66606366 156622454 47142568
BMMorpho/Dilation_[Square/ vs. Square_parallel/]128 -0.3119 -0.3914 336139285 231307399 335332546 204088832
BMMorpho/Dilation_Approximated[Disc/ vs. Disc_parallel/]2 -0.6782 -0.6794 73174220 23547710 72976635 23396538
BMMorpho/Dilation_Approximated[Disc/ vs. Disc_parallel/]4 -0.7370 -0.7562 285669656 75131583 284848259 69442747
BMMorpho/Dilation_Approximated[Disc/ vs. Disc_parallel/]8 -0.7278 -0.7313 539221300 146749628 537679508 144498558
BMMorpho/Dilation_Approximated[Disc/ vs. Disc_parallel/]16 -0.7176 -0.7745 572206983 161611116 570699309 128665346
BMMorpho/Dilation_Approximated[Disc/ vs. Disc_parallel/]32 -0.7166 -0.7385 911374909 258248164 908826244 237686751
BMMorpho/Dilation_Approximated[Disc/ vs. Disc_parallel/]64 -0.7161 -0.7392 1372911329 389777893 1367295017 356587962
BMMorpho/Dilation_Approximated[Disc/ vs. Disc_parallel/]128 -0.7020 -0.7364 2572677734 766539054 2563006202 675557071
BMMorpho/Dilation_Euclidean[Disc_incremental/ vs. Disc_incremental_parallel/]2 -0.8242 -0.8292 1939866065 341043728 1934534643 330411677
BMMorpho/Dilation_Euclidean[Disc_incremental/ vs. Disc_incremental_parallel/]4 -0.8122 -0.8319 2259840836 424426909 2254287309 378961019
BMMorpho/Dilation_Euclidean[Disc_incremental/ vs. Disc_incremental_parallel/]8 -0.7958 -0.8101 2925576822 597489704 2917669432 554129424
BMMorpho/Dilation_Euclidean[Disc_incremental/ vs. Disc_incremental_parallel/]16 -0.7754 -0.7800 4451636152 999677102 4438622741 976556404
BMMorpho/Dilation_Euclidean[Disc_incremental/ vs. Disc_incremental_parallel/]32 -0.7335 -0.7442 7771847389 2070849727 7755588083 1983504805
BMMorpho/Dilation_Euclidean[Disc_incremental/ vs. Disc_incremental_parallel/]64 -0.7309 -0.7463 19311055990 5196990540 19273381417 4888800531
BMMorpho/Dilation_Euclidean[Disc_incremental/ vs. Disc_incremental_parallel/]128 -0.7098 -0.7318 50419306359 14633237286 50324428719 13496630665
Edited by Edwin Carlinet

Merge request reports