I would like to introduce you to Bolt, AMD’s new C++ template library that for many applications will allow you to develop heterogeneous compute (hc) accelerated applications using pure C++.  Obtain the benefits of OpenCL™ without the need to be an expert in OpenCL™!  Bolt enables your application not only to benefit from hc acceleration when available but will also enable them to run on legacy non-hc systems1 – with just a single code path. 

Bolt is an STL inspired template library, abstracting and wrapping the OpenCL™ API and enabling you to program naturally in C++; in many cases without the need to write either OpenCL™ API code or OpenCL™ kernels!

Bolt is flexible and fully interoperable with OpenCL™ and can be extended using user-defined functors where necessary.  Compatibility with STL ensures that all of the capabilities of STL are available for initializing, manipulating, and managing your data buffers.

BOLT_logo_blk_on_wht_219x94This release of Bolt is a preview, introducing scan, sort, reduce, and transform functions and a new device_vector container. Download and Install the AMD APP SDK 2.8 from here to start discovering the exciting potential of Bolt. Then, register for the Bolt forum  to gain early access to the Bolt beta once it is available, access to private forums, be entered into a drawing2 with a chance to win one of 5 AMD A8 based laptops, and to learn more about our Bolt sample competition.  Bolt is released under an Apache 2.0 license and in coming months is planned to be made available on a public repository.

Learn more about how Bolt works from Ben Sander’s blog – our Bolt architect, and learn how to use it from Kent Knox’s blog – our lead Bolt developer.

hc is becoming mainstream, to learn more about commercial and open source applications that leverage hc  - including OpenCL™ , and a directory of 130+research papers visit our Application Showcase, and hc Library

1Bolt support for CPU is planned to be added in a future release.

2 Subject to the rules for the drawing.

Mark Ireton is the Product Manager for Compute Solutions at AMD. His postings are his own opinions and may not represent AMD’s positions, strategies or opinions. Links to third party sites, and references to third party trademarks, are provided for convenience and illustrative purposes only. Unless explicitly stated, AMD is not responsible for the contents of such links, and no third party endorsement of AMD or any of its products is implied.

Leave a Reply