图书介绍

Intel Xeon Phi协处理器高性能编程指南2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载

Intel Xeon Phi协处理器高性能编程指南
  • (美)杰弗斯,(美)仁达敬著 著
  • 出版社: 北京:人民邮电出版社
  • ISBN:9787115347848
  • 出版时间:2014
  • 标注页数:380页
  • 文件大小:167MB
  • 文件页数:410页
  • 主题词:微处理器-系统设计

PDF下载


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

下载说明

Intel Xeon Phi协处理器高性能编程指南PDF格式电子书版下载

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

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

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

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

图书目录

第1章 绪论1

1.1更加并行化1

1.2为什么需要Intel Xeon Phi协处理器2

1.3协处理器平台5

1.4第一款Intel Xeon Phi协处理器7

1.5控制“Ninja鸿沟”于一定范围9

1.6移植与优化的双重优势9

1.7何时使用Intel Xeon Phi协处理器10

1.8实现处理器性能最优11

1.9为何扩展超过100个线程如此重要11

1.10最大化并行程序性能14

1.11评估高度并行执行的能力14

1.12对于GPU是怎么样的15

1.13易于移植,也易于提升性能16

1.14性能移植16

1.15 超线程与多线程17

1.16协处理器主要使用模型:MPI和Offload17

1.17编译器和编程模型18

1.18缓存优化19

1.19案例和细节20

1.20更多信息21

第2章 高性能封闭追踪测试驱动23

2.1揭开引擎盖:协处理器详解24

2.2发动汽车:与协处理器沟通25

2.3轻松上路:首次运行代码27

2.4开始加速:多线程运行代码31

2.5全速行驶:使用所有核心36

2.6轻松过弯:访存带宽45

2.7高速漂移:内存带宽最大化50

2.8总结52

第3章 一场乡间公路友谊赛55

3.1赛前准备:本章重点55

3.2初识赛道:9点模板算法56

3.3起跑线上:9点模板基准程序58

3.4路在前方:运行基准模板代码63

3.5石子路上:向量化而未扩展65

3.6全力比赛:向量化加上规模扩展67

3.7扳手和润滑油:代码微调70

3.7.1基准校正70

3.7.2使用流存储72

3.7.3使用2MB大型存储页73

3.8总结74

3.9更多信息75

第4章 都市畅游:实际代码优化案例77

4.1选择方向:基本的扩散算法78

4.2到达路口:计算边界效应78

4.3寻找林荫大道:代码扩展化84

4.4雷霆之路:保证向量化86

4.5剥离:从最内层循环开始89

4.6尝试辛烷含量更高的燃料:利用数据局部性与切片分块提升速度92

4.7高速驾驶认证:高速旅行的总结96

第5章 大数据(向量)99

5.1为什么向量化99

5.2如何向量化100

5.3实现向量化的五种方法100

5.4六步向量化方法论102

5.5通过Cache流:布局、对齐、预取数据104

5.5.1为什么数据布局影响向量化性能104

5.5.2数据校准106

5.5.3预取107

5.5.4流存储112

5.6编译器技巧114

5.6.1避免手动展开循环114

5.6.2循环向量化的要求(英特尔编译器)115

5.6.3内联的重要性,简单性能分析的干扰116

5.7编译器选项117

5.8编译器指导指令118

5.8.1 SIMD指令119

5.8.2 VECTOR与NOVECTOR指令123

5.8.3 IVDEP指令124

5.8.4随机数函数向量化126

5.8.5充分向量化128

5.8.6 -opt-assume-safe-padding选项130

5.8.7数据对齐130

5.8.8在数组表示法(Array Notation)中权衡向量长度134

5.9使用数组段(Array Section)支持向量化137

5.9.1 Fortran数组段137

5.9.2 Cilk Plus数组段和元素函数139

5.10查看编译器生成:汇编代码检测143

5.10.1如何找到汇编代码143

5.10.2快速查看汇编代码145

5.11向量化数值结果差异149

5.12总结149

5.13更多信息149

第6章 多任务(非多线程)151

6.1 OpenMP、 Fortran2008、 Intel TBB、 Intel Cilk Plus、 Intel MKL152

6.1.1需在协处理器上创建任务153

6.1.2线程池的重要性154

6.2 OpenMP154

6.2.1并行处理模型155

6.2.2指导性语句155

6.2.3 OpenMP上的有效控制155

6.2.4嵌套156

6.3 Fortran 2008157

6.3.1 DO CONCURRENT157

6.3.2 DO CONCURRENT以及数据竞争157

6.3.3 DO CONCURRENT定义158

6.3.4 DO CONCURRENT对比FOR ALL159

6.3.5 DO CONCURRENT对比OpenMP “Parallel”160

6.4 Intel TBB160

6.4.1发展历史162

6.4.2使用TBB163

6.4.3 parallel_for163

6.4.4 blocked_range164

6.4.5 Partitioners164

6.4.6 Parallel_reduce165

6.4.7 Parallel_invoke166

6.4.8 C++11相关166

6.4.9 TBB总结167

6.5 Cilk Plus167

6.5.1发展历史169

6.5.2从TBB借用组件169

6.5.3向TBB提供组件170

6.5.4关键字拼写170

6.5.5 cilk_for170

6.5.6 cilk_spawn与cilk_sync171

6.5.7 Reducers(超对象)172

6.5.8数组表示法与基本函数173

6.5.9 Cilk Plus总结173

6.6总结173

6.7更多信息173

第7章 分载(Offload)175

7.1两种分载模式176

7.2分载执行与本地执行176

7.2.1非共享内存模式:使用分载编译器指导指令(Pragma)177

7.2.2共享虚拟内存模式:通过共享虚拟内存使用分载177

7.2.3 Intel数学函数库(Intel MKL)自动分载178

7.3分载的语言扩展支持178

7.3.1分载的编译器选项和环境变量179

7.3.2分载的共享环境变量181

7.3.3针对多个协处理器分载181

7.4使用编译器指导指令分载182

7.4.1设置协处理器上的变量与函数184

7.4.2指针变量的内存分配与管理186

7.4.3时间优化:坚持分配的另外一个原因193

7.4.4对C/C++目标代码使用编译器指导指令193

7.4.5对Fortran语言中的目标代码使用指导指令195

7.4.6执行单一处理器时不创建代码196

7.4.7英特尔MIC架构预定义宏197

7.4.8 Fortran数组197

7.4.9为部分C/C++数组分配内存197

7.4.10为部分Fortran数组分配内存198

7.4.11两变量间的数据转移199

7.4.12分载代码指令使用的限制条件200

7.5在共享虚拟存储器上使用分载202

7.5.1使用共享内存及共享变量203

7.5.2关于共享函数204

7.5.3共享内存管理函数204

7.5.4同步函数执行与异步函数执行:_Cilk_offload204

7.5.5共享变量和函数:_Cilk shared205

7.5.6_Cilk_shared和Cilk offload的使用规则207

7.5.7处理器与目标之间的内存同步208

7.5.8使用_Cilk offload写入具体目标代码208

7.5.9使用虚拟内存分载代码的限制因素209

7.5.10使用共享虚拟内存时定义持久性数据210

7.5.11使用共享虚拟内存持久性数据的C++声明212

7.6关于异步计算212

7.7关于异步数据转移213

7.8应用目标属性至多个声明218

7.8.1分载使用的vec-report可选项219

7.8.2测量分载区域的时间与数据219

7.8.3 _Offoad_report219

7.8.4在分载代码中使用库220

7.8.5关于使用xiar和xild创建分载程序库220

7.9在协处理器上执行I/O文件221

7.10从分载代码中记录stdout和stderr223

7.11总结223

7.12更多信息224

第8章 协处理器架构225

8.1 Intel Xeon Phi协处理器产品家族226

8.2协处理器卡的设计227

8.3 Intel Xeon Phi协处理器芯片概述228

8.4协处理器核架构229

8.5指令集和多线程处理230

8.6缓存组织和内存访问232

8.7预取234

8.8向量处理单元架构234

8.9协处理器PCI-E系统接口和DMA239

8.10协处理器电源管理241

8.11可靠性、可用性和可维护性(RAS)244

8.12协处理器系统管理控制器(SMC)245

8.12.1传感器246

8.12.2散热设计监控和控制246

8.12.3风扇控制247

8.12.4潜在应用影响247

8.13基准测试247

8.14总结248

8.15 更多信息248

第9章 协处理器系统软件251

9.1协处理器软件体系架构概述251

9.1.1对称性253

9.1.2 Ring级别:用户态和内核态253

9.2协处理器编程模型和选项253

9.2.1宽度与深度254

9 2.2 MPI编程模型255

9.3协处理器软件体系架构组件257

9.4英特尔众核平台软件栈258

9 4.1 MYO: Mine Yours Ours258

9.4.2 COI: Coprocessor Offload Infrastructure259

9.4.3 SCIF: Symmetric Communications Interface259

9.4.4 Virtual networking(NetDev)、TCP/IP及sockets259

9.4.5协处理器系统管理260

9.4.6面向MPI应用程序的协处理器组件262

9.5 Linux对Intel Xeon Phi协处理器的支持267

9.6优化内存分配的性能268

9.6.1控制2MB内存页的数量268

9.6.2监控协处理器上2MB内存页的数量269

9.6.3分配2MB内存页的方法示例269

9.7总结270

9.8更多信息271

第10章 协处理器的Linux系统273

10.1协处理器Linux基础273

10.2协处理器Linux系统的启动和配置简介274

10.3协处理器Linux系统的默认配置276

10.4修改协处理器配置277

10.4.1可配置的组件277

10.4.2配置文件278

10.4.3配置启动参数278

10.4.4协处理器根文件系统280

10.5 micctrl工具285

10.5.1协处理器状态控制285

10.5.2启动协处理器285

10.5.3关闭协处理器286

10.5.4重新启动协处理器286

10.5.5重置协处理器286

10.5.6协处理器配置初始化和信息传播287

10.5.7配置参数的辅助功能288

10.5.8其他文件系统相关的帮助功能290

10.6添加软件290

10.6.1文件系统创建流程291

10.6.2添加文件到根文件系统292

10.6.3示例:添加一组全局访问文件293

10.7 Linux系统在协处理器上的启动过程294

10.8 Linux机群中的协处理器296

10.8.1 Intel Cluster Ready297

10.8.2如何使用Intel Cluster Checker298

10.8.3 Intel Cluster Checker对协处理器的支持298

10.9总结300

10.10更多信息301

第11章 数学库303

11.1英特尔数学核心函数库综述304

11.2英特尔数学核心函数库与英特尔编译器305

11.3协处理器支持综述305

11.3.1自动分载控制函数306

11.3.2设置环境变量308

11.4在本地模式下使用协处理器309

11.5使用自动分载模式310

11.5.1如何开启自动分载310

11.5.2控制作业划分311

11.5.3有效使用自动分载技巧312

11.5.4有、无分载情况下高效使用英特尔MKL的技巧313

11.6使用编译器辅助分载314

11.7精度选择和变化316

11.7.1快速超越函数和数学算法316

11.7.2理解几种可能的浮点算法实现变种316

11.8总结319

11.9更多信息319

第12章M PI321

12.1 MPI总览321

12.2在Intel Xeon Phi上运行MPI322

12.3预备工作326

12.4从MPI进程中分载327

12.4.1 Hello World327

12.4.2梯形积分算法328

12.5协处理器本地使用MPI331

12.5.1 Hello World(再次)332

12.5.2梯形积分算法(回顾)333

12.6总结338

12.7更多信息338

第13章 采样和计时341

13.1协处理器事件监视寄存器342

13.2效率指标343

13.2.1 CPI344

13.2.2计算与数据访问比率(Compute to Data Access Ratio)347

13.3潜在性能问题348

13.3.1通用缓存使用率(General Cache Usage)349

13.3.2 TLB失效351

13.3.3 VPU使用率352

13.3.4内存带宽353

13.4 Intel VTune Amplifier XE产品355

13.5性能应用编程接口356

13.6 MPI分析:英特尔追踪分析器与收集器356

13.6.1生成跟踪文件:面向只在协处理器上运行的应用356

13.6.2生成跟踪文件:面向同时在处理器和协处理器上运行的应用357

13.7计时357

13.7.1协处理器上的时钟源358

13.7.2 MIC运行时间计数器(micetc)358

13.7.3时间戳计数器(tsc)358

13.7.4设置时钟源359

13.75时间结构359

13.7.6时间惩罚360

13.7.7在分载区(offload region)测量时间和数据361

13.8总结361

13.9更多信息361

第14章 总结363

14.1建议363

14.2附加资源364

14.3将推出另一本书364

14.4感谢读者反馈364

术语表365

热门推荐