本书首先深入剖析传统架构芯片编译器优化相关内容,回顾过往经验与经典方法,为后续深入探讨奠定基础。紧接着,重点阐述人工智能芯片编译器优化,详细介绍其独有的优化策略与技术要点,展现该领域在应对智能芯片需求时的发展与创新。在安全层面,本书围绕编译器安全与模糊测试展开,介绍如何运用模糊测试等手段发现编译器潜在安全隐患。同时,聚焦编译器代码生成安全与保护,探讨代码生成阶段保障安全的具体机制与措施,从源头守护代码的安全性。本书还探讨了编译器优化与代码安全的协同,分析二者如何相互配合、相互影响,以实现智能芯片编译器既能高效优化性能,又能筑牢安全防线的目标,为智能芯片技术的稳健发展提供全方位的理论支撑与实践指导。
更多科学出版社服务,请扫码获取。
1997.6-2001.9 湖南师范大学 本科
2003.6-2006.9 西北大学 硕士研究生
2008.6-2014.9 西北大学 博士研究生2001-2003 吉首大学张家界校区 讲师
2006-2008 华为技术有限公司 高级工程师
2014-2017 西北大学 讲师
2017-2019 西北大学 副教授
2019-2020 英国兰卡斯特大学 访问学者(公派访学)
2020-至今 西北大学 教授信息与通信工程-系统与软件安全发表论文 32 篇,其中SCI检索 21 篇,SSCI检索 20 篇,EI检索 30 篇,CSSCI检索 22 篇,其他核心期刊检索 1 篇。以下是代表性论文:
[1]Guixin Ye, Zhanyong Tang*, Shin Hwei Tan, Songfang Huang, Dingyi Fang, Xiaoyang Sun, Lizhong Bian, Haibo Wang, Zheng Wang. Automated conformance testing for JavaScript engines via deep compiler fuzzing. Proceedings of the 42nd ACM SIGPLAN international conference on programming language design and implementation.2021/6/19.CCF推荐A类会议陕西省三秦英才特支计划科技创新领军人才;陕西省创新人才攀登工程中青年科技创新领军人才;软件安全与物联网感知陕西省高校工程中心主任;西安市先进计算与软件安全重点实验室主任;中国计算机学会杰出会员;中国电子学会安全专委会委员;中国人工智能学会会员。陕西省秦创原物联网软件与系统安全“科学家+工程师”队伍首席科学家
目录
前言
第1章 概述 1
1.1 智能芯片概述 1
1.1.1 智能芯片的发展历程 1
1.1.2 智能芯片的性能瓶颈与挑战 2
1.2 编译器优化 3
1.2.1 传统编译器优化 3
1.2.2 人工智能编译器优化 4
1.3 代码安全性 4
1.3.1 编译器安全与模糊测试 4
1.3.2 代码生成安全与代码保护 5
1.4 小结 6
参考文献 6
第2章 传统架构芯片编译器优化 8
2.1 传统编译器介绍 8
2.1.1 常用编译器 8
2.1.2 传统编译器调优方法 9
2.2 基于学习的传统编译器调优 15
2.2.1 SuperSonic框架概述 16
2.2.2 SuperSonic框架设计 17
2.2.3 实验设置 20
2.2.4 实验结果 22
2.3 小结 26
参考文献 26
第3章 人工智能芯片编译器优化 30
3.1 人工智能芯片编译器发展现状 30
3.2 人工智能芯片编译器优化方法 34
3.2.1 节点级、数据块级优化 34
3.2.2 子图划分与算子融合 39
3.2.3 多面体编译优化 41
3.2.4 后端性能反馈与优化 49
3.3 基于MLIR的编译器优化框架 50
3.3.1 基于MLIR的算子融合 51
3.3.2 基于后端反馈的编译器性能提升 56
3.4 小结 60
参考文献 61
第4章 编译器安全与模糊测试 64
4.1 源代码静态漏洞检测 64
4.1.1 代码特征分析与提取 65
4.1.2 模型匹配与选择 72
4.2 模糊测试理论与方法 79
4.2.1 测试种子生成与输入 80
4.2.2 模糊测试变异策略 89
4.2.3 动静态相结合的检测方法 102
4.3 面向编译器的模糊测试 111
4.3.1 JS引擎模糊测试 111
4.3.2 面向智能芯片编译器的模糊测试 117
4.4 小结 125
参考文献 125
第5章 编译器代码生成安全与保护 131
5.1 代码保护技术 131
5.1.1 加密变换 131
5.1.2 混淆技术 132
5.1.3 虚拟化保护 133
5.2 中间代码保护 134
5.2.1 中间代码表示 134
5.2.2 编译时中间代码变换 135
5.3 二进制代码虚拟化保护 158
5.3.1 二进制代码重写 158
5.3.2 二进制代码相似性判定 183
5.4 基于虚拟机的代码保护 189
5.4.1 虚拟化保护的原理 189
5.4.2 虚拟化保护与执行流程 192
5.4.3 基于WebAssembly的JavaScript虚拟化保护 194
5.4.4 利用代码多样性加强代码虚拟化保护 211
5.5 小结 220
参考文献 220
第6章 编译器优化与代码安全的协同 224
6.1 优化对代码安全的影响 224
6.1.1 代码差异化与版本多样性 224
6.1.2 安全保护策略的影响 226
6.2 性能提升与安全风险 228
6.2.1 缓冲区溢出漏洞 228
6.2.2 指令乱序执行 228
6.2.3 空指针解引用 229
6.2.4 线程竞态条件 230
6.3 代码安全审计 231
6.3.1 研究现状 231
6.3.2 技术手段 232
6.3.3 未来发展趋势 233
6.4 小结 233
参考文献 234
第7章 发展趋势与展望 235
7.1 人工智能芯片技术的发展趋势 235
7.2 编译器优化与代码安全的挑战与机遇 236
7.2.1 编译器优化对代码安全的影响 237
7.2.2 代码安全视角下的编译器优化策略 237
参考文献 238