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

Cross platform issues when importing into OpenCV #67

Open
pengx17 opened this issue Jul 18, 2013 · 5 comments
Open

Cross platform issues when importing into OpenCV #67

pengx17 opened this issue Jul 18, 2013 · 5 comments

Comments

@pengx17
Copy link

pengx17 commented Jul 18, 2013

In developing OpenCV(Open-source Computer Vision library)'s OpenCL module I intended to import Bolt library and use its sorting and scan APIs, but by browsing the source code I noticed that AMD-only Static OpenCL C++ templates is heavily used in OpenCL kernels.

For OpenCV, we must ensure that it can run OpenCL on most platforms, not only AMD's. Can I ask if you have any plans to make Bolt available on non-amdappsdk platforms, such as nvidia's and intel's OpenCL SDK?


To fix this issue, I have adapted some of the codes from Bolt and use macros to simulate templates. What I added in this branch is sort_by_key using OpenCL. By the way, I included radix sort with float type types, which is not supported yet for Bolt.

Please see the following links:
Host code
Radix sort kernel file

Thanks!

@ravibanger
Copy link
Collaborator

We certainly have plans to make BOLT cross platform and are evaluating the best possible solution.
Will keep you posted.

Some question for you
Will your BOLT functors be pure OpenCL C functors? and not use any C++ constructs.
Also which functions are of specific interest for you?
Just curious, what is your machine configuration? i.e. Intel machine with NVIDIA card etc. or AMD machine with AMD card.

Good to know that you are using the code and have done some modifications to make it cross platform.
Thanks.

@pengx17
Copy link
Author

pengx17 commented Jul 19, 2013

Good to know that BOLT is working on it :)

Regarding the questions:

  • Will your BOLT functors be pure OpenCL C functors? and not use any C++ constructs.
    • No, I wish it can be as capable as Thrust's solution, that user defined struct can be directly accessed in kernels and compared. Also it will be great if there is a better way to write user-defined OpenCL compare functors other than defining fancy functor strings.
  • Also which functions are of specific interest for you?
    • Functions we are considering for importing: sort, sort_by_key, scan, transform.
  • Just curious, what is your machine configuration? i.e. Intel machine with NVIDIA card etc. or AMD machine with AMD card.
    • We have combined almost all common OpenCL setups: OpenCL SDKs, including AMD, Intel, NVIDIA's; both CPU and GPUs; desktop and laptop; Windows, Linux and Mac OS; OpenCL 1.1 or 1.2. We believe cross-platform issue is minimized until now.

Regards.

@AlexeyAB
Copy link

And what are the approximate dates for the implementation of cross-platform Bolt: month, half a year, year?

Best regards, Alexey

@jayavanth
Copy link
Collaborator

We are working on making Bolt a cross-platform library. It might take about 6-12 months. Stay tuned for more updates on that during APU13 .

Thanks,
Jay

@smiron
Copy link

smiron commented Sep 24, 2013

6-12 months .. :(

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants