您好,欢迎光临有路网!
现代CPU性能分析与优化
QQ咨询:
有路璐璐:

现代CPU性能分析与优化

  • 作者:(美)丹尼斯·巴赫瓦洛夫(Denis Bakhvalov) 著
  • 出版社:机械工业出版社
  • ISBN:9787111719489
  • 出版日期:2023年02月01日
  • 页数:220
  • 定价:¥99.00
  • 分享领佣金
    手机购买
    城市
    店铺名称
    店主联系方式
    店铺售价
    库存
    店铺得分/总交易量
    发布时间
    操作

    新书比价

    网站名称
    书名
    售价
    优惠
    操作

    图书详情

    内容提要
    本书旨在指导大家优化运行在现代CPU上的应用程序的性能。具体来说,主要分为两部分内容: **部分介绍性能分析,包括对CPU微架构、术语和指标的简要概述,还探讨了分析性能的不同方法和现代平台上可用的硬件监控功能。 第二部分展示如何发现优化机会,以及可以做哪些转换来提高程序的性能。此外,还提供了一份可应用于用户应用程序的优化清单,包括循环优化、向量化、函数内联等,并讨论了有助于消除CPU微架构层面的问题(如缓存未命中、分支预测错误等)的代码转换。 本书对于从事性能关键型应用程序开发和进行系统底层优化的技术人员来说是不可或缺的。对于任何想更好地了解应用程序性能并探索其诊断和改进方法的***来说,这本书也很有用。
    目录
    译者序 前言 致谢 作者简介 第1章导读1 1.1为什么需要性能调优2 1.2谁需要做性能调优5 1.3什么是性能分析7 1.4本书的主要内容8 1.5本书不包含什么内容9 1.6本章总结10 **部分现代CPU性能分析 第2章性能测量12 2.1现代系统中的噪声13 2.2生产环境中的性能测量15 2.3自动检测性能退化问题16 2.4手动性能测试18 2.5软件计时器和硬件计时器22 2.6微基准测试24 2.7本章总结25 第3章CPU微架构27 3.1指令集架构27 3.2流水线28 3.3利用指令级并行30 3.3.1乱序执行30 3.3.2超标量引擎和超长指令字31 3.3.3投机执行33 3.4利用线程级并行34 3.5存储器层次35 3.5.1高速缓存层次35 3.5.2主存39 3.6虚拟内存39 3.7单指令多数据多处理器40 3.8现代CPU设计42 3.8.1CPU前端42 3.8.2CPU后端44 3.9性能监控单元44 第4章性能分析中的术语和指标47 4.1退休指令与执行指令47 4.2CPU利用率48 4.3CPI和IPC48 4.4微操作49 4.5流水线槽位51 4.6核时钟周期和参考时钟周期51 4.7缓存未命中52 4.8分支预测错误53 第5章性能分析方法55 5.1代码插桩56 5.2跟踪58 5.3负载表征59 5.3.1统计性能事件59 5.3.2手动收集性能计数60 5.3.3事件多路复用和缩放62 5.4采样63 5.4.1用户模式采样和基于硬件 事件的采样64 5.4.2寻找热点64 5.4.3采集调用栈66 5.4.4火焰图69 5.5屋顶线性能模型69 5.6静态性能分析73 5.7编译器优化报告75 5.8本章总结78 第6章性能分析相关的CPU特性80 6.1自顶向下微架构分析技术81 6.1.1Intel VTune Prof iler中的 TMA84 6.1.2Linux perf中的TMA85 6.1.3**步:确定瓶颈86 6.1.4第二步:定位具体的代码 位置88 6.1.5第三步:解决问题90 6.1.6小结91 6.2*后分支记录92 6.2.1采集LBR栈94 6.2.2获取调用图95 6.2.3识别热点分支96 6.2.4分析分支预测错误率97 6.2.5机器码的准确计时98 6.2.6评估分支输出的概率100 6.2.7其他应用场景101 6.3基于处理器事件的采样101 6.3.1精准事件102 6.3.2降低采样开销103 6.3.3分析内存访问104 6.4Intel处理器跟踪技术105 6.4.1工作流105 6.4.2时间报文106 6.4.3采集和解析跟踪文件107 6.4.4用法108 6.4.5磁盘空间和解析时间109 6.5本章总结110 第二部分基于源代码的 CPU调优 第7章CPU前端优化117 7.1 机器码布局118 7.2 基本块118 7.3 基本块布局119 7.4 基本块对齐121 7.5 函数拆分123 7.6 函数分组125 7.7 基于剖析文件的编译优化126 7.8 对ITLB的优化128 7.9 本章总结128 第8章CPU后端优化130 8.1 内存绑定130 8.1.1 缓存友好的数据结构131 8.1.2 显式内存预取136 8.1.3 针对DTLB优化138 8.2 核心绑定141 8.2.1 函数内联141 8.2.2 循环优化143 8.2.3 向量化149 8.3 本章总结158 第9章优化错误投机160 9.1 用查表替换分支161 9.2 用断言替换分支162 9.3 本章总结164 第10章其他调优165 10.1 编译时计算165 10.2 编译器内建函数166 10.3 缓存预热167 10.4 减少慢速浮点运算168 10.5 系统调优169 第11章优化多线程应用程序171 11.1 性能扩展和开销171 11.2 并行效率指标174 11.2.1 有效CPU利用率174 11.2.2 线程数量174 11.2.3 等待时间175 11.2.4 自旋时间175 11.3 使用Intel VTune Profiler进行 分析175 11.3.1 寻找耗时锁175 11.3.2 平台视图178 11.4 使用Linux perf进行分析178 11.5 使用Coz进行分析181 11.6 使用eBPF和GAPP进行分析181 11.7 检测一致性问题182 11.7.1 缓存一致性协议182 11.7.2 真共享184 11.7.3 伪共享184 11.8 本章总结186 附录A减少测量噪声188 附录BLLVM向量化程序193 跋198 术语200 参考文献20

    与描述相符

    100

    北京 天津 河北 山西 内蒙古 辽宁 吉林 黑龙江 上海 江苏 浙江 安徽 福建 江西 山东 河南 湖北 湖南 广东 广西 海南 重庆 四川 贵州 云南 西藏 陕西 甘肃 青海 宁夏 新疆 台湾 香港 澳门 海外