OpenCL编程:获取程序信息

一旦创建和编译好程序,可以通过调用clGetProgramInfo获得程序相关的数据结构的信息,例如上下文和目标设备。调用clGetProgramBuildInfo获取程序的编译信息。

函数原型如下:

clGetProgramInfo(cl_program program, cl_program_info param_name, size_t param_value_size, void *param_value, size_t *param_value_size_ret);

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_info是一个枚举类型,可以是下表中的枚举值。

同样,cl_program_build_info也是枚举类型,枚举值如下:

char* program_src;
char* program_log;
size_t log_size;
clGetProgramInfo(program, CL_PROGRAM_SOURCE, 0, NULL, &log_size);
program_src = (char*)malloc((log_size + 1) * sizeof(char));
clGetProgramInfo(program, CL_PROGRAM_SOURCE, log_size + 1, program_src, NULL);
printf("program_src        : %s \n", program_src);

clGetProgramBuildInfo(program, devices[0], CL_PROGRAM_BUILD_LOG, 0, NULL, &log_size);
program_log = (char*)malloc((log_size + 1) * sizeof(char));
clGetProgramBuildInfo(program, devices[0], CL_PROGRAM_BUILD_LOG, log_size + 1, program_log, NULL);
printf("program_log        : %s \n", program_log);

程序编译错误,是由于编码格式不对,修改为UNIX风格的编码之后,就不报错了。

猜你喜欢

转载自blog.csdn.net/heiheiya/article/details/81174111