-
Notifications
You must be signed in to change notification settings - Fork 165
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
Add extension with basic support for Blaze library #496
base: develop
Are you sure you want to change the base?
Conversation
For anybody who would like to review this extension, I have some questions you might want to consider:
|
After thinking about it, I believe I figured out a few main usage axes. Container related usages:
Channel related usages.I believe doing multi-channel IP/CV is hard because not all operations used in the fields that can be applied on say
Converting matrix into imageSince type deduction can solve the overload resolution problem, only one function will be provided. The name could be changed, because
Returning an image and writing into viewSince move semantics are added for common use cases, I believe just creating and returning a new image should not hurt performance in measurable way. There will also be an overload that will have an out parameter with view type, while the other will just return image.
|
f8dad7c
to
0ae9058
Compare
Add conversions image<->matrix and vector<->pixel. Bump CXX_STANDARD if Blaze is used. Minimal support for BLAS library selection
Add tests for the function and modify CMakeLists to call those tests if the extension is enabled
Add tests for image<->matrix conversion and pixel<->vector conversion
389f916
to
8206b22
Compare
Blaze links with BLAS and LAPACK libraries by default, this commit adds arguments to configure step to disable linking to them
Otherwise CMake seems to fail during result parse step. Might be CI thing
It seems like Blaze has a typo in CMake which prevents setting non-auto cache detection from working
Blaze has lower threshold for CPU cache size set to 100'000
Add conversions image<->matrix and
vector<->pixel. Bump CXX_STANDARD if
Blaze is used. Minimal support for
BLAS library selection
Description
This PR adds integration with Blaze linear algebra library. The main motivation behind it is that some image processing algorithms make heavy use of linear algebra operations, having image(s) only in the input and output.
Algorithms like Harris corner detector can be implemented in under 15 lines (given a convolution function and kernels):
The only thing that is not clear is probably
operator%
. It is Schur product, e.g. elementwise multiplication.Aside from convenience, properly configured Blaze offers great performance.
References
https://bitbucket.org/blaze-lib/blaze/src/master/
Tasklist
extension/blaze/blaze.hpp