新書推薦:
《
西班牙内战:秩序崩溃与激荡的世界格局:1936-1939
》
售價:NT$
990.0
《
非对称创新:中国企业赶超战略 魏江 刘洋
》
售價:NT$
495.0
《
潜能觉醒
》
售價:NT$
395.0
《
初平:汉末群雄混战(190—195)
》
售價:NT$
245.0
《
建安:官渡大决战(196—200)
》
售價:NT$
245.0
《
权力的图像——近代的中国海图与交流
》
售價:NT$
840.0
《
中亚民族史
》
售價:NT$
840.0
《
人工智能与智能制造:概念与方法 [美]马苏德·索鲁什 [美]理查德·D.布拉茨
》
售價:NT$
640.0
編輯推薦:
ACM SIGGRAPH计算机图形成就奖得主、美国国家工程院院士、NVIDIA院士、CUDA技术的创始人之一David B. Kirk最新作品,全面更新了并行编程方法和技术的内容,掌握并行计算思维和并行编程技巧,《安全技术经典译丛:大规模并行处理器编程实战(第2版)》就“购”了
內容簡介:
在上一版十分畅销的基础上,《安全技术经典译丛:大规模并行处理器编程实战(第2版)》全面更新了并行编程方法和技术的内容。《安全技术经典译丛:大规模并行处理器编程实战(第2版)》旨在综述并行编程,展示了专业人士和学生都可以使用的一种编程思维,以此来指导并行编程和优化应用程序,从而使性能得到显著提升。《安全技术经典译丛:大规模并行处理器编程实战(第2版)》作者David B. Kirk和Wen-mei W. Hwu所采用的简洁、直观、实用的方法基于他们多年的并行计算课程实践。
《安全技术经典译丛:大规模并行处理器编程实战(第2版)》新增的内容:
并行模式:包括多章并行模式内容,是并行编程应用中使用的很多并行算法的基础。
CUDA Fortran:新增的这一章介绍CUDA Fortran编程如何使用CUDA架构,其中讲解了几个CUDA Fortran编程的实用示例。
OpenACC:新增的这一章介绍一个开放的并行编程预编译指令,以实现并行编程简洁化的目的。
Thrust:Thrust库是CUDA CC++的抽象层函数库。新增的这一章介绍了如何通过使用Thrust并行编程模板,对源程序只做简单的修改就可以使程序实现高性能。
C++ AMP:简单介绍了C++ AMP,它是由微软提出来的Windows环境下一套简化大规模并行处理器的编程接口。
NVIDIA的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的计算能力