图书介绍
CUDA并行程序设计 GPU编程指南【2025|PDF下载-Epub版本|mobi电子书|kindle百度云盘下载】

- ShaneCook著;苏统华译;李东译;李松泽译;魏通译 著
- 出版社: 北京:机械工业出版社
- ISBN:9787111448617
- 出版时间:2014
- 标注页数:522页
- 文件大小:255MB
- 文件页数:538页
- 主题词:图象处理-程序设计
PDF下载
下载说明
CUDA并行程序设计 GPU编程指南PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第1章 超级计算简史1
1.1 简介1
1.2 冯·诺依曼计算机架构2
1.3 克雷4
1.4 连接机5
1.5 Cell处理器6
1.6 多点计算8
1.7 早期的GPGPU编程10
1.8 单核解决方案的消亡11
1.9 英伟达和CUDA12
1.10 GPU硬件13
1.11 CUDA的替代选择15
1.11.1 OpenCL15
1.11.2 DirectCompute16
1.11.3 CPU的替代选择16
1.11.4 编译指令和库17
1.12 本章小结18
第2章 使用GPU理解并行计算19
2.1 简介19
2.2 传统的串行代码19
2.3 串行/并行问题21
2.4 并发性22
2.5 并行处理的类型25
2.5.1 基于任务的并行处理25
2.5.2 基于数据的并行处理27
2.6 弗林分类法29
2.7 常用的并行模式30
2.7.1 基于循环的模式30
2.7.2 派生/汇集模式31
2.7.3 分条/分块33
2.7.4 分而治之34
2.8 本章小结34
第3章 CUDA硬件概述35
3.1 PC架构35
3.2 GPU硬件结构39
3.3 CPU与GPU41
3.4 GPU计算能力42
3.4.1 计算能力1.042
3.4.2 计算能力1.143
3.4.3 计算能力1.244
3.4.4 计算能力1.344
3.4.5 计算能力2.044
3.4.6 计算能力2.146
第4章 CUDA环境搭建48
4.1 简介48
4.2 在Windows下安装软件开发工具包48
4.3 Visual Studio49
4.3.1 工程49
4.3.2 64位用户49
4.3.3 创建工程51
4.4 Linux52
4.5 Mac55
4.6 安装调试器56
4.7 编译模型58
4.8 错误处理59
4.9 本章小结60
第5章 线程网格、线程块以及线程61
5.1 简介61
5.2 线程61
5.2.1 问题分解62
5.2.2 CPU与GPU的不同63
5.2.3 任务执行模式64
5.2.4 GPU线程64
5.2.5 硬件初窥66
5.2.6 CUDA内核69
5.3 线程块70
5.4 线程网格74
5.4.1 跨幅与偏移76
5.4.2 X与Y方向的线程索引77
5.5 线程束83
5.5.1 分支83
5.5.2 GPU的利用率85
5.6 线程块的调度88
5.7 一个实例——统计直方图89
5.8 本章小结96
第6章 CUDA内存处理99
6.1 简介99
6.2 高速缓存100
6.3 寄存器的用法103
6.4 共享内存112
6.4.1 使用共享内存排序113
6.4.2 基数排序117
6.4.3 合并列表123
6.4.4 并行合并128
6.4.5 并行归约131
6.4.6 混合算法134
6.4.7 不同GPU上的共享内存138
6.4.8 共享内存小结139
6.5 常量内存140
6.5.1 常量内存高速缓存140
6.5.2 常量内存广播机制142
6.5.3 运行时进行常量内存更新152
6.6 全局内存157
6.6.1 记分牌165
6.6.2 全局内存排序165
6.6.3 样本排序168
6.7 纹理内存188
6.7.1 纹理缓存188
6.7.2 基于硬件的内存获取操作189
6.7.3 使用纹理的限制190
6.8 本章小结190
第7章 CUDA实践之道191
7.1 简介191
7.2 串行编码与并行编码191
7.2.1 CPU与GPU的设计目标191
7.2.2 CPU与GPU上的最佳算法对比194
7.3 数据集处理197
7.4 性能分析206
7.5 一个使用AES的示例218
7.5.1 算法219
7.5.2 AES的串行实现223
7.5.3 初始内核函数224
7.5.4 内核函数性能229
7.5.5 传输性能233
7.5.6 单个执行流版本234
7.5.7 如何与CPU比较235
7.5.8 考虑在其他GPU上运行244
7.5.9 使用多个流248
7.5.10 AES总结249
7.6 本章小结249
第8章 多CPU和多GPU解决方案252
8.1 简介252
8.2 局部性252
8.3 多CPU系统252
8.4 多GPU系统253
8.5 多GPU算法254
8.6 按需选用GPU255
8.7 单节点系统258
8.8 流259
8.9 多节点系统273
8.10 本章小结284
第9章 应用程序性能优化286
9.1 策略1:并行/串行在GPU/CPU上的问题分解286
9.1.1 分析问题286
9.1.2 时间286
9.1.3 问题分解288
9.1.4 依赖性289
9.1.5 数据集大小292
9.1.6 分辨率293
9.1.7 识别瓶颈294
9.1.8 CPU和GPU的任务分组297
9.1.9 本节小结299
9.2 策略2:内存因素299
9.2.1 内存带宽299
9.2.2 限制的来源300
9.2.3 内存组织302
9.2.4 内存访问以计算比率303
9.2.5 循环融合和内核融合308
9.2.6 共享内存和高速缓存的使用309
9.2.7 本节小结311
9.3 策略3:传输311
9.3.1 锁页内存311
9.3.2 零复制内存315
9.3.3 带宽限制322
9.3.4 GPU计时327
9.3.5 重叠GPU传输330
9.3.6 本节小结334
9.4 策略4:线程使用、计算和分支335
9.4.1 线程内存模式335
9.4.2 非活动线程337
9.4.3 算术运算密度338
9.4.4 一些常见的编译器优化342
9.4.5 分支347
9.4.6 理解底层汇编代码351
9.4.7 寄存器的使用355
9.4.8 本节小结357
9.5 策略5:算法357
9.5.1 排序358
9.5.2 归约363
9.5.3 本节小结384
9.6 策略6:资源竞争384
9.6.1 识别瓶颈384
9.6.2 解析瓶颈396
9.6.3 本节小结403
9.7 策略7:自调优应用程序403
9.7.1 识别硬件404
9.7.2 设备的利用405
9.7.3 性能采样407
9.7.4 本节小结407
9.8 本章小结408
第10章 函数库和SDK410
10.1 简介410
10.2 函数库410
10.2.1 函数库通用规范411
10.2.2 NPP411
10.2.3 Thrust419
10.2.4 CuRAND434
10.2.5 CuBLAS库438
10.3 CUDA运算SDK442
10.3.1 设备查询443
10.3.2 带宽测试445
10.3.3 SimpleP2P446
10.3.4 asyncAPI和cudaOpenMP448
10.3.5 对齐类型455
10.4 基于指令的编程457
10.5 编写自己的内核464
10.6 本章小结466
第11章 规划GPU硬件系统467
11.1 简介467
11.2 CPU处理器469
11.3 GPU设备470
11.3.1 大容量内存的支持471
11.3.2 ECC内存的支持471
11.3.3 Tesla计算集群驱动程序471
11.3.4 更高双精度数学运算472
11.3.5 大内存总线带宽472
11.3.6 系统管理中断472
11.3.7 状态指示灯472
11.4 PCI-E总线472
11.5 GeForce板卡473
11.6 CPU内存474
11.7 风冷475
11.8 液冷477
11.9 机箱与主板479
11.10 大容量存储481
11.10.1 主板上的输入/输出接口481
11.10.2 专用RAID控制器481
11.10.3 HDSL483
11.10.4 大容量存储需求483
11.10.5 联网483
11.11 电源选择484
11.12 操作系统487
11.12.1 Windows487
11.12.2 Linux488
11.13 本章小结488
第12章 常见问题、原因及解决方案489
12.1 简介489
12.2 CUDA指令错误489
12.2.1 CUDA错误处理489
12.2.2 内核启动和边界检查490
12.2.3 无效的设备操作491
12.2.4 volatile限定符492
12.2.5 计算能力依赖函数494
12.2.6 设备函数、全局函数和主机函数495
12.2.7 内核中的流496
12.3 并行编程问题497
12.3.1 竞争冒险497
12.3.2 同步498
12.3.3 原子操作502
12.4 算法问题504
12.4.1 对比测试504
12.4.2 内存泄漏506
12.4.3 耗时的内核程序506
12.5 查找并避免错误507
12.5.1 你的GPU程序有多少错误507
12.5.2 分而治之508
12.5.3 断言和防御型编程509
12.5.4 调试级别和打印511
12.5.5 版本控制514
12.6 为未来的GPU进行开发515
12.6.1 开普勒架构515
12.6.2 思考518
12.7 后续学习资源519
12.7.1 介绍519
12.7.2 在线课程519
12.7.3 教学课程520
12.7.4 书籍521
12.7.5 英伟达CUDA资格认证521
12.8 本章小结522
热门推荐
- 868260.html
- 1797273.html
- 2436299.html
- 1928884.html
- 2543945.html
- 1057493.html
- 1469053.html
- 2200721.html
- 206576.html
- 162475.html
- http://www.ickdjs.cc/book_3791566.html
- http://www.ickdjs.cc/book_918137.html
- http://www.ickdjs.cc/book_3243183.html
- http://www.ickdjs.cc/book_2372688.html
- http://www.ickdjs.cc/book_1143873.html
- http://www.ickdjs.cc/book_211164.html
- http://www.ickdjs.cc/book_1159727.html
- http://www.ickdjs.cc/book_2800634.html
- http://www.ickdjs.cc/book_876633.html
- http://www.ickdjs.cc/book_1340370.html