opencl(三)----创建、编译程序(cl_program)、创建内核
1、创建程序
// 从文本中创建程序 cl_program clCreateProgramWithSource ( cl_context context, // 上下文 cl_uint count, //文本个数 const char **strings, // 程序文本 const size_t *lengths, //每个程序文本的长度 cl_int *errcode_ret //错误码 )
编译程序
cl_int clBuildProgram ( cl_program program, //程序 cl_uint num_devices, //设备数量 const cl_device_id *device_list, //设备列表 const char *options, //编译选项 void (*pfn_notify)(cl_program, void *user_data), void *user_data )
2、获取程序信息
// 获取程序信息 cl_int clGetProgramInfo ( cl_program program, //程序 cl_program_info param_name, //信息类型名称 size_t param_value_size, //要保存的大小 void *param_value, //保存的地址 size_t *param_value_size_ret //应有的大小 )
3、获取编译信息
cl_int clGetProgramBuildInfo ( cl_program program, cl_device_id device, cl_program_build_info param_name, //编译信息参数 size_t param_value_size, void *param_value, size_t *param_value_size_ret ) //常用的编译信息参数 CL_PROGRAM_BUILD_LOG 查看编译日志
4、创建内核
// 为程序中的每个函数创建内核 cl_int clCreateKernelsInProgram ( cl_program program, //程序 cl_uint num_kernels, // 数量 cl_kernel *kernels, //核地址 cl_uint *num_kernels_ret //获取应该有的数量 )
获取内核信息
// 获取核信息 cl_int clGetKernelInfo ( cl_kernel kernel, //核 cl_kernel_info param_name, //信息名称 size_t param_value_size, void *param_value, size_t *param_value_size_ret )