
OpenCL
CV码
学习、思考、沉淀
展开
-
opencl学习(二)
看了一些结构介绍后,开始跟着别人的足迹写代码,先写大家经常起步的简单一维数组相加的opencl代码,以此熟悉opencl代码结构。此代码是在freescale的i.MX6q上跑的,通过交叉编译工具,加上opencl库和头文件等编译选项进行编译。#include #include #include #include #include #include using namespac原创 2013-08-21 10:20:34 · 2725 阅读 · 1 评论 -
opencl学习(七)——API-platform相关
采用OpenCL编程进行异构计算,更多的时间是在设计和优化运行在device端的cl文件,而对host端的编程,即对OpenCL API的使用了解不深入。打算后面有机会再来总结一下host端API的应用。在OpenCL编程中,第一步就是要获取Platform的ID,后面计算的代码都是基于此平台进行的。因此先来介绍Platform的相关API。1.获取可用平台列表的API clGetPlat原创 2013-11-19 11:20:26 · 2195 阅读 · 0 评论 -
opencl学习(五)
opencl内核函数中内存空间限定符的使用原创 2013-11-15 15:56:42 · 4013 阅读 · 0 评论 -
opencl学习(六)——local memory使用
由于统一个workgroup中的所有work-item可以共用本地内存(local),也可以通过它进行同组work-item之间的通信,因此我们整理一下local memory的用法。本地内存可以在kernel内部定义,也可以通过参数传递。下面就来说明一下这两种方式。下面是一段来自《opencl异构计算》的代码:__kernel void localAccess( __global原创 2013-11-16 11:26:34 · 11232 阅读 · 0 评论 -
OpenCL kernel优化——线程数目的确定
OpenCL kernel映射到具体的硬件架构上时,work-item和workgroup的数量会受到一些限制。算法设计、硬件架构的特点及内存大小等,都可能影响同时运行在硬件架构上的workgroup和work-item的数量。原创 2013-10-10 11:59:52 · 6857 阅读 · 3 评论 -
opencl学习(四)
由于opencl内核运行时,clEnqueueNDRangeKernel的第5、6个参数global大小和local大小影响计算效率,甚至执行成功情况,想深入了解一下相关的几个参数。参考平台上运行clinfo的输出,最终在CL_DEVICE_MAX_WORK_GROUP_SIZES这个参数上难以解释。查了很多资料,多数只是说明并不合理。从查阅资料中总结出一下内容,在此分享。信息查询函数原创 2013-08-23 10:18:56 · 14577 阅读 · 3 评论 -
OpenCL优化应用项目
OpenCL优化应用项目1、计算机视觉相关基于局部域考察的图像模糊化算法的加速实现(表面模糊,高斯模糊)图像模糊化图像模糊化算法的特点是根据被考察点的局部域特征对被考察点的颜色进行调整,由于各被考察点的局部域相对独立,这类算法比较适合于用GPU进行优化,我们通过OpenCL并行编程,并行处理各图像点的局部域,能将图像模糊化的速度提高5倍以上。基于Haar Casc转载 2013-08-15 09:08:30 · 6047 阅读 · 3 评论 -
OpenCL学习笔记(一)
今天看些了入门的东西,对opencl四个模型:平台模型、执行模型、内存模型、程序模型。一知半解,不做评论,只是记录。建立一个opencl程序,一般有一下六步:1.查询并选择一个平台;2.查询设备;3.建立一个上下文;4.建立一个命令序列;5.读/写设备;6.执行内核.其中前三步是平台层,后三者为执行层。原创 2013-08-08 22:25:24 · 2020 阅读 · 0 评论 -
opencl学习(三)
opencl学习任务紧迫,仅看文字资料速度太慢,还是跟着大家一起通过尝试不同代码,边学边学。昨天写了把上次写的一维数组相加的做了修改,变成二维数组相加。初学者就是这么无聊,大家见谅!还是在freescale的i.MX6q上跑的,这个芯片的GPU中work group大小最大为1024,因此一维数组元素个数最大就是1024,二维中也只能width * height #include #incl原创 2013-08-21 10:37:02 · 4132 阅读 · 1 评论 -
opencl架构模型
1 异构计算、GPGPU与OpenCL OpenCL是当前一个通用的由很多公司和组织共同发起的多CPU\GPU\其他芯片 异构计算(heterogeneous)的标准,它是跨平台的。旨在充分利用GPU强大的并行计算能力以及与CPU的协同工作,更高效的利用硬件高效的完成大规模的(尤其是并行度高的)计算。在过去利用GPU对图像渲染进行加速的技术非常成熟,但是我们知道GPU的芯片结构擅长大规模转载 2013-08-08 16:07:10 · 2155 阅读 · 0 评论 -
opencl学习(八)——API-device相关
在OpenCL编程中,获取到Platform的ID后,第二步就是要获取device的ID,异构计算中主要的执行单元就是这些device。下面介绍device的相关API。1.获取可用device列表的API clGetDeviceIDs:cl_int clGetDeviceIDs( cl_platform_id platform, cl_device_type device_t原创 2013-11-19 12:36:35 · 2379 阅读 · 0 评论