We're very keen to investigate using the Bolt C++ template library, however I notice that the prerequisites include Windows 7/8 and VS 2010 onwards, and that it also seems that it currently only works with AMD hardware.
All of our existing GPGPU code runs on Linux with NVIDIA graphics cards, I was just hoping someone might be able to tell us whether we can realistically expect to ever use the Bolt template library in this environment.
Thanks in advance!
Thanks for this Kyle. It looks very interesting.
We'll set up some benchmark tests and see how we get on.
Bolt looks good to, but isn't a lot of use to us while it remains locked down to Windows and AMD.
The library is still under active development (though the API is fairly stable) and not all algorithms have been fully optimized. If you let me know which algorithms (and on which platforms) are important for your application(s) I can bump them up on the TODO list. Also, any feedback you have would be greatly appreciated. Feel free to send me an e-mail and/or submit issues to the issue tracker on GitHub.
And yeah, I had higher hopes for Bolt as well. Perhaps one day it will work with all OpenCL platforms (but that would either require all other vendors to support AMD's C++ kernel language or a large restructuring of Bolt itself).
Does the compute project support user defined data types? I have raised an issue related to user defined data types.
Bolt does support User defined data types in the OpenCL backend. This is mainly resolved using the C++ static kernel specification of AMD. On the other hand Bolt provides a fallback mechanism if no OpenCL implementation is found. This library is targetted to support mostly all the platforms in the future mostly using the SPIR binary support. This will make the library portable across different platforms. I cannot comment on the time line for that.