JuliaImages / ImageFiltering.jl

Julia implementations of multidimensional array convolution and nonlinear stencil operations
Other
99 stars 49 forks source link

imfilter docs: reorg with "Extended help" #151

Open timholy opened 4 years ago

timholy commented 4 years ago

The idea is to prepare for https://github.com/JuliaLang/julia/pull/34226, which will appear in Julia 1.5. This PR is essentially a demo of how I'd think of organizing the help: a relatively brief initial section that is somewhere between an explanation and a reminder, i.e., sufficient for someone who already knows what she is doing. Then the full details follow.

github-actions[bot] commented 4 years ago
Benchmark result # Judge result # Benchmark Report for */home/runner/work/ImageFiltering.jl/ImageFiltering.jl* ## Job Properties * Time of benchmarks: - Target: 27 Jan 2020 - 09:51 - Baseline: 27 Jan 2020 - 09:52 * Package commits: - Target: f1092d - Baseline: 25bdad * Julia commits: - Target: 2d5741 - Baseline: 2d5741 * 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 :x:), while a ratio less than `1.0` denotes a possible improvement (marked with :white_check_mark:). 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 | |-----------------------------------------|------------------------------|--------------| | `["mapwindow", "cheap f, tiny window"]` | 0.92 (5%) :white_check_mark: | 1.00 (1%) | | `["mapwindow", "expensive f"]` | 0.94 (5%) :white_check_mark: | 1.00 (1%) | | `["mapwindow", "mean, large window"]` | 0.92 (5%) :white_check_mark: | 1.00 (1%) | | `["mapwindow", "mean, small window"]` | 0.92 (5%) :white_check_mark: | 1.00 (1%) | | `["mapwindow", "median!"]` | 0.93 (5%) :white_check_mark: | 1.00 (1%) | ## Benchmark Group List Here's a list of all the benchmark groups executed by this job: - `["mapwindow"]` ## Julia versioninfo ### Target ``` Julia Version 1.3.1 Commit 2d5741174c (2019-12-30 21:36 UTC) Platform Info: OS: Linux (x86_64-pc-linux-gnu) Ubuntu 18.04.3 LTS uname: Linux 5.0.0-1028-azure #30~18.04.1-Ubuntu SMP Fri Dec 6 11:47:59 UTC 2019 x86_64 x86_64 CPU: Intel(R) Xeon(R) Platinum 8171M CPU @ 2.60GHz: speed user nice sys idle irq #1 2095 MHz 7000 s 0 s 1128 s 14199 s 0 s #2 2095 MHz 11670 s 0 s 1342 s 8832 s 0 s Memory: 6.782741546630859 GB (3612.75390625 MB free) Uptime: 236.0 sec Load Avg: 1.0234375 0.6650390625 0.28955078125 WORD_SIZE: 64 LIBM: libopenlibm LLVM: libLLVM-6.0.1 (ORCJIT, skylake) ``` ### Baseline ``` Julia Version 1.3.1 Commit 2d5741174c (2019-12-30 21:36 UTC) Platform Info: OS: Linux (x86_64-pc-linux-gnu) Ubuntu 18.04.3 LTS uname: Linux 5.0.0-1028-azure #30~18.04.1-Ubuntu SMP Fri Dec 6 11:47:59 UTC 2019 x86_64 x86_64 CPU: Intel(R) Xeon(R) Platinum 8171M CPU @ 2.60GHz: speed user nice sys idle irq #1 2095 MHz 11935 s 0 s 1175 s 14330 s 0 s #2 2095 MHz 11850 s 0 s 1384 s 13719 s 0 s Memory: 6.782741546630859 GB (3627.55859375 MB free) Uptime: 287.0 sec Load Avg: 1.0087890625 0.71875 0.32861328125 WORD_SIZE: 64 LIBM: libopenlibm LLVM: libLLVM-6.0.1 (ORCJIT, skylake) ``` --- # Target result # Benchmark Report for */home/runner/work/ImageFiltering.jl/ImageFiltering.jl* ## Job Properties * Time of benchmark: 27 Jan 2020 - 9:51 * Package commit: f1092d * Julia commit: 2d5741 * 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 | |-----------------------------------------|----------------:|--------:|----------------:|------------:| | `["mapwindow", "cheap f, tiny window"]` | 11.901 μs (5%) | | 8.73 KiB (1%) | 20 | | `["mapwindow", "expensive f"]` | 1.636 ms (5%) | | 1.30 MiB (1%) | 18998 | | `["mapwindow", "extrema"]` | 63.304 μs (5%) | | 45.73 KiB (1%) | 60 | | `["mapwindow", "mean, large window"]` | 1.743 ms (5%) | | 1.39 MiB (1%) | 24634 | | `["mapwindow", "mean, small window"]` | 15.401 μs (5%) | | 9.84 KiB (1%) | 43 | | `["mapwindow", "median!"]` | 802.447 μs (5%) | | 233.41 KiB (1%) | 4064 | ## Benchmark Group List Here's a list of all the benchmark groups executed by this job: - `["mapwindow"]` ## Julia versioninfo ``` Julia Version 1.3.1 Commit 2d5741174c (2019-12-30 21:36 UTC) Platform Info: OS: Linux (x86_64-pc-linux-gnu) Ubuntu 18.04.3 LTS uname: Linux 5.0.0-1028-azure #30~18.04.1-Ubuntu SMP Fri Dec 6 11:47:59 UTC 2019 x86_64 x86_64 CPU: Intel(R) Xeon(R) Platinum 8171M CPU @ 2.60GHz: speed user nice sys idle irq #1 2095 MHz 7000 s 0 s 1128 s 14199 s 0 s #2 2095 MHz 11670 s 0 s 1342 s 8832 s 0 s Memory: 6.782741546630859 GB (3612.75390625 MB free) Uptime: 236.0 sec Load Avg: 1.0234375 0.6650390625 0.28955078125 WORD_SIZE: 64 LIBM: libopenlibm LLVM: libLLVM-6.0.1 (ORCJIT, skylake) ``` --- # Baseline result # Benchmark Report for */home/runner/work/ImageFiltering.jl/ImageFiltering.jl* ## Job Properties * Time of benchmark: 27 Jan 2020 - 9:52 * Package commit: 25bdad * Julia commit: 2d5741 * 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 | |-----------------------------------------|----------------:|--------:|----------------:|------------:| | `["mapwindow", "cheap f, tiny window"]` | 12.900 μs (5%) | | 8.73 KiB (1%) | 20 | | `["mapwindow", "expensive f"]` | 1.746 ms (5%) | | 1.30 MiB (1%) | 18998 | | `["mapwindow", "extrema"]` | 64.303 μs (5%) | | 45.73 KiB (1%) | 60 | | `["mapwindow", "mean, large window"]` | 1.891 ms (5%) | | 1.39 MiB (1%) | 24634 | | `["mapwindow", "mean, small window"]` | 16.700 μs (5%) | | 9.84 KiB (1%) | 43 | | `["mapwindow", "median!"]` | 860.531 μs (5%) | | 233.41 KiB (1%) | 4064 | ## Benchmark Group List Here's a list of all the benchmark groups executed by this job: - `["mapwindow"]` ## Julia versioninfo ``` Julia Version 1.3.1 Commit 2d5741174c (2019-12-30 21:36 UTC) Platform Info: OS: Linux (x86_64-pc-linux-gnu) Ubuntu 18.04.3 LTS uname: Linux 5.0.0-1028-azure #30~18.04.1-Ubuntu SMP Fri Dec 6 11:47:59 UTC 2019 x86_64 x86_64 CPU: Intel(R) Xeon(R) Platinum 8171M CPU @ 2.60GHz: speed user nice sys idle irq #1 2095 MHz 11935 s 0 s 1175 s 14330 s 0 s #2 2095 MHz 11850 s 0 s 1384 s 13719 s 0 s Memory: 6.782741546630859 GB (3627.55859375 MB free) Uptime: 287.0 sec Load Avg: 1.0087890625 0.71875 0.32861328125 WORD_SIZE: 64 LIBM: libopenlibm LLVM: libLLVM-6.0.1 (ORCJIT, skylake) ``` --- # 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 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.211 BogoMIPS: 4190.42 Hypervisor vendor: Microsoft Virtualization type: full L1d cache: 32K L1i cache: 32K L2 cache: 1024K L3 cache: 36608K NUMA node0 CPU(s): 0,1 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 | 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 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, 44 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 |
timholy commented 4 years ago

Let's use this PR to hash out some kind of consensus format and then merge. I'd propose we leave the conversion of the remaining docstrings as a good first issue for newcomers (I'm bad about coming up with simple tasks for others to get their feet wet). See #153.

codecov[bot] commented 4 years ago

Codecov Report

Merging #151 into master will not change coverage. The diff coverage is n/a.

Impacted file tree graph

@@           Coverage Diff           @@
##           master     #151   +/-   ##
=======================================
  Coverage   91.65%   91.65%           
=======================================
  Files           9        9           
  Lines        1222     1222           
=======================================
  Hits         1120     1120           
  Misses        102      102
Impacted Files Coverage Δ
src/imfilter.jl 90.81% <ø> (ø) :arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more Δ = absolute <relative> (impact), ø = not affected, ? = missing data Powered by Codecov. Last update 25bdade...54e7d3b. Read the comment docs.