Converting circle_area_cpu to Boost Compute

We now need to create an OpenCL function equivalent of the circle_area_cpu() function. The OpenCL programming language uses a standard C syntax, and is therefore quite similar to the C++ version. For further reference of the OpenCL language, we refer to its official documentation available at https://www.khronos.org/opencl/.

The source code of the function is passed as a std::string to boost::compute::function, where the first parameter is the name of the OpenCL function intended to be exposed, and the second parameter is the actual source code.

namespace bc = boost::compute; 
auto src_code = std::string_view{   "float circle_area_gpu(Circle c) { "  "  float pi = 3.14f;               " " return c.r * c.r * pi; " ...

Get C++ High Performance now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.