From: prathamesh tagore (prathameshtagore_at_[hidden])
Date: 2021-06-14 17:30:42
General ways of convolution optimization include
1. Improving memory access patterns
2. Vectorizing arithmetic operations
3. Parallelizing window operations
I am currently working on improving existing versions as mentioned here(
https://lists.boost.org/boost-gil/2021/06/0511.php) using the first point.
i) Parallelization would require the use of some external libraries.
ii) Vectorization would require use of simd intrinsics which would make our
code platform/architecture dependent.
@lpranam @mloskot @Olzhas, please share your opinion on last two points and
their feasibility in Gil so that I can create a clearer picture of my work
in coming weeks.
On Wed, Jun 2, 2021 at 9:49 PM Olzhas Zhumabek <
> This thread will probably pretty long and follow our findings and direction
> on how will improve the
> performance of 2D convolution in GIL.
> During my meeting with Prathamesh, we discussed the nature of the 2D
> convolution in OpenCV.
> At the moment it uses some switches which allows it to change between SIMD
> high performance libraries and just a plain implementation with prefetch.
> We decided to go the
> simplest route for the first version, while continuously benchmarking past
> Here is the initial plan:
> - Prathamesh will send a flowchart for the basic implementation
> - I will sketch some benchmarking code with the cmake switches for OpenCV,
> so that we could pit
> our versions against OpenCV (ETA until Monday next week)
> - Prathamesh will complete the benchmarking code with comparisons (ETA
> sometime next week)
> - After discussing the flowchart, the implementation of the new version
> will begin (next week too, probably)
> Please share your ideas and suggestions.
> Boost-gil mailing list
Boost list run by Boost-Gil-Owners