-
Notifications
You must be signed in to change notification settings - Fork 21
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: AVX implementation for 2D diamond SE #97
Conversation
Benchmark resultJudge resultBenchmark Report for /home/runner/work/ImageMorphology.jl/ImageMorphology.jlJob Properties
ResultsA ratio greater than
Benchmark Group ListHere's a list of all the benchmark groups executed by this job:
Julia versioninfoTarget
Baseline
Target resultBenchmark Report for /home/runner/work/ImageMorphology.jl/ImageMorphology.jlJob Properties
ResultsBelow is a table of this job's results, obtained by running the benchmarks.
Benchmark Group ListHere's a list of all the benchmark groups executed by this job:
Julia versioninfo
Baseline resultBenchmark Report for /home/runner/work/ImageMorphology.jl/ImageMorphology.jlJob Properties
ResultsBelow is a table of this job's results, obtained by running the benchmarks.
Benchmark Group ListHere's a list of all the benchmark groups executed by this job:
Julia versioninfo
Runtime information
|
Here's the local benchmark result. Most of them are good except for one weird Benchmark resultJudge resultBenchmark Report for /home/jc/Documents/Julia/ImageMorphology.jlJob Properties
ResultsA ratio greater than
Benchmark Group ListHere's a list of all the benchmark groups executed by this job:
Julia versioninfoTarget
Baseline
Target resultBenchmark Report for /home/jc/Documents/Julia/ImageMorphology.jlJob Properties
ResultsBelow is a table of this job's results, obtained by running the benchmarks.
Benchmark Group ListHere's a list of all the benchmark groups executed by this job:
Julia versioninfo
Baseline resultBenchmark Report for /home/jc/Documents/Julia/ImageMorphology.jlJob Properties
ResultsBelow is a table of this job's results, obtained by running the benchmarks.
Benchmark Group ListHere's a list of all the benchmark groups executed by this job:
Julia versioninfo
Runtime information
|
Int64 and Float64 have some strange histogram, this might be a LoopVectorization issue I guess. I'm wondering if @chriselrod has seen such behavior before? |
Anyway, I'm going to merge this since this implementation turns out to be simpler and more efficient than #90 and it passes the test. |
* perf: AVX implementation for 2D diamond SE * add more comprehensive test for diamond shape optimization Co-Authored-By: Retornaz Thomas <[email protected]>
Thanks @johnnychen94 |
I plan to tag v0.4.0 later today and then task switch to ImageFiltering.jl for the next 1-2 weeks and then DitherPunk.jl, so it would be great if you can try it out. This PR actually doesn't work on 32bit machines, unsure why. I decided to disable In contrast, the single thread version in PR #90 seems just work in 32bit machines. |
If you have a few minimal examples, I can take a loot. |
On
|
FYI i spend time in OpenCV implem
|
rewrite from #90 for 2D diamond shape SE
Still needs to tweak a bitNote that I didn't use the tweaked version in #90 (comment) because it seems that LoopVectorization failed to handle it JuliaSIMD/LoopVectorization.jl#415
cc: @ThomasRetornaz