摘要: 这篇文档主要是介绍了关于在Adreno GPUs上优化OpenCL代码的详细方法。文档中提供的大量信息能够帮助开发者理解OpenCL基础和Adreno结构,还有最重要的,掌握OpenCL优化技能。 OpenCL优化经常是具有挑战性的而且需要大量的尝试和试错。因为每个供应商对同一个任务可能都有他自己的 阅读全文
posted @ 2019-07-02 15:07 xiajingwang 阅读(263) 评论(0) 推荐(0) 编辑
摘要: 在这一章中,将会用一些例子来展示如何使用之前章节中讨论的技术来进行优化。除了一些小的简单代码片段的展示外,还有两个熟知的图像滤波处理,Epsilon滤波和Sobel滤波,将会使用之前章节中讨论的方法进行一步一步地优化。 9.1 应用程序的代码样本 9.1.1 提升算法 这个例子说明了如何简化代码来提 阅读全文
posted @ 2019-07-02 15:06 xiajingwang 阅读(923) 评论(0) 推荐(0) 编辑
摘要: 这章将会说明一些kernel优化的小技巧。 8.1 kernel合并或者拆分 一个复杂的应用程序可能包含很多步骤。对于OpenCL的移植性和优化,可能会问需要开发有多少个kernel。这个问题很难回答,因为这涉及到很多的因素。下面是一些准则: 内存和计算之间的平衡。 足够多的wave来隐藏延迟。 没 阅读全文
posted @ 2019-07-02 14:48 xiajingwang 阅读(1564) 评论(0) 推荐(0) 编辑
摘要: 内存优化是最重要也是最有效的OpenCL性能优化技术。大量的应用程序是内存限制而不是计算限制。所以,掌握内存优化的方法是OpenCL优化的基础。在这章中,将会回顾OpenCL的内存模型,然后是最优的实践方法。 7.1 在Adreno GPU中的OpenCL内存模型 OpenCL定义了四种内存类型—— 阅读全文
posted @ 2019-07-02 14:43 xiajingwang 阅读(1090) 评论(0) 推荐(0) 编辑
摘要: 对于许多kernels来说,工作组大小的调整会是一种简单有效的方法。这章将会介绍基于工作组大小的基础知识,比如如何获取工作组大小,为什么工作组大小非常重要,同时也会讨论关于最优工作组大小的选择和调整的一般方法。 6.1 获取最大的工作组尺寸 在运行完clBuildProgram后,使用下面的API函 阅读全文
posted @ 2019-06-21 10:11 xiajingwang 阅读(582) 评论(0) 推荐(0) 编辑
摘要: 这章提供了一个OpenCL应用程序优化的总体概述。更多的细节将会在接下来的章节中找到。 注意:OpenCL程序的优化是具有挑战性的。相比初始的程序开发工作,经常需要做更多的工作。 5.1 性能移植性 就像在2.4.2节中讨论的那样,在不同的架构之间,OpenCL一般都没有很好的性能移植性。针对某一个 阅读全文
posted @ 2019-06-21 10:01 xiajingwang 阅读(658) 评论(0) 推荐(0) 编辑
摘要: 这章将简要讨论一些开发Adreno OpenCL应用程序的基本要求,下面将会介绍如何调试和统计程序性能。 4.1 安卓平台上开发OpenCL程序 目前,Adreno GPU主要是在安卓操作系统和在部分Linux系统上支持OpenCL。为了开发带OpenCL的安卓app,开发者必须熟悉android软 阅读全文
posted @ 2019-06-21 09:56 xiajingwang 阅读(796) 评论(0) 推荐(0) 编辑
摘要: 翻译文档《Qualcomm ® Snapdragon ™ Mobile Platform OpenCL General Programming and Optimization》第3章 阅读全文
posted @ 2019-06-06 16:11 xiajingwang 阅读(1026) 评论(0) 推荐(0) 编辑
摘要: 翻译文档《Qualcomm ® Snapdragon ™ Mobile Platform OpenCL General Programming and Optimization》第2章 阅读全文
posted @ 2019-06-06 16:10 xiajingwang 阅读(573) 评论(0) 推荐(0) 编辑
摘要: 翻译文档《Qualcomm ® Snapdragon ™ Mobile Platform OpenCL General Programming and Optimization》第1章 阅读全文
posted @ 2019-06-05 19:16 xiajingwang 阅读(671) 评论(0) 推荐(0) 编辑