Bolt
1.1
C++ template library with support for OpenCL
|
Yes, Bolt includes a small static library that must be linked into a user program to properly resolve symbols. Since Bolt is a template library, almost all functionality is written in header files, but OpenCL ™ follows an online compilation model to be included in a library, not in header files.
Yes, Bolt contains dependencies on Boost. All dependent header files and pre-compiled libraries are available in the Bolt SDK.
Sort, Scan, Transform, Reduce, Transform reduce, Copy, Count, Fill, Generate, inner_product, Min, Max, Binary search, Merge, Scatter and Gather.
OpenCL Programming Specification version 1.2.
Yes, Bolt requires the use of templates in kernel code; currently, AMD is the only vendor to provide this support.
Generally speaking, the latest Catalyst package contains the most recent OpenCL runtime. As of this writing, the recommended Catalyst package is 12.10.
Bolt is planned to be completely open source in the near future. Most of the algorithm functionality is located in header files, so a majority of the source is already available.
The Apache License, Version 2.0.
bolt::cl::device_vector manages device-local memory and is degined to deliver higher performance on discrete GPU system; however, host memory interfaces eliminate the need to create and manage device_vectors. If memory is re-used across multiple Bolt calls, or is referenced by other kernels, using device_vector delivers higher performance.