OpenCL异构计算(第2版)
已根据OpenCL 1.2修订和更新OpenCL编程权威指南, 来自于社区,服务于社区,全面揭示CPU、GPU和APU并行编程

作者:Benedict R. Gaster, Lee Howes, David R. Kaeli, Perhaad Mistry, Dana Schaa,张云泉、张先轶、贾海鹏、李焱、颜深根

定价:89元

印次:2-1

ISBN:9787302333951

出版日期:2013.08.01

印刷日期:2013.08.13

图书责编:文开琪

图书分类:零售

电子书
在线购买
分享
内容简介
作者简介
前言序言
资源下载
查看详情 查看详情 查看详情

《OpenCL异构计算》讲解了OpenCL和如何为复杂的异构系统(多核处理器、GPU和APU)进行并行编程。OpenCL是为支持多平台设计的,受行业广泛支持,有助于帮助读者为异构环境编写高性能应用程序。 本书由并行计算和OpenCL社区中的领头人所撰写,可帮助读者体验OpenCL从而了解大量基础的并行算法。主题涉及内存空间、优化技术、图形的互操作、性能扩展,调试和性能剖析等。此外,本书第2版新增了案例分析和实例,清楚阐述了高性能算法、异构系统的分布式运行机制、嵌入式域特定语言等。 本书读者对象为软件工程师、程序员、硬件工程师、高年级本科生/研究生,可供并行编程课程使用,包含有详细的案例,附有额外的网上练习和其他支持材料。 本书特色  第2版根据OpenCL 1.2最新开发动态进行修订,包括新的架构和功能。  新增主题有图像处理、数据管理和OpenCL语言与C/C++之外其他语言(比如Haskell)的权衡  解释OpenCL并行编程的原理和策略,从理解四大抽象模型开始,一直介绍到测试和调试完整的应用  覆盖图像处理、Web插件、粒子模拟、视频编辑和性能优化等主题  展示OpenCL如何映射到目标体系结构,并解释一些映射到各种体系结构的折衷方案  提出一系列基础编程技术,并通过若干个实例和案例分析来展示针对不同硬件平台的OpenCL扩展

AMD OpenCL架构师Benedict GasterAMD技术骨干Lee Howes东北大学计算机架构研究实验室(NUCAR)主管、信息安全保障研究院(IIA)联合主管、工程学院副院长David R. Kaeli东北大学电气与计算机工程系博士研究生Perhaad Mistry东北大学电气与计算机工程系博士研究生Dana Schaa 译者张云泉,中科院软件研究所并行计算实验室博士生导师,高性能计算及并行数值软件,并行计算模型,并行数据库, 海量数据并行处理.

我们身处异构世界 我们所在的世界本质上是异构的。如此多元的丰富性和细节难以用语言描述。与此同时,广泛不同的实体针对具体任务和环境进行的优化带来了某种程度的复杂性和相互影响。 在计算领域,丰富的异构计算系统有利于程序员选择最佳的硬件架构来执行手边的任务,或者选择恰当的任务来优化使用特定的硬件架构。在解决包含各种不同任务的计算问题时,异构系统在这两方面的灵活性表现得尤为明显。最近,计算机设计社区出现了一股构建异构系统的热潮。市面上正在涌现出一些新型的计算系统,它们由不同类别的架构组成。但这一进程的发展受阻,因为缺乏一个标准化的编程环境来统管通用框架内呈多样化态势的各种资源。 有关OpenCL OpenCL的发展旨在减轻程序员为异构系统编写应用程序的负担。OpenCL迎合了当前为给定架构上增加处理器核数这一发展趋势。OpenCL框架能够运行在多核CPU、DSP、FPGA、GPU以及异构加速处理单元上。该架构提供了广泛的方法来抽取内存系统和指令流中的并行性和效率。 OpenCL框架的多样性为设计人员提供了解决问题的方法——如果采用OpenCL规范进行设计,该解决方案的更新便能够与硬件架构的种类增多和发展保持同步。OpenCL标准中抽象和接口允许程序员使应用程序无缝地运行在一个或多个厂商的多种异构设备上。 本书的目标 目前为止,没有一本合适的教材能够帮助程序员和软件工程师利用OpenCL编程标准所具有的能力和灵活性。因此,我们尝试填补空白。为了这个目标,我们不想编写一本语法手册——有大量好的资源,程序员可以从中找开完整、最新的OpenCL语法描述。 本书试图向开发者或学生说...

目录
荐语
查看详情 查看详情
第1章  并行编程入门 1

引言 1

OpenCL 1

本书目标 2

并行思维 2

并发编程模型和并行编程模型 6

线程和共享内存 9

消息传递通信 9

不同粒度的并行 10

数据共享和同步 11

本书结构 11

参考文献 13

扩展阅读和相关网站 13

第2章  OpenCL简介 15

引言 15

OpenCL标准 15

OpenCL 规范 15

kernel和OpenCL执行模型 16

平台和设备 19

主机-设备之间的交互 19

执行环境 22

上下文 22

命令队列 22

事件 23

内存对象 24

flush命令和finish命令 26

新建一个OpenCL程序对象 26

OpenCL的kernel 27

内存模型 29

写kernel 31

向量相加实例的完整代码 32

使用C++封装API实现向量相加 35

小结 38

参考文献 38

第3章  OpenCL设备架构 39

引言 39

硬件权衡 39

性能随频率的提升及其限制 41

超标量执行 42

VLIW 42

SIMD和向量处理 45

硬件多线程 46

多核架构 49

集成:片上系统和APU 51

高速缓存层次和内存系统 52

架构设计空间 53

CPU设计 55

GPU体系结构 58

APU和类APU的设计 60

小结 62

参考文献 63

第4章  OpenCL基本实例 65

引言 65

应用实例 65

简单的矩阵相乘 65

图像旋转实例 71

图像卷积实例 75

编译OpenCL主机端应用 ... 查看详情

查看详情