点此搜书

高性能CUDA应用设计与开发  方法与最佳实践
  • 作 者:RobFarber著
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2013
  • ISBN:9787111404460
  • 标注页数:273 页
  • PDF页数:292 页
  • 请阅读订购服务说明与试读!

文档类型

价格(积分)

购买连接

试读

PDF格式

10

立即购买

点击试读

订购服务说明

1、本站所有的书默认都是PDF格式,该格式图书只能阅读和打印,不能再次编辑。

2、除分上下册或者多册的情况下,一般PDF页数一定要大于标注页数才建议下单购买。【本资源292 ≥273页】

图书下载及付费说明

1、所有的电子图书为PDF格式,支持电脑、手机、平板等各类电子设备阅读;可以任意拷贝文件到不同的阅读设备里进行阅读。

2、电子图书在提交订单后一般半小时内处理完成,最晚48小时内处理完成。(非工作日购买会延迟)

3、所有的电子图书都是原书直接扫描方式制作而成。

第1章 CUDA入门与编程思想 1

1.1 源代码与维基 1

1.2 一个用以区别CUDA与传统程序开发的示例 2

1.3 选择合适的CUDA API 5

1.4 CUDA的一些基本概念 7

1.5 理解首个Runtime Kernel 10

1.6 GPGPU编程的三条法则 11

1.6.1 法则1:将数据放入并始终存储于GPU 12

1.6.2 法则2:交给GPGPU足够多的任务 12

1.6.3 法则3:注重GPGPU上的数据重用,以避免带宽限制 12

1.7 大O记号的思想与数据传输 13

1.8 CUDA和Amdahl定律 15

1.9 数据并行与任务并行 15

1.10 混合执行:同时使用CPU和GPU资源 16

1.11 回归测试与正确性 18

1.12 静默错误 19

1.13 调试简介 20

1.14 UNIX调试方法 21

1.14.1 NVIDIA cuda-gdb调试器 21

1.14.2 CUDA内存检查器 23

1.14.3 通过UNIX ddd界面使用cuda-gdb 24

1.15 使用Parallel Nsight进行Windows调试 25

1.16 本章小结 27

第2章 CUDA在机器学习与优化中的应用 28

2.1 建模与模拟 28

2.1.1 拟合参数化模型 29

2.1.2 Nelder-Mead方法 30

2.1.3 Levenberg-Marquardt方法 30

2.1.4 算法加速 31

2.2 机器学习与神经网络 32

2.3 异或逻辑:一个重要的非线性机器学习问题 33

2.3.1 目标函数示例 35

2.3.2 针对多GPU设备、多CPU处理器的完整仿函数 35

2.3.3 完整Nelder-Mead优化代码的简要讨论 37

2.4 异或逻辑的性能结果 45

2.5 性能讨论 45

2.6 本章小结 48

2.7 C++NELDER-MEAD代码模板 48

第3章 CUDA工具套件:对PCA、NLPCA进行性能分析 53

3.1 PCA和NLPCA 53

3.1.1 自编码网络 55

3.1.2 用于PCA分析的仿函数示例 56

3.1.3 用于NLPCA分析的示例仿函数 58

3.2 获得基础性能分析数据 60

3.3 gprof:通用UNIX性能分析器 61

3.4 NVIDIA可视化性能分析器:computeprof 62

3.5 Microsoft Visual Studio中的Parallel Nsight 65

3.5.1 Nsight时间表分析 66

3.5.2 NVTX跟踪支持库 67

3.5.3 CUDA API的可扩展性表现 68

3.6 性能调节与分析实用工具(TAU) 70

3.7 本章小结 70

第4章 CUDA执行模型 72

4.1 GPU架构综述 72

4.1.1 线程调度:通过执行配置统筹性能与并行度 74

4.1.2 eomputeprof中Warp相关值 77

4.1.3 Warp分歧 77

4.1.4 关于Warp分歧的若干准则 78

4.1.5 computeprof中Warp分歧相关值 79

4.2 Warp调度与TLP 79

4.3 ILP:高性能低占用率 80

4.3.1 ILP隐藏算术计算延迟 81

4.3.2 ILP隐藏数据延迟 84

4.3.3 ILP的未来 84

4.3.4 computeprof中指令速率相关值 85

4.4 Little法则 86

4.5 检测限制因素的CUDA工具 87

4.5.1 nvcc编译器 88

4.5.2 启动约束 90

4.5.3 反汇编器 90

4.5.4 PTX Kernel函数 92

4.5.5 GPU模拟器 92

4.6 本章小结 93

第5章 CUDA存储器 94

5.1 CUDA存储器层次结构 94

5.2 GPU存储器 95

5.3 L2缓存 98

5.4 L1缓存 99

5.5 CUDA内存类型 100

5.5.1 寄存器 101

5.5.2 局域内存 101

5.5.3 和局域内存相关的computeprof性能分析参数 102

5.5.4 共享内存 102

5.5.5 和共享内存相关的computeprof性能分析参数 105

5.5.6 常量内存 105

5.5.7 纹理内存 106

5.5.8 和纹理内存相关的computeprof性能分析参数 108

5.6 全局内存 109

5.6.1 常见的整合内存示例 110

5.6.2 全局内存的申请 111

5.6.3 全局内存设计中的限制因素 113

5.6.4 和全局内存相关的computeprof性能分析参数 114

5.7 本章小结 115

第6章 高效使用CUDA存储器 116

6.1 归约 116

6.1.1 归约模板 117

6.1.2 functionReduce.h的测试程序 122

6.1.3 测试结果 126

6.2 使用非规则数据结构 127

6.3 稀疏矩阵和CUSP支持库 131

6.4 图论算法 132

6.5 SoA、AoS以及其他数据结构 134

6.6 分片和分块 135

6.7 本章小结 136

第7章 提高并行度的技巧 137

7.1 CUDA上下文环境对并行度的扩展 137

7.2 流与上下文环境 138

7.2.1 多GPU的使用 139

7.2.2 显式同步 139

7.2.3 隐式同步 141

7.2.4 统一虚拟地址空间 141

7.2.5 一个简单的示例 142

7.2.6 分析结果 144

7.3 使用多个流乱序执行 144

7.3.1 在同一GPU内并发执行Kernel函数的建议 147

7.3.2 隐式并行Kernel的原子操作 147

7.4 将数据捆绑计算 149

7.4.1 手动分割数据 150

7.4.2 映射内存 150

7.4.3 映射内存的工作机制 152

7.5 本章小结 153

第8章 CUDA在所有GPU与CPU程序中的应用 154

8.1 从CUDA到多种硬件后端的途径 155

8.1.1 PGI CUDA x86编译器 155

8.1.2 PGI CUDA x86编译器 157

8.1.3 将x86处理器核心用作流多处理器 159

8.1.4 NVIDIA NVCC编译器 160

8.1.5 Ocelot 160

8.1.6 Swan 161

8.1.7 MCUDA 162

8.2 从其他语言访问CUDA 162

8.2.1 SWIG 162

8.2.2 Copperhead 163

8.2.3 EXCEL 164

8.2.4 MATLAB 164

8.3 支持库 164

8.3.1 CUBLAS 164

8.3.2 CUFFT 165

8.3.3 MAGMA 174

8.3.4 phiGEMM支持库 175

8.3.5 CURAND 176

8.4 本章小结 177

第9章 CUDA与图形渲染混合编程 178

9.1 OpenGL 178

9.1.1 GLUT 179

9.1.2 通过OpenGL映射GPU内存 179

9.1.3 使用基元重启提升3D处理性能 181

9.2 框架内各文件的介绍 183

9.2.1 Kernel与perlin Kernel演示的示例代码 184

9.2.2 simpleGLmain.cpp文件 192

9.2.3 simpleVBO.cpp文件 196

9.2.4 callbacksVBO.cpp文件 199

9.3 本章小结 204

第10章 在云计算和集群环境中使用CUDA 205

10.1 消息传递接口 205

10.1.1 MPI编程模型 206

10.1.2 MPI通信器 206

10.1.3 MPI进程号 206

10.1.4 主从模式 208

10.1.5 点对点模式基础 208

10.2 MPI通信机制 209

10.3 带宽 211

10.4 平衡率 212

10.5 运行大型MPI程序需要考虑的因素 214

10.5.1 初始数据加载的可扩展性 214

10.5.2 使用MPI进行计算 215

10.5.3 可扩展性检查 216

10.6 云计算 217

10.7 代码示例 218

10.7.1 数据的产生 218

10.7.2 主体代码部分 220

10.8 本章小结 225

第11章 CUDA在现实问题中的应用 227

11.1 高维数据的处理 228

11.1.1 PCA/NLPCA 228

11.1.2 多维尺度分析 229

11.1.3 K均值聚类算法 229

11.1.4 期望最大化 229

11.1.5 支持向量机 230

11.1.6 Bayesian网络 230

11.1.7 互信息 231

11.2 力导向图 232

11.3 Monte Carlo方法 232

11.4 分子建模 233

11.5 量子化学 234

11.6 交互式工作流 234

11.7 其他众多的项目 235

11.8 本章小结 235

第12章 针对现场实况视频流的应用程序 236

12.1 机器视觉话题 236

12.1.1 3D效果 237

12.1.2 肤色区域分割 238

12.1.3 边缘检测 238

12.2 FFmpeg 239

12.3 TCP服务器 241

12.4 实况视频流应用程序 244

12.4.1 kernelWave():动画Kernel函数 244

12.4.2 kernelFlat():在平面渲染图像 245

12.4.3 kernelSkin():仅保留肤色区域 245

12.4.4 kernelSobel():Sobel边缘检测过滤器 246

12.4.5 launch_kernel()方法 247

12.5 simpleVBO.cpp文件 248

12.6 callbacksVBO.cpp文件 248

12.7 生成与执行代码 251

12.8 展望 251

12.8.1 机器学习 252

12.8.2 Connectome 252

12.9 本章小结 253

12.10 simpleVBO.cpp文件 253

参考文献 258

术语表 265

购买PDF格式(10分)
返回顶部