《异构系统体系结构原理、模型及应用》PDF下载

  • 购买积分:8 如何计算积分?
  • 作  者:(美)胡义美编著;方娟,蔡旻译
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2018
  • ISBN:9787111606697
  • 页数:145 页
图书介绍:本书由异构系统体系结构(HSA)及其软件栈的创建者联合撰写,简洁且清晰地介绍了HSA的原理、模型及应用。书中首先回顾异构并行处理的发展进程和面临的挑战,分析HSA相对于其他技术的优势。之后深入探讨了运行时、内存模型、排队模型、虚拟ISA、上下文切换、编译器、模拟器和工具链等问题。最后选取三个实际案例,基于C++应用程序,说明了HSA如何能够显著提升程序性能。本书既适合异构计算领域的软件开发人员和研究人员参考,也适合计算机体系结构专业的高校学生阅读。

第1章 引言 1

第2章 HSA概述 5

2.1 GPU计算简史:HSA解决的问题 5

2.2 HSA的支柱 9

2.2.1 HSA内存模型 9

2.2.2 HSA排队模型 9

2.2.3 HSAIL虚拟ISA 10

2.2.4 HSA上下文切换 10

2.3 HSA规范 10

2.3.1 HSA平台系统体系结构规范 10

2.3.2 HSA运行时规范 10

2.3.3 HSA程序员参考手册——HSAIL SPEC 11

2.4 HSA软件 11

2.5 HSA基金会 12

2.6 小结 13

第3章 HSAIL——虚拟并行ISA 14

3.1 引言 14

3.2 编译流程示例 15

3.3 HSAIL执行模型 16

3.4 HSAIL指令集简介 17

3.4.1 原子操作 18

3.4.2 寄存器 18

3.4.3 分段 19

3.4.4 波前和通道 20

3.5 HSAIL机器模型和配置文件 21

3.6 HSAIL编译流程 22

3.7 HSAIL编译工具 23

3.7.1 编译器框架 23

3.7.2 CL离线编译 24

3.7.3 HSAIL汇编器/反汇编器 25

3.7.4 ISA和机器码汇编器/反汇编器 25

3.8 小结 25

第4章 HSA运行时 26

4.1 引言 26

4.2 HSA核心运行时API 28

4.2.1 运行时的初始化和关闭 28

4.2.2 运行时的通知 29

4.2.3 系统和HSA代理信息 29

4.2.4 信号 30

4.2.5 队列 31

4.2.6 体系结构排队语言 31

4.2.7 内存 32

4.2.8 代码对象和可执行文件 34

4.3 HSA运行时扩展 35

4.3.1 HSAIL终止化 35

4.3.2 图像和采样器 35

4.4 小结 37

参考文献 38

第5章 HSA内存模型 39

5.1 引言 39

5.2 HSA内存结构 40

5.2.1 分段 41

5.2.2 平面寻址 42

5.2.3 共享虚拟寻址 42

5.2.4 所有权 43

5.2.5 图像内存 43

5.3 HSA内存一致性基础 43

5.3.1 背景:顺序一致性 44

5.3.2 背景:冲突和竞争 45

5.3.3 单一内存范围的HSA内存模型 45

5.3.4 多个内存范围的HSA内存模型 48

5.3.5 内存段 51

5.3.6 汇总:HSA竞争自由 51

5.3.7 附加观察和注意事项 52

5.4 HSA内存模型中的高级一致性 52

5.4.1 松弛原子 52

5.4.2 所有权和范围界限 54

5.5 小结 54

参考文献 55

第6章 HSA排队模型 56

6.1 引言 56

6.2 用户模式队列 56

6.3 体系结构排队语言 59

6.3.1 包的类型 60

6.3.2 创建数据包 63

6.4 包的提交与调度 64

6.5 小结 70

参考文献 70

第7章 编译器技术 71

7.1 引言 71

7.2 C++AMP简介 71

7.2.1 C++AMP array_view 73

7.2.2 C++AMP parallel_for_each或内核调用 73

7.3 将HSA作为编译器目标 74

7.4 将关键的C++AMP构造映射到HSA 75

7.5 C++AMP编译流程 77

7.6 编译生成的C++AMP代码 78

7.7 C++AMP中平铺的编译器支持 80

7.7.1 划分计算域 81

7.7.2 指定地址空间和屏障 81

7.8 内存段注释 82

7.9 针对HSA的通用C++ 84

7.10 平台原子的编译器支持 86

7.11 新建/删除操作符的编译器支持 91

7.11.1 实现具有平台原子性的新建/删除操作符 92

7.11.2 将新建/删除返回的地址提升到全局内存段 94

7.11.3 基于等待API/信号HSAIL指令改进新建/删除操作符 94

7.12 小结 96

参考文献 96

第8章 应用用例:平台原子性 97

8.1 引言 97

8.2 HSA中的原子性 98

8.3 任务队列系统 100

8.3.1 静态执行 100

8.3.2 动态执行 101

8.3.3 HSA任务队列系统 101

8.3.4 评估 104

8.4 广度优先搜索 107

8.4.1 传统实现 109

8.4.2 HSA实现 110

8.4.3 评估 112

8.5 数据布局转换 113

8.5.1 使用PTTWAC算法进行SoA-ASTA转换 115

8.5.2 PTTWAC的HSA实现 116

8.5.3 评估 116

8.6 小结 118

致谢 118

参考文献 118

第9章 HSA模拟器 120

9.1 在Multi2Sim中模拟HSA 120

9.1.1 引言 120

9.1.2 Multi2Sim-HSA 121

9.1.3 HSAIL宿主机HSA 122

9.1.4 HSA运行时 124

9.1.5 仿真器设计 124

9.1.6 日志与调试 125

9.1.7 Mulit2Sim-HSA路线图 126

9.1.8 安装与支持 126

9.2 HSAemu仿真HSA 127

9.2.1 引言 127

9.2.2 建模的HSA组件 128

9.2.3 HSAemu的设计 129

9.2.4 多线程HSAGPU仿真器 131

9.2.5 剖析、调试与性能模型 132

9.3 softHSA模拟器 133

9.3.1 引言 133

9.3.2 高层次设计 133

9.3.3 创建与测试模拟器 134

9.3.4 使用LLVMHSA模拟器进行调试 135

参考文献 137

索引 139