Bolt is an STL compatible library of high level constructs for creating accelerated data parallel applications. Code written using STL or other STL compatible libraries (example: TBB) can be converted to Bolt in minutes. Bolt supports C++ AMP in addition to OpenCL™ as underlying supported compute technologies. With Bolt, kernel code to be accelerated is written in-line in the C++ source file. No OpenCL™ or C++ AMP API calls are required since all initialization of and communication with the OpenCL™ or C++ AMP device is handled by the library. Bolt includes comprehensive documentation for the library routines, memory management, control interfaces, and host/device code sharing.
In addition to adding support for C++ AMP and CPU-only systems, Bolt includes common compute-optimized routines such as sort, scan, transform, and reduce operations. Additionally you will find performance improvements, and we will continue to improve performance in future Bolt releases.
The source to Bolt is now available on GitHub, the open source social programming platform.
Learn more about the latest features here: https://github.com/HSA-Libraries/Bolt
Download the binaries from the table below.
We welcome the community to help build the Bolt ecosystem by becoming a contributor to the Bolt project. We also invite you to help promote Bolt by submitting Bolt sample application code to the samples repository on GitHub. We’re looking for well written example code that highlights Bolt’s ability to deliver high performance with ease of programming. There are additional details about how to use Bolt in Kent’s blog.
An update to the Bolt library preview is available which fixes some minor issues. Please install this updated version of the Bolt library on your development system in order to use the new Bolt sample that illustrates use of Bolt to compute π using a monte-carlo type algorithm.