Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

perf: adopt the optimized AVX algorithm for C2 box SE #105

Merged
merged 7 commits into from
Jun 28, 2022

Conversation

johnnychen94
Copy link
Member

@johnnychen94 johnnychen94 commented Jun 28, 2022

Similar to #102, this PR picks up the 2D box SE version implementation from #90
It seems that the last column is calculated wrongly in #90 so a36e61a is a fix on it.

I've also identified bug #104 during the development, this PR also fixes it.

closes #90
closes #104

@github-actions
Copy link
Contributor

Benchmark result

Judge result

Benchmark Report for /home/runner/work/ImageMorphology.jl/ImageMorphology.jl

Job Properties

  • Time of benchmarks:
    • Target: 28 Jun 2022 - 05:49
    • Baseline: 28 Jun 2022 - 05:52
  • Package commits:
    • Target: 099c10
    • Baseline: 3181b6
  • Julia commits:
    • Target: 742b9a
    • Baseline: 742b9a
  • Julia command flags:
    • Target: None
    • Baseline: None
  • Environment variables:
    • Target: None
    • Baseline: None

Results

A ratio greater than 1.0 denotes a possible regression (marked with ❌), while a ratio less
than 1.0 denotes a possible improvement (marked with ✅). Only significant results - results
that indicate possible regressions or improvements - are shown below (thus, an empty table means that all
benchmark results remained invariant between builds).

ID time ratio memory ratio
["Maxtree", "area_opening", "64×64"] 1.30 (5%) ❌ 1.00 (1%)
["connected", "label_components"] 1.11 (5%) ❌ 1.00 (1%)
["convexhull", "convexhull"] 1.11 (5%) ❌ 1.00 (1%)
["dilatation_and_erosion", "erode", "Gray{Float32}", "64×64"] 0.06 (5%) ✅ 1.06 (1%) ❌
["dilatation_and_erosion", "erode", "Gray{N0f8}", "64×64"] 0.83 (5%) ✅ 3.09 (1%) ❌
["dilatation_and_erosion", "opening", "Gray{Float32}", "64×64"] 0.07 (5%) ✅ 1.06 (1%) ❌
["dilatation_and_erosion", "opening", "Gray{N0f8}", "64×64"] 0.89 (5%) ✅ 3.12 (1%) ❌
["extreme_filter", "Bool", "64×64", "r1_bool_best"] 1.14 (5%) ❌ 1.00 (1%)
["extreme_filter", "Bool", "64×64", "r1_diamond_best"] 1.65 (5%) ❌ 2.87 (1%) ❌
["extreme_filter", "Bool", "64×64", "r1_diamond_random"] 1.63 (5%) ❌ 2.85 (1%) ❌
["extreme_filter", "Bool", "64×64", "r1_diamond_worst"] 1.54 (5%) ❌ 2.87 (1%) ❌
["extreme_filter", "Bool", "64×64", "r5_bool_best"] 0.89 (5%) ✅ 1.00 (1%)
["extreme_filter", "Bool", "64×64", "r5_bool_random"] 0.94 (5%) ✅ 1.00 (1%)
["extreme_filter", "Bool", "64×64", "r5_bool_worst"] 1.06 (5%) ❌ 1.00 (1%)
["extreme_filter", "Bool", "64×64", "r5_diamond_best"] 18.76 (5%) ❌ 7.91 (1%) ❌
["extreme_filter", "Bool", "64×64", "r5_diamond_random"] 20.16 (5%) ❌ 7.91 (1%) ❌
["extreme_filter", "Bool", "64×64", "r5_diamond_worst"] 16.31 (5%) ❌ 7.91 (1%) ❌
["extreme_filter", "Gray{Float32}", "64×64", "r1_diamond"] 1.21 (5%) ❌ 1.00 (1%)
["extreme_filter", "Gray{Float32}", "64×64", "r1_generic"] 0.88 (5%) ✅ 1.00 (1%)
["extreme_filter", "Gray{N0f8}", "64×64", "r1_generic"] 1.09 (5%) ❌ 1.00 (1%)
["extreme_filter", "Gray{N0f8}", "64×64", "r5_generic"] 1.15 (5%) ❌ 1.00 (1%)
["extreme_filter", "Int64", "64×64", "r1_diamond"] 0.00 (5%) ✅ 0.00 (1%) ✅

Benchmark Group List

Here's a list of all the benchmark groups executed by this job:

  • ["Maxtree", "area_opening"]
  • ["connected"]
  • ["convexhull"]
  • ["dilatation_and_erosion", "erode", "Gray{Float32}"]
  • ["dilatation_and_erosion", "erode", "Gray{N0f8}"]
  • ["dilatation_and_erosion", "opening", "Gray{Float32}"]
  • ["dilatation_and_erosion", "opening", "Gray{N0f8}"]
  • ["extreme_filter", "Bool", "64×64"]
  • ["extreme_filter", "Gray{Float32}", "64×64"]
  • ["extreme_filter", "Gray{N0f8}", "64×64"]
  • ["extreme_filter", "Int64", "64×64"]
  • ["feature_transform"]

Julia versioninfo

Target

Julia Version 1.7.3
Commit 742b9abb4d (2022-05-06 12:58 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
      Ubuntu 20.04.4 LTS
  uname: Linux 5.13.0-1031-azure #37~20.04.1-Ubuntu SMP Mon Jun 13 22:51:01 UTC 2022 x86_64 x86_64
  CPU: Intel(R) Xeon(R) Platinum 8171M CPU @ 2.60GHz: 
              speed         user         nice          sys         idle          irq
       #1  2095 MHz       5076 s          2 s        243 s       2502 s          0 s
       #2  2095 MHz       1673 s          1 s        231 s       5940 s          0 s
       
  Memory: 6.783607482910156 GB (2920.3515625 MB free)
  Uptime: 790.85 sec
  Load Avg:  1.01  1.07  0.68
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-12.0.1 (ORCJIT, skylake-avx512)

Baseline

Julia Version 1.7.3
Commit 742b9abb4d (2022-05-06 12:58 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
      Ubuntu 20.04.4 LTS
  uname: Linux 5.13.0-1031-azure #37~20.04.1-Ubuntu SMP Mon Jun 13 22:51:01 UTC 2022 x86_64 x86_64
  CPU: Intel(R) Xeon(R) Platinum 8171M CPU @ 2.60GHz: 
              speed         user         nice          sys         idle          irq
       #1  2095 MHz       6721 s          2 s        258 s       2583 s          0 s
       #2  2095 MHz       1763 s          1 s        239 s       7577 s          0 s
       
  Memory: 6.783607482910156 GB (2995.13671875 MB free)
  Uptime: 965.11 sec
  Load Avg:  1.0  1.03  0.74
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-12.0.1 (ORCJIT, skylake-avx512)

Target result

Benchmark Report for /home/runner/work/ImageMorphology.jl/ImageMorphology.jl

Job Properties

  • Time of benchmark: 28 Jun 2022 - 5:49
  • Package commit: 099c10
  • Julia commit: 742b9a
  • Julia command flags: None
  • Environment variables: None

Results

Below is a table of this job's results, obtained by running the benchmarks.
The values listed in the ID column have the structure [parent_group, child_group, ..., key], and can be used to
index into the BaseBenchmarks suite to retrieve the corresponding benchmarks.
The percentages accompanying time and memory values in the below table are noise tolerances. The "true"
time/memory value for a given benchmark is expected to fall within this percentage of the reported value.
An empty cell means that the value was zero.

ID time GC time memory allocations
["Maxtree", "area_opening", "64×64"] 837.070 μs (5%) 133.38 KiB (1%) 21
["connected", "label_components"] 960.780 μs (5%) 521.95 KiB (1%) 44
["convexhull", "convexhull"] 463.339 μs (5%) 529.77 KiB (1%) 16528
["dilatation_and_erosion", "erode", "Gray{Float32}", "64×64"] 7.634 μs (5%) 18.09 KiB (1%) 18
["dilatation_and_erosion", "erode", "Gray{N0f8}", "64×64"] 36.303 μs (5%) 15.80 KiB (1%) 204
["dilatation_and_erosion", "opening", "Gray{Float32}", "64×64"] 16.101 μs (5%) 36.03 KiB (1%) 28
["dilatation_and_erosion", "opening", "Gray{N0f8}", "64×64"] 77.707 μs (5%) 31.44 KiB (1%) 400
["extreme_filter", "Bool", "64×64", "r1_bool_best"] 18.401 μs (5%) 5.22 KiB (1%) 17
["extreme_filter", "Bool", "64×64", "r1_bool_random"] 39.803 μs (5%) 5.19 KiB (1%) 16
["extreme_filter", "Bool", "64×64", "r1_bool_worst"] 36.603 μs (5%) 5.22 KiB (1%) 17
["extreme_filter", "Bool", "64×64", "r1_diamond_best"] 5.501 μs (5%) 13.59 KiB (1%) 198
["extreme_filter", "Bool", "64×64", "r1_diamond_random"] 5.420 μs (5%) 13.66 KiB (1%) 199
["extreme_filter", "Bool", "64×64", "r1_diamond_worst"] 5.000 μs (5%) 13.59 KiB (1%) 198
["extreme_filter", "Bool", "64×64", "r5_bool_best"] 30.603 μs (5%) 12.22 KiB (1%) 21
["extreme_filter", "Bool", "64×64", "r5_bool_random"] 60.205 μs (5%) 12.22 KiB (1%) 21
["extreme_filter", "Bool", "64×64", "r5_bool_worst"] 226.519 μs (5%) 12.22 KiB (1%) 21
["extreme_filter", "Bool", "64×64", "r5_diamond_best"] 242.020 μs (5%) 70.58 KiB (1%) 961
["extreme_filter", "Bool", "64×64", "r5_diamond_random"] 260.122 μs (5%) 70.58 KiB (1%) 961
["extreme_filter", "Bool", "64×64", "r5_diamond_worst"] 210.418 μs (5%) 70.58 KiB (1%) 961
["extreme_filter", "Gray{Float32}", "64×64", "r1_diamond"] 7.500 μs (5%) 17.20 KiB (1%) 7
["extreme_filter", "Gray{Float32}", "64×64", "r1_generic"] 58.505 μs (5%) 16.67 KiB (1%) 10
["extreme_filter", "Gray{Float32}", "64×64", "r5_diamond"] 40.104 μs (5%) 33.27 KiB (1%) 7
["extreme_filter", "Gray{Float32}", "64×64", "r5_generic"] 1.003 ms (5%) 20.14 KiB (1%) 11
["extreme_filter", "Gray{N0f8}", "64×64", "r1_diamond"] 5.417 μs (5%) 4.66 KiB (1%) 7
["extreme_filter", "Gray{N0f8}", "64×64", "r1_generic"] 28.202 μs (5%) 4.73 KiB (1%) 10
["extreme_filter", "Gray{N0f8}", "64×64", "r5_diamond"] 30.003 μs (5%) 8.78 KiB (1%) 7
["extreme_filter", "Gray{N0f8}", "64×64", "r5_generic"] 419.335 μs (5%) 8.20 KiB (1%) 11
["extreme_filter", "Int64", "64×64", "r1_diamond"] 6.750 μs (5%) 33.83 KiB (1%) 8
["extreme_filter", "Int64", "64×64", "r1_generic"] 35.603 μs (5%) 32.59 KiB (1%) 11
["extreme_filter", "Int64", "64×64", "r5_diamond"] 28.602 μs (5%) 65.81 KiB (1%) 9
["extreme_filter", "Int64", "64×64", "r5_generic"] 308.625 μs (5%) 36.06 KiB (1%) 12
["feature_transform", "feature_transform"] 2.669 ms (5%) 1.02 MiB (1%) 7

Benchmark Group List

Here's a list of all the benchmark groups executed by this job:

  • ["Maxtree", "area_opening"]
  • ["connected"]
  • ["convexhull"]
  • ["dilatation_and_erosion", "erode", "Gray{Float32}"]
  • ["dilatation_and_erosion", "erode", "Gray{N0f8}"]
  • ["dilatation_and_erosion", "opening", "Gray{Float32}"]
  • ["dilatation_and_erosion", "opening", "Gray{N0f8}"]
  • ["extreme_filter", "Bool", "64×64"]
  • ["extreme_filter", "Gray{Float32}", "64×64"]
  • ["extreme_filter", "Gray{N0f8}", "64×64"]
  • ["extreme_filter", "Int64", "64×64"]
  • ["feature_transform"]

Julia versioninfo

Julia Version 1.7.3
Commit 742b9abb4d (2022-05-06 12:58 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
      Ubuntu 20.04.4 LTS
  uname: Linux 5.13.0-1031-azure #37~20.04.1-Ubuntu SMP Mon Jun 13 22:51:01 UTC 2022 x86_64 x86_64
  CPU: Intel(R) Xeon(R) Platinum 8171M CPU @ 2.60GHz: 
              speed         user         nice          sys         idle          irq
       #1  2095 MHz       5076 s          2 s        243 s       2502 s          0 s
       #2  2095 MHz       1673 s          1 s        231 s       5940 s          0 s
       
  Memory: 6.783607482910156 GB (2920.3515625 MB free)
  Uptime: 790.85 sec
  Load Avg:  1.01  1.07  0.68
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-12.0.1 (ORCJIT, skylake-avx512)

Baseline result

Benchmark Report for /home/runner/work/ImageMorphology.jl/ImageMorphology.jl

Job Properties

  • Time of benchmark: 28 Jun 2022 - 5:52
  • Package commit: 3181b6
  • Julia commit: 742b9a
  • Julia command flags: None
  • Environment variables: None

Results

Below is a table of this job's results, obtained by running the benchmarks.
The values listed in the ID column have the structure [parent_group, child_group, ..., key], and can be used to
index into the BaseBenchmarks suite to retrieve the corresponding benchmarks.
The percentages accompanying time and memory values in the below table are noise tolerances. The "true"
time/memory value for a given benchmark is expected to fall within this percentage of the reported value.
An empty cell means that the value was zero.

ID time GC time memory allocations
["Maxtree", "area_opening", "64×64"] 644.757 μs (5%) 133.38 KiB (1%) 21
["connected", "label_components"] 867.377 μs (5%) 521.95 KiB (1%) 44
["convexhull", "convexhull"] 417.738 μs (5%) 529.77 KiB (1%) 16528
["dilatation_and_erosion", "erode", "Gray{Float32}", "64×64"] 119.177 μs (5%) 17.05 KiB (1%) 23
["dilatation_and_erosion", "erode", "Gray{N0f8}", "64×64"] 43.804 μs (5%) 5.11 KiB (1%) 23
["dilatation_and_erosion", "opening", "Gray{Float32}", "64×64"] 237.921 μs (5%) 33.94 KiB (1%) 38
["dilatation_and_erosion", "opening", "Gray{N0f8}", "64×64"] 87.508 μs (5%) 10.06 KiB (1%) 38
["extreme_filter", "Bool", "64×64", "r1_bool_best"] 16.101 μs (5%) 5.22 KiB (1%) 17
["extreme_filter", "Bool", "64×64", "r1_bool_random"] 39.803 μs (5%) 5.19 KiB (1%) 16
["extreme_filter", "Bool", "64×64", "r1_bool_worst"] 37.003 μs (5%) 5.22 KiB (1%) 17
["extreme_filter", "Bool", "64×64", "r1_diamond_best"] 3.340 μs (5%) 4.73 KiB (1%) 9
["extreme_filter", "Bool", "64×64", "r1_diamond_random"] 3.320 μs (5%) 4.80 KiB (1%) 10
["extreme_filter", "Bool", "64×64", "r1_diamond_worst"] 3.240 μs (5%) 4.73 KiB (1%) 9
["extreme_filter", "Bool", "64×64", "r5_bool_best"] 34.403 μs (5%) 12.22 KiB (1%) 21
["extreme_filter", "Bool", "64×64", "r5_bool_random"] 64.306 μs (5%) 12.22 KiB (1%) 21
["extreme_filter", "Bool", "64×64", "r5_bool_worst"] 214.119 μs (5%) 12.22 KiB (1%) 21
["extreme_filter", "Bool", "64×64", "r5_diamond_best"] 12.901 μs (5%) 8.92 KiB (1%) 10
["extreme_filter", "Bool", "64×64", "r5_diamond_random"] 12.901 μs (5%) 8.92 KiB (1%) 10
["extreme_filter", "Bool", "64×64", "r5_diamond_worst"] 12.901 μs (5%) 8.92 KiB (1%) 10
["extreme_filter", "Gray{Float32}", "64×64", "r1_diamond"] 6.200 μs (5%) 17.20 KiB (1%) 7
["extreme_filter", "Gray{Float32}", "64×64", "r1_generic"] 66.605 μs (5%) 16.67 KiB (1%) 10
["extreme_filter", "Gray{Float32}", "64×64", "r5_diamond"] 38.203 μs (5%) 33.27 KiB (1%) 7
["extreme_filter", "Gray{Float32}", "64×64", "r5_generic"] 1.032 ms (5%) 20.14 KiB (1%) 11
["extreme_filter", "Gray{N0f8}", "64×64", "r1_diamond"] 5.200 μs (5%) 4.66 KiB (1%) 7
["extreme_filter", "Gray{N0f8}", "64×64", "r1_generic"] 25.903 μs (5%) 4.73 KiB (1%) 10
["extreme_filter", "Gray{N0f8}", "64×64", "r5_diamond"] 29.903 μs (5%) 8.78 KiB (1%) 7
["extreme_filter", "Gray{N0f8}", "64×64", "r5_generic"] 364.132 μs (5%) 8.20 KiB (1%) 11
["extreme_filter", "Int64", "64×64", "r1_diamond"] 289.903 ms (5%) 7.370 ms 17.25 MiB (1%) 346544
["extreme_filter", "Int64", "64×64", "r1_generic"] 35.603 μs (5%) 32.59 KiB (1%) 11
["extreme_filter", "Int64", "64×64", "r5_diamond"] 28.402 μs (5%) 65.81 KiB (1%) 9
["extreme_filter", "Int64", "64×64", "r5_generic"] 304.927 μs (5%) 36.06 KiB (1%) 12
["feature_transform", "feature_transform"] 2.588 ms (5%) 1.02 MiB (1%) 7

Benchmark Group List

Here's a list of all the benchmark groups executed by this job:

  • ["Maxtree", "area_opening"]
  • ["connected"]
  • ["convexhull"]
  • ["dilatation_and_erosion", "erode", "Gray{Float32}"]
  • ["dilatation_and_erosion", "erode", "Gray{N0f8}"]
  • ["dilatation_and_erosion", "opening", "Gray{Float32}"]
  • ["dilatation_and_erosion", "opening", "Gray{N0f8}"]
  • ["extreme_filter", "Bool", "64×64"]
  • ["extreme_filter", "Gray{Float32}", "64×64"]
  • ["extreme_filter", "Gray{N0f8}", "64×64"]
  • ["extreme_filter", "Int64", "64×64"]
  • ["feature_transform"]

Julia versioninfo

Julia Version 1.7.3
Commit 742b9abb4d (2022-05-06 12:58 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
      Ubuntu 20.04.4 LTS
  uname: Linux 5.13.0-1031-azure #37~20.04.1-Ubuntu SMP Mon Jun 13 22:51:01 UTC 2022 x86_64 x86_64
  CPU: Intel(R) Xeon(R) Platinum 8171M CPU @ 2.60GHz: 
              speed         user         nice          sys         idle          irq
       #1  2095 MHz       6721 s          2 s        258 s       2583 s          0 s
       #2  2095 MHz       1763 s          1 s        239 s       7577 s          0 s
       
  Memory: 6.783607482910156 GB (2995.13671875 MB free)
  Uptime: 965.11 sec
  Load Avg:  1.0  1.03  0.74
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-12.0.1 (ORCJIT, skylake-avx512)

Runtime information

Runtime Info
BLAS #threads 2
BLAS.vendor() openblas64
Sys.CPU_THREADS 2

lscpu output:

Architecture:                    x86_64
CPU op-mode(s):                  32-bit, 64-bit
Byte Order:                      Little Endian
Address sizes:                   46 bits physical, 48 bits virtual
CPU(s):                          2
On-line CPU(s) list:             0,1
Thread(s) per core:              1
Core(s) per socket:              2
Socket(s):                       1
NUMA node(s):                    1
Vendor ID:                       GenuineIntel
CPU family:                      6
Model:                           85
Model name:                      Intel(R) Xeon(R) Platinum 8171M CPU @ 2.60GHz
Stepping:                        4
CPU MHz:                         2095.234
BogoMIPS:                        4190.46
Hypervisor vendor:               Microsoft
Virtualization type:             full
L1d cache:                       64 KiB
L1i cache:                       64 KiB
L2 cache:                        2 MiB
L3 cache:                        35.8 MiB
NUMA node0 CPU(s):               0,1
Vulnerability Itlb multihit:     KVM: Mitigation: VMX unsupported
Vulnerability L1tf:              Mitigation; PTE Inversion
Vulnerability Mds:               Mitigation; Clear CPU buffers; SMT Host state unknown
Vulnerability Meltdown:          Mitigation; PTI
Vulnerability Mmio stale data:   Vulnerable: Clear CPU buffers attempted, no microcode; SMT Host state unknown
Vulnerability Spec store bypass: Vulnerable
Vulnerability Spectre v1:        Mitigation; usercopy/swapgs barriers and __user pointer sanitization
Vulnerability Spectre v2:        Mitigation; Retpolines, STIBP disabled, RSB filling
Vulnerability Srbds:             Not affected
Vulnerability Tsx async abort:   Mitigation; Clear CPU buffers; SMT Host state unknown
Flags:                           fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology cpuid pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch invpcid_single pti fsgsbase bmi1 hle avx2 smep bmi2 erms invpcid rtm mpx avx512f avx512dq rdseed adx smap clflushopt avx512cd avx512bw avx512vl xsaveopt xsavec xsaves md_clear
Cpu Property Value
Brand Intel(R) Xeon(R) Platinum 8171M CPU @ 2.60GHz
Vendor :Intel
Architecture :Skylake
Model Family: 0x06, Model: 0x55, Stepping: 0x04, Type: 0x00
Cores 2 physical cores, 2 logical cores (on executing CPU)
No Hyperthreading hardware capability detected
Clock Frequencies Not supported by CPU
Data Cache Level 1:3 : (32, 1024, 36608) kbytes
64 byte cache line size
Address Size 48 bits virtual, 46 bits physical
SIMD 512 bit = 64 byte max. SIMD vector size
Time Stamp Counter TSC is accessible via rdtsc
TSC increased at every clock cycle (non-invariant TSC)
Perf. Monitoring Performance Monitoring Counters (PMC) are not supported
Hypervisor Yes, Microsoft

@github-actions
Copy link
Contributor

Benchmark result

Judge result

Benchmark Report for /home/runner/work/ImageMorphology.jl/ImageMorphology.jl

Job Properties

  • Time of benchmarks:
    • Target: 28 Jun 2022 - 05:50
    • Baseline: 28 Jun 2022 - 05:52
  • Package commits:
    • Target: 099c10
    • Baseline: 3181b6
  • Julia commits:
    • Target: 742b9a
    • Baseline: 742b9a
  • Julia command flags:
    • Target: None
    • Baseline: None
  • Environment variables:
    • Target: None
    • Baseline: None

Results

A ratio greater than 1.0 denotes a possible regression (marked with ❌), while a ratio less
than 1.0 denotes a possible improvement (marked with ✅). Only significant results - results
that indicate possible regressions or improvements - are shown below (thus, an empty table means that all
benchmark results remained invariant between builds).

ID time ratio memory ratio
["dilatation_and_erosion", "erode", "Gray{Float32}", "64×64"] 0.06 (5%) ✅ 1.06 (1%) ❌
["dilatation_and_erosion", "erode", "Gray{N0f8}", "64×64"] 0.76 (5%) ✅ 3.09 (1%) ❌
["dilatation_and_erosion", "opening", "Gray{Float32}", "64×64"] 0.05 (5%) ✅ 1.06 (1%) ❌
["dilatation_and_erosion", "opening", "Gray{N0f8}", "64×64"] 0.76 (5%) ✅ 3.12 (1%) ❌
["extreme_filter", "Bool", "64×64", "r1_diamond_best"] 1.64 (5%) ❌ 2.87 (1%) ❌
["extreme_filter", "Bool", "64×64", "r1_diamond_random"] 1.74 (5%) ❌ 2.85 (1%) ❌
["extreme_filter", "Bool", "64×64", "r1_diamond_worst"] 1.65 (5%) ❌ 2.87 (1%) ❌
["extreme_filter", "Bool", "64×64", "r5_bool_worst"] 1.19 (5%) ❌ 1.00 (1%)
["extreme_filter", "Bool", "64×64", "r5_diamond_best"] 15.78 (5%) ❌ 7.91 (1%) ❌
["extreme_filter", "Bool", "64×64", "r5_diamond_random"] 15.78 (5%) ❌ 7.91 (1%) ❌
["extreme_filter", "Bool", "64×64", "r5_diamond_worst"] 15.77 (5%) ❌ 7.91 (1%) ❌
["extreme_filter", "Gray{Float32}", "64×64", "r1_diamond"] 1.09 (5%) ❌ 1.00 (1%)
["extreme_filter", "Gray{Float32}", "64×64", "r5_diamond"] 1.20 (5%) ❌ 1.00 (1%)
["extreme_filter", "Gray{N0f8}", "64×64", "r5_diamond"] 0.82 (5%) ✅ 1.00 (1%)
["extreme_filter", "Int64", "64×64", "r1_diamond"] 0.00 (5%) ✅ 0.00 (1%) ✅
["extreme_filter", "Int64", "64×64", "r1_generic"] 0.90 (5%) ✅ 1.00 (1%)

Benchmark Group List

Here's a list of all the benchmark groups executed by this job:

  • ["Maxtree", "area_opening"]
  • ["connected"]
  • ["convexhull"]
  • ["dilatation_and_erosion", "erode", "Gray{Float32}"]
  • ["dilatation_and_erosion", "erode", "Gray{N0f8}"]
  • ["dilatation_and_erosion", "opening", "Gray{Float32}"]
  • ["dilatation_and_erosion", "opening", "Gray{N0f8}"]
  • ["extreme_filter", "Bool", "64×64"]
  • ["extreme_filter", "Gray{Float32}", "64×64"]
  • ["extreme_filter", "Gray{N0f8}", "64×64"]
  • ["extreme_filter", "Int64", "64×64"]
  • ["feature_transform"]

Julia versioninfo

Target

Julia Version 1.7.3
Commit 742b9abb4d (2022-05-06 12:58 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
      Ubuntu 20.04.4 LTS
  uname: Linux 5.13.0-1031-azure #37~20.04.1-Ubuntu SMP Mon Jun 13 22:51:01 UTC 2022 x86_64 x86_64
  CPU: Intel(R) Xeon(R) Platinum 8272CL CPU @ 2.60GHz: 
              speed         user         nice          sys         idle          irq
       #1  2593 MHz       1713 s          2 s        203 s       5960 s          0 s
       #2  2593 MHz       5551 s          1 s        270 s       2082 s          0 s
       
  Memory: 6.783607482910156 GB (2646.875 MB free)
  Uptime: 794.41 sec
  Load Avg:  1.0  1.15  0.8
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-12.0.1 (ORCJIT, skylake-avx512)

Baseline

Julia Version 1.7.3
Commit 742b9abb4d (2022-05-06 12:58 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
      Ubuntu 20.04.4 LTS
  uname: Linux 5.13.0-1031-azure #37~20.04.1-Ubuntu SMP Mon Jun 13 22:51:01 UTC 2022 x86_64 x86_64
  CPU: Intel(R) Xeon(R) Platinum 8272CL CPU @ 2.60GHz: 
              speed         user         nice          sys         idle          irq
       #1  2593 MHz       1772 s          2 s        208 s       7485 s          0 s
       #2  2593 MHz       7080 s          1 s        285 s       2132 s          0 s
       
  Memory: 6.783607482910156 GB (2755.36328125 MB free)
  Uptime: 953.86 sec
  Load Avg:  1.01  1.1  0.84
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-12.0.1 (ORCJIT, skylake-avx512)

Target result

Benchmark Report for /home/runner/work/ImageMorphology.jl/ImageMorphology.jl

Job Properties

  • Time of benchmark: 28 Jun 2022 - 5:50
  • Package commit: 099c10
  • Julia commit: 742b9a
  • Julia command flags: None
  • Environment variables: None

Results

Below is a table of this job's results, obtained by running the benchmarks.
The values listed in the ID column have the structure [parent_group, child_group, ..., key], and can be used to
index into the BaseBenchmarks suite to retrieve the corresponding benchmarks.
The percentages accompanying time and memory values in the below table are noise tolerances. The "true"
time/memory value for a given benchmark is expected to fall within this percentage of the reported value.
An empty cell means that the value was zero.

ID time GC time memory allocations
["Maxtree", "area_opening", "64×64"] 708.109 μs (5%) 133.38 KiB (1%) 21
["connected", "label_components"] 939.812 μs (5%) 521.95 KiB (1%) 44
["convexhull", "convexhull"] 409.805 μs (5%) 529.77 KiB (1%) 16528
["dilatation_and_erosion", "erode", "Gray{Float32}", "64×64"] 7.200 μs (5%) 18.09 KiB (1%) 18
["dilatation_and_erosion", "erode", "Gray{N0f8}", "64×64"] 34.000 μs (5%) 15.80 KiB (1%) 204
["dilatation_and_erosion", "opening", "Gray{Float32}", "64×64"] 13.400 μs (5%) 36.03 KiB (1%) 28
["dilatation_and_erosion", "opening", "Gray{N0f8}", "64×64"] 67.801 μs (5%) 31.44 KiB (1%) 400
["extreme_filter", "Bool", "64×64", "r1_bool_best"] 15.900 μs (5%) 5.22 KiB (1%) 17
["extreme_filter", "Bool", "64×64", "r1_bool_random"] 32.900 μs (5%) 5.19 KiB (1%) 16
["extreme_filter", "Bool", "64×64", "r1_bool_worst"] 32.900 μs (5%) 5.22 KiB (1%) 17
["extreme_filter", "Bool", "64×64", "r1_diamond_best"] 4.917 μs (5%) 13.59 KiB (1%) 198
["extreme_filter", "Bool", "64×64", "r1_diamond_random"] 4.917 μs (5%) 13.66 KiB (1%) 199
["extreme_filter", "Bool", "64×64", "r1_diamond_worst"] 4.917 μs (5%) 13.59 KiB (1%) 198
["extreme_filter", "Bool", "64×64", "r5_bool_best"] 26.800 μs (5%) 12.22 KiB (1%) 21
["extreme_filter", "Bool", "64×64", "r5_bool_random"] 58.601 μs (5%) 12.22 KiB (1%) 21
["extreme_filter", "Bool", "64×64", "r5_bool_worst"] 227.703 μs (5%) 12.22 KiB (1%) 21
["extreme_filter", "Bool", "64×64", "r5_diamond_best"] 183.002 μs (5%) 70.58 KiB (1%) 961
["extreme_filter", "Bool", "64×64", "r5_diamond_random"] 183.002 μs (5%) 70.58 KiB (1%) 961
["extreme_filter", "Bool", "64×64", "r5_diamond_worst"] 182.902 μs (5%) 70.58 KiB (1%) 961
["extreme_filter", "Gray{Float32}", "64×64", "r1_diamond"] 6.840 μs (5%) 17.20 KiB (1%) 7
["extreme_filter", "Gray{Float32}", "64×64", "r1_generic"] 60.501 μs (5%) 16.67 KiB (1%) 10
["extreme_filter", "Gray{Float32}", "64×64", "r5_diamond"] 39.500 μs (5%) 33.27 KiB (1%) 7
["extreme_filter", "Gray{Float32}", "64×64", "r5_generic"] 949.712 μs (5%) 20.14 KiB (1%) 11
["extreme_filter", "Gray{N0f8}", "64×64", "r1_diamond"] 4.600 μs (5%) 4.66 KiB (1%) 7
["extreme_filter", "Gray{N0f8}", "64×64", "r1_generic"] 26.601 μs (5%) 4.73 KiB (1%) 10
["extreme_filter", "Gray{N0f8}", "64×64", "r5_diamond"] 26.300 μs (5%) 8.78 KiB (1%) 7
["extreme_filter", "Gray{N0f8}", "64×64", "r5_generic"] 376.005 μs (5%) 8.20 KiB (1%) 11
["extreme_filter", "Int64", "64×64", "r1_diamond"] 5.460 μs (5%) 33.83 KiB (1%) 8
["extreme_filter", "Int64", "64×64", "r1_generic"] 28.600 μs (5%) 32.59 KiB (1%) 11
["extreme_filter", "Int64", "64×64", "r5_diamond"] 24.800 μs (5%) 65.81 KiB (1%) 9
["extreme_filter", "Int64", "64×64", "r5_generic"] 321.204 μs (5%) 36.06 KiB (1%) 12
["feature_transform", "feature_transform"] 2.448 ms (5%) 1.02 MiB (1%) 7

Benchmark Group List

Here's a list of all the benchmark groups executed by this job:

  • ["Maxtree", "area_opening"]
  • ["connected"]
  • ["convexhull"]
  • ["dilatation_and_erosion", "erode", "Gray{Float32}"]
  • ["dilatation_and_erosion", "erode", "Gray{N0f8}"]
  • ["dilatation_and_erosion", "opening", "Gray{Float32}"]
  • ["dilatation_and_erosion", "opening", "Gray{N0f8}"]
  • ["extreme_filter", "Bool", "64×64"]
  • ["extreme_filter", "Gray{Float32}", "64×64"]
  • ["extreme_filter", "Gray{N0f8}", "64×64"]
  • ["extreme_filter", "Int64", "64×64"]
  • ["feature_transform"]

Julia versioninfo

Julia Version 1.7.3
Commit 742b9abb4d (2022-05-06 12:58 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
      Ubuntu 20.04.4 LTS
  uname: Linux 5.13.0-1031-azure #37~20.04.1-Ubuntu SMP Mon Jun 13 22:51:01 UTC 2022 x86_64 x86_64
  CPU: Intel(R) Xeon(R) Platinum 8272CL CPU @ 2.60GHz: 
              speed         user         nice          sys         idle          irq
       #1  2593 MHz       1713 s          2 s        203 s       5960 s          0 s
       #2  2593 MHz       5551 s          1 s        270 s       2082 s          0 s
       
  Memory: 6.783607482910156 GB (2646.875 MB free)
  Uptime: 794.41 sec
  Load Avg:  1.0  1.15  0.8
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-12.0.1 (ORCJIT, skylake-avx512)

Baseline result

Benchmark Report for /home/runner/work/ImageMorphology.jl/ImageMorphology.jl

Job Properties

  • Time of benchmark: 28 Jun 2022 - 5:52
  • Package commit: 3181b6
  • Julia commit: 742b9a
  • Julia command flags: None
  • Environment variables: None

Results

Below is a table of this job's results, obtained by running the benchmarks.
The values listed in the ID column have the structure [parent_group, child_group, ..., key], and can be used to
index into the BaseBenchmarks suite to retrieve the corresponding benchmarks.
The percentages accompanying time and memory values in the below table are noise tolerances. The "true"
time/memory value for a given benchmark is expected to fall within this percentage of the reported value.
An empty cell means that the value was zero.

ID time GC time memory allocations
["Maxtree", "area_opening", "64×64"] 711.509 μs (5%) 133.38 KiB (1%) 21
["connected", "label_components"] 944.912 μs (5%) 521.95 KiB (1%) 44
["convexhull", "convexhull"] 408.105 μs (5%) 529.77 KiB (1%) 16528
["dilatation_and_erosion", "erode", "Gray{Float32}", "64×64"] 123.251 μs (5%) 17.05 KiB (1%) 23
["dilatation_and_erosion", "erode", "Gray{N0f8}", "64×64"] 44.600 μs (5%) 5.11 KiB (1%) 23
["dilatation_and_erosion", "opening", "Gray{Float32}", "64×64"] 245.603 μs (5%) 33.94 KiB (1%) 38
["dilatation_and_erosion", "opening", "Gray{N0f8}", "64×64"] 89.201 μs (5%) 10.06 KiB (1%) 38
["extreme_filter", "Bool", "64×64", "r1_bool_best"] 15.700 μs (5%) 5.22 KiB (1%) 17
["extreme_filter", "Bool", "64×64", "r1_bool_random"] 33.100 μs (5%) 5.19 KiB (1%) 16
["extreme_filter", "Bool", "64×64", "r1_bool_worst"] 33.100 μs (5%) 5.22 KiB (1%) 17
["extreme_filter", "Bool", "64×64", "r1_diamond_best"] 3.000 μs (5%) 4.73 KiB (1%) 9
["extreme_filter", "Bool", "64×64", "r1_diamond_random"] 2.833 μs (5%) 4.80 KiB (1%) 10
["extreme_filter", "Bool", "64×64", "r1_diamond_worst"] 2.983 μs (5%) 4.73 KiB (1%) 9
["extreme_filter", "Bool", "64×64", "r5_bool_best"] 26.300 μs (5%) 12.22 KiB (1%) 21
["extreme_filter", "Bool", "64×64", "r5_bool_random"] 57.800 μs (5%) 12.22 KiB (1%) 21
["extreme_filter", "Bool", "64×64", "r5_bool_worst"] 192.002 μs (5%) 12.22 KiB (1%) 21
["extreme_filter", "Bool", "64×64", "r5_diamond_best"] 11.600 μs (5%) 8.92 KiB (1%) 10
["extreme_filter", "Bool", "64×64", "r5_diamond_random"] 11.600 μs (5%) 8.92 KiB (1%) 10
["extreme_filter", "Bool", "64×64", "r5_diamond_worst"] 11.600 μs (5%) 8.92 KiB (1%) 10
["extreme_filter", "Gray{Float32}", "64×64", "r1_diamond"] 6.300 μs (5%) 17.20 KiB (1%) 7
["extreme_filter", "Gray{Float32}", "64×64", "r1_generic"] 60.400 μs (5%) 16.67 KiB (1%) 10
["extreme_filter", "Gray{Float32}", "64×64", "r5_diamond"] 32.900 μs (5%) 33.27 KiB (1%) 7
["extreme_filter", "Gray{Float32}", "64×64", "r5_generic"] 949.312 μs (5%) 20.14 KiB (1%) 11
["extreme_filter", "Gray{N0f8}", "64×64", "r1_diamond"] 4.583 μs (5%) 4.66 KiB (1%) 7
["extreme_filter", "Gray{N0f8}", "64×64", "r1_generic"] 26.700 μs (5%) 4.73 KiB (1%) 10
["extreme_filter", "Gray{N0f8}", "64×64", "r5_diamond"] 31.901 μs (5%) 8.78 KiB (1%) 7
["extreme_filter", "Gray{N0f8}", "64×64", "r5_generic"] 378.304 μs (5%) 8.20 KiB (1%) 11
["extreme_filter", "Int64", "64×64", "r1_diamond"] 196.491 ms (5%) 6.944 ms 13.80 MiB (1%) 277229
["extreme_filter", "Int64", "64×64", "r1_generic"] 31.900 μs (5%) 32.59 KiB (1%) 11
["extreme_filter", "Int64", "64×64", "r5_diamond"] 26.101 μs (5%) 65.81 KiB (1%) 9
["extreme_filter", "Int64", "64×64", "r5_generic"] 317.504 μs (5%) 36.06 KiB (1%) 12
["feature_transform", "feature_transform"] 2.419 ms (5%) 1.02 MiB (1%) 7

Benchmark Group List

Here's a list of all the benchmark groups executed by this job:

  • ["Maxtree", "area_opening"]
  • ["connected"]
  • ["convexhull"]
  • ["dilatation_and_erosion", "erode", "Gray{Float32}"]
  • ["dilatation_and_erosion", "erode", "Gray{N0f8}"]
  • ["dilatation_and_erosion", "opening", "Gray{Float32}"]
  • ["dilatation_and_erosion", "opening", "Gray{N0f8}"]
  • ["extreme_filter", "Bool", "64×64"]
  • ["extreme_filter", "Gray{Float32}", "64×64"]
  • ["extreme_filter", "Gray{N0f8}", "64×64"]
  • ["extreme_filter", "Int64", "64×64"]
  • ["feature_transform"]

Julia versioninfo

Julia Version 1.7.3
Commit 742b9abb4d (2022-05-06 12:58 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
      Ubuntu 20.04.4 LTS
  uname: Linux 5.13.0-1031-azure #37~20.04.1-Ubuntu SMP Mon Jun 13 22:51:01 UTC 2022 x86_64 x86_64
  CPU: Intel(R) Xeon(R) Platinum 8272CL CPU @ 2.60GHz: 
              speed         user         nice          sys         idle          irq
       #1  2593 MHz       1772 s          2 s        208 s       7485 s          0 s
       #2  2593 MHz       7080 s          1 s        285 s       2132 s          0 s
       
  Memory: 6.783607482910156 GB (2755.36328125 MB free)
  Uptime: 953.86 sec
  Load Avg:  1.01  1.1  0.84
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-12.0.1 (ORCJIT, skylake-avx512)

Runtime information

Runtime Info
BLAS #threads 2
BLAS.vendor() openblas64
Sys.CPU_THREADS 2

lscpu output:

Architecture:                    x86_64
CPU op-mode(s):                  32-bit, 64-bit
Byte Order:                      Little Endian
Address sizes:                   46 bits physical, 48 bits virtual
CPU(s):                          2
On-line CPU(s) list:             0,1
Thread(s) per core:              1
Core(s) per socket:              2
Socket(s):                       1
NUMA node(s):                    1
Vendor ID:                       GenuineIntel
CPU family:                      6
Model:                           85
Model name:                      Intel(R) Xeon(R) Platinum 8272CL CPU @ 2.60GHz
Stepping:                        7
CPU MHz:                         2593.906
BogoMIPS:                        5187.81
Hypervisor vendor:               Microsoft
Virtualization type:             full
L1d cache:                       64 KiB
L1i cache:                       64 KiB
L2 cache:                        2 MiB
L3 cache:                        35.8 MiB
NUMA node0 CPU(s):               0,1
Vulnerability Itlb multihit:     KVM: Mitigation: VMX unsupported
Vulnerability L1tf:              Mitigation; PTE Inversion
Vulnerability Mds:               Mitigation; Clear CPU buffers; SMT Host state unknown
Vulnerability Meltdown:          Mitigation; PTI
Vulnerability Mmio stale data:   Vulnerable: Clear CPU buffers attempted, no microcode; SMT Host state unknown
Vulnerability Spec store bypass: Vulnerable
Vulnerability Spectre v1:        Mitigation; usercopy/swapgs barriers and __user pointer sanitization
Vulnerability Spectre v2:        Mitigation; Retpolines, STIBP disabled, RSB filling
Vulnerability Srbds:             Not affected
Vulnerability Tsx async abort:   Mitigation; Clear CPU buffers; SMT Host state unknown
Flags:                           fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology cpuid pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch invpcid_single pti fsgsbase bmi1 hle avx2 smep bmi2 erms invpcid rtm mpx avx512f avx512dq rdseed adx smap clflushopt avx512cd avx512bw avx512vl xsaveopt xsavec xsaves md_clear
Cpu Property Value
Brand Intel(R) Xeon(R) Platinum 8272CL CPU @ 2.60GHz
Vendor :Intel
Architecture :Skylake
Model Family: 0x06, Model: 0x55, Stepping: 0x07, Type: 0x00
Cores 2 physical cores, 2 logical cores (on executing CPU)
No Hyperthreading hardware capability detected
Clock Frequencies Not supported by CPU
Data Cache Level 1:3 : (32, 1024, 36608) kbytes
64 byte cache line size
Address Size 48 bits virtual, 46 bits physical
SIMD 512 bit = 64 byte max. SIMD vector size
Time Stamp Counter TSC is accessible via rdtsc
TSC increased at every clock cycle (non-invariant TSC)
Perf. Monitoring Performance Monitoring Counters (PMC) are not supported
Hypervisor Yes, Microsoft

@github-actions
Copy link
Contributor

Benchmark result

Judge result

Benchmark Report for /home/runner/work/ImageMorphology.jl/ImageMorphology.jl

Job Properties

  • Time of benchmarks:
    • Target: 28 Jun 2022 - 05:56
    • Baseline: 28 Jun 2022 - 05:59
  • Package commits:
    • Target: 58802e
    • Baseline: 3181b6
  • Julia commits:
    • Target: 742b9a
    • Baseline: 742b9a
  • Julia command flags:
    • Target: None
    • Baseline: None
  • Environment variables:
    • Target: None
    • Baseline: None

Results

A ratio greater than 1.0 denotes a possible regression (marked with ❌), while a ratio less
than 1.0 denotes a possible improvement (marked with ✅). Only significant results - results
that indicate possible regressions or improvements - are shown below (thus, an empty table means that all
benchmark results remained invariant between builds).

ID time ratio memory ratio
["Maxtree", "area_opening", "64×64"] 1.05 (5%) ❌ 0.99 (1%) ✅
["convexhull", "convexhull"] 1.06 (5%) ❌ 1.00 (1%)
["dilatation_and_erosion", "erode", "Gray{Float32}", "64×64"] 0.06 (5%) ✅ 1.06 (1%) ❌
["dilatation_and_erosion", "erode", "Gray{N0f8}", "64×64"] 0.10 (5%) ✅ 1.01 (1%)
["dilatation_and_erosion", "opening", "Gray{Float32}", "64×64"] 0.06 (5%) ✅ 1.06 (1%) ❌
["dilatation_and_erosion", "opening", "Gray{N0f8}", "64×64"] 0.10 (5%) ✅ 1.01 (1%)
["extreme_filter", "Bool", "64×64", "r1_diamond_best"] 1.63 (5%) ❌ 2.87 (1%) ❌
["extreme_filter", "Bool", "64×64", "r1_diamond_random"] 1.64 (5%) ❌ 2.85 (1%) ❌
["extreme_filter", "Bool", "64×64", "r1_diamond_worst"] 1.61 (5%) ❌ 2.87 (1%) ❌
["extreme_filter", "Bool", "64×64", "r5_bool_worst"] 1.06 (5%) ❌ 1.00 (1%)
["extreme_filter", "Bool", "64×64", "r5_diamond_best"] 15.57 (5%) ❌ 7.91 (1%) ❌
["extreme_filter", "Bool", "64×64", "r5_diamond_random"] 15.45 (5%) ❌ 7.91 (1%) ❌
["extreme_filter", "Bool", "64×64", "r5_diamond_worst"] 15.30 (5%) ❌ 7.91 (1%) ❌
["extreme_filter", "Gray{Float32}", "64×64", "r1_diamond"] 1.17 (5%) ❌ 1.00 (1%)
["extreme_filter", "Gray{Float32}", "64×64", "r5_diamond"] 1.18 (5%) ❌ 1.00 (1%)
["extreme_filter", "Int64", "64×64", "r1_diamond"] 0.00 (5%) ✅ 0.00 (1%) ✅

Benchmark Group List

Here's a list of all the benchmark groups executed by this job:

  • ["Maxtree", "area_opening"]
  • ["connected"]
  • ["convexhull"]
  • ["dilatation_and_erosion", "erode", "Gray{Float32}"]
  • ["dilatation_and_erosion", "erode", "Gray{N0f8}"]
  • ["dilatation_and_erosion", "opening", "Gray{Float32}"]
  • ["dilatation_and_erosion", "opening", "Gray{N0f8}"]
  • ["extreme_filter", "Bool", "64×64"]
  • ["extreme_filter", "Gray{Float32}", "64×64"]
  • ["extreme_filter", "Gray{N0f8}", "64×64"]
  • ["extreme_filter", "Int64", "64×64"]
  • ["feature_transform"]

Julia versioninfo

Target

Julia Version 1.7.3
Commit 742b9abb4d (2022-05-06 12:58 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
      Ubuntu 20.04.4 LTS
  uname: Linux 5.13.0-1031-azure #37~20.04.1-Ubuntu SMP Mon Jun 13 22:51:01 UTC 2022 x86_64 x86_64
  CPU: Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz: 
              speed         user         nice          sys         idle          irq
       #1  2793 MHz       1348 s          1 s        157 s       4450 s          0 s
       #2  2793 MHz       4315 s          1 s        202 s       1458 s          0 s
       
  Memory: 6.783607482910156 GB (2943.296875 MB free)
  Uptime: 601.56 sec
  Load Avg:  1.0  1.04  0.63
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-12.0.1 (ORCJIT, icelake-server)

Baseline

Julia Version 1.7.3
Commit 742b9abb4d (2022-05-06 12:58 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
      Ubuntu 20.04.4 LTS
  uname: Linux 5.13.0-1031-azure #37~20.04.1-Ubuntu SMP Mon Jun 13 22:51:01 UTC 2022 x86_64 x86_64
  CPU: Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz: 
              speed         user         nice          sys         idle          irq
       #1  2793 MHz       2711 s          1 s        167 s       4529 s          0 s
       #2  2793 MHz       4399 s          1 s        207 s       2818 s          0 s
       
  Memory: 6.783607482910156 GB (3043.8203125 MB free)
  Uptime: 746.76 sec
  Load Avg:  1.0  1.02  0.68
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-12.0.1 (ORCJIT, icelake-server)

Target result

Benchmark Report for /home/runner/work/ImageMorphology.jl/ImageMorphology.jl

Job Properties

  • Time of benchmark: 28 Jun 2022 - 5:56
  • Package commit: 58802e
  • Julia commit: 742b9a
  • Julia command flags: None
  • Environment variables: None

Results

Below is a table of this job's results, obtained by running the benchmarks.
The values listed in the ID column have the structure [parent_group, child_group, ..., key], and can be used to
index into the BaseBenchmarks suite to retrieve the corresponding benchmarks.
The percentages accompanying time and memory values in the below table are noise tolerances. The "true"
time/memory value for a given benchmark is expected to fall within this percentage of the reported value.
An empty cell means that the value was zero.

ID time GC time memory allocations
["Maxtree", "area_opening", "64×64"] 701.796 μs (5%) 133.38 KiB (1%) 21
["connected", "label_components"] 815.996 μs (5%) 521.95 KiB (1%) 44
["convexhull", "convexhull"] 405.398 μs (5%) 529.77 KiB (1%) 16528
["dilatation_and_erosion", "erode", "Gray{Float32}", "64×64"] 7.075 μs (5%) 18.09 KiB (1%) 18
["dilatation_and_erosion", "erode", "Gray{N0f8}", "64×64"] 4.750 μs (5%) 5.14 KiB (1%) 18
["dilatation_and_erosion", "opening", "Gray{Float32}", "64×64"] 13.599 μs (5%) 36.03 KiB (1%) 28
["dilatation_and_erosion", "opening", "Gray{N0f8}", "64×64"] 9.100 μs (5%) 10.12 KiB (1%) 28
["extreme_filter", "Bool", "64×64", "r1_bool_best"] 13.900 μs (5%) 5.22 KiB (1%) 17
["extreme_filter", "Bool", "64×64", "r1_bool_random"] 34.100 μs (5%) 5.19 KiB (1%) 16
["extreme_filter", "Bool", "64×64", "r1_bool_worst"] 34.299 μs (5%) 5.22 KiB (1%) 17
["extreme_filter", "Bool", "64×64", "r1_diamond_best"] 4.600 μs (5%) 13.59 KiB (1%) 198
["extreme_filter", "Bool", "64×64", "r1_diamond_random"] 4.586 μs (5%) 13.66 KiB (1%) 199
["extreme_filter", "Bool", "64×64", "r1_diamond_worst"] 4.614 μs (5%) 13.59 KiB (1%) 198
["extreme_filter", "Bool", "64×64", "r5_bool_best"] 24.099 μs (5%) 12.22 KiB (1%) 21
["extreme_filter", "Bool", "64×64", "r5_bool_random"] 31.200 μs (5%) 12.22 KiB (1%) 21
["extreme_filter", "Bool", "64×64", "r5_bool_worst"] 167.199 μs (5%) 12.22 KiB (1%) 21
["extreme_filter", "Bool", "64×64", "r5_diamond_best"] 185.299 μs (5%) 70.58 KiB (1%) 961
["extreme_filter", "Bool", "64×64", "r5_diamond_random"] 185.399 μs (5%) 70.58 KiB (1%) 961
["extreme_filter", "Bool", "64×64", "r5_diamond_worst"] 183.599 μs (5%) 70.58 KiB (1%) 961
["extreme_filter", "Gray{Float32}", "64×64", "r1_diamond"] 6.500 μs (5%) 17.20 KiB (1%) 7
["extreme_filter", "Gray{Float32}", "64×64", "r1_generic"] 61.699 μs (5%) 16.67 KiB (1%) 10
["extreme_filter", "Gray{Float32}", "64×64", "r5_diamond"] 36.500 μs (5%) 33.27 KiB (1%) 7
["extreme_filter", "Gray{Float32}", "64×64", "r5_generic"] 895.495 μs (5%) 20.14 KiB (1%) 11
["extreme_filter", "Gray{N0f8}", "64×64", "r1_diamond"] 4.357 μs (5%) 4.66 KiB (1%) 7
["extreme_filter", "Gray{N0f8}", "64×64", "r1_generic"] 24.099 μs (5%) 4.73 KiB (1%) 10
["extreme_filter", "Gray{N0f8}", "64×64", "r5_diamond"] 27.200 μs (5%) 8.78 KiB (1%) 7
["extreme_filter", "Gray{N0f8}", "64×64", "r5_generic"] 336.998 μs (5%) 8.20 KiB (1%) 11
["extreme_filter", "Int64", "64×64", "r1_diamond"] 6.360 μs (5%) 33.83 KiB (1%) 8
["extreme_filter", "Int64", "64×64", "r1_generic"] 27.100 μs (5%) 32.59 KiB (1%) 11
["extreme_filter", "Int64", "64×64", "r5_diamond"] 31.300 μs (5%) 65.81 KiB (1%) 9
["extreme_filter", "Int64", "64×64", "r5_generic"] 248.498 μs (5%) 36.06 KiB (1%) 12
["feature_transform", "feature_transform"] 2.243 ms (5%) 1.02 MiB (1%) 7

Benchmark Group List

Here's a list of all the benchmark groups executed by this job:

  • ["Maxtree", "area_opening"]
  • ["connected"]
  • ["convexhull"]
  • ["dilatation_and_erosion", "erode", "Gray{Float32}"]
  • ["dilatation_and_erosion", "erode", "Gray{N0f8}"]
  • ["dilatation_and_erosion", "opening", "Gray{Float32}"]
  • ["dilatation_and_erosion", "opening", "Gray{N0f8}"]
  • ["extreme_filter", "Bool", "64×64"]
  • ["extreme_filter", "Gray{Float32}", "64×64"]
  • ["extreme_filter", "Gray{N0f8}", "64×64"]
  • ["extreme_filter", "Int64", "64×64"]
  • ["feature_transform"]

Julia versioninfo

Julia Version 1.7.3
Commit 742b9abb4d (2022-05-06 12:58 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
      Ubuntu 20.04.4 LTS
  uname: Linux 5.13.0-1031-azure #37~20.04.1-Ubuntu SMP Mon Jun 13 22:51:01 UTC 2022 x86_64 x86_64
  CPU: Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz: 
              speed         user         nice          sys         idle          irq
       #1  2793 MHz       1348 s          1 s        157 s       4450 s          0 s
       #2  2793 MHz       4315 s          1 s        202 s       1458 s          0 s
       
  Memory: 6.783607482910156 GB (2943.296875 MB free)
  Uptime: 601.56 sec
  Load Avg:  1.0  1.04  0.63
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-12.0.1 (ORCJIT, icelake-server)

Baseline result

Benchmark Report for /home/runner/work/ImageMorphology.jl/ImageMorphology.jl

Job Properties

  • Time of benchmark: 28 Jun 2022 - 5:59
  • Package commit: 3181b6
  • Julia commit: 742b9a
  • Julia command flags: None
  • Environment variables: None

Results

Below is a table of this job's results, obtained by running the benchmarks.
The values listed in the ID column have the structure [parent_group, child_group, ..., key], and can be used to
index into the BaseBenchmarks suite to retrieve the corresponding benchmarks.
The percentages accompanying time and memory values in the below table are noise tolerances. The "true"
time/memory value for a given benchmark is expected to fall within this percentage of the reported value.
An empty cell means that the value was zero.

ID time GC time memory allocations
["Maxtree", "area_opening", "64×64"] 665.697 μs (5%) 134.83 KiB (1%) 22
["connected", "label_components"] 839.696 μs (5%) 521.95 KiB (1%) 44
["convexhull", "convexhull"] 383.414 μs (5%) 529.77 KiB (1%) 16528
["dilatation_and_erosion", "erode", "Gray{Float32}", "64×64"] 119.874 μs (5%) 17.05 KiB (1%) 23
["dilatation_and_erosion", "erode", "Gray{N0f8}", "64×64"] 45.533 μs (5%) 5.11 KiB (1%) 23
["dilatation_and_erosion", "opening", "Gray{Float32}", "64×64"] 238.199 μs (5%) 33.94 KiB (1%) 38
["dilatation_and_erosion", "opening", "Gray{N0f8}", "64×64"] 90.799 μs (5%) 10.06 KiB (1%) 38
["extreme_filter", "Bool", "64×64", "r1_bool_best"] 14.000 μs (5%) 5.22 KiB (1%) 17
["extreme_filter", "Bool", "64×64", "r1_bool_random"] 33.499 μs (5%) 5.19 KiB (1%) 16
["extreme_filter", "Bool", "64×64", "r1_bool_worst"] 33.499 μs (5%) 5.22 KiB (1%) 17
["extreme_filter", "Bool", "64×64", "r1_diamond_best"] 2.829 μs (5%) 4.73 KiB (1%) 9
["extreme_filter", "Bool", "64×64", "r1_diamond_random"] 2.800 μs (5%) 4.80 KiB (1%) 10
["extreme_filter", "Bool", "64×64", "r1_diamond_worst"] 2.857 μs (5%) 4.73 KiB (1%) 9
["extreme_filter", "Bool", "64×64", "r5_bool_best"] 23.699 μs (5%) 12.22 KiB (1%) 21
["extreme_filter", "Bool", "64×64", "r5_bool_random"] 30.599 μs (5%) 12.22 KiB (1%) 21
["extreme_filter", "Bool", "64×64", "r5_bool_worst"] 158.099 μs (5%) 12.22 KiB (1%) 21
["extreme_filter", "Bool", "64×64", "r5_diamond_best"] 11.900 μs (5%) 8.92 KiB (1%) 10
["extreme_filter", "Bool", "64×64", "r5_diamond_random"] 12.000 μs (5%) 8.92 KiB (1%) 10
["extreme_filter", "Bool", "64×64", "r5_diamond_worst"] 12.000 μs (5%) 8.92 KiB (1%) 10
["extreme_filter", "Gray{Float32}", "64×64", "r1_diamond"] 5.540 μs (5%) 17.20 KiB (1%) 7
["extreme_filter", "Gray{Float32}", "64×64", "r1_generic"] 60.199 μs (5%) 16.67 KiB (1%) 10
["extreme_filter", "Gray{Float32}", "64×64", "r5_diamond"] 30.899 μs (5%) 33.27 KiB (1%) 7
["extreme_filter", "Gray{Float32}", "64×64", "r5_generic"] 891.195 μs (5%) 20.14 KiB (1%) 11
["extreme_filter", "Gray{N0f8}", "64×64", "r1_diamond"] 4.271 μs (5%) 4.66 KiB (1%) 7
["extreme_filter", "Gray{N0f8}", "64×64", "r1_generic"] 24.699 μs (5%) 4.73 KiB (1%) 10
["extreme_filter", "Gray{N0f8}", "64×64", "r5_diamond"] 26.500 μs (5%) 8.78 KiB (1%) 7
["extreme_filter", "Gray{N0f8}", "64×64", "r5_generic"] 332.498 μs (5%) 8.20 KiB (1%) 11
["extreme_filter", "Int64", "64×64", "r1_diamond"] 188.525 ms (5%) 4.777 ms 13.81 MiB (1%) 277245
["extreme_filter", "Int64", "64×64", "r1_generic"] 28.100 μs (5%) 32.59 KiB (1%) 11
["extreme_filter", "Int64", "64×64", "r5_diamond"] 31.300 μs (5%) 65.81 KiB (1%) 9
["extreme_filter", "Int64", "64×64", "r5_generic"] 248.298 μs (5%) 36.06 KiB (1%) 12
["feature_transform", "feature_transform"] 2.286 ms (5%) 1.02 MiB (1%) 7

Benchmark Group List

Here's a list of all the benchmark groups executed by this job:

  • ["Maxtree", "area_opening"]
  • ["connected"]
  • ["convexhull"]
  • ["dilatation_and_erosion", "erode", "Gray{Float32}"]
  • ["dilatation_and_erosion", "erode", "Gray{N0f8}"]
  • ["dilatation_and_erosion", "opening", "Gray{Float32}"]
  • ["dilatation_and_erosion", "opening", "Gray{N0f8}"]
  • ["extreme_filter", "Bool", "64×64"]
  • ["extreme_filter", "Gray{Float32}", "64×64"]
  • ["extreme_filter", "Gray{N0f8}", "64×64"]
  • ["extreme_filter", "Int64", "64×64"]
  • ["feature_transform"]

Julia versioninfo

Julia Version 1.7.3
Commit 742b9abb4d (2022-05-06 12:58 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
      Ubuntu 20.04.4 LTS
  uname: Linux 5.13.0-1031-azure #37~20.04.1-Ubuntu SMP Mon Jun 13 22:51:01 UTC 2022 x86_64 x86_64
  CPU: Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz: 
              speed         user         nice          sys         idle          irq
       #1  2793 MHz       2711 s          1 s        167 s       4529 s          0 s
       #2  2793 MHz       4399 s          1 s        207 s       2818 s          0 s
       
  Memory: 6.783607482910156 GB (3043.8203125 MB free)
  Uptime: 746.76 sec
  Load Avg:  1.0  1.02  0.68
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-12.0.1 (ORCJIT, icelake-server)

Runtime information

Runtime Info
BLAS #threads 2
BLAS.vendor() openblas64
Sys.CPU_THREADS 2

lscpu output:

Architecture:                    x86_64
CPU op-mode(s):                  32-bit, 64-bit
Byte Order:                      Little Endian
Address sizes:                   46 bits physical, 48 bits virtual
CPU(s):                          2
On-line CPU(s) list:             0,1
Thread(s) per core:              1
Core(s) per socket:              2
Socket(s):                       1
NUMA node(s):                    1
Vendor ID:                       GenuineIntel
CPU family:                      6
Model:                           106
Model name:                      Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz
Stepping:                        6
CPU MHz:                         2793.437
BogoMIPS:                        5586.87
Hypervisor vendor:               Microsoft
Virtualization type:             full
L1d cache:                       96 KiB
L1i cache:                       64 KiB
L2 cache:                        2.5 MiB
L3 cache:                        48 MiB
NUMA node0 CPU(s):               0,1
Vulnerability Itlb multihit:     KVM: Mitigation: VMX unsupported
Vulnerability L1tf:              Mitigation; PTE Inversion
Vulnerability Mds:               Mitigation; Clear CPU buffers; SMT Host state unknown
Vulnerability Meltdown:          Mitigation; PTI
Vulnerability Mmio stale data:   Vulnerable: Clear CPU buffers attempted, no microcode; SMT Host state unknown
Vulnerability Spec store bypass: Vulnerable
Vulnerability Spectre v1:        Mitigation; usercopy/swapgs barriers and __user pointer sanitization
Vulnerability Spectre v2:        Mitigation; Retpolines, STIBP disabled, RSB filling
Vulnerability Srbds:             Not affected
Vulnerability Tsx async abort:   Mitigation; Clear CPU buffers; SMT Host state unknown
Flags:                           fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology cpuid pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch invpcid_single pti fsgsbase bmi1 hle avx2 smep bmi2 erms invpcid rtm avx512f avx512dq rdseed adx smap clflushopt avx512cd avx512bw avx512vl xsaveopt xsavec xsaves md_clear
Cpu Property Value
Brand Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz
Vendor :Intel
Architecture :UnknownIntel
Model Family: 0x06, Model: 0x6a, Stepping: 0x06, Type: 0x00
Cores 2 physical cores, 2 logical cores (on executing CPU)
No Hyperthreading hardware capability detected
Clock Frequencies Not supported by CPU
Data Cache Level 1:3 : (48, 1280, 49152) kbytes
64 byte cache line size
Address Size 48 bits virtual, 46 bits physical
SIMD 512 bit = 64 byte max. SIMD vector size
Time Stamp Counter TSC is accessible via rdtsc
TSC increased at every clock cycle (non-invariant TSC)
Perf. Monitoring Performance Monitoring Counters (PMC) are not supported
Hypervisor Yes, Microsoft

@johnnychen94
Copy link
Member Author

Benchmark result against different backends

Box-shaped SE

Results

MATLAB R2022a

type size time (ms)
UInt8 (256, 256) 0.278
UInt8 (512, 512) 0.301
UInt8 (1024, 1024) 0.332
Float64 (256, 256) 0.330
Float64 (512, 512) 0.639
Float64 (1024, 1024) 1.584

ImageMorphology

type size time (ms)
UInt8 (256, 256) 0.009
UInt8 (512, 512) 0.028
UInt8 (1024, 1024) 0.109
Float64 (256, 256) 0.050
Float64 (512, 512) 0.228
Float64 (1024, 1024) 1.493

OpenCV (4.5.5)

type size time (ms)
UInt8 (256, 256) 0.024
UInt8 (512, 512) 0.070
UInt8 (1024, 1024) 0.497
Float64 (256, 256) 0.255
Float64 (512, 512) 1.65
Float64 (1024, 1024) 6.27

Snippets

MATLAB

img = imread("cameraman.tif");
img = imresize(img, [512, 512]);

f = @() g(img);
timeit(f)

function g(img)
    for i = 1:1000
        imdilate(img, strel('diamond', 1));
    end
    return
end

ImageMorphology

using ImageMorphology
using ImageTransformations
using ImageCore
using TestImages
using BenchmarkTools

# img = collect(rawview(N0f8.(imresize(testimage("cameraman"), (512, 512)))));
# img = float64.(imresize(testimage("cameraman"), (512, 512)))
img = Float64.(imresize(testimage("cameraman"), (512, 512)));
@btime erode($img, $(strel_box(img)))

OpenCV (Python)

import cv2

# from testimage("cameraman"; download_only=true)
file = "/Users/jc/.julia/artifacts/27a4c26bcdd47eb717bee089ec231a899cb8ef69/cameraman.tif"
img = cv2.resize(cv2.imread(file), (512, 512)).astype("float64")
se = cv2.getStructuringElement(cv2.MORPH_RECT, (3, 3))

%timeit cv2.erode(img, se)

Build information

MATLAB

MATLAB Version: 9.12.0.1956245 (R2022a) Update 2
MATLAB License Number: 40702320
Operating System: fish: Unknown command: starship ~/.config/fish/config.fish (line 7): starship init fish | source ^ from sourcing file ~/.config/fish/config.fish called during startup macOS Version: 12.1 Build: 21C52
Java Version: Java 1.8.0_202-b08 with Oracle Corporation Java HotSpot(TM) 64-Bit Server VM mixed mode

MATLAB Version 9.12 (R2022a)
Computer Vision Toolbox Version 10.2 (R2022a)
Curve Fitting Toolbox Version 3.7 (R2022a)
Deep Learning Toolbox Version 14.4 (R2022a)
Image Acquisition Toolbox Version 6.6 (R2022a)
Image Processing Toolbox Version 11.5 (R2022a)
MATLAB Coder Version 5.4 (R2022a)
MATLAB Compiler Version 8.4 (R2022a)
MATLAB Compiler SDK Version 7.0 (R2022a)
MATLAB Report Generator Version 5.12 (R2022a)
Mapping Toolbox Version 5.3 (R2022a)
Optimization Toolbox Version 9.3 (R2022a)

Julia
julia> versioninfo()
Julia Version 1.8.0-rc1
Commit 6368fdc6565 (2022-05-27 18:33 UTC)
Platform Info:
  OS: macOS (x86_64-apple-darwin21.4.0)
  CPU: 16 × Intel(R) Core(TM) i9-9880H CPU @ 2.30GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-13.0.1 (ORCJIT, skylake)
  Threads: 8 on 8 virtual cores
Environment:
  JULIA_NUM_THREADS = 8
OpenCV
General configuration for OpenCV 4.5.5 =====================================
  Version control:               4.5.5

  Platform:
    Timestamp:                   2021-12-28T06:48:07Z
    Host:                        Darwin 19.6.0 x86_64
    CMake:                       3.22.1
    CMake generator:             Unix Makefiles
    CMake build tool:            /usr/bin/make
    Configuration:               Release

  CPU/HW features:
    Baseline:                    SSE SSE2 SSE3 SSSE3 SSE4_1
      requested:                 DETECT
    Dispatched code generation:  SSE4_2 FP16 AVX AVX2 AVX512_SKX
      requested:                 SSE4_1 SSE4_2 AVX FP16 AVX2 AVX512_SKX
      SSE4_2 (1 files):          + POPCNT SSE4_2
      FP16 (0 files):            + POPCNT SSE4_2 FP16 AVX
      AVX (4 files):             + POPCNT SSE4_2 AVX
      AVX2 (31 files):           + POPCNT SSE4_2 FP16 FMA3 AVX AVX2
      AVX512_SKX (5 files):      + POPCNT SSE4_2 FP16 FMA3 AVX AVX2 AVX_512F AVX512_COMMON AVX512_SKX

  C/C++:
    Built as dynamic libs?:      NO
    C++ standard:                11
    C++ Compiler:                /usr/local/opt/ccache/libexec/clang++  (ver 12.0.0.12000032)
    C++ flags (Release):         -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -Wuninitialized -Wno-delete-non-virtual-dtor -Wno-unnamed-type-template-args -Wno-comment -fdiagnostics-show-option -Wno-long-long -Qunused-arguments -Wno-semicolon-before-method-body -ffunction-sections -fdata-sections  -fvisibility=hidden -fvisibility-inlines-hidden -O3 -DNDEBUG  -DNDEBUG
    C++ flags (Debug):           -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -Wuninitialized -Wno-delete-non-virtual-dtor -Wno-unnamed-type-template-args -Wno-comment -fdiagnostics-show-option -Wno-long-long -Qunused-arguments -Wno-semicolon-before-method-body -ffunction-sections -fdata-sections  -fvisibility=hidden -fvisibility-inlines-hidden -g  -O0 -DDEBUG -D_DEBUG
    C Compiler:                  /usr/local/opt/ccache/libexec/clang
    C flags (Release):           -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -Wuninitialized -Wno-delete-non-virtual-dtor -Wno-unnamed-type-template-args -Wno-comment -fdiagnostics-show-option -Wno-long-long -Qunused-arguments -Wno-semicolon-before-method-body -ffunction-sections -fdata-sections  -fvisibility=hidden -fvisibility-inlines-hidden -O3 -DNDEBUG  -DNDEBUG
    C flags (Debug):             -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -Wuninitialized -Wno-delete-non-virtual-dtor -Wno-unnamed-type-template-args -Wno-comment -fdiagnostics-show-option -Wno-long-long -Qunused-arguments -Wno-semicolon-before-method-body -ffunction-sections -fdata-sections  -fvisibility=hidden -fvisibility-inlines-hidden -g  -O0 -DDEBUG -D_DEBUG
    Linker flags (Release):      -Wl,-dead_strip
    Linker flags (Debug):        -Wl,-dead_strip
    ccache:                      YES
    Precompiled headers:         NO
    Extra dependencies:          -framework OpenCL /Applications/Xcode_12.4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/Accelerate.framework -lm -ldl -framework Cocoa -framework AppKit
    3rdparty dependencies:       libprotobuf ade ittnotify libjpeg-turbo libwebp libpng libtiff libopenjp2 IlmImf zlib quirc ippiw ippicv

  OpenCV modules:
    To be built:                 calib3d core dnn features2d flann gapi highgui imgcodecs imgproc ml objdetect photo python3 stitching video videoio
    Disabled:                    java world
    Disabled by dependency:      -
    Unavailable:                 python2 ts
    Applications:                -
    Documentation:               NO
    Non-free algorithms:         NO

  GUI:                           COCOA
    Cocoa:                       YES
    VTK support:                 NO

  Media I/O:
    ZLib:                        build (ver 1.2.11)
    JPEG:                        build-libjpeg-turbo (ver 2.1.2-62)
    WEBP:                        build (ver encoder: 0x020f)
    PNG:                         build (ver 1.6.37)
    TIFF:                        build (ver 42 - 4.2.0)
    JPEG 2000:                   build (ver 2.4.0)
    OpenEXR:                     build (ver 2.3.0)
    HDR:                         YES
    SUNRASTER:                   YES
    PXM:                         YES
    PFM:                         YES

  Video I/O:
    DC1394:                      NO
    FFMPEG:                      YES
      avcodec:                   YES (58.134.100)
      avformat:                  YES (58.76.100)
      avutil:                    YES (56.70.100)
      swscale:                   YES (5.9.100)
      avresample:                YES (4.0.0)
    GStreamer:                   NO
    AVFoundation:                YES

  Parallel framework:            GCD

  Trace:                         YES (with Intel ITT)

  Other third-party libraries:
    Intel IPP:                   2020.0.0 Gold [2020.0.0]
           at:                   /Users/runner/work/opencv-python/opencv-python/_skbuild/macosx-10.15-x86_64-3.6/cmake-build/3rdparty/ippicv/ippicv_mac/icv
    Intel IPP IW:                sources (2020.0.0)
              at:                /Users/runner/work/opencv-python/opencv-python/_skbuild/macosx-10.15-x86_64-3.6/cmake-build/3rdparty/ippicv/ippicv_mac/iw
    Lapack:                      YES (/Applications/Xcode_12.4.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/Accelerate.framework -lm -ldl)
    Eigen:                       NO
    Custom HAL:                  NO
    Protobuf:                    build (3.19.1)

  OpenCL:                        YES (no extra features)
    Include path:                NO
    Link libraries:              -framework OpenCL

  Python 3:
    Interpreter:                 /Users/runner/work/opencv-python/opencv-python/venv/bin/python (ver 3.6.8)
    Libraries:                   /Library/Frameworks/Python.framework/Versions/3.6/lib/libpython3.6m.dylib (ver 3.6.8)
    numpy:                       /Users/runner/work/opencv-python/opencv-python/venv/lib/python3.6/site-packages/numpy/core/include (ver 1.13.3)
    install path:                python/cv2/python-3

  Python (for build):            /Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7

  Java:
    ant:                         /usr/local/bin/ant (ver 1.10.12)
    JNI:                         /Users/runner/hostedtoolcache/Java_Temurin-Hotspot_jdk/8.0.312-7/x64/Contents/Home/include /Users/runner/hostedtoolcache/Java_Temurin-Hotspot_jdk/8.0.312-7/x64/Contents/Home/include/darwin /Users/runner/hostedtoolcache/Java_Temurin-Hotspot_jdk/8.0.312-7/x64/Contents/Home/include
    Java wrappers:               NO
    Java tests:                  NO

  Install to:                    /Users/runner/work/opencv-python/opencv-python/_skbuild/macosx-10.15-x86_64-3.6/cmake-install
-----------------------------------------------------------------

@github-actions
Copy link
Contributor

Benchmark result

Judge result

Benchmark Report for /home/runner/work/ImageMorphology.jl/ImageMorphology.jl

Job Properties

  • Time of benchmarks:
    • Target: 28 Jun 2022 - 06:53
    • Baseline: 28 Jun 2022 - 06:56
  • Package commits:
    • Target: 126cb8
    • Baseline: 3181b6
  • Julia commits:
    • Target: 742b9a
    • Baseline: 742b9a
  • Julia command flags:
    • Target: None
    • Baseline: None
  • Environment variables:
    • Target: None
    • Baseline: None

Results

A ratio greater than 1.0 denotes a possible regression (marked with ❌), while a ratio less
than 1.0 denotes a possible improvement (marked with ✅). Only significant results - results
that indicate possible regressions or improvements - are shown below (thus, an empty table means that all
benchmark results remained invariant between builds).

ID time ratio memory ratio
["Maxtree", "area_opening", "64×64"] 0.98 (5%) 0.99 (1%) ✅
["extreme_filter", "Bool", "64×64", "r1_diamond_best"] 1.51 (5%) ❌ 2.87 (1%) ❌
["extreme_filter", "Bool", "64×64", "r1_diamond_random"] 1.79 (5%) ❌ 2.85 (1%) ❌
["extreme_filter", "Bool", "64×64", "r1_diamond_worst"] 1.54 (5%) ❌ 2.87 (1%) ❌
["extreme_filter", "Bool", "64×64", "r5_bool_best"] 1.15 (5%) ❌ 1.00 (1%)
["extreme_filter", "Bool", "64×64", "r5_bool_worst"] 1.10 (5%) ❌ 1.00 (1%)
["extreme_filter", "Bool", "64×64", "r5_diamond_best"] 15.20 (5%) ❌ 7.91 (1%) ❌
["extreme_filter", "Bool", "64×64", "r5_diamond_random"] 15.12 (5%) ❌ 7.91 (1%) ❌
["extreme_filter", "Bool", "64×64", "r5_diamond_worst"] 15.09 (5%) ❌ 7.91 (1%) ❌
["extreme_filter", "Gray{Float32}", "64×64", "r1_diamond"] 0.84 (5%) ✅ 1.00 (1%)
["extreme_filter", "Gray{Float32}", "64×64", "r5_diamond"] 0.82 (5%) ✅ 1.00 (1%)
["extreme_filter", "Int64", "64×64", "r1_diamond"] 0.00 (5%) ✅ 0.00 (1%) ✅

Benchmark Group List

Here's a list of all the benchmark groups executed by this job:

  • ["Maxtree", "area_opening"]
  • ["connected"]
  • ["convexhull"]
  • ["dilatation_and_erosion", "erode", "Gray{Float32}"]
  • ["dilatation_and_erosion", "erode", "Gray{N0f8}"]
  • ["dilatation_and_erosion", "opening", "Gray{Float32}"]
  • ["dilatation_and_erosion", "opening", "Gray{N0f8}"]
  • ["extreme_filter", "Bool", "64×64"]
  • ["extreme_filter", "Gray{Float32}", "64×64"]
  • ["extreme_filter", "Gray{N0f8}", "64×64"]
  • ["extreme_filter", "Int64", "64×64"]
  • ["feature_transform"]

Julia versioninfo

Target

Julia Version 1.7.3
Commit 742b9abb4d (2022-05-06 12:58 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
      Ubuntu 20.04.4 LTS
  uname: Linux 5.13.0-1031-azure #37~20.04.1-Ubuntu SMP Mon Jun 13 22:51:01 UTC 2022 x86_64 x86_64
  CPU: Intel(R) Xeon(R) Platinum 8272CL CPU @ 2.60GHz: 
              speed         user         nice          sys         idle          irq
       #1  2593 MHz       4946 s          2 s        188 s       1417 s          0 s
       #2  2593 MHz       1284 s          1 s        198 s       5069 s          0 s
       
  Memory: 6.783607482910156 GB (2909.55078125 MB free)
  Uptime: 660.53 sec
  Load Avg:  1.0  1.03  0.64
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-12.0.1 (ORCJIT, skylake-avx512)

Baseline

Julia Version 1.7.3
Commit 742b9abb4d (2022-05-06 12:58 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
      Ubuntu 20.04.4 LTS
  uname: Linux 5.13.0-1031-azure #37~20.04.1-Ubuntu SMP Mon Jun 13 22:51:01 UTC 2022 x86_64 x86_64
  CPU: Intel(R) Xeon(R) Platinum 8272CL CPU @ 2.60GHz: 
              speed         user         nice          sys         idle          irq
       #1  2593 MHz       6421 s          2 s        200 s       1511 s          0 s
       #2  2593 MHz       1383 s          1 s        206 s       6540 s          0 s
       
  Memory: 6.783607482910156 GB (2981.71875 MB free)
  Uptime: 818.81 sec
  Load Avg:  1.02  1.03  0.7
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-12.0.1 (ORCJIT, skylake-avx512)

Target result

Benchmark Report for /home/runner/work/ImageMorphology.jl/ImageMorphology.jl

Job Properties

  • Time of benchmark: 28 Jun 2022 - 6:53
  • Package commit: 126cb8
  • Julia commit: 742b9a
  • Julia command flags: None
  • Environment variables: None

Results

Below is a table of this job's results, obtained by running the benchmarks.
The values listed in the ID column have the structure [parent_group, child_group, ..., key], and can be used to
index into the BaseBenchmarks suite to retrieve the corresponding benchmarks.
The percentages accompanying time and memory values in the below table are noise tolerances. The "true"
time/memory value for a given benchmark is expected to fall within this percentage of the reported value.
An empty cell means that the value was zero.

ID time GC time memory allocations
["Maxtree", "area_opening", "64×64"] 757.111 μs (5%) 133.38 KiB (1%) 21
["connected", "label_components"] 881.713 μs (5%) 521.95 KiB (1%) 44
["convexhull", "convexhull"] 409.406 μs (5%) 529.77 KiB (1%) 16528
["dilatation_and_erosion", "erode", "Gray{Float32}", "64×64"] 122.702 μs (5%) 17.05 KiB (1%) 23
["dilatation_and_erosion", "erode", "Gray{N0f8}", "64×64"] 44.800 μs (5%) 5.11 KiB (1%) 23
["dilatation_and_erosion", "opening", "Gray{Float32}", "64×64"] 245.503 μs (5%) 33.94 KiB (1%) 38
["dilatation_and_erosion", "opening", "Gray{N0f8}", "64×64"] 90.001 μs (5%) 10.06 KiB (1%) 38
["extreme_filter", "Bool", "64×64", "r1_bool_best"] 16.000 μs (5%) 5.22 KiB (1%) 17
["extreme_filter", "Bool", "64×64", "r1_bool_random"] 33.001 μs (5%) 5.19 KiB (1%) 16
["extreme_filter", "Bool", "64×64", "r1_bool_worst"] 33.100 μs (5%) 5.22 KiB (1%) 17
["extreme_filter", "Bool", "64×64", "r1_diamond_best"] 4.917 μs (5%) 13.59 KiB (1%) 198
["extreme_filter", "Bool", "64×64", "r1_diamond_random"] 5.034 μs (5%) 13.66 KiB (1%) 199
["extreme_filter", "Bool", "64×64", "r1_diamond_worst"] 5.000 μs (5%) 13.59 KiB (1%) 198
["extreme_filter", "Bool", "64×64", "r5_bool_best"] 30.900 μs (5%) 12.22 KiB (1%) 21
["extreme_filter", "Bool", "64×64", "r5_bool_random"] 61.601 μs (5%) 12.22 KiB (1%) 21
["extreme_filter", "Bool", "64×64", "r5_bool_worst"] 231.603 μs (5%) 12.22 KiB (1%) 21
["extreme_filter", "Bool", "64×64", "r5_diamond_best"] 209.803 μs (5%) 70.58 KiB (1%) 961
["extreme_filter", "Bool", "64×64", "r5_diamond_random"] 210.103 μs (5%) 70.58 KiB (1%) 961
["extreme_filter", "Bool", "64×64", "r5_diamond_worst"] 209.803 μs (5%) 70.58 KiB (1%) 961
["extreme_filter", "Gray{Float32}", "64×64", "r1_diamond"] 5.620 μs (5%) 17.20 KiB (1%) 7
["extreme_filter", "Gray{Float32}", "64×64", "r1_generic"] 60.400 μs (5%) 16.67 KiB (1%) 10
["extreme_filter", "Gray{Float32}", "64×64", "r5_diamond"] 28.901 μs (5%) 33.27 KiB (1%) 7
["extreme_filter", "Gray{Float32}", "64×64", "r5_generic"] 950.914 μs (5%) 20.14 KiB (1%) 11
["extreme_filter", "Gray{N0f8}", "64×64", "r1_diamond"] 4.800 μs (5%) 4.66 KiB (1%) 7
["extreme_filter", "Gray{N0f8}", "64×64", "r1_generic"] 25.700 μs (5%) 4.73 KiB (1%) 10
["extreme_filter", "Gray{N0f8}", "64×64", "r5_diamond"] 32.900 μs (5%) 8.78 KiB (1%) 7
["extreme_filter", "Gray{N0f8}", "64×64", "r5_generic"] 375.905 μs (5%) 8.20 KiB (1%) 11
["extreme_filter", "Int64", "64×64", "r1_diamond"] 6.450 μs (5%) 33.83 KiB (1%) 8
["extreme_filter", "Int64", "64×64", "r1_generic"] 31.900 μs (5%) 32.59 KiB (1%) 11
["extreme_filter", "Int64", "64×64", "r5_diamond"] 25.400 μs (5%) 65.81 KiB (1%) 9
["extreme_filter", "Int64", "64×64", "r5_generic"] 316.904 μs (5%) 36.06 KiB (1%) 12
["feature_transform", "feature_transform"] 2.403 ms (5%) 1.02 MiB (1%) 7

Benchmark Group List

Here's a list of all the benchmark groups executed by this job:

  • ["Maxtree", "area_opening"]
  • ["connected"]
  • ["convexhull"]
  • ["dilatation_and_erosion", "erode", "Gray{Float32}"]
  • ["dilatation_and_erosion", "erode", "Gray{N0f8}"]
  • ["dilatation_and_erosion", "opening", "Gray{Float32}"]
  • ["dilatation_and_erosion", "opening", "Gray{N0f8}"]
  • ["extreme_filter", "Bool", "64×64"]
  • ["extreme_filter", "Gray{Float32}", "64×64"]
  • ["extreme_filter", "Gray{N0f8}", "64×64"]
  • ["extreme_filter", "Int64", "64×64"]
  • ["feature_transform"]

Julia versioninfo

Julia Version 1.7.3
Commit 742b9abb4d (2022-05-06 12:58 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
      Ubuntu 20.04.4 LTS
  uname: Linux 5.13.0-1031-azure #37~20.04.1-Ubuntu SMP Mon Jun 13 22:51:01 UTC 2022 x86_64 x86_64
  CPU: Intel(R) Xeon(R) Platinum 8272CL CPU @ 2.60GHz: 
              speed         user         nice          sys         idle          irq
       #1  2593 MHz       4946 s          2 s        188 s       1417 s          0 s
       #2  2593 MHz       1284 s          1 s        198 s       5069 s          0 s
       
  Memory: 6.783607482910156 GB (2909.55078125 MB free)
  Uptime: 660.53 sec
  Load Avg:  1.0  1.03  0.64
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-12.0.1 (ORCJIT, skylake-avx512)

Baseline result

Benchmark Report for /home/runner/work/ImageMorphology.jl/ImageMorphology.jl

Job Properties

  • Time of benchmark: 28 Jun 2022 - 6:56
  • Package commit: 3181b6
  • Julia commit: 742b9a
  • Julia command flags: None
  • Environment variables: None

Results

Below is a table of this job's results, obtained by running the benchmarks.
The values listed in the ID column have the structure [parent_group, child_group, ..., key], and can be used to
index into the BaseBenchmarks suite to retrieve the corresponding benchmarks.
The percentages accompanying time and memory values in the below table are noise tolerances. The "true"
time/memory value for a given benchmark is expected to fall within this percentage of the reported value.
An empty cell means that the value was zero.

ID time GC time memory allocations
["Maxtree", "area_opening", "64×64"] 772.611 μs (5%) 134.83 KiB (1%) 22
["connected", "label_components"] 881.713 μs (5%) 521.95 KiB (1%) 44
["convexhull", "convexhull"] 415.306 μs (5%) 529.77 KiB (1%) 16528
["dilatation_and_erosion", "erode", "Gray{Float32}", "64×64"] 123.102 μs (5%) 17.05 KiB (1%) 23
["dilatation_and_erosion", "erode", "Gray{N0f8}", "64×64"] 44.801 μs (5%) 5.11 KiB (1%) 23
["dilatation_and_erosion", "opening", "Gray{Float32}", "64×64"] 245.703 μs (5%) 33.94 KiB (1%) 38
["dilatation_and_erosion", "opening", "Gray{N0f8}", "64×64"] 89.401 μs (5%) 10.06 KiB (1%) 38
["extreme_filter", "Bool", "64×64", "r1_bool_best"] 16.000 μs (5%) 5.22 KiB (1%) 17
["extreme_filter", "Bool", "64×64", "r1_bool_random"] 32.900 μs (5%) 5.19 KiB (1%) 16
["extreme_filter", "Bool", "64×64", "r1_bool_worst"] 32.900 μs (5%) 5.22 KiB (1%) 17
["extreme_filter", "Bool", "64×64", "r1_diamond_best"] 3.250 μs (5%) 4.73 KiB (1%) 9
["extreme_filter", "Bool", "64×64", "r1_diamond_random"] 2.817 μs (5%) 4.80 KiB (1%) 10
["extreme_filter", "Bool", "64×64", "r1_diamond_worst"] 3.250 μs (5%) 4.73 KiB (1%) 9
["extreme_filter", "Bool", "64×64", "r5_bool_best"] 26.800 μs (5%) 12.22 KiB (1%) 21
["extreme_filter", "Bool", "64×64", "r5_bool_random"] 63.101 μs (5%) 12.22 KiB (1%) 21
["extreme_filter", "Bool", "64×64", "r5_bool_worst"] 211.103 μs (5%) 12.22 KiB (1%) 21
["extreme_filter", "Bool", "64×64", "r5_diamond_best"] 13.800 μs (5%) 8.92 KiB (1%) 10
["extreme_filter", "Bool", "64×64", "r5_diamond_random"] 13.900 μs (5%) 8.92 KiB (1%) 10
["extreme_filter", "Bool", "64×64", "r5_diamond_worst"] 13.900 μs (5%) 8.92 KiB (1%) 10
["extreme_filter", "Gray{Float32}", "64×64", "r1_diamond"] 6.660 μs (5%) 17.20 KiB (1%) 7
["extreme_filter", "Gray{Float32}", "64×64", "r1_generic"] 60.400 μs (5%) 16.67 KiB (1%) 10
["extreme_filter", "Gray{Float32}", "64×64", "r5_diamond"] 35.200 μs (5%) 33.27 KiB (1%) 7
["extreme_filter", "Gray{Float32}", "64×64", "r5_generic"] 950.113 μs (5%) 20.14 KiB (1%) 11
["extreme_filter", "Gray{N0f8}", "64×64", "r1_diamond"] 4.617 μs (5%) 4.66 KiB (1%) 7
["extreme_filter", "Gray{N0f8}", "64×64", "r1_generic"] 25.700 μs (5%) 4.73 KiB (1%) 10
["extreme_filter", "Gray{N0f8}", "64×64", "r5_diamond"] 31.700 μs (5%) 8.78 KiB (1%) 7
["extreme_filter", "Gray{N0f8}", "64×64", "r5_generic"] 376.805 μs (5%) 8.20 KiB (1%) 11
["extreme_filter", "Int64", "64×64", "r1_diamond"] 249.116 ms (5%) 8.538 ms 17.25 MiB (1%) 346533
["extreme_filter", "Int64", "64×64", "r1_generic"] 32.100 μs (5%) 32.59 KiB (1%) 11
["extreme_filter", "Int64", "64×64", "r5_diamond"] 25.901 μs (5%) 65.81 KiB (1%) 9
["extreme_filter", "Int64", "64×64", "r5_generic"] 316.804 μs (5%) 36.06 KiB (1%) 12
["feature_transform", "feature_transform"] 2.395 ms (5%) 1.02 MiB (1%) 7

Benchmark Group List

Here's a list of all the benchmark groups executed by this job:

  • ["Maxtree", "area_opening"]
  • ["connected"]
  • ["convexhull"]
  • ["dilatation_and_erosion", "erode", "Gray{Float32}"]
  • ["dilatation_and_erosion", "erode", "Gray{N0f8}"]
  • ["dilatation_and_erosion", "opening", "Gray{Float32}"]
  • ["dilatation_and_erosion", "opening", "Gray{N0f8}"]
  • ["extreme_filter", "Bool", "64×64"]
  • ["extreme_filter", "Gray{Float32}", "64×64"]
  • ["extreme_filter", "Gray{N0f8}", "64×64"]
  • ["extreme_filter", "Int64", "64×64"]
  • ["feature_transform"]

Julia versioninfo

Julia Version 1.7.3
Commit 742b9abb4d (2022-05-06 12:58 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
      Ubuntu 20.04.4 LTS
  uname: Linux 5.13.0-1031-azure #37~20.04.1-Ubuntu SMP Mon Jun 13 22:51:01 UTC 2022 x86_64 x86_64
  CPU: Intel(R) Xeon(R) Platinum 8272CL CPU @ 2.60GHz: 
              speed         user         nice          sys         idle          irq
       #1  2593 MHz       6421 s          2 s        200 s       1511 s          0 s
       #2  2593 MHz       1383 s          1 s        206 s       6540 s          0 s
       
  Memory: 6.783607482910156 GB (2981.71875 MB free)
  Uptime: 818.81 sec
  Load Avg:  1.02  1.03  0.7
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-12.0.1 (ORCJIT, skylake-avx512)

Runtime information

Runtime Info
BLAS #threads 2
BLAS.vendor() openblas64
Sys.CPU_THREADS 2

lscpu output:

Architecture:                    x86_64
CPU op-mode(s):                  32-bit, 64-bit
Byte Order:                      Little Endian
Address sizes:                   46 bits physical, 48 bits virtual
CPU(s):                          2
On-line CPU(s) list:             0,1
Thread(s) per core:              1
Core(s) per socket:              2
Socket(s):                       1
NUMA node(s):                    1
Vendor ID:                       GenuineIntel
CPU family:                      6
Model:                           85
Model name:                      Intel(R) Xeon(R) Platinum 8272CL CPU @ 2.60GHz
Stepping:                        7
CPU MHz:                         2593.905
BogoMIPS:                        5187.81
Hypervisor vendor:               Microsoft
Virtualization type:             full
L1d cache:                       64 KiB
L1i cache:                       64 KiB
L2 cache:                        2 MiB
L3 cache:                        35.8 MiB
NUMA node0 CPU(s):               0,1
Vulnerability Itlb multihit:     KVM: Mitigation: VMX unsupported
Vulnerability L1tf:              Mitigation; PTE Inversion
Vulnerability Mds:               Mitigation; Clear CPU buffers; SMT Host state unknown
Vulnerability Meltdown:          Mitigation; PTI
Vulnerability Mmio stale data:   Vulnerable: Clear CPU buffers attempted, no microcode; SMT Host state unknown
Vulnerability Spec store bypass: Vulnerable
Vulnerability Spectre v1:        Mitigation; usercopy/swapgs barriers and __user pointer sanitization
Vulnerability Spectre v2:        Mitigation; Retpolines, STIBP disabled, RSB filling
Vulnerability Srbds:             Not affected
Vulnerability Tsx async abort:   Mitigation; Clear CPU buffers; SMT Host state unknown
Flags:                           fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology cpuid pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch invpcid_single pti fsgsbase bmi1 hle avx2 smep bmi2 erms invpcid rtm mpx avx512f avx512dq rdseed adx smap clflushopt avx512cd avx512bw avx512vl xsaveopt xsavec xsaves md_clear
Cpu Property Value
Brand Intel(R) Xeon(R) Platinum 8272CL CPU @ 2.60GHz
Vendor :Intel
Architecture :Skylake
Model Family: 0x06, Model: 0x55, Stepping: 0x07, Type: 0x00
Cores 2 physical cores, 2 logical cores (on executing CPU)
No Hyperthreading hardware capability detected
Clock Frequencies Not supported by CPU
Data Cache Level 1:3 : (32, 1024, 36608) kbytes
64 byte cache line size
Address Size 48 bits virtual, 46 bits physical
SIMD 512 bit = 64 byte max. SIMD vector size
Time Stamp Counter TSC is accessible via rdtsc
TSC increased at every clock cycle (non-invariant TSC)
Perf. Monitoring Performance Monitoring Counters (PMC) are not supported
Hypervisor Yes, Microsoft

@github-actions
Copy link
Contributor

Benchmark result

Judge result

Benchmark Report for /home/runner/work/ImageMorphology.jl/ImageMorphology.jl

Job Properties

  • Time of benchmarks:
    • Target: 28 Jun 2022 - 07:08
    • Baseline: 28 Jun 2022 - 07:11
  • Package commits:
    • Target: 7d4f12
    • Baseline: 3181b6
  • Julia commits:
    • Target: 742b9a
    • Baseline: 742b9a
  • Julia command flags:
    • Target: None
    • Baseline: None
  • Environment variables:
    • Target: None
    • Baseline: None

Results

A ratio greater than 1.0 denotes a possible regression (marked with ❌), while a ratio less
than 1.0 denotes a possible improvement (marked with ✅). Only significant results - results
that indicate possible regressions or improvements - are shown below (thus, an empty table means that all
benchmark results remained invariant between builds).

ID time ratio memory ratio
["Maxtree", "area_opening", "64×64"] 1.05 (5%) ❌ 1.00 (1%)
["connected", "label_components"] 0.93 (5%) ✅ 1.00 (1%)
["extreme_filter", "Bool", "64×64", "r1_diamond_best"] 1.12 (5%) ❌ 2.87 (1%) ❌
["extreme_filter", "Bool", "64×64", "r1_diamond_random"] 1.12 (5%) ❌ 2.85 (1%) ❌
["extreme_filter", "Bool", "64×64", "r1_diamond_worst"] 1.12 (5%) ❌ 2.87 (1%) ❌
["extreme_filter", "Bool", "64×64", "r5_diamond_best"] 2.47 (5%) ❌ 7.91 (1%) ❌
["extreme_filter", "Bool", "64×64", "r5_diamond_random"] 2.47 (5%) ❌ 7.91 (1%) ❌
["extreme_filter", "Bool", "64×64", "r5_diamond_worst"] 2.46 (5%) ❌ 7.91 (1%) ❌
["extreme_filter", "Int64", "64×64", "r1_diamond"] 0.00 (5%) ✅ 0.00 (1%) ✅

Benchmark Group List

Here's a list of all the benchmark groups executed by this job:

  • ["Maxtree", "area_opening"]
  • ["connected"]
  • ["convexhull"]
  • ["dilatation_and_erosion", "erode", "Gray{Float32}"]
  • ["dilatation_and_erosion", "erode", "Gray{N0f8}"]
  • ["dilatation_and_erosion", "opening", "Gray{Float32}"]
  • ["dilatation_and_erosion", "opening", "Gray{N0f8}"]
  • ["extreme_filter", "Bool", "64×64"]
  • ["extreme_filter", "Gray{Float32}", "64×64"]
  • ["extreme_filter", "Gray{N0f8}", "64×64"]
  • ["extreme_filter", "Int64", "64×64"]
  • ["feature_transform"]

Julia versioninfo

Target

Julia Version 1.7.3
Commit 742b9abb4d (2022-05-06 12:58 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
      Ubuntu 20.04.4 LTS
  uname: Linux 5.13.0-1031-azure #37~20.04.1-Ubuntu SMP Mon Jun 13 22:51:01 UTC 2022 x86_64 x86_64
  CPU: Intel(R) Xeon(R) CPU E5-2673 v3 @ 2.40GHz: 
              speed         user         nice          sys         idle          irq
       #1  2397 MHz       1716 s          1 s        201 s       4866 s          0 s
       #2  2397 MHz       5235 s          2 s        246 s       1319 s          0 s
       
  Memory: 6.783603668212891 GB (2953.0859375 MB free)
  Uptime: 685.06 sec
  Load Avg:  1.0  1.08  0.7
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-12.0.1 (ORCJIT, haswell)

Baseline

Julia Version 1.7.3
Commit 742b9abb4d (2022-05-06 12:58 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
      Ubuntu 20.04.4 LTS
  uname: Linux 5.13.0-1031-azure #37~20.04.1-Ubuntu SMP Mon Jun 13 22:51:01 UTC 2022 x86_64 x86_64
  CPU: Intel(R) Xeon(R) CPU E5-2673 v3 @ 2.40GHz: 
              speed         user         nice          sys         idle          irq
       #1  2397 MHz       1822 s          1 s        210 s       6426 s          0 s
       #2  2397 MHz       6802 s          2 s        260 s       1414 s          0 s
       
  Memory: 6.783603668212891 GB (3024.953125 MB free)
  Uptime: 852.96 sec
  Load Avg:  1.0  1.04  0.75
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-12.0.1 (ORCJIT, haswell)

Target result

Benchmark Report for /home/runner/work/ImageMorphology.jl/ImageMorphology.jl

Job Properties

  • Time of benchmark: 28 Jun 2022 - 7:8
  • Package commit: 7d4f12
  • Julia commit: 742b9a
  • Julia command flags: None
  • Environment variables: None

Results

Below is a table of this job's results, obtained by running the benchmarks.
The values listed in the ID column have the structure [parent_group, child_group, ..., key], and can be used to
index into the BaseBenchmarks suite to retrieve the corresponding benchmarks.
The percentages accompanying time and memory values in the below table are noise tolerances. The "true"
time/memory value for a given benchmark is expected to fall within this percentage of the reported value.
An empty cell means that the value was zero.

ID time GC time memory allocations
["Maxtree", "area_opening", "64×64"] 703.335 μs (5%) 134.83 KiB (1%) 22
["connected", "label_components"] 860.443 μs (5%) 521.95 KiB (1%) 44
["convexhull", "convexhull"] 409.120 μs (5%) 529.77 KiB (1%) 16528
["dilatation_and_erosion", "erode", "Gray{Float32}", "64×64"] 87.604 μs (5%) 17.05 KiB (1%) 23
["dilatation_and_erosion", "erode", "Gray{N0f8}", "64×64"] 50.002 μs (5%) 5.11 KiB (1%) 23
["dilatation_and_erosion", "opening", "Gray{Float32}", "64×64"] 174.408 μs (5%) 33.94 KiB (1%) 38
["dilatation_and_erosion", "opening", "Gray{N0f8}", "64×64"] 99.605 μs (5%) 10.06 KiB (1%) 38
["extreme_filter", "Bool", "64×64", "r1_bool_best"] 15.901 μs (5%) 5.22 KiB (1%) 17
["extreme_filter", "Bool", "64×64", "r1_bool_random"] 36.602 μs (5%) 5.19 KiB (1%) 16
["extreme_filter", "Bool", "64×64", "r1_bool_worst"] 36.701 μs (5%) 5.22 KiB (1%) 17
["extreme_filter", "Bool", "64×64", "r1_diamond_best"] 19.301 μs (5%) 13.59 KiB (1%) 198
["extreme_filter", "Bool", "64×64", "r1_diamond_random"] 19.301 μs (5%) 13.66 KiB (1%) 199
["extreme_filter", "Bool", "64×64", "r1_diamond_worst"] 19.301 μs (5%) 13.59 KiB (1%) 198
["extreme_filter", "Bool", "64×64", "r5_bool_best"] 26.801 μs (5%) 12.22 KiB (1%) 21
["extreme_filter", "Bool", "64×64", "r5_bool_random"] 61.703 μs (5%) 12.22 KiB (1%) 21
["extreme_filter", "Bool", "64×64", "r5_bool_worst"] 191.209 μs (5%) 12.22 KiB (1%) 21
["extreme_filter", "Bool", "64×64", "r5_diamond_best"] 206.911 μs (5%) 70.58 KiB (1%) 961
["extreme_filter", "Bool", "64×64", "r5_diamond_random"] 207.210 μs (5%) 70.58 KiB (1%) 961
["extreme_filter", "Bool", "64×64", "r5_diamond_worst"] 206.810 μs (5%) 70.58 KiB (1%) 961
["extreme_filter", "Gray{Float32}", "64×64", "r1_diamond"] 6.340 μs (5%) 17.20 KiB (1%) 7
["extreme_filter", "Gray{Float32}", "64×64", "r1_generic"] 46.702 μs (5%) 16.67 KiB (1%) 10
["extreme_filter", "Gray{Float32}", "64×64", "r5_diamond"] 32.602 μs (5%) 33.27 KiB (1%) 7
["extreme_filter", "Gray{Float32}", "64×64", "r5_generic"] 656.732 μs (5%) 20.14 KiB (1%) 11
["extreme_filter", "Gray{N0f8}", "64×64", "r1_diamond"] 4.700 μs (5%) 4.66 KiB (1%) 7
["extreme_filter", "Gray{N0f8}", "64×64", "r1_generic"] 28.401 μs (5%) 4.73 KiB (1%) 10
["extreme_filter", "Gray{N0f8}", "64×64", "r5_diamond"] 27.902 μs (5%) 8.78 KiB (1%) 7
["extreme_filter", "Gray{N0f8}", "64×64", "r5_generic"] 374.019 μs (5%) 8.20 KiB (1%) 11
["extreme_filter", "Int64", "64×64", "r1_diamond"] 8.701 μs (5%) 33.83 KiB (1%) 8
["extreme_filter", "Int64", "64×64", "r1_generic"] 27.701 μs (5%) 32.59 KiB (1%) 11
["extreme_filter", "Int64", "64×64", "r5_diamond"] 40.002 μs (5%) 65.81 KiB (1%) 9
["extreme_filter", "Int64", "64×64", "r5_generic"] 338.916 μs (5%) 36.06 KiB (1%) 12
["feature_transform", "feature_transform"] 2.452 ms (5%) 1.02 MiB (1%) 7

Benchmark Group List

Here's a list of all the benchmark groups executed by this job:

  • ["Maxtree", "area_opening"]
  • ["connected"]
  • ["convexhull"]
  • ["dilatation_and_erosion", "erode", "Gray{Float32}"]
  • ["dilatation_and_erosion", "erode", "Gray{N0f8}"]
  • ["dilatation_and_erosion", "opening", "Gray{Float32}"]
  • ["dilatation_and_erosion", "opening", "Gray{N0f8}"]
  • ["extreme_filter", "Bool", "64×64"]
  • ["extreme_filter", "Gray{Float32}", "64×64"]
  • ["extreme_filter", "Gray{N0f8}", "64×64"]
  • ["extreme_filter", "Int64", "64×64"]
  • ["feature_transform"]

Julia versioninfo

Julia Version 1.7.3
Commit 742b9abb4d (2022-05-06 12:58 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
      Ubuntu 20.04.4 LTS
  uname: Linux 5.13.0-1031-azure #37~20.04.1-Ubuntu SMP Mon Jun 13 22:51:01 UTC 2022 x86_64 x86_64
  CPU: Intel(R) Xeon(R) CPU E5-2673 v3 @ 2.40GHz: 
              speed         user         nice          sys         idle          irq
       #1  2397 MHz       1716 s          1 s        201 s       4866 s          0 s
       #2  2397 MHz       5235 s          2 s        246 s       1319 s          0 s
       
  Memory: 6.783603668212891 GB (2953.0859375 MB free)
  Uptime: 685.06 sec
  Load Avg:  1.0  1.08  0.7
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-12.0.1 (ORCJIT, haswell)

Baseline result

Benchmark Report for /home/runner/work/ImageMorphology.jl/ImageMorphology.jl

Job Properties

  • Time of benchmark: 28 Jun 2022 - 7:11
  • Package commit: 3181b6
  • Julia commit: 742b9a
  • Julia command flags: None
  • Environment variables: None

Results

Below is a table of this job's results, obtained by running the benchmarks.
The values listed in the ID column have the structure [parent_group, child_group, ..., key], and can be used to
index into the BaseBenchmarks suite to retrieve the corresponding benchmarks.
The percentages accompanying time and memory values in the below table are noise tolerances. The "true"
time/memory value for a given benchmark is expected to fall within this percentage of the reported value.
An empty cell means that the value was zero.

ID time GC time memory allocations
["Maxtree", "area_opening", "64×64"] 668.933 μs (5%) 134.83 KiB (1%) 22
["connected", "label_components"] 921.846 μs (5%) 521.95 KiB (1%) 44
["convexhull", "convexhull"] 399.519 μs (5%) 529.77 KiB (1%) 16528
["dilatation_and_erosion", "erode", "Gray{Float32}", "64×64"] 87.304 μs (5%) 17.05 KiB (1%) 23
["dilatation_and_erosion", "erode", "Gray{N0f8}", "64×64"] 49.903 μs (5%) 5.11 KiB (1%) 23
["dilatation_and_erosion", "opening", "Gray{Float32}", "64×64"] 174.108 μs (5%) 33.94 KiB (1%) 38
["dilatation_and_erosion", "opening", "Gray{N0f8}", "64×64"] 99.605 μs (5%) 10.06 KiB (1%) 38
["extreme_filter", "Bool", "64×64", "r1_bool_best"] 15.900 μs (5%) 5.22 KiB (1%) 17
["extreme_filter", "Bool", "64×64", "r1_bool_random"] 36.701 μs (5%) 5.19 KiB (1%) 16
["extreme_filter", "Bool", "64×64", "r1_bool_worst"] 36.701 μs (5%) 5.22 KiB (1%) 17
["extreme_filter", "Bool", "64×64", "r1_diamond_best"] 17.300 μs (5%) 4.73 KiB (1%) 9
["extreme_filter", "Bool", "64×64", "r1_diamond_random"] 17.200 μs (5%) 4.80 KiB (1%) 10
["extreme_filter", "Bool", "64×64", "r1_diamond_worst"] 17.201 μs (5%) 4.73 KiB (1%) 9
["extreme_filter", "Bool", "64×64", "r5_bool_best"] 26.601 μs (5%) 12.22 KiB (1%) 21
["extreme_filter", "Bool", "64×64", "r5_bool_random"] 64.703 μs (5%) 12.22 KiB (1%) 21
["extreme_filter", "Bool", "64×64", "r5_bool_worst"] 190.809 μs (5%) 12.22 KiB (1%) 21
["extreme_filter", "Bool", "64×64", "r5_diamond_best"] 83.804 μs (5%) 8.92 KiB (1%) 10
["extreme_filter", "Bool", "64×64", "r5_diamond_random"] 83.804 μs (5%) 8.92 KiB (1%) 10
["extreme_filter", "Bool", "64×64", "r5_diamond_worst"] 84.004 μs (5%) 8.92 KiB (1%) 10
["extreme_filter", "Gray{Float32}", "64×64", "r1_diamond"] 6.360 μs (5%) 17.20 KiB (1%) 7
["extreme_filter", "Gray{Float32}", "64×64", "r1_generic"] 46.402 μs (5%) 16.67 KiB (1%) 10
["extreme_filter", "Gray{Float32}", "64×64", "r5_diamond"] 32.601 μs (5%) 33.27 KiB (1%) 7
["extreme_filter", "Gray{Float32}", "64×64", "r5_generic"] 655.732 μs (5%) 20.14 KiB (1%) 11
["extreme_filter", "Gray{N0f8}", "64×64", "r1_diamond"] 4.717 μs (5%) 4.66 KiB (1%) 7
["extreme_filter", "Gray{N0f8}", "64×64", "r1_generic"] 28.401 μs (5%) 4.73 KiB (1%) 10
["extreme_filter", "Gray{N0f8}", "64×64", "r5_diamond"] 27.501 μs (5%) 8.78 KiB (1%) 7
["extreme_filter", "Gray{N0f8}", "64×64", "r5_generic"] 372.918 μs (5%) 8.20 KiB (1%) 11
["extreme_filter", "Int64", "64×64", "r1_diamond"] 385.364 ms (5%) 9.997 ms 23.01 MiB (1%) 462874
["extreme_filter", "Int64", "64×64", "r1_generic"] 27.701 μs (5%) 32.59 KiB (1%) 11
["extreme_filter", "Int64", "64×64", "r5_diamond"] 38.302 μs (5%) 65.81 KiB (1%) 9
["extreme_filter", "Int64", "64×64", "r5_generic"] 340.816 μs (5%) 36.06 KiB (1%) 12
["feature_transform", "feature_transform"] 2.450 ms (5%) 1.02 MiB (1%) 7

Benchmark Group List

Here's a list of all the benchmark groups executed by this job:

  • ["Maxtree", "area_opening"]
  • ["connected"]
  • ["convexhull"]
  • ["dilatation_and_erosion", "erode", "Gray{Float32}"]
  • ["dilatation_and_erosion", "erode", "Gray{N0f8}"]
  • ["dilatation_and_erosion", "opening", "Gray{Float32}"]
  • ["dilatation_and_erosion", "opening", "Gray{N0f8}"]
  • ["extreme_filter", "Bool", "64×64"]
  • ["extreme_filter", "Gray{Float32}", "64×64"]
  • ["extreme_filter", "Gray{N0f8}", "64×64"]
  • ["extreme_filter", "Int64", "64×64"]
  • ["feature_transform"]

Julia versioninfo

Julia Version 1.7.3
Commit 742b9abb4d (2022-05-06 12:58 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
      Ubuntu 20.04.4 LTS
  uname: Linux 5.13.0-1031-azure #37~20.04.1-Ubuntu SMP Mon Jun 13 22:51:01 UTC 2022 x86_64 x86_64
  CPU: Intel(R) Xeon(R) CPU E5-2673 v3 @ 2.40GHz: 
              speed         user         nice          sys         idle          irq
       #1  2397 MHz       1822 s          1 s        210 s       6426 s          0 s
       #2  2397 MHz       6802 s          2 s        260 s       1414 s          0 s
       
  Memory: 6.783603668212891 GB (3024.953125 MB free)
  Uptime: 852.96 sec
  Load Avg:  1.0  1.04  0.75
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-12.0.1 (ORCJIT, haswell)

Runtime information

Runtime Info
BLAS #threads 2
BLAS.vendor() openblas64
Sys.CPU_THREADS 2

lscpu output:

Architecture:                    x86_64
CPU op-mode(s):                  32-bit, 64-bit
Byte Order:                      Little Endian
Address sizes:                   46 bits physical, 48 bits virtual
CPU(s):                          2
On-line CPU(s) list:             0,1
Thread(s) per core:              1
Core(s) per socket:              2
Socket(s):                       1
NUMA node(s):                    1
Vendor ID:                       GenuineIntel
CPU family:                      6
Model:                           63
Model name:                      Intel(R) Xeon(R) CPU E5-2673 v3 @ 2.40GHz
Stepping:                        2
CPU MHz:                         2397.221
BogoMIPS:                        4794.44
Hypervisor vendor:               Microsoft
Virtualization type:             full
L1d cache:                       64 KiB
L1i cache:                       64 KiB
L2 cache:                        512 KiB
L3 cache:                        30 MiB
NUMA node0 CPU(s):               0,1
Vulnerability Itlb multihit:     KVM: Mitigation: VMX unsupported
Vulnerability L1tf:              Mitigation; PTE Inversion
Vulnerability Mds:               Mitigation; Clear CPU buffers; SMT Host state unknown
Vulnerability Meltdown:          Mitigation; PTI
Vulnerability Mmio stale data:   Vulnerable: Clear CPU buffers attempted, no microcode; SMT Host state unknown
Vulnerability Spec store bypass: Vulnerable
Vulnerability Spectre v1:        Mitigation; usercopy/swapgs barriers and __user pointer sanitization
Vulnerability Spectre v2:        Mitigation; Retpolines, STIBP disabled, RSB filling
Vulnerability Srbds:             Not affected
Vulnerability Tsx async abort:   Not affected
Flags:                           fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology cpuid pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm abm invpcid_single pti fsgsbase bmi1 avx2 smep bmi2 erms invpcid xsaveopt md_clear
Cpu Property Value
Brand Intel(R) Xeon(R) CPU E5-2673 v3 @ 2.40GHz
Vendor :Intel
Architecture :Haswell
Model Family: 0x06, Model: 0x3f, Stepping: 0x02, Type: 0x00
Cores 2 physical cores, 2 logical cores (on executing CPU)
No Hyperthreading hardware capability detected
Clock Frequencies Not supported by CPU
Data Cache Level 1:3 : (32, 256, 30720) kbytes
64 byte cache line size
Address Size 48 bits virtual, 46 bits physical
SIMD 256 bit = 32 byte max. SIMD vector size
Time Stamp Counter TSC is accessible via rdtsc
TSC increased at every clock cycle (non-invariant TSC)
Perf. Monitoring Performance Monitoring Counters (PMC) are not supported
Hypervisor Yes, Microsoft

@github-actions
Copy link
Contributor

Benchmark result

Judge result

Benchmark Report for /home/runner/work/ImageMorphology.jl/ImageMorphology.jl

Job Properties

  • Time of benchmarks:
    • Target: 28 Jun 2022 - 07:28
    • Baseline: 28 Jun 2022 - 07:31
  • Package commits:
    • Target: 711a09
    • Baseline: 3181b6
  • Julia commits:
    • Target: 742b9a
    • Baseline: 742b9a
  • Julia command flags:
    • Target: None
    • Baseline: None
  • Environment variables:
    • Target: None
    • Baseline: None

Results

A ratio greater than 1.0 denotes a possible regression (marked with ❌), while a ratio less
than 1.0 denotes a possible improvement (marked with ✅). Only significant results - results
that indicate possible regressions or improvements - are shown below (thus, an empty table means that all
benchmark results remained invariant between builds).

ID time ratio memory ratio
["dilatation_and_erosion", "opening", "Gray{N0f8}", "64×64"] 1.00 (5%) 0.99 (1%) ✅
["extreme_filter", "Bool", "64×64", "r1_bool_best"] 0.87 (5%) ✅ 1.00 (1%)
["extreme_filter", "Bool", "64×64", "r1_diamond_best"] 1.83 (5%) ❌ 2.87 (1%) ❌
["extreme_filter", "Bool", "64×64", "r1_diamond_random"] 1.64 (5%) ❌ 2.85 (1%) ❌
["extreme_filter", "Bool", "64×64", "r1_diamond_worst"] 1.56 (5%) ❌ 2.87 (1%) ❌
["extreme_filter", "Bool", "64×64", "r5_bool_best"] 1.14 (5%) ❌ 1.00 (1%)
["extreme_filter", "Bool", "64×64", "r5_bool_random"] 1.07 (5%) ❌ 1.00 (1%)
["extreme_filter", "Bool", "64×64", "r5_bool_worst"] 1.11 (5%) ❌ 1.00 (1%)
["extreme_filter", "Bool", "64×64", "r5_diamond_best"] 17.68 (5%) ❌ 7.91 (1%) ❌
["extreme_filter", "Bool", "64×64", "r5_diamond_random"] 17.92 (5%) ❌ 7.91 (1%) ❌
["extreme_filter", "Bool", "64×64", "r5_diamond_worst"] 17.94 (5%) ❌ 7.91 (1%) ❌
["extreme_filter", "Gray{Float32}", "64×64", "r1_generic"] 2.02 (5%) ❌ 1.00 (1%)
["extreme_filter", "Gray{Float32}", "64×64", "r5_generic"] 1.98 (5%) ❌ 1.00 (1%)
["extreme_filter", "Gray{N0f8}", "64×64", "r1_generic"] 1.72 (5%) ❌ 1.00 (1%)
["extreme_filter", "Gray{N0f8}", "64×64", "r5_diamond"] 0.84 (5%) ✅ 1.00 (1%)
["extreme_filter", "Gray{N0f8}", "64×64", "r5_generic"] 2.01 (5%) ❌ 1.00 (1%)
["extreme_filter", "Int64", "64×64", "r1_diamond"] 0.00 (5%) ✅ 0.00 (1%) ✅
["extreme_filter", "Int64", "64×64", "r1_generic"] 1.90 (5%) ❌ 1.00 (1%)
["extreme_filter", "Int64", "64×64", "r5_diamond"] 1.12 (5%) ❌ 1.00 (1%)
["extreme_filter", "Int64", "64×64", "r5_generic"] 2.01 (5%) ❌ 1.00 (1%)

Benchmark Group List

Here's a list of all the benchmark groups executed by this job:

  • ["Maxtree", "area_opening"]
  • ["connected"]
  • ["convexhull"]
  • ["dilatation_and_erosion", "erode", "Gray{Float32}"]
  • ["dilatation_and_erosion", "erode", "Gray{N0f8}"]
  • ["dilatation_and_erosion", "opening", "Gray{Float32}"]
  • ["dilatation_and_erosion", "opening", "Gray{N0f8}"]
  • ["extreme_filter", "Bool", "64×64"]
  • ["extreme_filter", "Gray{Float32}", "64×64"]
  • ["extreme_filter", "Gray{N0f8}", "64×64"]
  • ["extreme_filter", "Int64", "64×64"]
  • ["feature_transform"]

Julia versioninfo

Target

Julia Version 1.7.3
Commit 742b9abb4d (2022-05-06 12:58 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
      Ubuntu 20.04.4 LTS
  uname: Linux 5.13.0-1031-azure #37~20.04.1-Ubuntu SMP Mon Jun 13 22:51:01 UTC 2022 x86_64 x86_64
  CPU: Intel(R) Xeon(R) Platinum 8171M CPU @ 2.60GHz: 
              speed         user         nice          sys         idle          irq
       #1  2095 MHz       1465 s          2 s        207 s       5446 s          0 s
       #2  2095 MHz       5537 s          1 s        237 s       1384 s          0 s
       
  Memory: 6.783603668212891 GB (3010.91796875 MB free)
  Uptime: 719.68 sec
  Load Avg:  1.0  1.05  0.7
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-12.0.1 (ORCJIT, skylake-avx512)

Baseline

Julia Version 1.7.3
Commit 742b9abb4d (2022-05-06 12:58 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
      Ubuntu 20.04.4 LTS
  uname: Linux 5.13.0-1031-azure #37~20.04.1-Ubuntu SMP Mon Jun 13 22:51:01 UTC 2022 x86_64 x86_64
  CPU: Intel(R) Xeon(R) Platinum 8171M CPU @ 2.60GHz: 
              speed         user         nice          sys         idle          irq
       #1  2095 MHz       1606 s          2 s        215 s       6873 s          0 s
       #2  2095 MHz       6974 s          1 s        249 s       1515 s          0 s
       
  Memory: 6.783603668212891 GB (2838.03515625 MB free)
  Uptime: 877.76 sec
  Load Avg:  1.04  1.04  0.76
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-12.0.1 (ORCJIT, skylake-avx512)

Target result

Benchmark Report for /home/runner/work/ImageMorphology.jl/ImageMorphology.jl

Job Properties

  • Time of benchmark: 28 Jun 2022 - 7:28
  • Package commit: 711a09
  • Julia commit: 742b9a
  • Julia command flags: None
  • Environment variables: None

Results

Below is a table of this job's results, obtained by running the benchmarks.
The values listed in the ID column have the structure [parent_group, child_group, ..., key], and can be used to
index into the BaseBenchmarks suite to retrieve the corresponding benchmarks.
The percentages accompanying time and memory values in the below table are noise tolerances. The "true"
time/memory value for a given benchmark is expected to fall within this percentage of the reported value.
An empty cell means that the value was zero.

ID time GC time memory allocations
["Maxtree", "area_opening", "64×64"] 617.170 μs (5%) 133.38 KiB (1%) 21
["connected", "label_components"] 799.691 μs (5%) 521.95 KiB (1%) 44
["convexhull", "convexhull"] 346.339 μs (5%) 529.77 KiB (1%) 16528
["dilatation_and_erosion", "erode", "Gray{Float32}", "64×64"] 102.511 μs (5%) 17.05 KiB (1%) 23
["dilatation_and_erosion", "erode", "Gray{N0f8}", "64×64"] 37.405 μs (5%) 5.11 KiB (1%) 23
["dilatation_and_erosion", "opening", "Gray{Float32}", "64×64"] 204.624 μs (5%) 33.81 KiB (1%) 36
["dilatation_and_erosion", "opening", "Gray{N0f8}", "64×64"] 74.908 μs (5%) 9.94 KiB (1%) 36
["extreme_filter", "Bool", "64×64", "r1_bool_best"] 13.401 μs (5%) 5.22 KiB (1%) 17
["extreme_filter", "Bool", "64×64", "r1_bool_random"] 27.603 μs (5%) 5.19 KiB (1%) 16
["extreme_filter", "Bool", "64×64", "r1_bool_worst"] 27.703 μs (5%) 5.22 KiB (1%) 17
["extreme_filter", "Bool", "64×64", "r1_diamond_best"] 4.743 μs (5%) 13.59 KiB (1%) 198
["extreme_filter", "Bool", "64×64", "r1_diamond_random"] 4.158 μs (5%) 13.66 KiB (1%) 199
["extreme_filter", "Bool", "64×64", "r1_diamond_worst"] 4.000 μs (5%) 13.59 KiB (1%) 198
["extreme_filter", "Bool", "64×64", "r5_bool_best"] 25.803 μs (5%) 12.22 KiB (1%) 21
["extreme_filter", "Bool", "64×64", "r5_bool_random"] 54.406 μs (5%) 12.22 KiB (1%) 21
["extreme_filter", "Bool", "64×64", "r5_bool_worst"] 195.022 μs (5%) 12.22 KiB (1%) 21
["extreme_filter", "Bool", "64×64", "r5_diamond_best"] 173.320 μs (5%) 70.58 KiB (1%) 961
["extreme_filter", "Bool", "64×64", "r5_diamond_random"] 173.819 μs (5%) 70.58 KiB (1%) 961
["extreme_filter", "Bool", "64×64", "r5_diamond_worst"] 174.020 μs (5%) 70.58 KiB (1%) 961
["extreme_filter", "Gray{Float32}", "64×64", "r1_box"] 101.411 μs (5%) 16.83 KiB (1%) 14
["extreme_filter", "Gray{Float32}", "64×64", "r1_diamond"] 5.051 μs (5%) 17.20 KiB (1%) 7
["extreme_filter", "Gray{Float32}", "64×64", "r1_generic"] 101.811 μs (5%) 16.67 KiB (1%) 10
["extreme_filter", "Gray{Float32}", "64×64", "r5_box"] 1.570 ms (5%) 20.27 KiB (1%) 15
["extreme_filter", "Gray{Float32}", "64×64", "r5_diamond"] 28.803 μs (5%) 33.27 KiB (1%) 7
["extreme_filter", "Gray{Float32}", "64×64", "r5_generic"] 1.566 ms (5%) 20.14 KiB (1%) 11
["extreme_filter", "Gray{N0f8}", "64×64", "r1_box"] 37.104 μs (5%) 4.89 KiB (1%) 14
["extreme_filter", "Gray{N0f8}", "64×64", "r1_diamond"] 3.900 μs (5%) 4.66 KiB (1%) 7
["extreme_filter", "Gray{N0f8}", "64×64", "r1_generic"] 37.004 μs (5%) 4.73 KiB (1%) 10
["extreme_filter", "Gray{N0f8}", "64×64", "r5_box"] 635.272 μs (5%) 8.33 KiB (1%) 15
["extreme_filter", "Gray{N0f8}", "64×64", "r5_diamond"] 22.302 μs (5%) 8.78 KiB (1%) 7
["extreme_filter", "Gray{N0f8}", "64×64", "r5_generic"] 633.172 μs (5%) 8.20 KiB (1%) 11
["extreme_filter", "Int64", "64×64", "r1_box"] 45.405 μs (5%) 32.75 KiB (1%) 15
["extreme_filter", "Int64", "64×64", "r1_diamond"] 5.567 μs (5%) 33.83 KiB (1%) 8
["extreme_filter", "Int64", "64×64", "r1_generic"] 45.305 μs (5%) 32.59 KiB (1%) 11
["extreme_filter", "Int64", "64×64", "r5_box"] 459.753 μs (5%) 36.19 KiB (1%) 16
["extreme_filter", "Int64", "64×64", "r5_diamond"] 23.903 μs (5%) 65.81 KiB (1%) 9
["extreme_filter", "Int64", "64×64", "r5_generic"] 535.161 μs (5%) 36.06 KiB (1%) 12
["feature_transform", "feature_transform"] 2.129 ms (5%) 1.02 MiB (1%) 7

Benchmark Group List

Here's a list of all the benchmark groups executed by this job:

  • ["Maxtree", "area_opening"]
  • ["connected"]
  • ["convexhull"]
  • ["dilatation_and_erosion", "erode", "Gray{Float32}"]
  • ["dilatation_and_erosion", "erode", "Gray{N0f8}"]
  • ["dilatation_and_erosion", "opening", "Gray{Float32}"]
  • ["dilatation_and_erosion", "opening", "Gray{N0f8}"]
  • ["extreme_filter", "Bool", "64×64"]
  • ["extreme_filter", "Gray{Float32}", "64×64"]
  • ["extreme_filter", "Gray{N0f8}", "64×64"]
  • ["extreme_filter", "Int64", "64×64"]
  • ["feature_transform"]

Julia versioninfo

Julia Version 1.7.3
Commit 742b9abb4d (2022-05-06 12:58 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
      Ubuntu 20.04.4 LTS
  uname: Linux 5.13.0-1031-azure #37~20.04.1-Ubuntu SMP Mon Jun 13 22:51:01 UTC 2022 x86_64 x86_64
  CPU: Intel(R) Xeon(R) Platinum 8171M CPU @ 2.60GHz: 
              speed         user         nice          sys         idle          irq
       #1  2095 MHz       1465 s          2 s        207 s       5446 s          0 s
       #2  2095 MHz       5537 s          1 s        237 s       1384 s          0 s
       
  Memory: 6.783603668212891 GB (3010.91796875 MB free)
  Uptime: 719.68 sec
  Load Avg:  1.0  1.05  0.7
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-12.0.1 (ORCJIT, skylake-avx512)

Baseline result

Benchmark Report for /home/runner/work/ImageMorphology.jl/ImageMorphology.jl

Job Properties

  • Time of benchmark: 28 Jun 2022 - 7:31
  • Package commit: 3181b6
  • Julia commit: 742b9a
  • Julia command flags: None
  • Environment variables: None

Results

Below is a table of this job's results, obtained by running the benchmarks.
The values listed in the ID column have the structure [parent_group, child_group, ..., key], and can be used to
index into the BaseBenchmarks suite to retrieve the corresponding benchmarks.
The percentages accompanying time and memory values in the below table are noise tolerances. The "true"
time/memory value for a given benchmark is expected to fall within this percentage of the reported value.
An empty cell means that the value was zero.

ID time GC time memory allocations
["Maxtree", "area_opening", "64×64"] 593.068 μs (5%) 133.38 KiB (1%) 21
["connected", "label_components"] 795.691 μs (5%) 521.95 KiB (1%) 44
["convexhull", "convexhull"] 341.439 μs (5%) 529.77 KiB (1%) 16528
["dilatation_and_erosion", "erode", "Gray{Float32}", "64×64"] 102.612 μs (5%) 17.05 KiB (1%) 23
["dilatation_and_erosion", "erode", "Gray{N0f8}", "64×64"] 37.504 μs (5%) 5.11 KiB (1%) 23
["dilatation_and_erosion", "opening", "Gray{Float32}", "64×64"] 203.323 μs (5%) 33.94 KiB (1%) 38
["dilatation_and_erosion", "opening", "Gray{N0f8}", "64×64"] 74.708 μs (5%) 10.06 KiB (1%) 38
["extreme_filter", "Bool", "64×64", "r1_bool_best"] 15.401 μs (5%) 5.22 KiB (1%) 17
["extreme_filter", "Bool", "64×64", "r1_bool_random"] 27.503 μs (5%) 5.19 KiB (1%) 16
["extreme_filter", "Bool", "64×64", "r1_bool_worst"] 27.603 μs (5%) 5.22 KiB (1%) 17
["extreme_filter", "Bool", "64×64", "r1_diamond_best"] 2.586 μs (5%) 4.73 KiB (1%) 9
["extreme_filter", "Bool", "64×64", "r1_diamond_random"] 2.529 μs (5%) 4.80 KiB (1%) 10
["extreme_filter", "Bool", "64×64", "r1_diamond_worst"] 2.557 μs (5%) 4.73 KiB (1%) 9
["extreme_filter", "Bool", "64×64", "r5_bool_best"] 22.702 μs (5%) 12.22 KiB (1%) 21
["extreme_filter", "Bool", "64×64", "r5_bool_random"] 51.006 μs (5%) 12.22 KiB (1%) 21
["extreme_filter", "Bool", "64×64", "r5_bool_worst"] 175.620 μs (5%) 12.22 KiB (1%) 21
["extreme_filter", "Bool", "64×64", "r5_diamond_best"] 9.801 μs (5%) 8.92 KiB (1%) 10
["extreme_filter", "Bool", "64×64", "r5_diamond_random"] 9.701 μs (5%) 8.92 KiB (1%) 10
["extreme_filter", "Bool", "64×64", "r5_diamond_worst"] 9.701 μs (5%) 8.92 KiB (1%) 10
["extreme_filter", "Gray{Float32}", "64×64", "r1_diamond"] 5.217 μs (5%) 17.20 KiB (1%) 7
["extreme_filter", "Gray{Float32}", "64×64", "r1_generic"] 50.305 μs (5%) 16.67 KiB (1%) 10
["extreme_filter", "Gray{Float32}", "64×64", "r5_diamond"] 28.503 μs (5%) 33.27 KiB (1%) 7
["extreme_filter", "Gray{Float32}", "64×64", "r5_generic"] 792.090 μs (5%) 20.14 KiB (1%) 11
["extreme_filter", "Gray{N0f8}", "64×64", "r1_diamond"] 3.815 μs (5%) 4.66 KiB (1%) 7
["extreme_filter", "Gray{N0f8}", "64×64", "r1_generic"] 21.502 μs (5%) 4.73 KiB (1%) 10
["extreme_filter", "Gray{N0f8}", "64×64", "r5_diamond"] 26.703 μs (5%) 8.78 KiB (1%) 7
["extreme_filter", "Gray{N0f8}", "64×64", "r5_generic"] 314.936 μs (5%) 8.20 KiB (1%) 11
["extreme_filter", "Int64", "64×64", "r1_diamond"] 171.875 ms (5%) 4.940 ms 11.51 MiB (1%) 231025
["extreme_filter", "Int64", "64×64", "r1_generic"] 23.802 μs (5%) 32.59 KiB (1%) 11
["extreme_filter", "Int64", "64×64", "r5_diamond"] 21.302 μs (5%) 65.81 KiB (1%) 9
["extreme_filter", "Int64", "64×64", "r5_generic"] 266.530 μs (5%) 36.06 KiB (1%) 12
["feature_transform", "feature_transform"] 2.065 ms (5%) 1.02 MiB (1%) 7

Benchmark Group List

Here's a list of all the benchmark groups executed by this job:

  • ["Maxtree", "area_opening"]
  • ["connected"]
  • ["convexhull"]
  • ["dilatation_and_erosion", "erode", "Gray{Float32}"]
  • ["dilatation_and_erosion", "erode", "Gray{N0f8}"]
  • ["dilatation_and_erosion", "opening", "Gray{Float32}"]
  • ["dilatation_and_erosion", "opening", "Gray{N0f8}"]
  • ["extreme_filter", "Bool", "64×64"]
  • ["extreme_filter", "Gray{Float32}", "64×64"]
  • ["extreme_filter", "Gray{N0f8}", "64×64"]
  • ["extreme_filter", "Int64", "64×64"]
  • ["feature_transform"]

Julia versioninfo

Julia Version 1.7.3
Commit 742b9abb4d (2022-05-06 12:58 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
      Ubuntu 20.04.4 LTS
  uname: Linux 5.13.0-1031-azure #37~20.04.1-Ubuntu SMP Mon Jun 13 22:51:01 UTC 2022 x86_64 x86_64
  CPU: Intel(R) Xeon(R) Platinum 8171M CPU @ 2.60GHz: 
              speed         user         nice          sys         idle          irq
       #1  2095 MHz       1606 s          2 s        215 s       6873 s          0 s
       #2  2095 MHz       6974 s          1 s        249 s       1515 s          0 s
       
  Memory: 6.783603668212891 GB (2838.03515625 MB free)
  Uptime: 877.76 sec
  Load Avg:  1.04  1.04  0.76
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-12.0.1 (ORCJIT, skylake-avx512)

Runtime information

Runtime Info
BLAS #threads 2
BLAS.vendor() openblas64
Sys.CPU_THREADS 2

lscpu output:

Architecture:                    x86_64
CPU op-mode(s):                  32-bit, 64-bit
Byte Order:                      Little Endian
Address sizes:                   46 bits physical, 48 bits virtual
CPU(s):                          2
On-line CPU(s) list:             0,1
Thread(s) per core:              1
Core(s) per socket:              2
Socket(s):                       1
NUMA node(s):                    1
Vendor ID:                       GenuineIntel
CPU family:                      6
Model:                           85
Model name:                      Intel(R) Xeon(R) Platinum 8171M CPU @ 2.60GHz
Stepping:                        4
CPU MHz:                         2095.247
BogoMIPS:                        4190.49
Hypervisor vendor:               Microsoft
Virtualization type:             full
L1d cache:                       64 KiB
L1i cache:                       64 KiB
L2 cache:                        2 MiB
L3 cache:                        35.8 MiB
NUMA node0 CPU(s):               0,1
Vulnerability Itlb multihit:     KVM: Mitigation: VMX unsupported
Vulnerability L1tf:              Mitigation; PTE Inversion
Vulnerability Mds:               Mitigation; Clear CPU buffers; SMT Host state unknown
Vulnerability Meltdown:          Mitigation; PTI
Vulnerability Mmio stale data:   Vulnerable: Clear CPU buffers attempted, no microcode; SMT Host state unknown
Vulnerability Spec store bypass: Vulnerable
Vulnerability Spectre v1:        Mitigation; usercopy/swapgs barriers and __user pointer sanitization
Vulnerability Spectre v2:        Mitigation; Retpolines, STIBP disabled, RSB filling
Vulnerability Srbds:             Not affected
Vulnerability Tsx async abort:   Mitigation; Clear CPU buffers; SMT Host state unknown
Flags:                           fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology cpuid pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch invpcid_single pti fsgsbase bmi1 hle avx2 smep bmi2 erms invpcid rtm mpx avx512f avx512dq rdseed adx smap clflushopt avx512cd avx512bw avx512vl xsaveopt xsavec xsaves md_clear
Cpu Property Value
Brand Intel(R) Xeon(R) Platinum 8171M CPU @ 2.60GHz
Vendor :Intel
Architecture :Skylake
Model Family: 0x06, Model: 0x55, Stepping: 0x04, Type: 0x00
Cores 2 physical cores, 2 logical cores (on executing CPU)
No Hyperthreading hardware capability detected
Clock Frequencies Not supported by CPU
Data Cache Level 1:3 : (32, 1024, 36608) kbytes
64 byte cache line size
Address Size 48 bits virtual, 46 bits physical
SIMD 512 bit = 64 byte max. SIMD vector size
Time Stamp Counter TSC is accessible via rdtsc
TSC increased at every clock cycle (non-invariant TSC)
Perf. Monitoring Performance Monitoring Counters (PMC) are not supported
Hypervisor Yes, Microsoft

@johnnychen94 johnnychen94 merged commit ba6ee8b into master Jun 28, 2022
@johnnychen94 johnnychen94 deleted the jc/box_simd branch June 28, 2022 07:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

extreme_filter! wrong result when input and output array are of different eltype
1 participant