pdf 翻译】的更多相关文章

很偶然的机会,就需要接触到搜索,入门就是google trend已然超过solr的ES.在入门的时候找书的时候发现没有中文版的.于是自己开始翻译Elasticsearch Server,2nd Edition.应该是全球头一份了.看到微博上已经有出版社把英文书引过来,刚找到了人翻译这本书.我就先放出来自己翻的一部分.如果他真找到这里来了,就义务提供一下自己翻译的资源: 翻译是同步在我的Evernote里.贴出来到blog里样式都乱了.索性分享出来我的Evernote.去看去吧. 如果要引用或者转…
1 前言 1.1 目的 这篇文档的主要目的是,向原始设备制造商(OEMs),独立软件供应商(ISVs),第三方开发者们,提供在基于高通骁龙400系列.600系列,和800系列的手机平台和芯片上进行开发和优化Opencl应用程序的一些准则. 1.2 惯例 函数声明,函数名字,类型声明,属性,和代码示例会用不同的字体格式出现,比如#include 变量会用尖括号表示,比如 < number> 命令会用不同的格式出现,比如 copy a:*.* b:. 按钮和键盘名字会用粗体表示,比如点击Save…
2  Opencl的简介 这一章主要讨论Opencl标准中的关键概念和在手机平台上开发Opencl程序的基础知识.如果想知道关于Opencl更详细的知识,请查阅参考文献中的<The OpenCL Specification>.对于已经有OpenCL的基础知识和经验的开发者可以跳过这一章,直接跳到下一章阅读即可. 2.1 OpenCL背景和概述 Opencl是由Khronos group开发和维护的一个开源的和完全免费的标准,针对是如何在异构系统上进行跨平台的程序并行.OpenCL设计理念是帮助…
某某狗 https://www.fanyigou.com/tslg/share/4DO875ON.htm…
这篇文档主要是介绍了关于在Adreno GPUs上优化OpenCL代码的详细方法.文档中提供的大量信息能够帮助开发者理解OpenCL基础和Adreno结构,还有最重要的,掌握OpenCL优化技能. OpenCL优化经常是具有挑战性的而且需要大量的尝试和试错.因为每个供应商对同一个任务可能都有他自己的最好的实践方法,所以通读这个文档,并对Adreno GPUs的优化准则和方法有深入的了解都是很重要的.许多看起来次要的因素可能对性能有很大的影响.不幸地是,不亲自动手操作和实践会很难解决这些问题(比如…
在这一章中,将会用一些例子来展示如何使用之前章节中讨论的技术来进行优化.除了一些小的简单代码片段的展示外,还有两个熟知的图像滤波处理,Epsilon滤波和Sobel滤波,将会使用之前章节中讨论的方法进行一步一步地优化. 9.1 应用程序的代码样本 9.1.1 提升算法 这个例子说明了如何简化代码来提升性能.给定一张图片,对它进行8x8的box模糊滤波. 优化前的原始kernel代码: __kernel void ImageBoxFilter(__read_only image2d_t sourc…
这章将会说明一些kernel优化的小技巧. 8.1 kernel合并或者拆分 一个复杂的应用程序可能包含很多步骤.对于OpenCL的移植性和优化,可能会问需要开发有多少个kernel.这个问题很难回答,因为这涉及到很多的因素.下面是一些准则: 内存和计算之间的平衡. 足够多的wave来隐藏延迟. 没有寄存器溢出. 上面的要求可以通过执行以下操作实现: 如果这样做能够带来更好的数据并行,将一个大的kernel拆分成多个小的kernel. 如果内存的流量能够减少而且同样能保证并行性,可以将多个ker…
内存优化是最重要也是最有效的OpenCL性能优化技术.大量的应用程序是内存限制而不是计算限制.所以,掌握内存优化的方法是OpenCL优化的基础.在这章中,将会回顾OpenCL的内存模型,然后是最优的实践方法. 7.1 在Adreno GPU中的OpenCL内存模型 OpenCL定义了四种内存类型——也就是,global(全局的),local(本地的),constant(常量的),和private(私有的)内存,理解这些内存的不同点是基本要求.图7-1展示了四种内存概念上的设计图. 图7-1 Op…
对于许多kernels来说,工作组大小的调整会是一种简单有效的方法.这章将会介绍基于工作组大小的基础知识,比如如何获取工作组大小,为什么工作组大小非常重要,同时也会讨论关于最优工作组大小的选择和调整的一般方法. 6.1 获取最大的工作组尺寸 在运行完clBuildProgram后,使用下面的API函数可以查询设备的最大工作组尺寸. size_t maxWorkGroupSize; clGetKernelWorkGroupInfo(myKernel, myDevice, CL_KERNEL_WOR…
这章提供了一个OpenCL应用程序优化的总体概述.更多的细节将会在接下来的章节中找到. 注意:OpenCL程序的优化是具有挑战性的.相比初始的程序开发工作,经常需要做更多的工作. 5.1 性能移植性 就像在2.4.2节中讨论的那样,在不同的架构之间,OpenCL一般都没有很好的性能移植性.针对某一个平台,特别是针对某个GPU优化的OpenCL应用程序,移植到Adreno GPU上后可能没有相同的性能.编程指南和其他OpenCL厂商的最佳做法,可能对Adreno GPU完全不适用.因此,针对在Ad…