No.4_2 OpenCL 编译链接(二)

概述

本文是上一篇 No.4_1_OpenCLCompile 的第二部分,把功能实现放到单独的头文件中。完整代码参见 No.4_2_OpenCLCompile,输出结果如下:

xbdong@xbdong-opencl:~/Project/github/OpenCL/No.4_2_OpenCLCompile$ ./OpenCLCompile
[Platform Infomation]
platform name: AMD Accelerated Parallel Processing

[Device Infomation]
device name: Baffin

[Result]
lower case is: hello opencl, i like u

实现

1.创建头文件

新建 lower.cl 文件,在该文件中添加 lower 函数,该函数实现将大写字母转换为小写字母。

char lower(char val)
{
    return val+32;
}

2.头文件程序对象

创建头文件对应的程序对象,在编译时使用。

cl_program header_program;

/* header program */
program_buf = package_program("lower.cl");
if (!program_buf) {
    printf("alloc program buffer fail:lower.cl\n");
    exit(EXIT_FAILURE);
}

// create program
header_program = clCreateProgramWithSource(context, 1, (const char **)&program_buf, NULL, &err);
if (header_program == NULL) {
    printf("create header program fail\n");
    exit(EXIT_FAILURE);
}
free(program_buf);

3.编译

err = clCompileProgram(program, 1, &device, NULL,
    1, &header_program, &header_name, NULL, NULL);

相关参数在 No.4_1_OpenCLCompile 中描述,这里不在赘述。编译后的程序对象 program 在链接时使用。由于在链接时,只有一个程序对象输入,这和 No.4_1_OpenCLCompile 中一样,故无需对 clLinkProgram 的函数参数进行修改。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值