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
)
原文地址:https://www.cnblogs.com/feihu-h/p/12081307.html