1. Creating Program Objects
each string (char*) is a kernel, so many kernels would belong to one program object
each context can have many device (device list)
program binaries contain the bits that describe the program executable that will be run on the devices associated with context
(2) Building Program Executables
builds (compile & link) a program executable from the program source or binary for all the devices or a specific device in the OpenCL context associated with program.
clGetProgramInfo();
clGetProgramBuildInfo();
Kernel Object
A Kernel is a function declared in a program. A kernel is identified by the __kernel qualifier applied to any functions in a program.
clRetainKernel();
clReleaseKernel();
Setting Kernel Arguments
clGetKernelInfo();
clGetKernelWorkGroupInfo();