面向未来计算-异构开发技术社区

博文

1Android平台利用OpenCL框架实现并行开发初试

在近些年兴起的移动平台,诸如智能手机、平板电脑等,也日渐重视GPU在其应用中的作用。本文通过Sobel滤波这样的小程序来完成基于OpenCL实现的Android平台并行化。

0OpenCL常量解析

CL_DEVICE_MAX_WORK_ITEM_SIZES :线程分组的尺寸限制 CL_DEVICE_MAX_WORK_GROUP_SIZE:线程分组中所能包含的最大线程数 Thread blocks have maximum dimensions: CL_DEVICE_MAX_WORK_ITEM_SIZES,Think of laying out your threads in a grid, you can't have a row with more than 512 threads. You

0OpenCL 操作context

本程序主要测试: context = clCreateContext(NULL, 1, &device;, NULL, NULL, &err;); 创建一个context clRetainContext(context);//Context的reference +1 clReleaseContext(context);//Context的reference -1

0 OpenCL 查看设备信息

下面是注释程序,目的就是查看自己计算机上所有支持OpenCL的设备,并打印信息。 主函数调用run()就可以运行了。要设置请看我另一篇OpenCl设置文章。

0 AMD OpenCL例子阅读笔记系列之Radix_Sort(六)

终于到最后出结果的时刻了,有点小激动呢哼。通过5的分析,实际上再看最后一个内核函数就会很轻松了。最后一个内核函数是permute函数,以64*256个元素为组进行处理。每个work-item处理256个数据。在单倍情况下就只有64*256个数据处理,这时候全局和局部都是64,一维情况。

0AMD OpenCL例子阅读笔记系列之Radix_Sort(五)

首先我们先整理下我们目前通过上面几讲的内容得到的结果: 1. sumBufferin:组加和结果 2. summaryBUfferout:组加和结果进行偏移量整理的结果 3. scanedHistogramBinBuf:以组为单位进行偏移量计算结果 那么这些结果与最后我们需要的偏移量有什么关系?

0 AMD OpenCL例子阅读笔记系列之Radix_Sort(四)

在三中我们又得到了两个中间结果sumBufferin以及scanedHistogramBinsBuf两个结果。那么接下来如何呢?我们继续循着程序执行路径往下看,因为numGroups=64,所以runFixOffsetKernel中间的if部分判断的内容将不会执行。也就是我们说的单倍形式下只需要3个内核。

0AMD OpenCL例子阅读笔记系列之Radix_Sort(三)

在完成了二中的histogramBinsBuf的统计后,需要对其进行进一步的处理以得到基数排序的最终偏移信息。这个过程是本例子中最复杂的一部分。其中根据分组的情况包含3个内核调用或者5个内核调用。

0AMD OpenCL例子阅读笔记系列之Radix_Sort(二)

因为Radix Sort本身比较大,这里分块对系统做阐述。在上一个博文中,已经向大家介绍了该例子的主机部分。这里向大家重点讲述下内核的并行思想。至于内存对象及调用顺序等需要大家结合AMD的例子来看,都弄到博文会很长。 今天来讲一下例子中的比较简单的内核函数应用histogram内核应用。

0AMD OpenCL例子阅读笔记系列之Radix_Sort(一)

(radix sort)则是属于“分配式排序”(distribution sort),基数排序法又称“桶子法”(bucket sort)或bin sort,顾名思义,它是透过键值的部份资讯,将要排序的元素分配至某些“桶”中,藉以达到排序的作用,基数排序法是属于稳定性的排序,其时间复杂度为O (nlog(r)m),其中r为所采取的基数,而m为堆数。

0opencv下HaarClassifierCascade的简单人脸检测/人脸识别

接触Opencv一段时间了,最近导师一直让我看人脸识别相关的东西,看了这么多大牛写的人脸识别、追踪,一直没有自己动手写过,花了点时间写了一个简单的,单目标下能识别到人脸没问题,多目标下目前没测试,理论上应该可以(多目标识别已测试,识别成功)。

0OpenCL从文本文件构建程序对象

Opencl创建程序对象主要有两种方式:由文本文件构建和由二进制文件构建。本文主要给出从文本文件构建程序对象的方法。 从文本文件构建程序对象的API函数是: extern CL_API_ENTRY cl_program CL_API_CALL

立即注册,成为异构开发社区会员!

免费获取社区newsletter,优先获取技术支持和活动信息,独享社区 贡献积分政策

特别推荐

你问我答

您所提出的问题,需要管理员审核后才能展示。发布规则

每月红人榜

  • qq_38214411

    所得积分:10

  • 2speedy201610
  • 3masanye57910

微博活动