主页 详情

《OpenACC高性能并行编程 概念与策略》_(美)苏妮塔·钱德拉塞克兰(Sunita Chandrasekaran),(德)吉多·杰克兰德(Guido Ju

【书名】:《OpenACC高性能并行编程 概念与策略》
【作者】:(美)苏妮塔·钱德拉塞克兰(Sunita Chandrasekaran),(德)吉多·杰克兰德(Guido Juckeland)编
【出版社】:北京:机械工业出版社
【时间】:2019
【页数】:220
【ISBN】:9787111623236
【SS码】:14629366

最新查询

内容简介

第1章 OpenACC概述

1.1 OpenACC语法

1.1.1 导语

1.1.2 子语

1.1.3 API例程与环境变量

1.2 计算构件

1.2.1 kernels

1.2.2 parallel

1.2.3 loop

1.2.4 routine

1.3 数据环境

1.3.1 数据导语

1.3.2 数据子语

1.3.3 cache导语

1.3.4 部分数据传输

1.4 总结

1.5 练习

第2章 循环级并行性

2.1 kernels循环与parallel循环的比较

2.2 并行性的三个级别

2.2.1 gang、worker与vector子语

2.2.2 将并行性映射到硬件

2.3 其他loop构件

2.3.1 循环折叠

2.3.2 independent子语

2.3.3 seq与auto子语

2.3.4 reduction子语

2.4 总结

2.5 练习

第3章 OpenACC编程工具

3.1 架构的通用特性

3.2 编译OpenACC代码

3.3 OpenACC应用程序的性能分析

3.3.1 性能分析层次和术语

3.3.2 性能数据获取

3.3.3 性能数据记录和显示

3.3.4 OpenACC性能分析接口

3.3.5 支持OpenACC的性能工具

3.3.6 NVIDIA性能分析工具

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

3.3.8 TAU性能系统

3.4 识别OpenACC程序中的bug

3.5 总结

3.6 练习

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

4.1 案例研究

4.1.1 串行代码

4.1.2 编译代码

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

4.2.1 找到热点

4.2.2 使用kernels安全吗

4.2.3 OpenACC实现

4.3 OpenACC程序的性能

4.4 优化的并行版本

4.4.1 减少数据移动

4.4.2 特别聪明的小改动

4.4.3 最终的结果

4.5 总结

4.6 练习

第5章 编译OpenACC

5.1 并行性的挑战

5.1.1 并行硬件

5.1.2 映射循环

5.1.3 内存层次结构

5.1.4 归约

5.1.5 应对并行性的OpenACC

5.2 重建编译器

5.2.1 编译器可以做什么

5.2.2 编译器不能做什么

5.3 编译OpenACC

5.3.1 代码预备工作

5.3.2 调度

5.3.3 串行代码

5.3.4 用户错误

5.4 总结

5.5 练习

第6章 最佳编程实践

6.1 通用准则

6.1.1 最大化设备计算

6.1.2 优化数据局部性

6.2 最大化设备计算

6.2.1 原子操作

6.2.2 kernels构件与parallel构件

6.2.3 运行时调优和if子语

6.3 优化数据局部性

6.3.1 最少化数据传输

6.3.2 数据复用和present子语

6.3.3 非结构化数据生命周期

6.3.4 指定数组形状

6.4 典型示例

6.4.1 背景知识:热力学报表

6.4.2 基线CPU版本的实现

6.4.3 性能分析

6.4.4 使用OpenACC进行加速

6.4.5 优化数据局部性

6.4.6 性能研究

6.5 总结

6.6 练习

第7章 OpenACC与性能可移植性

7.1 挑战

7.2 目标架构

7.2.1 特定平台的编译

7.2.2 x86_64多核与NVIDIA

7.3 OpenACC性能可移植性

7.3.1 OpenACC内存模型

7.3.2 内存架构

7.3.3 代码生成

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

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

7.4.1 HACCmk

7.4.2 面向多种架构

7.4.3 openACC在NVIDIA K20x GPU上的应用

7.4.4 openACC在AMD Bulldozer多核上的应用

7.5 总结

7.6 练习

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

8.1 编程模型

8.1.1 OpenACC

8.1.2 OpenMP

8.1.3 CUDA

8.1.4 OpenCL

8.1.5 C+++AMP

8.1.6 Kokkos

8.1.7 RAJA

8.1.8 线程构建模块

8.1.9 C+++17

8.1.10 Fortran 2008

8.2 编程模型组件

8.2.1 并行循环

8.2.2 并行归约

8.2.3 紧密嵌套循环

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

8.2.5 任务并行性

8.2.6 数据分配

8.2.7 数据传输

8.3 案例研究

8.3.1 串行实现

8.3.2 OpenACC实现

8.3.3 OpenMP实现

8.3.4 CUDA实现

8.3.5 Kokkos实现

8.3.6 TBB实现

8.3.7 一些性能数字

8.4 总结

8.5 练习

第9章 OpenACC与互操作性

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

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

9.1.2 host_data导语及use_device子语

9.1.3 目标平台相关API例程

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

9.3 OpenACC互操作性高级话题

9.3.1 acc_map_data

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

9.4 总结

9.5 练习

第10章 OpenACC高级特性

10.1 异步操作

10.1.1 OpenACC异步编程

10.1.2 软件流水线

10.2 多设备编程

10.2.1 多设备流水线

10.2.2 OpenACC与MPI

10.3 总结

10.4 练习

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

11.1 神威OpenACC

11.1.1 SW26010众核处理器

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

11.1.3 执行模型

11.1.4 数据管理

11.1.5 总结

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

11.2.1 OpenUH编译器基础架构

11.2.2 循环调度转换

11.2.3 循环调度的性能评估

11.2.4 OpenUH的其他研究课题

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

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

12.1.1 介绍

12.1.2 OpenACC到FPGA的基线翻译

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

12.1.4 评估

12.1.5 总结

12.2 使用XcalableACC编程加速集群

12.2.1 XcalableMP介绍

12.2.2 XcalableACC:当XcalableMP遇上OpenACC

12.2.3 Omni编译器的实现

12.2.4 在HA-PACS上的性能评估

12.2.5 总结


书查询(www.shuchaxun.com)本网页唯一编码:
b73114f7a1ba44d8e7c57071c614ce13#a7ab7e4f2e02a293cb940be383a905cd#97283495#OPENACC高性能并行编程概念与策略=OPENACC FOR PROGRAMMERS_CONCEPTS AND STRATEGIES_14629366.zip