大规模并行处理器编程实战
大规模并行处理器编程实战封面图

大规模并行处理器编程实战

(美) 柯克 (Kirk,D.B.) , (美) 胡 (Hwu,W.W.) , 著

出版社:清华大学出版社

年代:2013

定价:58.0

书籍简介:

本书介绍了几个并行模式,这是出现在并行应用中的许多并行算法的基础;介绍了CUDA Fortran——CUDA架构的编程接口,包括演示CUDA Fortran编程的多个例子;OpenACC适合熟悉CUDA C的并行程序员,介绍了这个用于简化并行编程的并行计算新接口;如何使用Thrust并行模板库,实现以最小的编程量来获得高性能应用;介绍了Kepler——NVIDIA新的高性能、功能强大的GPU架构。

作者介绍:

David B. Kirk院士,美国国家工程院院士,NVIDIA院士、前首席科学家,也是CUDA技术的创始人之一,2002年曾荣获ACM SIGGRAPH计算机图形成就奖。他拥有麻省理工学院的机械工程学学士和硕士学位,加州理工学院的计算机科学博士学位。Kirk是50项与图形芯片设计相关的专利和专利申请的发明者,发表了50多篇关于图形处理技术的论文,是可视化计算技术方面的权威。   胡文美(Wen-mei W. Hwu)教授,拥有美国加州大学伯克利分校计算机科学博士学位,担任美国伊利诺伊大学厄巴纳-香槟分校(UIUC)协调科学实验室电气与计算机工程AMD创始人Jerry Sanders讲席教授(Walter J. SandersⅢAdvanced Micro Devices Endowed Chair)。胡文美教授还是IEEE(国际电气电子工程师学会)院士,ACM(美国计算机学会)院士。

书籍目录:

第1章 引言

1.1 异构并行计算

1.2 现代GPU的体系结构

1.3 为什么需要更高的速度和并行化

1.4 应用程序的加速

1.5 并行编程语言和模型

1.6 本书的总体目标

1.7 本书的组织结构

参考文献

第2章 GPU计算的发展历程

2.1 图形流水线的发展

2.1.1 固定功能的图形流水线时代

2.1.2 可编程实时图形流水线的发展

2.1.3 图形与计算结合的处理器

2.2 GPGPU:一个中间步骤

2.3 GPU计算

2.3.1 可扩展的GPU

2.3.2 发展近况

2.3.3 未来发展趋势

参考文献与课外阅读

第3章 CUDA简介

3.1 数据并行性

3.2 CUDA的程序结构

3.3 向量加法kernel函数

3.4 设备全局存储器与数据传输

3.6 小结

3.6.1 函数声明

3.6.2 启动kernel函数

3.6.3 预定义变量

3.6.4 运行时API

3.7 习题

参考文献

第4章 数据并行执行模型

4.1 CUDA的线程组织

4.2 线程与多维数据的映射

4.3 矩阵乘法——一个更加复杂的kernel函数

4.4 线程同步和透明的可扩展性

4.5 线程块的资源分配

4.6 查询设备属性

4.7 线程调度和容许时延

4.8 小结

4.9 习题

第5章 CUDA存储器

5.1 存储器访问效率的重要性

5.2 CUDA设备存储器的类型

5.3 减少全局存储器流量的一种策略

5.4 分块矩阵乘法的kernel函数

5.5 存储器——限制并行性的一个因素

5.6 小结

5.7 习题

第6章 性能优化

6.1 WARP和线程执行

6.2 全局存储器的带宽

6.3 执行资源的动态划分

6.4 指令混合和线程粒度

6.5 小结

6.6 习题

参考文献

第7章 浮点运算

7.1 浮点格

7.1.1 M的规范化表示

7.1.2 E的余码表示

7.2 能表示的数

7.3 特殊的位模式与IEEE格式中的精度

7.4 算术运算的准确度和舍入

7.5 算法的优化

7.6 数值稳定性

7.7 小结

7.8 习题

参考文献

第8章 并行模式:卷积

8.1 背景

8.2 一个基本算法:一维并行卷积

8.3 常数存储器和高速缓存

8.4 使用光环元素的分块一维卷积

8.5 一个更简单的分块一维卷积——通用高速缓存

8.6 小结

8.7 习题

第9章 并行模式:前缀和

9.1 背景

9.2 简单并行扫描

9.3 考虑工作效率

9.4 工作高效的并行扫描

9.5 任意输入长度的并行扫描

9.6 小结

9.7 习题

参考文献

第10章 并行模式:稀疏矩阵-向量乘法

10.1 背景

10.2 使用CSR格式的并行SpMV

10.3 填充与转置

10.4 用混合方法来控制填充

10.5 通过排序和划分来规则化

10.6 小结

10.7 习题

参考文献

第11章 应用案例研究:高级MRI重构

11.1 应用背景

11.2 迭代重构

11.3 计算FHD

11.4 最终评估

11.5 习题

参考文献

第12章 应用案例研究:分子可视化和分析

12.1 应用背景

12.2 kernel函数简单的实现方案

12.3 线程粒度调节

12.4 存储器合并

12.5 小结

12.6 习题

参考文献

第13章 并行编程和计算思想

13.1 并行计算的目标

13.2 问题分解

13.3 算法选择

13.4 计算思想

13.5 小结

13.6 习题

参考文献

第14章 OpenCL简介

14.1 背景

14.2 数据并行性模型

14.3 设备的体系结构

14.4 kernel函数

14.5 设备管理和启动kernel

14.6 OpenCL中的静电势图谱

14.7 小结

14.8 习题

参考文献

第15章 OpenACC并行编程

15.1 OpenACC与CUDA C的比较

15.2 执行模型

15.3 存储器模型

15.4 基本的OpenACC程序

15.4.1 并行构造

15.4.2 循环构造

15.4.3 kernels构造

15.4.4 数据管理

15.4.5 数据构造

15.4.6 异步计算和数据传输

15.5 OpenACC的发展方向

15.6 习题

第16章 Thrust:一个面向效率的CUDA编程库

16.1 背景简介

16.2 动机

16.3 Thrust的基本特性

16.3.1 迭代器和内存空间

16.3.2 互操作性

16.4 泛型编程

16.5 抽象的益处

16.5.1 编程效率

16.5.2 鲁棒性

16.5.3 真实性能

16.6 最佳范例

16.6.1 融合

16.6.2 数组结构体

16.6.3 隐式范围

16.7 习题

参考文献 298

第17章 CUDA FORTRAN

17.1 CUDA FORTRAN和CUDA C的区别

17.2 第一个CUDA FORTRAN程序

17.3 CUDA FORTRAN中的多维数组

17.4 用通用接口重载主机/设备端例程

17.5 通过iso_c_binding调用CUDA C

17.6 kernel循环指令和归约操作

17.7 动态共享存储器

17.8 异步数据传输

17.9 编译和性能剖析

17.10 在CUDA FORTRAN中调用Thrust

17.11 习题

第18章 C++ AMP简介

18.1 C++ AMP核心特性

18.2 C++ AMP执行模式详解

18.2.1 显式和隐式的数据复制

18.2.2 异步操作

18.2.3 本节小结

18.3 加速器管理

18.4 分块执行

18.5 C++ AMP图形特性

18.6 小结

18.7 习题

第19章 异构集群编程

19.1 背景简介

19.2 运行示例

19.3 MPI基础

19.4 MPI点对点通信模型

19.5 重叠计算和通信

19.6 MPI集合通信模型

19.7 小结

19.8 习题

参考文献

第20章 CUDA动态并行

20.1 背景

20.2 动态并行简介

20.3 重要细节

20.3.1 启动环境变量设置

20.3.2 API错误和启动失败

20.3.3 事件

20.3.4 流

20.3.5 同步范围

20.4 内存可见性

20.4.1 全局内存

20.4.2 零拷贝内存

20.4.3 常量内存

20.4.4 局部内存

20.4.5 共享内存

20.4.6 纹理内存

20.5 一个简单示例

20.6 运行时限制

20.6.1 内存占用

20.6.2 嵌套深度

20.6.3 内存分配和生存周期

20.6.4 ECC错误

20.6.5 流

20.6.6 事件

20.6.7 启动池

20.7 一个更复杂的示例

20.7.1 线性贝塞尔曲线

20.7.2 二次贝塞尔曲线

20.7.3 贝塞尔曲线计算(非动态并行版本)

20.7.4 贝塞尔曲线计算(使用动态并行)

20.8 小结

参考文献

第21章 结论与展望

21.1 重点回顾

21.2 存储器模型的演变

21.2.1 大型虚拟和物理地址空间

21.2.2 统一的设备存储空间

21.2.3 可配置的缓存和暂时存储器

21.2.4 提高原子操作的速度

21.2.5 提高全局内存的访问速度

21.3 kernel函数执行控制过程的演变

21.3.1 kernel函数内部的函数调用

21.3.2 kernel函数中的异常处理

21.3.3 多个kernel函数的同步执行

21.3.4 可中断的kernel函数

21.4 内核的性能

21.4.1 双精度的速度

21.4.2 更好的控制流效率

21.5 编程环境

21.6 美好前景

参考文献

附录A 矩阵乘法主机版的源代码

附录B GPU的计算能力

内容摘要:

在上一版十分畅销的基础上,《安全技术经典译丛:大规模并行处理器编程实战(第2版)》全面更新了并行编程方法和技术的内容。《安全技术经典译丛:大规模并行处理器编程实战(第2版)》旨在综述并行编程,展示了专业人士和学生都可以使用的一种编程思维,以此来指导并行编程和优化应用程序,从而使性能得到显著提升。《安全技术经典译丛:大规模并行处理器编程实战(第2版)》作者David B. Kirk和Wen-mei W. Hwu所采用的简洁、直观、实用的方法基于他们多年的并行计算课程实践。   《安全技术经典译丛:大规模并行处理器编程实战(第2版)》新增的内容:   并行模式:包括多章并行模式内容,是并行编程应用中使用的很多并行算法的基础。   CUDA Fortran:新增的这一章介绍CUDA Fortran编程如何使用CUDA架构,其中讲解了几个CUDA Fortran编程的实用示例。   OpenACC:新增的这一章介绍一个开放的并行编程预编译指令,以实现并行编程简洁化的目的。   Thrust:Thrust库是CUDA C/C++的抽象层函数库。新增的这一章介绍了如何通过使用Thrust并行编程模板,对源程序只做简单的修改就可以使程序实现高性能。   C++ AMP:简单介绍了C++ AMP,它是由微软提出来的Windows环境下一套简化大规模并行处理器的编程接口。   NVIDIA的Kepler架构:探讨NVIDIA的高性能、低功耗的GPU架构的编程特性。

编辑推荐:

ACM SIGGRAPH计算机图形成就奖得主、美国国家工程院院士、NVIDIA院士、CUDA技术的创始人之一David B. Kirk最新作品,全面更新了并行编程方法和技术的内容,掌握并行计算思维和并行编程技巧,《安全技术经典译丛:大规模并行处理器编程实战(第2版)》就“购”了

书籍规格:

书籍详细信息
书名大规模并行处理器编程实战站内查询相似图书
9787302342724
如需购买下载《大规模并行处理器编程实战》pdf扫描版电子书或查询更多相关信息,请直接复制isbn,搜索即可全网搜索该ISBN
出版地北京出版单位清华大学出版社
版次1版印次1
定价(元)58.0语种简体中文
尺寸26 × 19装帧平装
页数印数 4000

书籍信息归属:

大规模并行处理器编程实战是清华大学出版社于2013.出版的中图分类号为 TP311.11 的主题关于 并行程序-程序设计 的书籍。