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; " ...