HSA-Libraries / Bolt

Bolt is a C++ template library optimized for GPUs. Bolt provides high-performance library implementations for common algorithms such as scan, reduce, transform, and sort.
Other
373 stars 65 forks source link

Cross platform issues when importing into OpenCV #67

Open pengx17 opened 11 years ago

pengx17 commented 11 years ago

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 commented 11 years ago

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 commented 11 years ago

Good to know that BOLT is working on it :)

Regarding the questions:

Regards.

AlexeyAB commented 11 years ago

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

Best regards, Alexey

jayavanth commented 11 years ago

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 commented 11 years ago

6-12 months .. :(