#第四章 内核模型
在OpenCL中,程序是由多个内核构成的,而内核就是在设备上运行的一个个功能函数,内核函数用__kernel字符标记,表示该函数用于在设备上运行,实现某种特定的功能,OpenCL程序就是将这些特定的功能模块组合在一起,从而实现整个系统功能。内核的调用由主机完成,主机通过命令队列指示设备调用内核,完成任务。
我们要从程序中将内核分离出来,放在特定的内核对象中,用于后面的调用。
创建内核对象的方法有两种:
cl_kernel clCreateKernel (cl_program program, //内核所在的程序对象
const char *kernel_name, //内核函数的名称
cl_int *errcode_ret) //错误指示标记
该接口将会返回一个根据特定名称而创建的内核对象。
cl_int clCreateKernelsInProgram (cl_program program, //内核所在的程序对象
cl_uint num_kernels, //该程序中所包含的内核数量
cl_kernel *kernels, //创建的内核对象列表
cl_uint *num_kernels_ret) //返回的该程序中所包含的内核数量
该接口需要调用两次,第一次确定该程序中包含的内核个数,第二次将所有的内核对象创建完成并存放在内核对象列表中。
在内核对象创建完成后可以查