《OpenCL异构计算》讲解了OpenCL和如何为复杂的异构系统(多核处理器、GPU和APU)进行并行编程。OpenCL是为支持多平台设计的,受行业广泛支持,有助于帮助读者为异构环境编写高性能应用程序。
本书由并行计算和OpenCL社区中的领头人所撰写,可帮助读者体验OpenCL从而了解大量基础的并行算法。书中探索了内存空间、优化技术、图形的互操作、性能扩展,调试和性能剖析等。
本书读者对象为软件工程师、程序员、硬件工程师、高年级本科生/研究生,可供并行编程课程使用,包含有详细的案例,附有额外的网上练习和其他支持材料。
本书特色
· 解释OpenCL并行编程的原理和策略,从理解四大抽象模型开始,一直介绍到测试和调试完整的应用
· 覆盖图像处理、Web插件、粒子模拟、视频编辑和性能优化等主题
· 展示OpenCL如何映射到目标体系结构,并解释一些映射到各种体系结构的折衷方案
· 提出一系列基础编程技术,并通过若干个实例和案例分析来展示针对不同硬件平台的OpenCL扩展
本书配套网站提供本书相关信息、各章包含的示意图、范例代码、附加示例及勘误信息等,网址如下:
http://www.heterogeneouscompute.org/?page_id=7
《opencl异构计算》
第1章 并行编程入门 1
引言 1
opencl 1
本书目标 2
并行思维 2
并发编程模型和并行编程模型 6
线程和共享内存 9
消息传递通信 9
不同的并行粒度 10
数据共享和同步 11
本书结构 11
参考文献 12
扩展阅读和相关网站 13
第2章 opencl简介 15
引言 15
opencl标准 15
opencl 规范 15
kernel和opencl执行模型 16
平台和设备 19
.主机-设备交互 19
执行环境 21
上下文 22
命令队列 22
事件 23
内存对象 23
flush命令和finish命令 26
新建一个opencl程序对象 26
opencl的kernel 27
内存模型 29
编写kernel 31
向量相加实例的完整代码 32
小结 39
参考文献 39
第3章 opencl设备架构 41
引言 41
硬件权衡 41
性能随频率的提升及其限制 43
超标量执行 44
vliw 44
simd和向量处理 47
硬件多线程 48
多核架构 51
集成:片上系统和apu 53
高速缓存层次和内存系统 54
架构设计空间 55
cpu设计 56
gpu体系结构 60
apu和类apu的设计 63
小结 64
参考文献 65
第4章 opencl基本实例 67
引言 67
应用实例 67
简单的矩阵相乘 67
图像卷积实例 77
小结 85
第5章 opencl的并发与执行模型 87
引言 87
kernel,work_item,workgroup和
执行域 87
opencl同步:kernel,fence和barrier 90
队列与全局同步 94
opencl内存一致性 96
事件 96
命令barrier与marker 108
主机端内存模型 109
buffer对象 110
image对象 113
设备端内存模型 115
设备端宽松的内存一致性 116
全局内存 117
本地内存 119
常量内存 121
私有内存 122
小结 122
第6章 opencl在cpu/gpu
平台上的实现 123
引言 123
opencl在amd phenom ii x6上的
实现 123
opencl在amd radeon hd6970
gpu上的实现 128
多线程和内存系统 130
基于clause的simd执行 132
资源分配 137
opencl的内存性能 139
opencl全局内存 139
本地内存——软件管理的cache 142
小结 148
参考文献 149
第7章 opencl案例学习1:卷积 151
引言 151
计算卷积的kernel 151
选择合适的workgroup大小 151
将数据缓存到本地内存 154
执行卷积 160
小结 161
代码清单 162
主机端代码 162
kernel代码 166
参考文献 171
第8章 opencl案例学习2:
视频处理 173
引言 173
获得视频帧 173
cpu上的解码 174
在gpu上解码视频 175
在opencl中处理一个视频 179
在多个视频上处理多个不同effect 180
事件链 180
最终输出显示到屏幕 181
opencl/opengl协同工作能力 181
小结 184
第9章 opencl案例学习3:
直方图 185
引言 185
选择适量的work-group 185
选择最优的work-group大小 186
全局内存访存优化 187
使用原子操作计算局部直方图 189
本地内存访存优化 190
局部直方图的规约 192
全局规约 193
完整的kernel代码 193
性能和小结 196
第10章 opencl案例学习4:
混合粒子模拟 197
引言 197
计算概览 197
gpu实现 200
创建buffer 200
构造加速结构 201
计算碰撞 201
合成 202
cpu实现 202
负载均衡 203
性能和小结 204
生成均匀网格的kernel代码 205
粒子模拟的kernel代码 206
第11章 opencl扩展 211
引言 211
扩展机制概览 211
设备拆分 214
双精度 225
参考文献 233
第12章 opencl的性能剖析和
调试 235
引言 235
基于事件的剖析 236
amd app profiler 238
收集opencl程序轨迹 239
收集opencl gpu kernel性能
计数器 242
amd app kernelanalyzer 243
演示amd app profiler 245
启动amd app profiler 245
使用应用程序的轨迹数据
以发现性能瓶颈 245
使用gpu性能计数器发现kernel的
性能瓶颈 247
调试opencl应用程序 248
gdebugger概览 249
使用gdebugger调试并行opencl
应用程序 249
amd printf扩展 251
小结 253
第13章 webcl 255
引言 255
框架设计 256
webcl 实验性实现 257
firefox扩展 257
连接javascript和opencl 258
webcl动手练习 260
web照片编辑器 264
讨论 266
小结 268
参考文献 268
扩展阅读和相关网站 269
索引 271
《背单词用火车皮:适合中国小学生的单词学习法》内容简介:☆首创火车皮单词记忆法。☆听说读写样样涵盖,注重整体提高。☆幽默漫
《哲学的中国本土化叙事》内容简介:《哲学的中国本土化叙事》怀着一种积极而开放的情怀探索并追寻本土化的“中国哲学”。“中国哲
自然语言处理技术基础 本书特色 本书包括了三个方面的内容。**部分介绍基于规则的自然语言处理技术,分别从语法和语义两个层面入手。第二部分介绍基于统计的自然语言处...
《每晚睡前原谅所有的人和事》内容简介:每晚入睡前,想着一天的劳累和辛苦,想着过往几十年的辛酸与不易,想着那些我们曾经错过和
《冬韵奥林匹克》内容简介:本书从艺术欣赏角度介绍了冬奥会的历史和风采,展示冬奥文化的魅力,介绍了北京申请冬奥会举办权的历程
《Java特种兵(上册)》内容简介:《Java特种兵(上册)》上册共10章,主要内容包括:从简单的角度来验证功底,通过一些简单的例子
《昆虫记 第六卷》内容简介:《昆虫记》是一部涵跨文学与科学领域的经典巨著,百佘年来一直誉满全球。本套全译插图珍藏本在最大限度
信息智能分析实验 本书特色 本书为高等院校经济管理实验实践系列教材。该书主要介绍了Excel工具和数据分析;Excel数据整理方面的实验以及Excel数据分析功...
《无师自通1:铅笔素描石膏几何单体超精解析(修订版)》内容简介:素描是一切造型艺术的基础,有着独特的表现魅力,学习素描是通往
设计与生存 内容简介 一种设计,无论原理上多么先进,如果缺乏量产的可能,对于企业或产业的意义恐怕很有局限。经过20年市场换技术的尝试,我们发现自己在技术上处于一...
《游戏行业网络营销推广实战从入门到精通》内容简介:《游戏行业网络营销推广实战从入门到精通》通过对目前游戏市场热门的80多款游
本书是国内外业界广泛关注的7卷本《计算机程序设计艺术》第2卷的最新版。本卷对半数值算法领域做了全面介绍,分“随机数”和“算
Android开发从入门到精通-项目案例版 本书特色 《Android开发从入门到精通(项目案例版)》作为Android书籍,从1行代码开始,详尽讲述了Andr...
本书是《俄罗斯航空发动机制造史》丛书的下册,涵盖了以M.B.伏龙芝命名的第24号工厂——库兹涅佐夫开放式股份公司的创立和发展历
你也能拍电影 内容简介 20世纪80年代以来,由电影摄影机发展而来的家庭磁带摄像机已经可以让人们随意地带到家庭、公园和街头,把这个世界的五彩缤纷留在能够重复的影...
本书从色彩设计、信息类型两方面着手,展开对设计网站理论及实际应用的讨论。根据现今互联网的主流信息,结合中国现有情况,把信
《终身写作》内容简介:本书系统阐述了有关写作的理念、思维和方法论,内容包括写作认知、观点打磨、框架思维、内容填充、故事能力
《我认识的唐朝诗人》内容简介:复旦大学资深教授陈尚君的《我认识的唐朝诗人》,文共30篇,前25篇是写一个诗人或者闻名诗人的人生
《ACM图灵奖:计算机发展史的缩影(1966-2006)(第3版)》介绍了51位ACM图灵奖获得者的工作和事迹。通过对20世纪下半叶及21世纪初有代
《晚安妈妈,晚安宝贝:小秘密跑掉了》内容简介:本书含27个小故事,让孩子的睡前时光温暖甜蜜,治愈孩子小小的心灵。作者充分利用