软件优化技术

软件优化技术

(美) 格贝尔 (Gerber,R.) 等, 著

出版社:电子工业出版社

年代:2007

定价:45.0

书籍简介:

本书填补了软件优化的初级课本与解决专门Intel架构的高级手册之间的空白。随着Intel扩展内存64位技术(Intel EM64T)、多核处理技术、超线程技术、OpenMP和多媒体扩展等新技术的流行,Intel 出版社邀请另外三位Intel专家与原作者一起扩展、更新形成了本书的第二版。《软件优化速成》第二版提供了如何优化软件,使软件在Intel平台上获得巨大性能提高的最新技术。通过简单的讲解和示例,四位Intel专家向我们展示了如何从以下一些方面改进软件性能,包括算法、内存访问、分支预测、自动矢量化、SIMD指令、多线程和浮点计算。想了解最新技术以提高应用性能和那些想提高编码技巧的开发者,均可以从本书中受益。

书籍目录:

第一部分性能分析工具和基本概念(开胃品)

第1章引言

软件优化

软件优化陷阱

软件优化过程

要点

第2章测试基准

Benchmark属性

可重复性(必须)

代表性(必须)

易用性(必须)

可验性(必须)

时间可测性(可选)

完全覆盖性(条件依赖)

精确性(条件依赖)

Benchmark示例

要点

第3章性能分析工具

计时机制

优化编译器

使用IntelC++和Fortran编译器

特定处理器优化

针对特定处理器的函数实现

其他编译器优化

软件分析的类型

性能监测

VTunerTM性能分析器

采样

调用图分析

Intel编译器Codecov分析器

MicrosonVisualC++分析器

采样与插桩型分析器的比较

尝试、错误、判断力与耐心

要点

第4章热点

什么因素导致热点和冷点

不仅仅是时间

均匀执行与没有热点

要点

第5章处理器体系结构

功能模块

要两个汉堡

取指与译码

指令执行

退出

寄存器和内存

要点

第二部分性能相关问题(主菜)

第6章算法

计算复杂度

指令选择

数据相关与指令并行

内存需求

并行算法

算法的通用性

检测算法问题

要点

第7章分支

找到关键的预测错误的分支

第一步:找到预测错误的分支

第二步:找到耗时的热点

第三步:确定预测错误的分支的比率

最后的全面检查

分支的不同类型

使分支更容易被预测

使用CMOV移除分支

使用标志移除分支

使用min/max指令移除分支

通过额外工作去除分支

要点

第8章内存

内存概览

主存和虚拟内存

处理器缓存

缓存细节

硬件预取

软件预取

不通过缓存写数据:非临时性写

影响内存性能的问题

强制缓存载入

容量缓存载入

冲突缓存载入

缓存效率

存储转发

数据对齐

编译器和数据对齐

软件预取

检测内存问题

找到页缺失

找到存储转发问题

找到L1缓存缺失

理解潜在的改进

修复内存问题

要点

第9章循环

数据相关

循环分配和融合

循环剥离

循环展开与合并

循环交换

循环不变计算

循环不变分支

循环不变结果

要点

第10章慢操作

慢指令

查找表

系统调用

系统空闲进程

要点

第11章浮点

数值异常

清零和非格式化到零

精度

打包和标量模式

浮点到整数的转换,取整

下界和上界函数

浮点操作技巧

浮点类型到整型的转换

平方根

倒数平方根

要点

第12章SIMD技术

SIMD技术介绍

MMXTM技术

SIMD流扩展

使用SIMD技术

自动矢量化

C++类库

Intrinsics

嵌入汇编语言

四种方法的优缺点

SIMD技术的考虑事项

决定何处使用SIMD技术

内存对齐

数据布局

选择合适的打包数据类型

SIMD和X87FPU计算的兼容性

要点

第13章自动矢量化

矢量化相关的编译开关

常用的编译开关

编译开关使用示例

矢量化相关的编译提示

常用的编译提示

编译提示使用示例

矢量化指南

设计与实现的考虑

矢量化诊断的使用

别名与负面影响的最小化

编程风格

目标体系结构

要点

第14章面向处理器的特殊优化

32位Intel■体系结构

Pentium■M处理器

一级指令缓存

指令译码

指令延迟

指令集

浮点控制寄存器

MXCSR状态寄存器

一级数据缓存

内存预取

处理器事件

部分寄存器延迟

部分标志延迟

暂停指令

要点

第15章多处理技术介绍

并行程序设计

线程管理

使用OpenMP■高层线程化

低层线程

线程化的目标

线程化的相关问题

Intel编译器与线程工具

要点

第16章OpenMP■多线程

OpenMP■的关键要素

多线程执行模型

OpenMP■的存储模型

OpenMP■的限制

编译OpenM少程序

自动并行化

线程化指南

要点

第17章任务队列和OpenMP■的高等应用专题

任务队列Intel对OpenMp■的扩展

任务队列执行模型

任务队列和任务结构

线程化N皇后问题:一个实例研究

线程级流水线并行

开发嵌套式并行性

多级并行

线程绑定研究

理解循环调度

要点

第三部分设计和应用优化(甜点)

第18章实例研究:线程化视频编码器

H.264视频编码器的初始性能

H.264视频编码器的并行化

任务和数据划分

切片级并行性

帧级并行

基于两个切片队列的实现

基于任务队列模型的实现

性能

速度提高与压缩效率间的折衷

在支持HT技术的多处理器上的性能

性能的理解

多线程的额外开销

进一步的性能调试

线程化总结

要点

第19章针对性能的设计

数据移动

内存与并行性

设计过程中的性能实验

算法

要点

第20章综合:基本的优化

采摘低处的果实

应用

相关资料

Benchmark

Benchmark结果的理解

浮点到长整型转换的改进

算法的并行化

采用自动矢量化

基于Intrinsics的指令级并行

优化总结

要点

第21章综合:最后的百分之十

最快的速度

更高的SIMD效率

最终的优化

优化总结

要点

参考文献

索引

书籍规格:

书籍详细信息
书名软件优化技术站内查询相似图书
9787121040054
如需购买下载《软件优化技术》pdf扫描版电子书或查询更多相关信息,请直接复制isbn,搜索即可全网搜索该ISBN
出版地北京出版单位电子工业出版社
版次1版印次1
定价(元)45.0语种简体中文
尺寸26装帧平装
页数印数 5000

书籍信息归属:

软件优化技术是电子工业出版社于2007.04出版的中图分类号为 TP311.5-62 的主题关于 软件设计-手册 的书籍。