
OpenCL 编程实践
文章平均质量分 88
Bob_Dong
这个作者很懒,什么都没留下…
展开
-
No.3 分离 OpenCL 内核
为了便于设备端 OpenCL 代码的编辑和调试,在 No.1_HelloOpenCL 的基础上,将设备端的内核代码从主机代码分离,存放到单独的 program.cl 文件中。原创 2017-03-17 19:21:58 · 716 阅读 · 0 评论 -
No.7_1 OpenCL 同步——主机端同步
OpenCL 主机端同步原创 2017-03-28 23:02:38 · 1889 阅读 · 1 评论 -
No.1 HelloOpenCL
使用 OpenCL 实现将大写字母转换为小写字母,然后输出。例如,输入字符串为Hello OpenCL, I like U,经转换后的输出是hello opencl, i like u。原创 2017-03-15 22:38:49 · 907 阅读 · 0 评论 -
No.7_7 OpenCL 同步——命令队列
内核代码的执行以及内存对象的操作,需要通过将 OpenCL 命令提交到命令队列来完成。在大多数情况下,我们只有一个命令队列,并且命令队列中的命令在执行时按照函数调用的顺序。但是在某些场景下并非如此……原创 2017-04-14 14:50:09 · 4044 阅读 · 14 评论 -
No.7_2 OpenCL 同步——事件回调函数
在调用 clEnqueueXXXX 一系列函数时,会传递一个指向 cl_event 对象的指针。该指针接收事件对象,用来标识执行的命令。可以使用该事件对象来查询命令的执行状态,例如命令是否已经执行完成;该事件对象也可以用来在其它命令执行前等待对应的命令执行完成。原创 2017-04-05 20:10:41 · 2110 阅读 · 5 评论 -
No.6_3 OpenCL 图像采样器——图像旋转(二)
在 Ubuntu 系统环境下,使用 OpenCL 对图像执行旋转操作。原创 2017-03-22 14:07:56 · 2022 阅读 · 0 评论 -
No.6_2 OpenCL 图像采样器——图像旋转(一)
该程序对图像旋转一定的角度,角度大小可通过调节参数来控制。原创 2017-03-22 11:35:09 · 1826 阅读 · 0 评论 -
No.2 OpenCL 程序构建
OpenCL 内核程序在运行之前,需要通过编译、链接等步骤。由于我们的疏忽,程序的编码往往会存在缺陷,导致程序运行异常。其中有些错误在构建时就能确定,这时就要找到导致程序构建错误的地方,再逐一纠正。原创 2017-03-16 21:09:48 · 916 阅读 · 0 评论 -
No.6_1 OpenCL 图像采样器——图像裁剪
使用 OpenCL 采样器,从原始图像中截取部分矩形区域(左下角区域开始)。原创 2017-03-21 19:36:29 · 4765 阅读 · 1 评论 -
No.7_6 OpenCL 同步——异步拷贝
OpenCL C 编程语言内置了类似 memcpy 的函数,内核代码通过调用该函数,可以在局部内存和全局内存区域之间拷贝数据。原创 2017-04-10 19:12:16 · 1875 阅读 · 0 评论 -
No.7_5 OpenCL 同步——原子操作
当多个线程在不同处理器上执行,同时访问相同内存时会存在竞态条件,使用原子操作可以避免竞争。原创 2017-04-09 18:21:53 · 4969 阅读 · 4 评论 -
No.7_4 OpenCL 同步——工作项同步
在 OpenCL 中多个工作项会并行执行,当一个工作项对某个存储空间写入数据后,其它的工作项从该地址读取数据时,该如何保证后面工作项读取的数据是前一个工作项写入的数据。这时,就涉及到了工作项之间的同步。原创 2017-04-08 11:02:38 · 3908 阅读 · 1 评论 -
No.7_3 OpenCL 同步——事件同步
事件对象,用于两个或多个事件之间同步。原创 2017-04-08 09:53:23 · 1369 阅读 · 0 评论 -
No.5 YUV420 格式图像旋转
分别在 CPU 上使用 C 语言和在 GPU 上使用 OpenCL 对一张 YUV420p 的图像顺时针旋转 90 度,比较两者之间的性能差异。原创 2017-03-19 18:15:13 · 3071 阅读 · 4 评论 -
No.4_1 OpenCL 编译链接(一)
对于功能比较丰富的程序,在实现的时候,为了便于维护,可以将不同的功能放到不同的头文件中,再统一编译、链接。原创 2017-03-18 12:08:02 · 1392 阅读 · 0 评论 -
No.4_2 OpenCL 编译链接(二)
本文是上一篇 No.4_1_OpenCLCompile 的第二部分,把功能实现放到单独的头文件中。原创 2017-03-18 12:55:16 · 771 阅读 · 0 评论 -
No.8 OpenCL 性能分析——内存带宽
执行 Profiling 操作来获取时间戳数据,以计算内存拷贝带宽。原创 2017-06-01 16:53:24 · 2945 阅读 · 17 评论