C++ AMP 用Visual C++加速大规模并行计算PDF电子书下载
- 电子书积分:11 积分如何计算积分?
- 作 者:(美)格雷戈里,(美)米勒著
- 出 版 社:北京:人民邮电出版社
- 出版年份:2014
- ISBN:9787115345035
- 页数:300 页
第1章 C+++ AMP概述 1
1.1为什么选择GPGPU?什么是异构计算? 1
1.1.1性能提升史 1
1.1.2异构平台 2
1.1.3 GPU架构 3
1.1.4通过并行性提升性能的候选方案 4
1.2 CPU并行&技术 7
1.2.1向量化 7
1.2.2 OpenMP 9
1.2.3并发运行时库(ConcRT)和并行模式库 10
1.2.4任务并行库 11
1.2.5 WARP—— Windows高级栅格化平台 11
1.2.6 GPU并行技术 12
1.2.7成功并行化的要求 13
1.3 C+++ AMP方法 14
1.3.1 C+++ AMP将GPGPU(以及更多)带进主流 14
1.3.2 C+++ AMP是C+++而不是C 14
1.3.3 C+++AMP使用了我们熟识的工具 15
1.3.4 C+++ AMP是一个近乎全面的代码库 15
1.3.5 C+++ AMP可以生成可移植的、不会过时的执行代码 17
1.4小结 18
第2章 Nbody案例 19
2.1运行示例前的准备1作 19
2.2运行Nbody示例 20
2.3示例的结构 24
2.4 CPU计算 25
2.4.1数据结构 25
2.4.2 wWinMain函数 26
2.4.3 OnFrameMove回调函数 26
2.4.4 OnD3D11CreateDevice回调函数 27
2.4.5 OnGUIEvent回调函数 29
2.4.6 OnD3 D 11 FrameRender回调函数 30
2.5 CPU NBody类 30
2.5.1 NBodySimpleInteractionEngine 30
2.5.2 NBodySimpleSingleCore 31
2.5.3 NBodySimpleMultiCore 31
2.5.4 NBodySimpleInteractionEngine::BodyBodyInteraction 32
2.6 C+++ AMP计算 33
2.6.1数据结构 33
2.6.2 CreateTasks 35
2.7 C+++ AMP NBody类 37
2.7.1 NBodyAmpSimple::Integrate 37
2.7.2 BodyBodyInteraction 38
2.8小结 40
第3章 C+++ AMP基础 41
3.1 array〈T,N〉 41
3.2 acceIerator与accelerator_ view 43
3.3 index〈N〉 45
3.4 extent〈N〉 46
3.5 array_view〈T,N〉 46
3.6 parallel_for_each 50
3.7使用restrict(amp)标记的函数 52
3.8在CPU和GPU之间复制数据 54
3.9数学库函数 56
3.10小结 57
第4章 分组 58
4.1使用分组的目的和好处 58
4.2 tile_ static内存 60
4.3 tiled extent 60
4.4 tiled_ index〈N1,N2,N3〉 62
4.5将简单算法改成分组算法 63
4.5.1使用tile static内存 64
4.5.2分组栅和同步 68
4.5.3完成简单版本到分组版本的修改 70
4.6分组大小的影响 71
4.7选择分组大小 74
4.8小结 75
第5章 分组NBody案例 76
5.1分组功能对NBody的提速有多大帮助 76
5.2 N体问题的分组算法 77
5.2.1 NBodyAmpTiled类 78
5.2.2 NBodvAmpTiled::Integrate 79
5.3使用Concurrency Visualizer 83
5.4选择分组大小 88
5.5小结 92
第6章 调试 93
6.1第一步 93
6.1.1选择GPU调试还是CPU调试 94
6.1.2参考加速器 97
6.2 GPU 调试基础 100
6.2.1熟悉的窗口和技巧 100
6.2.2 Debug Location工具栏 101
6.2.3检测竞态 101
6.3检查线程运行状况 103
6.3.1线程标记 104
6.3.2 GPU Threads窗口 105
6.3.3 Parallel Stacks窗口 107
6.3.4 Parallel Watch窗口 108
6.3.5对线程置标记、分组和过滤 110
6.4施加更多的控制 112
6.4.1冻结与解冻线程 113
6.4.2 Run Tile to Cursor 114
6.5小结 116
第7章 优化 117
7.1一种性能优化方法 117
7.2分析性能 118
7.2.1 测量内核性能 118
7.2.2使用Concurrency Visualizer 121
7.2.3使用Concurrency Visualizer SDK 126
7.3优化内存访问模式 127
7.3.1别名和paraIIel_for_ each调用 127
7.3.2往返 GPU的高效数据复制 131
7.3.3高效加速器全局内存访问 136
7.3.4结构体数组与数组结构体 139
7.3.5高效的分组静态内存访问 141
7.3.6常量内存 145
7.3.7纹理内存 146
7.3.8占用比和寄存器 146
7.4优化计算 147
7.4.1避免分支代码 147
7.4.2选择合适的精度 151
7.4.3数学运算的成本估算 153
7.4.4循环展开 153
7.4.5障栅 154
7.4.6排队模式 157
7.5小结 159
第8章 性能案例——归约 160
8.1问题 160
8.2示例的结构 161
8.2.1初始化和负载 164
8.2.2 Concurrency Visualizer标记 164
8.2.3 TimeFunc() 165
8.2.4开销 167
8.3 CPU算法 167
8.3.1串行算法 167
8.3.2并行算法 168
8.4 C+++AMP算法 168
8.4.1简单版本 169
8.4.2使用array_ view的简单版本 171
8.4.3简单优化版本 172
8.4.4原始分组版本 174
8.4.5共享内存的分组版本 176
8.4.6使分支数降至最低的版本 182
8.4.7消除槽位冲突版本 182
8.4.8减少停滞线程版本 184
8.4.9循环展开版本 185
8.4.10级联归约版本 188
8.4.11带循环展开的级联归约版本 190
8.5小结 191
第9章 使用多个加速器工作 192
9.1选择加速器 192
9.2使用一个以上的GPU 197
9.3在加速器之间交换数据 201
9.4动态负载均衡 206
9.5交织并行性 209
9.6回退到CPU执行 210
9.7小结 211
第10章 Cartoonizer案例 213
10.1前提条件 213
10.2运行示例 214
10.3示例的结构 217
10.4流水线 218
10.4.1数据结构 218
10.4.2 CartoonizerDIg::OnBnClickedButtonStart()方法 220
10.4.3ImagePipeline类 221
10.5流水线卡通化阶段 225
10.5.1ImageCartoonizerAgent类 225
10.5.2IFrameProcessor实现 228
10.6使用多个C+++ AMP加速器工作 236
10.6.1 FrameProcessorAmpMulti类 236
10.6.2复制流水线 239
10.6.3ImageCartoonizerAgentParallel类 239
10.7卡通器性能 242
10.8小结 244
第11章 图形互操作 245
11.1基础知识 245
11.1.1 norm与unorm 245
11.1.2 短向量类型 247
11.1.3 texture〈T,N〉 251
11.1.4 writeonly_texture_view〈T,N〉 257
11.1.5纹理与数组 258
11.2使用纹理和短向量 259
11.3 HLSL内建函数 262
11.4 DirectX互操作 264
11.4.1加速器视图与Direct3D设备互操作 264
11.4.2数组与Direct3 D设备互操作 265
11.4.3纹理与Direct3D纹理资源互操作 266
11.4.4使用图形互操作库 269
11.5小结 271
第12章 提示、技巧与最佳实践 273
12.1处理分组大小不匹配的问题 273
12.1.1填充分组 275
12.1.2截取分组 276
12.1.3对比方法 280
12.2初始化数组 280
12.3函数对象与lambda函数 281
12.4原子操作 282
12.5 Windows 8上其他的C+++ AMP功能 285
12.6超时检测与恢复 286
12.6.1避免TDR 287
12.6.2在Windows 8上取消TDR 288
12.6.3检测 TDR和从TDR中恢复 288
12.7 双精度支持 290
12.7.1有限双精度支持 290
12.7.2完整双精度支持 290
12.8在Windows 7 上调试 291
12.8.1配置远程计算机 291
12.8.2配置项目 291
12.8.3部署和调试项目 292
12.9 其他调试函数 293
12.10部署 294
12.10.1部署应用程序 294
12.10.2在服务器上运行C+++ AMP 294
12.11 C+++ AMP 与 Windows 8的Windows应用商店 296
12.12在托管代码中使用C+++ AMP 296
12.12.1从.NET应用程序、Windows 7 Windows应用商店或库中调用 297
12.12.2从C+++ CLR应用程序中调用 297
12.12.3从C+++ CLR项目中调用 297
12.13小结 298
附录 其他资源 299
- 《计算机网络与通信基础》谢雨飞,田启川编著 2019
- 《大学计算机实验指导及习题解答》曹成志,宋长龙 2019
- 《计算机辅助平面设计》吴轶博主编 2019
- 《计算机组成原理解题参考 第7版》张基温 2017
- 《云计算节能与资源调度》彭俊杰主编 2019
- 《Helmholtz方程的步进计算方法研究》李鹏著 2019
- 《计算机组成原理 第2版》任国林 2018
- 《大学计算机信息技术教程 2018版》张福炎 2018
- 《并行数据挖掘及性能优化》荀亚玲著 2020
- 《计算机自适应英语语用能力测试系统设计与效度验证 以TEM4词汇与语法题为例》张一鑫著 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《办好人民满意的教育 全国教育满意度调查报告》(中国)中国教育科学研究院 2019
- 《北京生态环境保护》《北京环境保护丛书》编委会编著 2018
- 《人民院士》吴娜著 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019
- 《中国人民的心》杨朔著;夕琳编 2019
- 《高等院校旅游专业系列教材 旅游企业岗位培训系列教材 新编北京导游英语》杨昆,鄢莉,谭明华 2019
- 《中华人民共和国成立70周年优秀文学作品精选 短篇小说卷 上 全2册》贺邵俊主编 2019
- 《指向核心素养 北京十一学校名师教学设计 数学 九年级 上 配人教版》周志英总主编 2019
- 《中华人民共和国成立70周年优秀文学作品精选 中篇小说卷 下 全3册》洪治纲主编 2019