OpenCL is a host CPU based library containing APIs that allow you to:
- Discover available compute devices in the system,
- Define programs to run on those compute devices,
- Define buffers that can be used to communicate data between the host program and programs running on compute devices, and
- To queue work to compute devices.
The remaining items:
- The expression of programs in step 2, and
- The mechanisms used to queue work in step 4
are the essence of the execution model as it relates to how work is accomplished on compute devices and is the main topic for this chapter.