《基于CUDA的并行程序设计》PDF下载

  • 购买积分:11 如何计算积分?
  • 作  者:刘金硕,邓娟,周峥,曾秋梅等编著
  • 出 版 社:北京:科学出版社
  • 出版年份:2014
  • ISBN:9787030405319
  • 页数:265 页
图书介绍:本书介绍了并行计算和图形处理器(GPU)系统结构;基于GPU并行计算的GUDA语言;CUDA的编程优化技巧;GPU存储器结构;并就生物图像分析、医学图像三维重建、遥感图像校正和信息提取等三个领域具体讨论了利用GPU实现其并行计算的实施方案和编程技巧。书中对利用GPU编程和使用方法注意事项做了详实介绍。本书可以作为CUDA学习入门和编程的参考书,主要面向高校计算机专业的教师、研究生生和科研研究机构的科技工作者,以及利用GPU加速的科研人员。

第1章 并行计算概述 1

1.1 并行计算简介 1

1.2 并行处理的计算机体系结构 2

1.2.1 并行计算机分类 2

1.2.2 并行计算机的物理结构模型 3

1.3 并行算法的设计方法 7

1.3.1 并行算法的相关概念 7

1.3.2 设计并行算法应注意的问题 9

1.3.3 并行算法的通用设计方法 11

1.4 基于各种并行处理体系结构的算法对比 13

1.4.1 SIMD算法 13

1.4.2 MIMD算法 17

1.4.3 MIMD进程通信和死锁 18

1.4.4 MIMD任务调度 19

1.5 小结 23

参考文献 23

第2章 GPU概述 25

2.1 GPU的发展 25

2.2 GPU的体系结构 27

2.2.1 NVIDIA公司的GPU体系结构 27

2.2.2 AMD公司的GPU体系结构 30

2.3 多核CPU和GPU的协同工作原理 31

2.4 GPU并行与分布式对比 33

2.5 采用多核CPU和GPU的异构集群 34

2.6 小结 35

参考文献 35

第3章 CUDA编程基础 37

3.1 CUDA简介 37

3.2 CUDA并行新思维 37

3.3 CUDA的安装及配置 38

3.3.1 CUDA在Mac OS X中的配置 38

3.3.2 CUDA在Linux中的配置 41

3.3.3 CUDA在Windows中的配置 44

3.4 CUDA编程模型 46

3.4.1 CUDA C语言 47

3.4.2 执行结构 73

3.4.3 内核函数 73

3.4.4 线程层次 75

3.4.5 存储器结构与线程映射机制 77

3.4.6 通信机制 78

3.4.7 CUDA的软件体系 79

3.5 nvcc编译器 79

3.5.1 nvcc编译流程 79

3.5.2 兼容性分析 81

3.6 “HelloWorld”CUDA编程实例 82

3.7 小结 90

参考文献 90

第4章 GPU存储器使用技巧 92

4.1 GPU的8种存储器及其访问机制 92

4.2 全局存储器的使用技巧 94

4.3 共享存储器的使用技巧 97

4.4 纹理存储器的使用技巧 101

4.4.1 纹理存储器的特性 101

4.4.2 绑定到纹理的数据类型 101

4.4.3 纹理参考声明 102

4.4.4 运行时纹理参考属性 102

4.4.5 纹理存储器的使用方法 103

4.5 主机端页锁定内存的使用技巧 105

4.5.1 页锁定内存的特性 105

4.5.2 零复制(zero-copy) 106

4.5.3 异步执行 107

4.6 小结 108

参考文献 109

第5章 CUDA编程优化 110

5.1 概述 110

5.2 性能分析 111

5.2.1 测时 111

5.2.2 CUDA程序性能分析工具 112

5.2.3 CUDA程序性能分析和优化 117

5.3 存储器访问优化 119

5.4 任务划分 119

5.5 指令优化 120

5.5.1 存储器访问的指令优化 120

5.5.2 算术运算的指令优化 121

5.5.3 线程同步的指令优化 122

5.5.4 控制流的指令优化 122

5.6 优化实例 123

5.7 小结 128

参考文献 128

第6章 基于C++的遥感影像处理的CUDA优化 129

6.1 遥感影像常用处理算法的GPU加速 129

6.1.1 均值滤波算法的CUDA并行化优化 129

6.1.2 高斯滤波算法的CUDA并行化优化 130

6.1.3 大图像分块的均值和方差算法 132

6.1.4 图像处理算法的串并行实验结果对比与分析 139

6.2 基于CUDA的SAR影像SIFT匹配 141

6.2.1 遥感影像数据采集和影像几何特征 141

6.2.2 SIFT匹配算法原理 143

6.2.3 SIFT匹配算法的CUDA并行化优化 148

6.3 水平集曲线演化算法用于遥感图像轮廓提取 164

6.3.1 遥感图像轮廓提取技术 164

6.3.2 水平集曲线演化方法 164

6.3.3 水平集曲线演化算法的CUDA并行优化 166

6.4 小结 181

参考文献 182

第7章 基于OpenGL的体绘制技术实现剪切波数据三维可视化的CUDA优化 183

7.1 地震剪切波数据的三维可视化 183

7.2 体绘制技术和光线投射算法 183

7.3 基于OpenGL的CUDA编程 185

7.4 基于OpenGL的CUDA光线投射算法设计 186

7.4.1 光线投射算法模型设计 186

7.4.2 光线投射算法流程 186

7.4.3 基于CUDA的光线投射算法设计 188

7.4.4 可变采样步长优化方法 191

7.5 体绘制效率提升的GPU访存优化策略 193

7.5.1 采用纹理存储器策略的体绘制算法优化 193

7.5.2 采用全局存储器策略的体绘制算法优化 194

7.5.3 采用全局+共享策略的体绘制算法优化 195

7.5.4 采用常量存储器策略的体绘制算法优化 197

7.5.5 采用纹理存储器的体绘制 198

7.6 GPU访存优化策略效率分析 205

7.7 剪切波三维可视化GPU加速实验结果与分析 207

7.7.1 准备工作 207

7.7.2 串并行实现光线投射算法的实验对比 208

7.7.3 中国大陆南北带地区剪切波速度数据的可视化结果与分析 208

7.8 小结 209

参考文献 209

第8章 基于MATLAB的生物细胞图像病理诊断的CUDA优化 211

8.1 真菌隐球酵母菌病理诊断 211

8.2 基于MATLAB的CUDA编程 211

8.3 基于MATLAB的高噪声细胞图像处理的CUDA实现 216

8.3.1 imadjust灰度调整算法加速 216

8.3.2 imerode腐蚀算法加速 217

8.3.3 imtophat高帽滤波算法加速 220

8.4 实验结果与分析 222

8.5 小结 225

参考文献 225

第9章 基于CUDA的核外计算集群中间件 227

9.1 基于CUDA的中间件技术 227

9.1.1 中间件技术介绍 227

9.1.2 DataCutter混合编程架构 228

9.2 分布式核外计算中间件 230

9.2.1 核外计算技术 230

9.2.2 基于CUDA的混合分布式全局数据管理 231

9.2.3 分布式数据服务协议 234

9.2.4 基于感知的任务调度策略 237

9.2.5 DOoC中间件 239

9.3 中间件编程接口 241

9.3.1 LAF编程框架 241

9.3.2 DOoC+LAF架构 242

9.4 实验结果与分析 243

9.4.1 实验环境 243

9.4.2 外存访问与混合计算能力测试 243

9.4.3 MFDn绿色计算测试 245

9.4.4 特征值求解器 249

9.5 小结 252

参考文献 253

附录A 数学函数 256

附录B 原子函数 264