图书介绍

GPU编程与优化 大众高性能计算2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载

GPU编程与优化 大众高性能计算
  • 方民权著 著
  • 出版社: 北京:清华大学出版社
  • ISBN:9787302446422
  • 出版时间:2016
  • 标注页数:417页
  • 文件大小:152MB
  • 文件页数:434页
  • 主题词:图象处理-程序设计

PDF下载


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

下载说明

GPU编程与优化 大众高性能计算PDF格式电子书版下载

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

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

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

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

图书目录

第一篇 理论篇3

第1章 高性能计算概述3

1.1 高性能计算概念辨析3

1.1.1 并行计算、高性能计算和超级计算3

1.1.2 超级计算机与超级计算中心4

1.2 计算科学5

1.3 高性能计算发展史5

1.4 高性能计算简介6

1.5 向量机与阵列机8

1.6 本章小结9

第2章 GPU概述10

2.1 GPU是什么10

2.2 协处理器10

2.3 GPU与显卡的关系11

2.4 GPU/显卡购买注意事项11

2.5 为什么要学GPU编程12

2.6 GPU与CPU辨析13

2.7 GPU发展简史14

2.8 GPU编程方法14

2.9 CPU/GPU异构系统16

第3章 GPU硬件架构17

3.1 GPU架构17

3.1.1 Tesla架构18

3.1.2 Fermi架构20

3.1.3 Kepler架构21

3.1.4 Maxwell架构23

3.1.5 Pascal架构24

3.2 Kernel的硬件映射28

3.3 GPU存储体系29

3.4 GPU计算能力30

第4章 GPU软件体系33

4.1 GPU软件生态系统33

4.2 CUDA Toolkit34

4.2.1 NVCC编译器34

4.2.2 cuobjdump35

4.3 CUDA环境安装36

4.3.1 Windows 7安装CUDA 4.236

4.3.2 Linux下安装CUDA38

第5章 CUDA C编程41

5.1 CUDA编程模型41

5.2 CUDA编程七步曲42

5.3 驱动API与运行时API42

5.4 CUDA运行时函数43

5.4.1 设备管理函数43

5.4.2 存储管理函数45

5.4.3 数据传输函数48

5.4.4 线程管理函数51

5.4.5 流管理函数52

5.4.6 事件管理函数52

5.4.7 纹理管理函数53

5.4.8 执行控制函数55

5.4.9 错误处理函数55

5.4.10 图形学互操作函数57

5.4.11 OpenGL互操作函数58

5.4.12 Direct3D互操作函数59

5.5 CUDA C语言扩展60

5.6 grid-block-thread三维模型61

第二篇 入门篇67

第6章 向量加法67

6.1 向量加法及其串行代码67

6.2 单block单thread向量加68

6.3 单block多thread向量加68

6.4 多block多thread向量加69

6.5 CUBLAS库向量加法70

6.6 实验结果分析与结论71

6.6.1 本书实验平台71

6.6.2 实验结果71

6.6.3 结论71

6.7 知识点总结72

6.8 扩展练习75

第7章 归约:向量内积76

7.1 向量内积及其串行代码76

7.2 单block分散归约向量内积77

7.3 单block低线程归约向量内积78

7.4 多block向量内积(CPU二次归约)79

7.5 多block向量内积(GPU二次归约)81

7.6 基于原子操作的多block向量内积81

7.7 计数法实现多block向量内积84

7.8 CUBLAS库向量内积85

7.9 实验结果与结论86

7.9.1 实验结果86

7.9.2 结论86

7.10 归约的深入优化探讨87

7.10.1 block数量和thread数量对归约性能的影响87

7.10.2 算术运算优化88

7.10.3 减少同步开销89

7.10.4 循环展开90

7.10.5 总结91

7.11 知识点总结91

7.12 扩展练习94

第8章 矩阵乘法95

8.1 矩阵乘法及其3种串行代码95

8.1.1 一般矩阵乘法95

8.1.2 循环交换矩阵乘法97

8.1.3 转置矩阵乘法98

8.1.4 实验结果与最优串行矩阵乘99

8.2 grid线程循环矩阵乘法100

8.3 block线程循环矩阵乘法101

8.4 行共享存储矩阵乘法101

8.5 棋盘阵列矩阵乘法103

8.6 判断移除105

8.7 CUBLAS矩阵乘法106

8.8 实验结果分析与结论108

8.8.1 矩阵乘精度分析108

8.8.2 实验结果分析110

8.8.3 浮点运算能力分析111

8.9 行共享存储矩阵乘法改进111

8.10 知识点总结113

8.11 扩展练习115

第9章 矩阵转置116

9.1 矩阵转置及其串行代码116

9.2 1D矩阵转置117

9.3 2D矩阵转置118

9.4 共享存储2D矩阵转置119

9.5 共享存储2D矩阵转置diagonal优化120

9.6 实验结果分析与结论121

9.7 共享存储2D矩阵转置的深入优化122

9.8 知识点总结124

9.9 扩展练习125

第三篇 提高篇129

第10章 卷积129

10.1 卷积及其串行实现129

10.1.1 一维卷积129

10.1.2 二维卷积131

10.2 GPU上1D卷积134

10.3 M常量1D卷积135

10.4 M共享1D卷积136

10.5 N共享1D卷积137

10.6 实验结果分析139

10.6.1 扩展法1D卷积实验结果分析139

10.6.2 判断法与扩展法1D卷积对比140

10.6.3 加速比分析141

10.6.4 线程维度对性能的影响141

10.7 2D卷积的GPU移植与优化142

10.7.1 GPU上2D卷积142

10.7.2 M常量2D卷积143

10.7.3 M常量N共享2D卷积143

10.7.4 2D卷积实验结果分析145

10.8 知识点总结145

10.9 扩展练习147

第11章 曼德博罗特集148

11.1 曼德博罗特集及其串行实现148

11.2 曼德博罗特集的GPU映射150

11.3 一些优化尝试及效果152

11.3.1 访存连续152

11.3.2 uchar4访存合并153

11.3.3 4种零拷贝153

11.3.4 总结分析155

11.4 计算通信重叠优化156

11.5 突破kernel执行时间限制159

11.6 知识点总结160

11.7 扩展练习162

第12章 扫描:前缀求和163

12.1 前缀求和及其串行代码163

12.2 Kogge-Stone并行前缀和164

12.2.1 直接Kogge-Stone分段前缀和164

12.2.2 交错Kogge-Stone分段前缀和165

12.2.3 完整Kogge-Stone前缀和166

12.3 Brent-Kung并行前缀和168

12.3.1 Brent-Kung分段前缀和169

12.3.2 两倍数据的Brent-Kung分段前缀和170

12.3.3 避免bank conflict的两倍数据Brent-Kung分段前缀和171

12.3.4 完整Brent-Kung前缀和173

12.4 warp分段的Kogge-Stone前缀求和174

12.5 实验结果分析与结论177

12.6 知识点总结179

12.7 扩展练习180

第13章 排序181

13.1 串行排序及其性能181

13.1.1 选择排序181

13.1.2 冒泡排序182

13.1.3 快速排序182

13.1.4 基数排序183

13.1.5 双调排序网络185

13.1.6 合并排序186

13.1.7 串行排序性能对比187

13.2 基数排序188

13.2.1 基数排序概述188

13.2.2 单block基数排序189

13.2.3 基于thrust库的基数排序196

13.3 双调排序网络197

13.3.1 双调排序网络概述197

13.3.2 单block双调排序网络199

13.3.3 多block双调排序网络202

13.4 快速排序206

13.5 合并排序207

13.6 实验结果分析与结论208

13.7 知识点总结209

13.8 扩展练习210

第14章 几种简单图像处理211

14.1 图像直方图统计211

14.1.1 串行直方图统计211

14.1.2 并行直方图统计211

14.1.3 实验结果与分析212

14.2 中值滤波213

14.2.1 串行中值滤波214

14.2.2 1D并行中值滤波215

14.2.3 共享1D中值滤波216

14.2.4 双重共享1D中值滤波218

14.2.5 2D并行中值滤波221

14.2.6 共享2D中值滤波222

14.2.7 共享2D中值滤波的改进227

14.2.8 实验结果与分析229

14.3 均值滤波231

14.3.1 串行均值滤波231

14.3.2 并行均值滤波232

14.3.3 实验结果与分析233

第四篇 核心篇237

第15章 GPU执行核心237

15.1 概述237

15.2 算术运算支持238

15.2.1 整数运算238

15.2.2 浮点运算239

15.3 算术运算性能240

15.4 分支处理242

15.5 同步与测时246

15.5.1 同步246

15.5.2 测时247

15.6 数学函数247

15.7 warp与block原语249

15.7.1 warp原语249

15.7.2 block原语250

15.8 kernel启动、线程切换和循环处理251

第16章 GPU存储体系254

16.1 概述254

16.2 寄存器259

16.3 局部存储261

16.4 共享存储器264

16.4.1 共享存储使用264

16.4.2 bank conflict265

16.4.3 volatile关键字266

16.4.4 共享存储原子操作267

16.5 常量存储268

16.6 全局存储269

16.6.1 全局存储的使用269

16.6.2 全局存储的合并访问271

16.6.3 利用纹理缓存通道访问全局存储271

16.7 纹理存储273

16.7.1 CUDA数组273

16.7.2 纹理存储的操作和限制274

16.7.3 读取模式、纹理坐标、滤波模式和寻址模式276

16.7.4 表面存储278

16.8 主机端内存281

16.9 零拷贝操作283

第17章 GPU关键性能测评284

17.1 GPU性能测评概述284

17.2 GPU参数获取286

17.2.1 GPU选择286

17.2.2 详细设备参数获取287

17.3 精确测时方法汇总288

17.3.1 clock测时289

17.3.2 gettimeofday测时289

17.3.3 CUDA事件测时289

17.3.4 cutil库函数测时290

17.4 GPU预热与启动开销290

17.5 GPU浮点运算能力291

17.6 GPU访存带宽293

17.7 GPU通信带宽295

17.8 NVIDIA Visual Profiler296

17.9 程序性能对比约定298

第18章 CPUs和GPUs协同299

18.1 协同优化基点299

18.1.1 CPU并行矩阵乘基点299

18.1.2 GPU并行矩阵乘基点300

18.2 CPU/GPU协同300

18.3 多GPU协同305

18.3.1 CUDA版本306

18.3.2 OpenMP+CUDA308

18.3.3 MPI+CUDA311

18.4 CPUs/GPUs协同314

18.4.1 CUDA版本314

18.4.2 OpenMP+CUDA319

18.4.3 MPI+OpenMP+CUDA324

18.5 本章小结329

附录333

附录A 判断法1D卷积代码333

附录A.1 判断法1D卷积basic版333

附录A.2 判断法1D卷积constant版334

附录A.3 判断法1D卷积shared版336

附录A.4 判断法1D卷积cache版337

附录B 曼德博罗特集的系列优化代码340

附录B.1 完整版串行C代码340

附录B.2 cuda_1_0343

附录B.3 cuda_0_2345

附录B.4 cuda_zerocopy346

附录B.5 cuda_1_0_zerocopy348

附录B.6 cuda_0_0_zerocopy349

附录B.7 cuda_0_2_zerocopy351

附录B.8 cuda_2352

附录B.9 cuda_1_2354

附录C 几种图像处理完整源码357

附录C.1 BMP图像读写头文件357

附录C.2 图像直方图串行代码373

附录C.3 串行中值滤波代码374

附录C.4 并行均值滤波相关代码376

附录D nvprof帮助菜单383

附录E NVCC帮助菜单388

附录F 几种排序算法源代码399

附录F.1 bitonic_sort_block函数399

附录F.2 GPU快速排序完整代码400

附录F.3 GPU合并排序完整代码408

参考文献417

热门推荐