OPENCL异构计算.pdf

所需积分/C币:50 2018-05-18 13:37:28 22.88MB PDF
收藏 收藏
举报

《OpenCL异构计算》讲解了OpenCL和如何为复杂的异构系统(多核处理器、GPU和APU)进行并行编程。OpenCL是为支持多平台设计的,受行业广泛支持,有助于帮助读者为异构环境编写高性能应用程序。, 本书由并行计算和OpenCL社区中的领头人所撰写,可帮助读者体验OpenCL从而了解大量基础的并行算法。书中探索了内存空间、优化技术、图形的互操作、性能扩展,调试和性能剖析等。, 本书读者对象为软件工程师、程序员、硬件工程师、高年级本科生/研究生,可供并行编程课程使用,包含有详细的案例,附有额外的网上练习和其他支持材料。, 本书特色, · 解释OpenCL并行编程的原理和策略,从理解四大抽象
OpenCL异构计算 BenedictR. Gaster Lee Howes David R. Kaeli Perhaad mistry Dana Schaa 者 张云泉张先轶龙国平姚继锋译 清华大学出版社 北京 内容简介 《 OpenCL异构计算》提供 OpenCL的第一手资料,详尽阐述了如何在异构环境下进行并行编程。第 章首先介绍如何在并行系统下编程,定义异构编程需要理解的概念。第2~4章循序渐进地介绍 OpenCL 的基木架构。第5章和第6章对这些概念加以扩展,旨在帮助读者更好地理解。第7-10章提供4个更复 杂的案例学习,让读者理解到 OpenCL具有广泛的应用。第11-13章锁定高级主题展开讨论 本书可帮助学生和研究人员更好地理解通用异构计算(尤其是 OpenCL提供的解决方案),尤其是适合 不同纤验水平的学生,可以作为 OpenCL课程的教材或其他课程的参考,例如并行编程课程和高级课程。 Heterogeneous Computing with OpenCL, Ist Edition Benedict R Gaster, Lee Howes, David R. Kaeli, Perhaad Mistry, Dana Schaa SBN:978-0123877666 Copyright@2012 Advanced Micro Devices, Inc. Published by Elsevier(Inc). All rights reserved Authorized Simplified Chinese translation edition published by Elsevier (Singapore) Pte Ltd Press and Tsinghua University CopyrightC2012 by Elsevier(Singapore) Pte Ltd and Tsinghua University Press. All rights reserved. Published in China by Tsinghua University Press under special arrangement with Elsevier (Singapore)Pte Ltd.. This edition is authorized for sale in China only, excluding Hong Kong SAr and Taiwan. Unauthorized export of this edition is a violation of the Copyright Act. Violation of this Law is subject to Civil and Criminal Penalties 木书简体中文版由 Elsevier (Singapore))PeLd授予清华大学出版社在中国大陆地区(不包括香港、澳门 本书封底贴有 Elsevier防伪标签,无标签者不得销售。 版权所有,侵权必究。侵权举报电话:010-6278298913701121933 北京市版权局著作权合同登记号图字:01-2012-2719 图书在版编目CP)数据 OpenCL异构计算览斯特( faster. R.B.)等著:张云泉等译,一北京:清华大学出版社,2012.6 名原文: Heterogeneous Computing with OpenCL ISBN978-7-302-28685-1 1.①O…Ⅱ.①贾…②张…Ⅲ①图形软件Ⅳ.①TP391.41 中国版本图书馆CIP数据核字(2012)第083719号 责任编辑:文开琪 装帧设计:杨玉兰 责任校对:周剑云 责任印制:李红英 出版发行:清华大学出版社 pogtie:http://www.tup.comcn,http://www.wqbook.com 地址:北京清华大学学研大厦A座 邮编:100084 社总机:010-62770175 邮购:010-62786544 投稿与读者服务:010-62776969,Service@tup.tsinghua.edu.cn 质量反馈:010-62772015,zhiliang(@tup.tsinghua.edu.cn 课件下载http://www.tup.comcn,010-62791865 印刷者:清华大学印刷厂 装订者:三河市新茂装订有限公司 经销:全国新华书店 开本:185mm×230mm 印张:18.75 字数:390千字 版次:2012年6月第1版 印次:2012年6月第1次印刷 印数:1~4000 定价:76.00元 产品编号:045681-01 推荐序1 陈国良 中国科学院院1 我国超级计算机研制近几年奋起直追。2009年,天河一号(TH-1)的发布,使得我国 成为继美国之后世界上第二个能够独立硏制千万亿次峰值超级计算机的国家。2010年9 月发布的国产天河一号A千万亿次超级计算机通过采用先进的CPU+ GPGPU的异构混合 加速体系架构,以2.56 Pflops的 Linpack性能夺取2010年11月国际 HPC TOP500排行 榜的第一名,创下中国国产超级计算机历史上首次夺得世界冠军的佳绩。同时,我国安 装的超级计算机的上榜数量也首次超越日本和欧盟,排名世界第二,仅次于美国。目前, 中国 HPC TOP100排行榜中机器的平均 Linpack性能为120 Tflops,是2010年63 Tflops 的19倍,而国际上平均性能接近120Tps的时间为2011年6月(117.76 Tflops),我 国与世界平均性能差距从原来保持了很久的一年半差距,快速缩短为半年的差距!这标 志着我国超级计算机系统的整机集成水平步入国际领先行列,且在一些核心硬件技术上 取得了关键性的突破。2011年底的国际 HPC TOP500排行榜中,前十名中的第二、四和 第五名都采用了 GPGPU异构加速体系架构——500台系统里有39台系统采用了 GPGPU 异构加速,由此可见,异构计算作为一种新的计算机体系架构逐渐成为主流。 每一次超级计算机体系结构的变化,都会伴随着并行程序设计环境和语言的进化。 为了高效地为分布式存储和共享存储的并行计算机编写并行程序,工业界在总结众多各 类并行语言的优点的基础上,分别提出了目前已经被广泛接受和使用的并行程序开发环 境MPI和 OpenMP工业界标准。这两个标准并行程序设计环境和语言的提出和推广普及, 极大地提升了大规模并行应用软件的开发效率,降低了开发成本,确保了软件在不同厂 家机器之间的可移植性和高性能。随着当前国际上主流体系架构逐渐向异构混合并行的 转变,如何为这一新体系架构设计高效的且被广为接受的工业界标准并行程序开发环境 和语言,成为一个迫切需要解决的问题。 OpenCL正是在这一背景下由 Khronos国际组织提出,并得到众多硬件和软件厂商 的支持,成为工业界异构计算的标准语言。虽然目前比较流行的异构计算的语言是CUDA 语言,但是,我们相信,随着时间的推移,正如当年早期最流行的PVM分布式存储并 目录 第1章并行编程入门….1 新建一个 OpenCL程序对象…26 引言 OpenCL的 kernel 27 内存模型… 29 OpenCL 编写 kernel 木书目标 向量相加实例的完整代码…32 并行思维 小结 39 并发编程模型和并行编程模型…….6 参考文献 线程和共享内存 消息传递通信… 9第3章 OpenCL设备架构…… 不同的并行粒度… 0 引言……141 数据共享和同步 硬件权衡…… 41 木书结构 性能随频率的提升及其限制……….43 参考文献 12 超标量执行…… 扩展阅读和相关网站 VLIW 第2章 OpenCL简介 SIMD和向量处理 …47 .15 硬件多线程… 引言 15 多核架构… 51 OpenCL标准… .15 集成:片上系统和APU OpenCL规范….15 高速缓存层次和内存系统……54 kernel和 OpenCL执行模型………16 架构设计空间.…5 平台和设备 19 CPU设计 主机-设备交互… .19 GPU体系结构 执行环境 2 APU和类APU的设计……63 上下文 小结……64 命令队列 22 参考文献 事件 第4章 OpenCL基本实例 内存对象 23 67 fush命令和 finish命令…26 XVI OpenCL异构计算 应用实例…67 OpenCL 4E: AMD RADEON HD6970 简单的矩阵相乘…67 GPU上的实现 128 图像卷积实例.7 多线程和内存系统…130 小结 85 基于 clause的SIMD执行……132 资源分配 137 第5章 OpenCL的并发与执行模型.….87 OpenCL的内存性能 139 87 OpenCL全局内存… 139 kernel, work item, workgroup Ful 本地内存—软件管理的 cache…142 执行域…87 小结…148 OpenCL同步: kernel, fence和 barrier.90 参考文献…149 队列与全局同步 第7章 OpenCL案例学习1:卷积…151 OpenCL内存一致性 引言……151 事件… ,,,,, 计算卷积的 kernel… 151 命令 barrier与 marker…100 选择合适的 workgroup大小…11 主机端内存模型 将数据缓存到本地内存 ,154 buffer对象 10 执行卷积 Image对象 …13 小结 16l 设备端内存模型 ,l15 代码清单….162 设备端宽松的内存一致性…116 主机端代码… 全局内存 .l17 kernel代码 .166 本地内存…..19 参考文献 171 常量内存… 私有内存…12 12第8章 OpenCL秦例学习2: 视频处理…… 173 小结 122 第6章 OpenCL在 CPU/GPU 引言...1173 获得视频帧 173 平台上的实现… .123 CPU上的解码 174 引言…… 123 在GPU上解码视频……175 OpenCL在 AMD PHENOM II X6上的 在 OpenCL中处理一个视频……………179 实现 在多个视频上处理多个不同efet.…180 目录Xl 事件链…180 粒子模拟的 kernel代码….206 最终输出显示到屏幕……… 181 第11章 OpenCL扩展… 211 OpenCL/OpenGL协同工作能力…181 小结 …184 引言… 2l1 扩展机制概览…… …211 第9章 OpenCL案例学习3: 设备拆分 214 直方图185 双精度 引言… 185 参考文献…… 选择适量的work- group… 185 第12章 OpenCL的性能剖析和 选择最优的work- group大小…186 调试 235 全局内存访存优化. 187 使用原子操作计算局部直方图189 引言……1235 木地内存访存优化 基于事件的剖析…236 局部直方图的规约……192 AMD APP Profiler..…238 全局规约 193 收集 OpenCL程序轨迹……239 完整的 kernel代码……193 收集 OpenCL GPU Kernel性能 性能和小结… 计数器 1242 第10章 OpenCL案例学习4 AMD APP KernelAnalyzer…… 混合粒子模拟…197 演示 AMD APP Profiler…245 启动 AMD APP Profiler.… 245 引言… 4197 使用应用程序的轨迹数据 计算概览 197 以发现性能瓶颈 245 GPU实现 …200 使用GPU性能计数器发现 kernel的 创建 buffer 200 性能瓶颈…… …247 构造加速结构 ,,,,, 201 调试 OpenCL应用程序 248 计算碰撞… 201 gDEBugger概览……… 249 合成 202 使用 dEBUgger调试并行 OpenCl CPU实现 202 应用程序…249 负载均衡… 203 性能和小结…204 AMD printf扩展…251 253 生成均匀网格的 kernel代码 205 小结 XVIll OpenCL异构计算 第13章 WebCL 255 Web照片编辑器….264 讨论 引言…255 小结 …268 框架设计 256 参考文献 268 WebCL实验性实现 257 扩展阅读和相关网站… 26 Firefox扩展. 257 连接 JavaScript和 OpenCL 258索引. 271 WebCl动手练习 260 第1章 并行编程入门 引言 当前计算环境变得越来越多样化,需要充分利用包括多核微处理器、CPU、数字信 号处理器(DSP)可重构硬件(FPGA)和图形处理单元(GPU的能力。面对如此大的异构性, 在众多硬件体系架构上开发高效的软件,给编程社区带来了诸多挑战。 通常,应用包含了大量工作负载行为,从控制密集型(搜索、排序和分析等)到数据 密集型(图像处理、模拟和建模,数据挖掘等)。此外,还包括计算密集型应用(迭代方法、 数值方法和金融建模等),这类应用的吞吐量严重依赖于底层硬件的计算效率。每一类工 作负载一般都能在某种特定类型的硬件体系架构上获得最高的运行效率,但是没有一种 硬件架构能够让所有类别的工作负载都取得最优的运行效率。而且,大部分应用都包含 多种工作负载的特征。例如,控制密集型应用在超标量CPU上运行得更快,因为CPU 使用大量的芯片面积来进行分支预测。数据密集型应用在向量架构上运行更快,同样的 操作可以在多个数据元素上并行执行。 OpenCL 开放计算语言 Open Computing Language, OpenCL)是一个由非盈利性技术联盟 Khronos Group进行管理的异构编程框架。 OpenCL框架用于开发可以在各种设备上运行 的应用程序。 OpenCL支持多种层次的并行,可以高效映射到同构或异构的体系结构上, 比如单个或者多个CPU、GPU和其他类型的设备等。 OpenCL提供了一个系统中设备端 语言和主机端控制层两方面的定义。设备端语言可以高效映射到众多的内存系统架构上。 主机端语言的目标是以较低开销来高效管理复杂的并发程序。两者共同为开发人员提供 种从算法设计高效过渡到实现的途径

...展开详情
试读 127P OPENCL异构计算.pdf
立即下载 低至0.43元/次 身份认证VIP会员低至7折
    一个资源只可评论一次,评论内容不能少于5个字
    是否龙磊磊真的一无所有 还行吧。可以的。参考一下
    2020-07-14
    回复
    • 分享精英

      成功上传11个资源即可获取
    关注 私信 TA的资源
    上传资源赚积分,得勋章
    最新推荐
    OPENCL异构计算.pdf 50积分/C币 立即下载
    1/127
    OPENCL异构计算.pdf第1页
    OPENCL异构计算.pdf第2页
    OPENCL异构计算.pdf第3页
    OPENCL异构计算.pdf第4页
    OPENCL异构计算.pdf第5页
    OPENCL异构计算.pdf第6页
    OPENCL异构计算.pdf第7页
    OPENCL异构计算.pdf第8页
    OPENCL异构计算.pdf第9页
    OPENCL异构计算.pdf第10页
    OPENCL异构计算.pdf第11页
    OPENCL异构计算.pdf第12页
    OPENCL异构计算.pdf第13页
    OPENCL异构计算.pdf第14页
    OPENCL异构计算.pdf第15页
    OPENCL异构计算.pdf第16页
    OPENCL异构计算.pdf第17页
    OPENCL异构计算.pdf第18页
    OPENCL异构计算.pdf第19页
    OPENCL异构计算.pdf第20页

    试读已结束,剩余107页未读...

    50积分/C币 立即下载 >