图书介绍

C++ AMP 用Visual C++加速大规模并行计算【2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载】

C++ AMP 用Visual C++加速大规模并行计算
  • (美)格雷戈里,(美)米勒著 著
  • 出版社: 北京:人民邮电出版社
  • ISBN:9787115345035
  • 出版时间:2014
  • 标注页数:300页
  • 文件大小:41MB
  • 文件页数:321页
  • 主题词:C语言-程序设计

PDF下载


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

下载说明

C++ AMP 用Visual C++加速大规模并行计算PDF格式电子书版下载

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

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

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

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

图书目录

第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 OpenMP9

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+++而不是C14

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 NBodySimpleInteractionEngine30

2.5.2 NBodySimpleSingleCore31

2.5.3 NBodySimpleMultiCore31

2.5.4 NBodySimpleInteractionEngine::BodyBodyInteraction32

2.6 C+++ AMP计算33

2.6.1数据结构33

2.6.2 CreateTasks35

2.7 C+++ AMP NBody类37

2.7.1 NBodyAmpSimple::Integrate37

2.7.2 BodyBodyInteraction38

2.8小结40

第3章 C+++ AMP基础41

3.1 array〈T,N〉41

3.2 acceIerator与accelerator_ view43

3.3 index〈N〉45

3.4 extent〈N〉46

3.5 array_view〈T,N〉46

3.6 parallel_for_each50

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 extent60

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::Integrate79

5.3使用Concurrency Visualizer83

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 Cursor114

6.5小结116

第7章 优化117

7.1一种性能优化方法117

7.2分析性能118

7.2.1 测量内核性能118

7.2.2使用Concurrency Visualizer121

7.2.3使用Concurrency Visualizer SDK126

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使用一个以上的GPU197

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与unorm245

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避免TDR287

12.6.2在Windows 8上取消TDR288

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+++ AMP294

12.11 C+++ AMP 与 Windows 8的Windows应用商店296

12.12在托管代码中使用C+++ AMP296

12.12.1从.NET应用程序、Windows 7 Windows应用商店或库中调用297

12.12.2从C+++ CLR应用程序中调用297

12.12.3从C+++ CLR项目中调用297

12.13小结298

附录 其他资源299

热门推荐