当前位置:首页 > 工业技术
Cell BE处理器编程指南
Cell BE处理器编程指南

Cell BE处理器编程指南PDF电子书下载

工业技术

  • 电子书积分:13 积分如何计算积分?
  • 作 者:林海波,谢海波,王远洪等编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2008
  • ISBN:9787121066566
  • 页数:388 页
图书介绍:本书是针对Cell BE处理器的编程指南。主要介绍了Cell BE的体系结构、开发环境及针对CellBE进行软件开发的技术细节、性能分析和高级技巧。本书涉及Cell BE处理器开发的低、中、高三个级别的话题,可以使读者从零开始进入Cell BE处理器的世界并成为Cell BE软件开发的专家。相信通过本书,读者可以更加深入地了解Cell BE的革命性架构及Cell BE编程所能实现的巨大的计算能力。全书由三部分组成,第一部分简要介绍Cell BE。首先简单地介绍了Cell BE的历史、设计思想,然后对体系结构进行了展开介绍,最后介绍了Cell BE的编程语言和工具等。第二部分介绍了与编程相关的细节。包括Cell上的线程、SIMD、直接内存传输(DMA)、多处理器之间的同步与通信、性能测试工具、性能的分析及优化,并结合实例进行了讲解。第三部分讲述Cell BE编程的高级技巧。介绍了一些高级的编程模型,如ALF,还讲述了如何在Cell BE上进行调试,以及一些常见错误等。本书适用于有一定C/C++语言基础,并有一定计算机体系结构基础的技术人员,也可以作为高等院校计算机相关专业学生的教学参考书
《Cell BE处理器编程指南》目录

第1章 CellBE概览 2

1.1 Cell的历史 3

1.2 Cell的设计 5

功耗壁垒 5

内存壁垒 5

频率壁垒 6

1.3 Cell与其他处理器 6

Cell与图像处理器 6

Cell与服务器处理器 7

Cell与超级计算处理器 7

Cell与嵌入式处理器 8

第2章 Cell BE体系结构 9

Cell整体结构 10

Power PC处理器 11

协同处理器 12

互连总线 13

内存控制器接口 14

宽带引擎接口 14

第3章 Cell BE的编程语言 16

3.1 PPE编程语言 17

PowerPC指令 17

Vector/SIMD多媒体扩展指令 18

C/C++语言扩展 19

3.2 SPE编程语言 25

SPE指令 25

C/C++语言扩展 28

第4章 CellBE的编程工具 37

4.1软件开发工具包(SDK) 38

SDK安装与使用 38

工具链(Toolchain) 46

IBM全系统模拟器(Simulator) 47

模拟器的系统镜像 49

库简介 49

原型代码 52

支持性能调优的库和工具 53

集成开发环境(1DE) 54

4.2 “Hello World”例程 56

创建simple工程 56

编译 60

运行 61

第5章 进程和线程 66

5.1基本概念 67

5.2 PPE进程和线程 68

5.3 SPE线程 70

创建SPE线程 70

执行SPE线程 75

销毁 SPE线程 76

5.4代码实例 77

Hello 77

Calculate 79

第6章 直接内存访问 82

6.1地址空间 83

6.2 DMA编程基本概念 85

MFC命令 85

标签和标签组 85

栅障和栅栏 86

DMA传输和DMA列表传输 87

DMA命令编程接口 87

6.3 DMA传输 89

DMA传输编程的主要步骤 89

SPE从本地存储移动数据到系统内存 89

SPE之间本地存储的传输 91

PPE从系统内存移动数据到SPE本地存储 92

DMA传输小结 92

6.4 DMA传输综合示例 93

程序功能说明 93

在PPE和SPE间进行通信 93

缓冲区的对齐 94

结构体的大小 94

程序目录结构 96

代码示例 97

6.5 DMA列表传输 100

DMA列表传输编程主要步骤 100

主要数据结构和API说明 100

DMA列表传输小结 102

6.6双缓冲和多缓冲技术 102

基本概念 103

阻塞和非阻塞的DMA/DMA列表传输 105

双缓冲程序示例 105

6.7 DMA传输的性能优化 108

利用SIMD技术填充DMA列表 108

地址对齐问题 108

重叠DMA传输 108

6.8其他 108

DMA传输过程 108

DMA列表传输过程 109

SDK示例程序说明 111

第7章 通信与同步 113

7.1邮箱通信 114

邮箱的读/写和阻塞 115

邮箱通信API 115

邮箱的使用 117

出站邮箱 118

入站邮箱 119

7.2信号通信 120

信号通知通道 120

信号通知的使用和模式配置 122

发送信号 122

接收信号 123

SDK提供的信号通信函数 124

7.3通信小结 125

7.4共享存储的顺序 126

存储器模型 126

PPE的指令顺序 127

SPE的指令顺序 129

内存流控制器顺序机制 130

同步机制使用场景 132

7.5原子操作 133

PPE原子同步指令 133

PPE同步原语 133

SPE原子同步命令 138

SPE同步原语 138

第8章 向量编程 146

8.1 SIMD基础 147

PPE上的SIMD支持 148

用Vector/SIMD多媒体指令编程示例 149

SPE上的SIMD支持 151

PPE和SPE SIMD的异同 152

8.2 SIMD编程技巧 154

shuffle的运用 154

结构数组和数组结构 160

8.3从PPE移植SIMD代码到SPE 162

从PPE移植代码到SPE需要考虑的问题 162

一个移植的例子:欧拉粒子系统模拟 163

8.4复数相乘示例 175

第9章 Cell BE性能分析 179

9.1 Cell BE性能分析工具简介 180

OProflle 180

spu…timing 185

VPA 191

第10章 CellBE性能优化 203

10.1数据划分 206

输入数据 206

输出数据 207

10.2双缓冲 208

输入双缓冲 208

输入/输出双缓冲 210

共享输入/输出缓冲区 212

10 3 SIMD 214

10 4分支优化 215

函数内联 215

位选择指令 215

分支预测 217

循环展开 217

10.5负载平衡 218

10.6小结 220

第11章 优化实例 221

11.1 JPEG编/解码 222

JPEG编/解码过程 222

程序移植 223

性能分析 223

SPE优化 224

结果分析 230

11.2 Linpack Benchmark 232

LInpack Benchmark简介 232

串行程序算法 233

并行程序 235

在Cell上实现Linpack Benchmark 237

11.3小结 243

第12章 编程模型 246

12.1并行编程模型 247

并行系统编程的问题及分类 247

MPI介绍 250

OpenMP介绍 252

数据流处理介绍 253

12.2 Cell BE处理器编程 254

PPE编程 256

SPE编程 256

并行编程 258

12.3 Cell BE上的编程模型支持 266

DaCS简介 266

ALF简介 268

OpenMP简介 269

其他编程框架 270

12.4小结 273

第13章 ALF编程 274

13.1 ALF概述 275

计算核 275

任务 276

数据块与数据传输列表 278

ALF运行库 279

ALF实例:矩阵相加 280

13.2 ALF详细介绍 286

计算核的内存模型 286

数据传输列表的类型 288

任务描述字 289

任务上下文 291

任务的种类 296

任务间的同步 297

数据块调度 300

13.3 ALF程序的性能优化 302

数据划分 303

数据块的多次使用 304

数据块的大小和双缓冲 305

13.4本章小节 306

第14章 高级话题 307

14.1调试 308

printf 308

GDB简介 310

使用调试器 310

在Cell BE中调试 315

新的GDB命令 323

14.2代码重叠 325

工作原理 326

代码重叠示例 327

程序规范 331

SDK例程 331

GNU SPE链接器 334

14.3常见错误 335

程序停顿 335

线程相关问题 336

控制代码大小 337

Bus Error 339

DMA List传输限制 340

SPE端开辟内存缓冲 340

DMA传输中的其他注意事项 340

附录A PPE指令集 343

附录B SPE指令集 369

附录C 缩写表 381

附录D 术语表 385

参考文献 388

相关图书
作者其它书籍
返回顶部