1:程序
1)从上下文中创建程序
cl_program clCreateProgramWithSource(
cl_context context, //上下文
cl_uint count, //文本个数
const char**strings, //程序文本
const size_t *lengths, //每个程序文本长度
cl_int *errcode_ret //错误码
)
2)编译程序
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 //报错信息
)
3)获取程序信息
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 //获取信息应有的大小
)
4)获取编译信息
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_LOG 查看编译日志
2:内核
1)为程序中的每个函数创建内核
cl_int clCreateKernelsInProgram(
cl_program program, //程序
cl_uint num_kernels, //内核数量
cl_kernek* kernels, //内核地址
cl_uint *num_kernels_ret //获取应有的数据
)
2)获取内核信息
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 //应有信息的大小
)