《异构处理器OpenCL编程导论》PDF下载

  • 购买积分:10 如何计算积分?
  • 作  者:邓仰东,朱茂华,刘春峰编著
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2016
  • ISBN:9787111543305
  • 页数:238 页
图书介绍:本书系统讲解了GPU体系结构和OpenCL编程。全书分为14章:第1~3章主要讲解GPU的体系结构与编程;第4~7章主要讲解OpenCL的语法与常用的API;第8~13章主要用实例的方式讲解OpenCL编程;第14章则从案例出发,以项目的方式讲解HSA的实现。

第1章 GPU计算的发展历程 1

1.1 计算机图形学的发展 2

1.2 图形流水线 6

1.3 GPU的发展过程 8

1.4 GPU通用计算的发展历程 15

参考文献 18

第2章 现代图形处理器的体系结构 20

2.1 计算机体系结构基础 21

2.2 GPU的设计思想 23

2.3 NVIDIA图形处理器 25

2.3.1 总体体系结构 26

2.3.2 流多处理器 29

2.3.3 流多处理器的扩展 31

2.3.4 存储器 34

2.4 AMD Graphics Core Next图形处理器体系结构 37

2.4.1 GCN计算单元 38

2.4.2 GCN缓存 40

2.4.3 GCN GPU 41

2.5 Imagination PowerVR移动图形处理器体系结构 42

参考文献 44

第3章 异构系统体系结构和融合处理器 45

3.1 HSA基本概念 47

3.2 异构系统体系结构存储器模型 50

3.2.1 虚拟存储器的地址空间 51

3.2.2 缓存一致性 52

3.2.3 内存一致性 53

3.3 异构任务队列式调度机制 54

3.4 任务抢占和内容切换 57

3.5 HSA中间语言 57

3.6 AMD的HSA硬件 60

习题 62

参考文献 63

第4章 OpenCL基本概念 64

4.1 OpenCL程序的工作流程 64

4.2 OpenCL平台与设备 65

4.3 上下文、命令队列、kernel函数 70

4.4 存储对象 72

4.5 Hello World例程 73

习题 82

参考文献 82

第5章 OpenCL并行编程基础 83

5.1 并行线程组织 83

5.2 OpenCL存储器模型 86

5.3 数据类型 88

5.4 运算符 92

5.5 函数 93

5.6 矢量相加例程 96

5.7 矩阵相乘的OpenCL例程 98

5.7.1 矩阵相乘OpenCL代码 98

5.7.2 矩阵相乘分块计算的OpenCL代码 100

5.7.3 提高计算密度的分块矩阵相乘 102

5.7.4 使用矢量计算的分块矩阵相乘 105

习题 107

参考文献 107

第6章 OpenCL事件和队列 108

6.1 命令、命令队列和事件 109

6.2 事件的定义和基本用法 112

6.3 事件对象与用户事件 115

6.4 双设备队列管理例程 115

6.5 使用事件进行性能剖析例程 116

习题 118

参考文献 118

第7章 OpenCL 2.0高级特征 119

7.1 共享虚拟存储器 119

7.1.1 粗粒度缓冲区共享虚拟存储器 120

7.1.2 细粒度缓冲区共享虚拟存储器 122

7.1.3 细粒度系统级共享虚拟存储器 126

7.2 管道 127

7.3 嵌套并行 129

7.4 工作组函数 130

7.5 通用地址空间 131

习题 132

参考文献 133

第8章 并行程序设计方法 134

8.1 并行程序设计的复杂性 134

8.2 程序性能剖析 135

8.2.1 程序执行时间 135

8.2.2 程序性能剖析的概念 136

8.2.3 使用gprof剖析程序性能 137

8.2.4 解读性能剖析结果 139

8.3 寻找并行性 140

8.3.1 可行性分析 140

8.3.2 数据依赖性 141

8.4 并行化实例 142

8.4.1 顺序逻辑仿真算法 144

8.4.2 同步并行逻辑仿真 145

8.4.3 保守型并行逻辑仿真 145

8.5 并行化设计方法学 146

8.6 降低并行程序的开发难度 148

习题 149

参考文献和深入阅读 150

第9章 N体问题 152

9.1 串行算法 153

9.2 GPU端OpenCL程序 155

9.3 CPU端OpenCL程序 157

9.4 双GPU的OpenCL程序 160

习题 164

参考文献 164

第10章 归约问题 165

10.1 直观并行归约算法 166

10.2 减少闲置线程 168

10.3 改进局部内存访问 169

10.4 避免内存访问冲突 171

10.5 减少同步操作 172

10.6 优化顺序和并行工作比例 174

习题 177

参考文献 177

第11章 快速傅里叶变换 178

11.1 傅里叶变换原理 179

11.2 快速傅里叶变换算法 180

11.3 简化基-2 FFT算法内核 183

11.4 通用基-2 FFT算法内核 184

11.4.1 Twiddle因子 184

11.4.2 数据访问模式 185

11.4.3 64点FFT 187

习题 190

参考文献 190

第12章 稀疏矩阵——向量积 191

12.1 稀疏矩阵数据格式 192

12.2 对角稀疏矩阵 195

12.3 COO格式稀疏矩阵 201

12.4 CSR格式稀疏矩阵 203

12.5 ELL格式稀疏矩阵 206

习题 207

参考文献 207

第13章 直方图 208

13.1 直方图的计算 209

13.2 简单的并行直方图计算 210

13.3 数据值范围较小情形下的直方图算法 212

13.4 数据值范围较大情形下的加权直方图算法 214

习题 216

参考文献 216

第14章 光线追踪算法的OpenCL实现 217

14.1 光线追踪算法综述 219

14.2 光线追踪流水线解析 224

14.3 OpenCL光线追踪程序 228

14.3.1 代码框架 228

14.3.2 主机端代码及详解 229

14.3.3 设备端代码及详解 232

参考文献 237