快捷搜索:  汽车  科技

codeblocks怎么写数组(用Codeblocks进行OpenCL编程4)

codeblocks怎么写数组(用Codeblocks进行OpenCL编程4)设置参数,执行内核加载编译代码,创建内核调用函数创建命令队列创建数据缓冲区将数据上传到缓冲区

OpenCL程序分为两个部份,一部份是内核代码,负责具体算法。另一部份是主程序负责初始化OpenCL和准备数据。主程序加载内核代码,并按照即定方法进行运算。 内核代码可以写在主程序里面,也可以写在另一个文本文件里,有点像DX中的HLSL和OPENGL里的GLSL。哈哈,明白意思就行了。我们用第一种方法,把代码跟源程序分开写。

调用OpenCL大至分7个步骤

  1. 初始化OpenCL

  2. 创建上下文设备

  3. 创建命令队列

  4. 创建数据缓冲区

  5. 将数据上传到缓冲区

  6. 加载编译代码,创建内核调用函数

  7. 设置参数,执行内核

  8. 读回计算结果。

下面我们通过一个向量相加的程序来了解OpenCL 。有A,B两个四维向量,相加后值存在C向量里。OpenCL会根据用户提供的维数,将向量分解成多个任务分发给多个CPU计算。简单来说就是向量每个维同时相加。 源码分两部份

(一)vecadd.cl核心代码。

codeblocks怎么写数组(用Codeblocks进行OpenCL编程4)(1)

codeblocks怎么写数组(用Codeblocks进行OpenCL编程4)(2)

codeblocks怎么写数组(用Codeblocks进行OpenCL编程4)(3)

codeblocks怎么写数组(用Codeblocks进行OpenCL编程4)(4)

codeblocks怎么写数组(用Codeblocks进行OpenCL编程4)(5)

运行结果:

[1 2 3 4] [5 6 7 8] = [6 8 10 12]

猜您喜欢: