图书介绍

OpenACC高性能并行编程 概念与策略PDF|Epub|txt|kindle电子书版本网盘下载

OpenACC高性能并行编程 概念与策略
  • (美)苏妮塔·钱德拉塞克兰(Sunita Chandrasekaran),(德)吉多·杰克兰德(Guido Juckeland)编 著
  • 出版社: 北京:机械工业出版社
  • ISBN:9787111623236
  • 出版时间:2019
  • 标注页数:220页
  • 文件大小:92MB
  • 文件页数:246页
  • 主题词:并行程序-程序设计

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

OpenACC高性能并行编程 概念与策略PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1章 OpenACC概述1

1.1 OpenACC语法2

1.1.1 导语3

1.1.2 子语3

1.1.3 API例程与环境变量4

1.2 计算构件4

1.2.1 kernels5

1.2.2 parallel6

1.2.3 loop7

1.2.4 routine7

1.3 数据环境9

1.3.1 数据导语9

1.3.2 数据子语10

1.3.3 cache导语11

1.3.4 部分数据传输11

1.4 总结12

1.5 练习12

第2章 循环级并行性14

2.1 kernels循环与parallel循环的比较15

2.2 并行性的三个级别18

2.2.1 gang、worker与vector子语18

2.2.2 将并行性映射到硬件19

2.3 其他loop构件20

2.3.1 循环折叠20

2.3.2 independent子语21

2.3.3 seq与auto子语22

2.3.4 reduction子语23

2.4 总结25

2.5 练习26

第3章 OpenACC编程工具27

3.1 架构的通用特性27

3.2 编译OpenACC代码28

3.3 OpenACC应用程序的性能分析30

3.3.1 性能分析层次和术语30

3.3.2 性能数据获取31

3.3.3 性能数据记录和显示32

3.3.4 OpenACC性能分析接口32

3.3.5 支持OpenACC的性能工具33

3.3.6 NVIDIA性能分析工具34

3.3.7 针对混合应用程序的Score-P工具基础架构35

3.3.8 TAU性能系统40

3.4 识别OpenACC程序中的bug42

3.5 总结44

3.6 练习45

第4章 使用OpenACC编写第一个程序48

4.1 案例研究48

4.1.1 串行代码49

4.1.2 编译代码55

4.2 创建一个原生的并行版本56

4.2.1 找到热点56

4.2.2 使用kernels安全吗56

4.2.3 OpenACC实现56

4.3 OpenACC程序的性能59

4.4 优化的并行版本60

4.4.1 减少数据移动61

4.4.2 特别聪明的小改动62

4.4.3 最终的结果63

4.5 总结65

4.6 练习66

第5章 编译OpenACC67

5.1 并行性的挑战68

5.1.1 并行硬件68

5.1.2 映射循环69

5.1.3 内存层次结构71

5.1.4 归约72

5.1.5 应对并行性的OpenACC72

5.2 重建编译器73

5.2.1 编译器可以做什么74

5.2.2 编译器不能做什么75

5.3 编译OpenACC76

5.3.1 代码预备工作77

5.3.2 调度77

5.3.3 串行代码78

5.3.4 用户错误79

5.4 总结80

5.5 练习81

第6章 最佳编程实践83

6.1 通用准则84

6.1.1 最大化设备计算84

6.1.2 优化数据局部性85

6.2 最大化设备计算86

6.2.1 原子操作86

6.2.2 kernels构件与parallel构件87

6.2.3 运行时调优和if子语88

6.3 优化数据局部性89

6.3.1 最少化数据传输89

6.3.2 数据复用和present子语90

6.3.3 非结构化数据生命周期91

6.3.4 指定数组形状92

6.4 典型示例92

6.4.1 背景知识:热力学报表92

6.4.2 基线CPU版本的实现93

6.4.3 性能分析93

6.4.4 使用OpenACC进行加速94

6.4.5 优化数据局部性96

6.4.6 性能研究97

6.5 总结98

6.6 练习98

第7章 OpenACC与性能可移植性99

7.1 挑战99

7.2 目标架构100

7.2.1 特定平台的编译101

7.2.2 x86_64多核与NVIDIA101

7.3 OpenACC性能可移植性101

7.3.1 OpenACC内存模型102

7.3.2 内存架构102

7.3.3 代码生成102

7.3.4 性能可移植性的数据布局103

7.4 代码重构以实现性能可移植性103

7.4.1 HACCmk103

7.4.2 面向多种架构105

7.4.3 openACC在NVIDIA K20x GPU上的应用106

7.4.4 openACC在AMD Bulldozer多核上的应用107

7.5 总结108

7.6 练习109

第8章 并行编程的其他方式111

8.1 编程模型111

8.1.1 OpenACC113

8.1.2 OpenMP113

8.1.3 CUDA114

8.1.4 OpenCL114

8.1.5 C+++AMP115

8.1.6 Kokkos115

8.1.7 RAJA116

8.1.8 线程构建模块116

8.1.9 C+++17116

8.1.10 Fortran 2008117

8.2 编程模型组件117

8.2.1 并行循环118

8.2.2 并行归约119

8.2.3 紧密嵌套循环121

8.2.4 分层并行性(非紧密嵌套循环)122

8.2.5 任务并行性124

8.2.6 数据分配125

8.2.7 数据传输126

8.3 案例研究127

8.3.1 串行实现128

8.3.2 OpenACC实现129

8.3.3 OpenMP实现130

8.3.4 CUDA实现131

8.3.5 Kokkos实现134

8.3.6 TBB实现136

8.3.7 一些性能数字138

8.4 总结140

8.5 练习140

第9章 OpenACC与互操作性142

9.1 在OpenACC中调用原生设备代码142

9.1.1 示例:使用DFT进行图像滤波143

9.1.2 host_data导语及use_device子语145

9.1.3 目标平台相关API例程147

9.2 在原生设备代码中调用OpenACC149

9.3 OpenACC互操作性高级话题149

9.3.1 acc_map_data149

9.3.2 在OpenACC kernel中调用CUDA设备例程151

9.4 总结152

9.5 练习152

第10章 OpenACC高级特性153

10.1 异步操作153

10.1.1 OpenACC异步编程155

10.1.2 软件流水线160

10.2 多设备编程168

10.2.1 多设备流水线169

10.2.2 OpenACC与MPI172

10.3 总结176

10.4 练习176

第11章 使用OpenACC的创新研究思路,第1部分177

11.1 神威OpenACC177

11.1.1 SW26010众核处理器178

11.1.2 神威太湖之光中的内存模型178

11.1.3 执行模型180

11.1.4 数据管理181

11.1.5 总结183

11.2 针对加速器的嵌套循环编译器转换184

11.2.1 OpenUH编译器基础架构185

11.2.2 循环调度转换187

11.2.3 循环调度的性能评估190

11.2.4 OpenUH的其他研究课题193

第12章 使用OpenACC的创新研究思路,第2部分194

12.1 一个基于导语的高性能可重构计算框架194

12.1.1 介绍195

12.1.2 OpenACC到FPGA的基线翻译196

12.1.3 用于高效FPGA编程的OpenACC扩展和优化198

12.1.4 评估203

12.1.5 总结207

12.2 使用XcalableACC编程加速集群207

12.2.1 XcalableMP介绍208

12.2.2 XcalableACC:当XcalableMP遇上OpenACC211

12.2.3 Omni编译器的实现213

12.2.4 在HA-PACS上的性能评估215

12.2.5 总结220

热门推荐