登入帳戶  | 訂單查詢  | 購物車/收銀台(0) | 在線留言板  | 付款方式  | 聯絡我們  | 運費計算  | 幫助中心 |  加入書簽
會員登入   新用戶註冊
HOME新書上架暢銷書架好書推介特價區會員書架精選月讀2024年度TOP分類閱讀雜誌 香港/國際用戶
最新/最熱/最齊全的簡體書網 品種:超過100萬種書,正品正价,放心網購,悭钱省心 送貨:速遞 / 物流,時效:出貨後2-4日

2025年06月出版新書

2025年05月出版新書

2025年04月出版新書

2025年03月出版新書

2025年02月出版新書

2025年01月出版新書

2024年12月出版新書

2024年11月出版新書

2024年10月出版新書

2024年09月出版新書

2024年08月出版新書

2024年07月出版新書

2024年06月出版新書

2024年05月出版新書

『簡體書』软件系统优化

書城自編碼: 4120665
分類: 簡體書→大陸圖書→教材研究生/本科/专科教材
作者: 郭健美 黄波 刘通宇 林晓东 赵鹏
國際書號(ISBN): 9787111772248
出版社: 机械工业出版社
出版日期: 2024-12-01

頁數/字數: /
書度/開本: 16开 釘裝: 平装

售價:NT$ 454

我要買

share:

** 我創建的書架 **
未登入.



新書推薦:
血与火的50年:昙花一现的西晋
《 血与火的50年:昙花一现的西晋 》

售價:NT$ 500.0
找到你的真北:成为真诚领导者(畅销欧美亚18年 企业转型实战指南 哈佛、麻省、清北创新领导力指定用书)
《 找到你的真北:成为真诚领导者(畅销欧美亚18年 企业转型实战指南 哈佛、麻省、清北创新领导力指定用书) 》

售價:NT$ 500.0
权力尚简:《老子》的权力政治学解读
《 权力尚简:《老子》的权力政治学解读 》

售價:NT$ 449.0
齐民要术(中小学生阅读指导目录·高中)
《 齐民要术(中小学生阅读指导目录·高中) 》

售價:NT$ 296.0
证券分析(全新升级版)
《 证券分析(全新升级版) 》

售價:NT$ 1020.0
古代汉语词典 第3版
《 古代汉语词典 第3版 》

售價:NT$ 663.0
海洋明天的样子
《 海洋明天的样子 》

售價:NT$ 352.0
文弱书生:前现代中国的男性气概
《 文弱书生:前现代中国的男性气概 》

售價:NT$ 449.0

編輯推薦:
本书基于作者丰富的教学和工程实践经验,创新性地提出了软件系统优化的方法论,从性能工程基础、编译优化、计算机体系结构优化等传统技术到数据中心优化、深度学习框架优化等新兴技术,全面、深入地阐述了软件系统优化的理论方法与实用技术。本书可以帮助读者贯穿计算机系统的多个层次的知识,培养系统观和优化思维,锻炼软件系统优化的综合能力。本书还配备了大量的实验代码与性能测量案例,可以帮助读者培养实际动手能力,从实践中积累系统优化的经验。
內容簡介:
本书详细介绍了软件系统优化的原理、技术和常用方法。本书强调从系统视角进行优化,提出了“数据驱动的系统优化”方法,围绕“软件 硬件 数据”三个方面展开讲解。本书共 18 章,分为五个部分。第1章和第2章从一个性能优化案例引入,概述了软件系统优化的方法论。第二部分包括第 3~6 章,介绍了性能工程的基础知识。第三部分包括第 7~10 章,介绍了计算机体系结构优化的相关知识。第四部分包括第 11~16 章,介绍了编译优化的相关知识。第五部分包括第17章和第18 章,针对新兴场景下的系统优化技术展开专题讨论。
關於作者:
郭健美,华东师范大学教授、博士生导师,研究兴趣包括软件系统的质量保障和性能优化。在上海交通大学获得计算机应用技术硕士、博士学位。曾在加拿大滑铁卢大学担任博士后、在华东理工大学担任副教授、在阿里巴巴集团担任高级技术专家。主持国家自然科学基金面上项目等科研项目,2017年入选上海市浦江人才计划。曾获得 ACM SIGSOFT“杰出论文奖”1次、国际会议“最佳论文奖”2次。2021年起主讲“软件系统优化”“计算机系统”等课程。2023年,“软件系统优化”课程获批上海高校市级重点课程。
目錄
CONTENTS
目  录
推荐序一
推荐序二
前言
第一部分 绪论
第1章 开篇案例:矩阵乘法的性能
优化 2
1.1 不同编程语言的实现 2
1.2 循环交换 5
1.3 编译器的不同优化级别 7
1.4 多核并行优化 8
1.5 循环分块 11
1.6 内建函数 15
1.7 本章小结 17
1.8 思考题 18
第2章 系统优化方法论概述 19
2.1 后摩尔时代性能优化的驱动力 19
2.2 数据驱动的系统优化方法 21
2.3 从单点到全局的系统观 21
2.4 本章小结 23
2.5 思考题 23
第二部分 性能工程基础
第3章 性能测量 26
3.1 测量方法 26
3.1.1 外部测量 27
3.1.2 内部测量 28
3.1.3 仿真测量 29
3.2 计时器的选择 30
3.3 数据收集策略 33
3.3.1 计数型 33
3.3.2 采样型 35
3.3.3 追踪型 37
3.4 性能波动 38
3.5 测量开销 42
3.6 测量误差 43
3.7 本章小结 44
3.8 思考题 44
第4章 基准评测 45
4.1 基准评测程序 45
4.1.1 单一指令 46
4.1.2 指令组合 46
4.1.3 合成程序 47
4.1.4 程序内核 47
4.1.5 微基准评测程序 47
4.1.6 应用基准评测程序 48
4.2 标准化基准评测套件 48
4.2.1 SPEC CPU 2017 49
4.2.2 基准评测套件的开发
标准 51
4.3 基准评测的策略 52
4.3.1 固定计算的基准评测 52
4.3.2 固定时间的基准评测 52
4.3.3 可变计算和可变时间的
基准评测 53
4.4 阿姆达尔定律 53
4.5 古斯塔夫森定律 54
4.6 本章小结 55
4.7 思考题 56
第5章 配置优化 57
5.1 基本概念 57
5.2 技术挑战 59
5.2.1 配置空间的组合爆炸 59
5.2.2 性能测量的高昂代价 60
5.2.3 复杂隐蔽的特征交互 61
5.3 实验设计 62
5.3.1 单次单因子设计 62
5.3.2 全因子设计 62
5.3.3 部分因子设计 63
5.3.4 2kr因子设计 64
5.3.5 随机搜索 69
5.3.6 自动调优 70
5.4 基于机器学习的方法 70
5.5 领域知识驱动的方法 72
5.6 本章小结 73
5.7 思考题 73
第6章 性能评价 74
6.1 评价目标的设定 74
6.2 评价方法的选择 75
6.2.1 评价方法的选择条件 75
6.2.2 评价方法的优缺点 76
6.3 评价指标的选择 77
6.3.1 评价指标的分类 77
6.3.2 评价指标的选择条件 78
6.3.3 量纲分析与合理性检查 78
6.4 数据的分析与解释 79
6.4.1 数据的汇总 79
6.4.2 数据的比较 81
6.5 常见错误与规避方法 87
6.6 本章小结 88
6.7 思考题 88
第三部分 计算机体系结构优化
第7章 处理器优化 90
7.1 五阶段处理器 90
7.2 流水线执行 93
7.2.1 指令流水线 93
7.2.2 前端与后端 94
7.2.3 流水线的性能评价和
细分 94
7.2.4 流水线的停顿与冒险 95
7.3 超标量处理 96
7.3.1 超标量指令流水线 96
7.3.2 机器指令与微操作 98
7.4 乱序执行 99
7.4.1 数据依赖的分类 99
7.4.2 旁路 99
7.4.3 顺序执行与乱序执行 100
7.4.4 寄存器重命名 102
7.5 推测执行 103
7.5.1 条件分支造成的控制
冒险 103
7.5.2 分支预测器 104
7.6 本章小结 105
7.7 思考题 105
第8章 存储器优化 106
8.1 高速缓存 108
8.1.1 存储器的层次结构 108
8.1.2 高速缓存的组织结构 109
8.1.3 缓存预取 111
8.2 多核访存架构 113
8.2.1 多处理器系统架构 113
8.2.2 异构系统架构 115
8.2.3 缓存一致性 116
8.3 编写缓存友好的代码 120
8.3.1 顺序访问数据 120
8.3.2 数据打包 121
8.3.3 对齐与填充 121
8.4 本章小结 123
8.5 思考题 123
第9章 微体系结构性能分析 124
9.1 处理器性能的铁律 124
9.1.1 优化每时钟周期的时长 125
9.1.2 优化指令路径长度 126
9.1.3 优化CPI 128
9.2 CPI分解方法 129
9.2.1 根据不同类型的指令进行
CPI分解 129
9.2.2 根据不同停顿进行CPI
分解 130
9.3 自顶向下的微体系结构分析
方法 132
9.4 本章小结 134
9.5 思考题 135
第10章 异构计算与编程 136
10.1 异构计算概述 136
10.1.1 体系结构的分类 136
10.1.2 异构计算的特性 138
10.2 并行编程框架 139
10.2.1 多核编程 139
10.2.2 多节点编程 144
10.3 异构编程:SYCL 148
10.3.1 硬件设备抽象:设备和
队列 148
10.3.2 数据访问方法 149
10.3.3 并行性表达 150
10.3.4 软硬件结合 151
10.3.5 案例分析:矩阵乘法 153
10.4 本章小结 155
10.5 思考题 155
第四部分 编译优化
第11章 源程序级别的常见优化
方法 158
11.1 程序的工作量 158
11.2 数据结构优化示例 159
11.2.1 打包和编码 159
11.2.2 数据增添 160
11.2.3 预先计算 161
11.2.4 编译时做初始化 162
11.2.5 缓存 163
11.2.6 稀疏性 164
11.3 程序逻辑优化 166
11.3.1 常数折叠与传播 167
11.3.2 公共子表达式消除 167
11.3.3 代数恒等替换 167
11.3.4 创建快速通道 168
11.3.5 逻辑短路 168
11.3.6 判断顺序 170
11.3.7 组合判断 170
11.4 循环优化 171
11.4.1 循环不变量外提 172
11.4.2 设置“哨兵” 172
11.4.3 循环展开 173
11.4.4 循环合并 173
11.4.5 消除无用迭代 174
11.5 函数优化 174
11.5.1 函数内联 174
11.5.2 尾递归消除 175
11.5.3 粗化递归 176
11.6 本章小结 176
11.7 思考题 177
第12章 编译器概述 178
12.1 编译器的定义、分类及典型
架构 178
12.1.1 编译器的定义与分类 178
12.1.2 编译器的典型架构 181
12.1.3 程序中间表示的
必要性 182
12.1.4 程序中间表示的设计
思考 183
12.1.5 LLVM IR:LLVM的程序中间表示 184
12.2 符号表 187
12.3 程序运行时的内存组织 188
12.4 程序分析和优化 189
12.5 交叉编译 191
12.6 用编译器优化程序的迭代
循环 192
12.7 本章小结 193
12.8 思考题 193
第13章 目标指令集架构与汇编
语言 194
13.1 编译与汇编语言 194
13.2 x86-64指令集架构 197
13.2.1 数据类型 197
13.2.2 寄存器 198
13.2.3 指令 200
13.2.4 寻址方式 202
13.3 常用的汇编指令模式 204
13.4 浮点和向量化指令 205
13.4.1 浮点运算指令 205
13.4.2 向量化指令 206
13.5 本章小结 208
13.6 思考题 208
第14章 C程序的汇编代码生成 209
14.1 C程序是如何被转换成汇编
代码的 209
14.2 C程序转换成LLVM IR 210
14.2.1 直线代码到LLVM IR的
转换 211
14.2.2 C函数到LLVM IR的
转换 212
14.2.3 条件分支语句到LLVM IR的转换 213
14.2.4 循环语句到LLVM IR的
转换 215
14.2.5 LLVM IR中的属性 217
14.2.6 小结 218
14.3 LLVM IR转换成汇编程序 218
14.3.1 汇编制导指令与程序的
内存布局 219
14.3.2 函数调用规范 220
14.4 本章小结 222
14.5 思考题 223
第15章 编译器的优化能力 225
15.1 编译分析/优化报告 225
15.2 编译器常见的优化能力 227
15.3 编译优化示例 228
15.3.1 标量优化 230
15.3.2 结构体优化 232
15.3.3 函数调用优化 234
15.3.4 循环优化 236
15.4 编译优化的挑战 238
15.4.1 静态信息的不准确性 238
15.4.2 编译单元的局限性 239
15.4.3 优化顺序的不唯一性 240
15.5 链接时间优化 240
15.6 本章小结 241
15.7 思考题 242
第16章 程序插桩与优化机会识别 243
16.1 什么是程序插桩 243
16.1.1 程序插桩应用示例 244
16.1.2 程序插桩的手段 246
16.2 二进制翻译助力程序插桩 246
16.3 利用插桩信息识别编译优化
机会 249
16.3.1 最原始的编译器优化
机会识别方法 249
16.3.2 常用的编译优化机会
识别方法 250
16.3.3 热点驱动的半自动编译
优化机会识别框架 250
16.4 本章小结 257
16.5 思考题 257
第五部分 专题讨论
第17章 数据中心的性能优化 260
17.1 数据中心简介 260
17.2 混部应用的性能干扰检修 261
17.3 数据中心的性能分析 264
17.4 数据中心的性能评价 267
17.5 本章小结 272
17.6 思考题 272
第18章 深度学习框架的优化 273
18.1 深度学习框架简介 273
18.2 优化基础 274
18.3 算子优化 275
18.3.1 提高占用率 276
18.3.2 提高内存带宽的
利用率 277
18.3.3 使用(局部)共享
内存 278
18.3.4 小结 278
18.4 基于计算图的优化 278
18.4.1 图编译器 279
18.4.2 图编译优化 279
18.4.3 算子融合 280
18.4.4 MLIR简介 281
18.4.5 小结 281
18.5 本章小结 282
18.6 思考题 282
参考文献 283
內容試閱
前  言

起源
本书是根据郭健美、黄波从2021年秋天起在华东师范大学数据科学与工程学院开设的“软件系统优化”课程的讲义总结而成的,该课程主要面向高年级本科生和低年级研究生讲授软件系统的性能优化。
性能是衡量软件系统质量和竞争力的一个重要方面,也是软件系统设计、开发和应用过程中必须关注的一个基本属性。如何在给定的硬件资源配置下提升软件系统的性能,是数字化系统的设计和实现过程中必须思考和解决的问题,也是优化利用软硬件资源的有效途径。
每一位卓越的软件系统工程师、架构师或研究人员都应掌握软件系统优化的原理与技术。开设软件系统优化方面的课程是解决我国计算机系统“卡脖子”问题所需人才的有效措施。我们力求在训练相关人员解决实际问题的过程中围绕“优化思维”培养“系统观”和工程能力,锻炼逻辑思维、批判性思维和创造性思维。

内容
本书包括18章,分为五个部分。第一部分包括第1章和第2章,作为绪论,先介绍一个性能优化案例,再概述软件系统优化的方法论。第二部分包括第3~6章,主要介绍性能工程的基础知识。第三部分包括第7~10章,介绍计算机体系结构优化的相关知识。第四部分包括第11~16章,介绍编译优化的相关知识。第五部分包括第17章和第18章,主要针对新兴场景下的系统优化技术进行专题讨论。
本书适合高年级本科生、研究生或相关工程技术人员学习。在使用本书讲授课程时,建议读者先学习如下课程:计算机程序设计、数据结构、算法设计与分析、计算机系统。此外,如读者能先修编译原理、计算机组成与体系结构等课程,就能更好地理解和掌握本书内容。教师可根据课程要求、个人喜好、学生的背景和能力选讲部分或全部章节。书中各章都给出了思考题,用于帮助读者巩固知识和引导读者扩展知识面。
读者可以从https://solelab.tech/sso获得与本书相关的更多资料,包括本书样例程序的源代码,以及“软件系统优化”课程的课件、上机作业、实践项目等。

致谢
笔者在开设“软件系统优化”课程之初,着重参考了以下两门课程的教学设计和内容:麻省理工学院的MIT 6.172“Performance Engineering of Software Systems”、圣路易斯华盛顿大学的WUSTL CSE567M“Computer Systems Analysis”。这两门课程对本书的内容组织产生了重要影响,在此向这两门课程的授课教师Charles E. Leiserson、Julian Shun、Raj Jain等表示感谢。
本书由郭健美、黄波先根据授课讲义和学生反馈确定本书的整体结构和各个章节的大纲,然后分工撰写初稿,部分章节由Intel公司的林晓东、赵鹏编写,华东师范大学系统优化实验室的研究生刘通宇、梁文辉、李宁、廖浩宇参与了本书的编写准备工作。具体分工如下:第1章由郭健美编写,第2章由郭健美、黄波编写,第3~8章由刘通宇、郭健美编写,第9章和第17章由郭健美编写,第10章由赵鹏编写,第11~16章由黄波编写,第18章由林晓东编写。李宁、廖浩宇协助整理了部分文本、插图和参考文献。全书的编写通过审阅修改、交叉评审、逐步迭代的方式完成。
本书的成稿离不开Intel公司相关专家的支持,林晓东、赵鹏分别作为华东师范大学的兼职教授、兼职副教授于2022年开始参与“软件系统优化”课程的授课,并在工作之余编写了相关章节。
感谢清华大学陈文光教授和上海交通大学陈海波教授在百忙中阅读了本书初稿,提出了宝贵的修改意见,并帮忙作序。
感谢机械工业出版社的各位编辑,他们耐心细致的工作确保本书得以顺利出版。
软件系统优化涉及的知识内容广泛,罕有人士对其众多分支领域均有精深理解。由于笔者学识水平有限,书中难免存在错谬,恳请读者和同行批评指正,我们将不胜感激。

 

 

書城介紹  | 合作申請 | 索要書目  | 新手入門 | 聯絡方式  | 幫助中心 | 找書說明  | 送貨方式 | 付款方式 台灣用户 | 香港/海外用户
megBook.com.tw
Copyright (C) 2013 - 2025 (香港)大書城有限公司 All Rights Reserved.