【产品特色】


【编辑】

《智能计算系统实验教程》火热出版!3大前沿应用场景,近2000行代码4大核心内容近100学时实验教学,手把手带你全栈开发,构建智能计算系统知识树。

《智能计算系统》由深度学习处理器芯片研究的开拓者陈云霁领衔,中科院计算所、软件所的专家学者倾心写就。智能领域系统能力培养大成之作!

领衔作者陈云霁带领的团队曾研制了国际上首个深度学习处理器芯片“寒武纪1号”,本书凝聚了作者团队多年的科研和教学成果,是前沿研究与技术实践结合,快速提升智能领域系统能力的教材和技术参考书。


【内容简介】

本书通过一个贯穿始终的应用案例——图像风格迁移,全面系统地介绍智能计算系统的软硬件技术栈,涵盖神经网络基础算法、深度学习编程框架、智能芯片体系结构、智能编程语言等。领衔作者陈云霁带领的团队曾研制了国际上首个深度学习处理器芯片“寒武纪1号”,本书凝聚了作者团队多年的科研和教学成果,是前沿研究与技术实践结合,快速提升智能领域系统能力的教材和技术参考书。

《智能计算系统》首先概述人工智能和智能计算系统(第1章);接下来介绍完成应用所必要的神经网络和深度学习算法知识(第2、3章);然后介绍支撑算法在智能芯片上运行的编程框架(第4、5章);再往下是智能芯片,即引导学生设计一款满足图像风格迁移应用需求的深度学习处理器(第6、7章);接下来介绍如何利用智能编程语言BCL提升开发智能应用的效率(第8章);*后以具体实验把所学知识点串联起来,打通知识结构的“任督二脉”(第9章)。


【作者简介】

陈云霁 中国科学院计算技术研究所研究员、博导、智能处理器研究中心主任,中国科学院大学岗位教授,高等学校计算机类专业教学指导委员会计算机系统专委会委员。他带领其团队研制了国际上首个深度学习处理器芯片“寒武纪1号”。他的研究成果已经应用在近亿台智能手机和服务器中。他的学术论文多次获得计算机体系结构国际会议论文奖,受到上百个国际知名机构跟踪引用。因此,他被Science杂志刊文评价为深度学习处理器研究的“先驱”和“引领者”。

他曾获国家杰出青年科学基金、中国青年科技奖、全国创新争先奖、“青年长江学者”、国家自然科学基金委“优秀青年基金”、国家万人计划“青年拔尖人才”,并被《MIT科技评论》评为全球35位杰出青年创新者(2015年度)。他还是北京智源人工智能研究院智能体系结构与芯片方向首席科学家。

李玲 中科院软件所研究员、博导,CCF高级会员。研究方向为智能计算及视频处理。在相关领域发表多篇CCF A类期刊和会议论文,获得了CCF A类会议MICRO’14的论文奖(这是50年来一次美国以外的国家在该会议上获此奖)。作为负责人主持过多项国家自然科学基金项目、国家重点研发计划课题等。

李威 中科院计算所副研究员。研究方向为高性能智能计算系统设计技术,先后参与了多项国家重点研发计划项目、国家科技重大专项项目、863项目、中科院国际合作项目等。作为核心成员参与了多款深度学习处理器的研发,发表或录用学术论文近30篇,申请专利近20项。

郭崎 中科院计算所研究员。长期从事智能计算系统相关研究。在ISCA、MICRO、HPCA、IJCAI等国际会议及ACM/IEEE汇刊上发表学术论文多篇。授权发明专利多项,曾入选国家知识产权局“百件优秀中国专利”。先后入选中国科协首届“青年人才托举工程”、中科院青年创新促进会、国家“万人计划”青年拔尖人才。

杜子东 中科院计算所副研究员。长期从事人工智能和计算机体系结构交叉研究,他在深度学习处理器方向做出了多项有国际影响力的研究成果。他在中国计算机学会认定的会议/期刊(CCF A类)上发表了近20篇论文,曾获得ASPLOS’14论文奖(这是亚洲机构首次获计算机体系结构领域的国际会议论文奖),入选IEEE Micro杂志评选的国际计算机体系结构领域年度十佳论文。


【媒体评论】

专家评论

陈国良 中国科学院院士

原中国科大计算机系主任,首届全国高校教学名师

培养具有系统思维的人工智能人才必须要有好的教材。在中国乃至整个国际上,对当代人工智能计算系统进行全局系统介绍的教材十分稀少。因此,这本《智能计算系统》教材就显得尤为及时和重要。

李国杰 中国工程院院士

中科院大学计算机学院院长,中国计算机学会名誉理事长

懂不懂系统知识带来的工作成效差别巨大。这本教材以“图像风格迁移”这一具体的智能应用为牵引,对智能计算系统的软硬件技术栈各层的奥妙和相互联系进行精确、扼要的介绍,使学生对系统全貌有一个深刻印象。

孙凝晖 中国工程院院士

中科院计算所所长,国家智能计算机研发中心主任

计算所的学科优势是计算机系统与算法。计算所智能处理器中心在智能方向打通了系统与算法,再将这些科研优势辐射到教学,写出了这本代表计算所学派特色的教材。读者从中不仅能学到知识,也能一窥计算所做学问的方法。

张宏江 ACM/IEEE会士

北京智源人工智能研究院理事长,源码资本合伙人

作为北京智源研究院智能体系结构方向首席科学家,陈云霁领衔编写的这本教材,深入浅出地介绍了当代智能计算系统软硬件技术栈,其系统性、全面性在国内外都非常难得,值得每位人工智能方向的同学阅读。

张旭 中国科学院院士

中科院上海分院副院长,中国神经科学学会理事长

《智能计算系统》是*部致力于培养人工智能计算系统思维能力的优秀教材,使学生能够融会贯通地理解智能计算系统的完整软硬件技术体系,在科研道路上拥有更宽广的发展空间。

张亚勤 美国艺术与科学院院士

原百度公司总裁,清华大学智能科学讲席教授

这本教材深层次、全栈性的解析了AI的关键理论和技术,又通过一个图像风格迁移的实例生动地演示了AI的实践。《智能计算系统》是本好书,尤其适合作为本科高年级/研究生教材和科技人员的参考书,我大力!

郑纬民 中国工程院院士

清华大学计算机系教授,原中国计算机学会理事长

本书对人工智能软硬件技术栈(包括智能算法、智能编程框架、智能芯片结构、智能编程语言等)进行了全方位、系统性的介绍,非常适合培养学生的系统思维。到目前为止,国内外少有同类书。

周志华 AAAI/AAAS/ACM/IEEE会士

南京大学人工智能学院院长,南京大学计算机系主任

本书覆盖了神经网络基础算法、深度学习编程框架、芯片体系结构等,是国内*本关于深度学习计算系统的书籍。主要作者是寒武纪深度学习处理器基础研究的开拓者,基于一流科研水平成书,值得期待。


【目录】

序言一

序言二

前 言第1章 概述1

 1.1 人工智能1

   1.1.1 什么是人工智能1

   1.1.2 人工智能的发展历史1

   1.1.3 人工智能的主要方法4

 1.2 智能计算系统8

   1.2.1 什么是智能计算系统8

   1.2.2 为什么需要智能计算系统8

   1.2.3 智能计算系统的发展8

 1.3 驱动范例11

 1.4 本章小结13

 习题13

第2章 神经网络基础14

 2.1 从机器学习到神经网络14

   2.1.1 基本概念14

   2.1.2 线性回归15

   2.1.3 感知机17

   2.1.4 两层神经网络——多层感知机19

   2.1.5 深度学习(深层神经网络)20

   2.1.6 神经网络发展历程21

 2.2 神经网络训练23

   2.2.1 正向传播24

   2.2.2 反向传播25

 2.3 神经网络设计原则27

   2.3.1 网络的拓扑结构27

   2.3.2 激活函数27

   2.3.3 损失函数30

 2.4 过拟合与正则化32

   2.4.1 过拟合33

   2.4.2 正则化34

 2.5 交叉验证37

 2.6 本章小结39

 习题39

第3章 深度学习41

 3.1 适合图像处理的卷积神经网络41

   3.1.1 卷积神经网络的组成42

   3.1.2 卷积层43

   3.1.3 池化层48

   3.1.4 全连接层49

   3.1.5 softmax层50

   3.1.6 卷积神经网络总体结构50

 3.2 基于卷积神经网络的图像分类算法52

   3.2.1 AlexNet53

   3.2.2 VGG56

   3.2.3 Inception59

   3.2.4 ResNet66

 3.3 基于卷积神经网络的图像目标检测算法69

   3.3.1 评价指标69

   3.3.2 RCNN系列72

   3.3.3 YOLO78

   3.3.4 SSD81

   3.3.5 小结83

3.4 序列模型:循环神经网络83

   3.4.1 RNN84

   3.4.2 LSTM88

   3.4.3 GRU89

   3.4.4 小结90

 3.5 生成对抗网络91

   3.5.1 模型组成91

   3.5.2 GAN训练92

   3.5.3 GAN结构94

 3.6 驱动范例96

   3.6.1 基于卷积神经网络的图像风格迁移算法96

   3.6.2 实时图像风格迁移算法98

 3.7 本章小结100

 习题100

第4章 编程框架使用101

 4.1 为什么需要编程框架101

 4.2 编程框架概述102

   4.2.1 通用编程框架概述102

   4.2.2 TensorFlow概述102

 4.3 TensorFlow编程模型及基本用法103

   4.3.1 计算图104

   4.3.2 操作105

   4.3.3 张量106

   4.3.4 会话110

   4.3.5 变量114

   4.3.6 占位符116

   4.3.7 队列117

 4.4 基于TensorFlow实现深度学习预测117

   4.4.1 读取输入样本118

   4.4.2 定义基本运算单元118

   4.4.3 创建神经网络模型122

   4.4.4 计算神经网络模型输出123

 4.5 基于TensorFlow实现深度学习训练123

   4.5.1 加载数据123

   4.5.2 模型训练129

   4.5.3 模型保存135

   4.5.4 图像风格迁移训练的实现137

 4.6 本章小结139

 习题139

第5章 编程框架机理141

 5.1 TensorFlow设计原则141

   5.1.1 高性能141

   5.1.2 易开发142

   5.1.3 可移植142

 5.2 TensorFlow计算图机制142

   5.2.1 一切都是计算图143

   5.2.2 计算图本地执行150

   5.2.3 计算图分布式执行154

 5.3 TensorFlow系统实现155

   5.3.1 整体架构155

   5.3.2 计算图执行模块156

   5.3.3 设备抽象和管理161

   5.3.4 网络和通信162

   5.3.5 算子实现167

 5.4 编程框架对比169

   5.4.1 TensorFlow170

   5.4.2 PyTorch171

   5.4.3 MXNet171

   5.4.4 Caffe172

 5.5 本章小结172

 习题172

第6章 深度学习处理器原理174

 6.1 深度学习处理器概述174

   6.1.1 深度学习处理器的意义174

   6.1.2 深度学习处理器的发展历史175

   6.1.3 设计思路177

 6.2 目标算法分析178

   6.2.1 计算特征178

   6.2.2 访存特征181

 6.3 深度学习处理器DLP结构186

   6.3.1 指令集186

   6.3.2 流水线190

   6.3.3 运算部件190

   6.3.4 访存部件193

   6.3.5 算法到芯片的映射194

   6.3.6 小结195

 6.4 优化设计195

   6.4.1 基于标量MAC的运算部件195

   6.4.2 稀疏化198

   6.4.3 低位宽199

 6.5 性能评价201

   6.5.1 性能指标201

   6.5.2 测试基准程序202

   6.5.3 影响性能的因素203

 6.6 其他加速器203

   6.6.1 GPU架构简述204

   6.6.2 FPGA架构简述204

   6.6.3 DLP与GPU、FPGA的对比205

 6.7 本章小结206

 习题206

第7章 深度学习处理器架构207

 7.1 单核深度学习处理器207

   7.1.1 总体架构208

   7.1.2 控制模块209

   7.1.3 运算模块212

   7.1.4 存储单元215

   7.1.5 小结215

 7.2 多核深度学习处理器216

   7.2.1 总体架构216

   7.2.2 Cluster架构217

   7.2.3 互联架构223

   7.2.4 小结224

 7.3 本章小结225

 习题225

第8章 智能编程语言227

 8.1 为什么需要智能编程语言227

   8.1.1 语义鸿沟228

   8.1.2 硬件鸿沟230

   8.1.3 平台鸿沟232

   8.1.4 小结233

 8.2 智能计算系统抽象架构234

   8.2.1 抽象硬件架构234

   8.2.2 典型智能计算系统235

   8.2.3 控制模型236

   8.2.4 计算模型236

   8.2.5 存储模型237

 8.3 智能编程模型238

   8.3.1 异构编程模型239

   8.3.2 通用智能编程模型242

 8.4 智能编程语言基础247

   8.4.1 语法概述247

   8.4.2 数据类型248

   8.4.3 宏、常量与内置变量250

   8.4.4 I/O操作语句250

   8.4.5 标量计算语句252

   8.4.6 张量计算语句252

   8.4.7 控制流语句252

   8.4.8 串行程序示例253

   8.4.9 并行程序示例254

 8.5 智能应用编程接口255

   8.5.1 Kernel函数接口255

   8.5.2 运行时接口257

   8.5.3 使用示例259

 8.6 智能应用功能调试262

   8.6.1 功能调试方法262

   8.6.2 功能调试接口266

   8.6.3 功能调试工具269

   8.6.4 精度调试方法272

   8.6.5 功能调试实践272

 8.7 智能应用性能调优280

   8.7.1 性能调优方法280

   8.7.2 性能调优接口282

   8.7.3 性能调优工具286

   8.7.4 性能调优实践287

 8.8 基于智能编程语言的系统开发294

   8.8.1 高性能库算子开发294

   8.8.2 编程框架算子开发300

   8.8.3 系统开发与优化实践304

 习题321

第9章 实验323

 9.1 基础实验:图像风格迁移323

   9.1.1 基于智能编程语言的算子实现323

   9.1.2 图像风格迁移的实现326

   9.1.3 风格迁移实验的操作步骤330

 9.2 拓展实验:物体检测333

   9.2.1 基于智能编程语言的算子实现333

   9.2.2 物体检测的实现337

 9.3 拓展练习337

附录A 计算机体系结构基础340

附录B 实验环境说明345

参考文献348

后记356


【前言】

序 言 一

未来20年或更长的时期内,人工智能将是科学技术和经济发展的重要方向,智能化技术有可能触发新一轮经济长波甚至第四次产业革命。世界各国都制定了发展人工智能技术和产业的长期规划,在这些规划中,适应智能化社会需求的人才培养都已被列为一项艰巨而紧迫的任务。

由于巨大的市场潜力和863等国家科技计划形成的长期科研积累,我国的人工智能应用和算法研究走在世界前列。但是,我国人工智能基础层、技术层和应用层的人才数量占比分别为3.3%、34.9%和61.8%,基础层人才比例严重偏低。这种现状是我国计算机领域长期不重视系统教育造成的。

我国近千所大学设立了计算机专业,近年来有上百所高校创办了人工智能专业。由于缺乏师资力量和合适的教材,目前一些学校的人工智能课程重点教授一些流行的机器学习算法和图像处理等应用,培养出来的学士、硕士和博士只会用算法调参数,并不真正理解人工智能应用到底是怎样运转起来的。对于人工智能算法究竟如何调用编程框架、编程框架如何与操作系统打交道、编程框架中的算子在芯片中如何运行,很多学生并没有清晰全面的理解。缺乏系统知识和系统思维,学到的知识点就是零碎的,没有打通“任督二脉”。到了毕业后参加实际工作,懂不懂系统知识带来的工作成效差别巨大。同样一个程序,一个普通的程序员来写和一个懂体系结构的人来写,性能可能差几万倍。

中国科学院计算技术研究所从1956年成立起就一直从事计算机系统研究。1990年依托中科院计算所成立的国家智能计算机研究开发中心继承了该所的学术传统,既做系统结构研究,又做人工智能理论、算法和应用研究。陈云霁、陈天石研究员领导的团队研制的“寒武纪”智能芯片就是在这样的环境中孕育出来的。看到国内人工智能系统人才十分短缺的现状,陈云霁研究员主动请缨,2018年在中国科学院大学率先主讲了“智能计算系统”课程,后来又在北大、北航、天大、中科大、南开、北理工、华科等高校独力或联合开设了同样的课程。2019年8月他办了一次导教班,全国40多所高校的60多位老师参加了这次导教班。他开的“智能计算系统”课程受到老师和学生的普遍欢迎。经过两年的打磨,这门课的内容已基本成熟。经过中科院计算所智能处理器研究中心多位同仁的努力,将讲课的录音整理成文字,形成了这本在国际上具有开创性的教材——《智能计算系统》。

一个完整的智能计算系统涉及芯片、系统结构、编程环境、软件等诸多方面,内容十分庞杂,要在一个学期讲完所有的内容十分困难。这本教材采用“应用驱动,全栈贯通”的原则,以“图像风格迁移”这一具体的智能应用为牵引,对智能计算系统的各层软硬件技术栈的奥妙和相互联系进行精确、扼要的介绍,使学生对系统全貌有一个深刻印象,达到举一反三、触类旁通的效果。

人工智能过去不是大学教育的必修课,培养人工智能专业的人才需要本科毕业后再花3~6年时间攻读硕士或博士才行。目前阻碍人工智能在各个行业落地的困难之一是人员成本太高,加速培养研究生只是解决困难的路径之一,但不能从根本上解决问题。对任何行业而言,技术人才的构成都是金字塔结构,而构成金字塔底层的技术人员主力应该是大学毕业生。因此,如何让大学毕业生在推广智能应用中发挥重要作用是本科教育应该考虑的问题。中国科学院大学启动了一个计划,让本科生在全开源的EDA工具链上设计出开源处理器芯片并完成流片,实现带着自己设计的芯片毕业的梦想。这本教材的初衷也是希望能培养更多懂智能计算系统的本科生,加速弥补人工智能的人才缺口。由于我国系统结构方向师资力量较薄弱,也许很多学校一开始会用这本教材上研究生课。希望通过大规模教学实践的检验,这本教材能进一步修改完善,成为一本被广泛采用的高年级本科生教材。

互联网服务业的发展得益于开源软件和公共开发平台,丰富的网络软件开发工具使得开发互联网APP成为一件很轻松的事情。同样,提供容易掌握的成套抽象化工具,可以大幅度降低人工智能的应用人才门槛。本教材除了讲述深度学习等智能算法和加速处理器外,特别用了两章篇幅详细阐述编程框架的使用和机理。所谓编程框架可以从两方面来理解:一方面将算法中的常用操作,如卷积、池化等,封装成“算子”,方便程序员直接调用;另一方面像操作系统一样,作为软硬件的界面,起到承上启下的作用。目前,我国的技术人员使用的编程框架基本上都是外国公司提供的开源软件,使用多的是Google公司开发的TensorFlow。从长远来讲,如果中国的技术人员离不开外国公司的编程框架等开发平台,智能产业的发展一定不平衡、不协调。会用编程框架和会自己写编程框架是差别很大的两种本领。希望通过本课程的教学,中国能培养出可以自己创立编程框架的研发队伍,为技术领先、有市场竞争力的人工智能开源平台贡献中国的力量。

陈云霁研究员不但善于做基础研究,写了不少引领世界潮流的高水平论文,而且长期从事芯片设计工作,有丰富的工程实践经验。他主持编写的这本教材具有理论与实践相结合的特点。本书不但每一章都有从实践中总结出来的习题,而且专门安排了一个大实验,要求学完本课程的学生实际动手开发一个能完成图像风格迁移(如把一幅风景照片转换成梵高风格的画)的简单智能计算系统。国外一流大学的计算机系统课程都有较重的课程实验,国科大开设的操作系统等课程也配有大量的实验内容,学生们反映做实验的收获很大。“纸上得来终觉浅,绝知此事要躬行。”计算机系统方面的课程如果只是“纸上谈兵”,学生学到的知识往往是空洞的名词术语,毕业后仍然会“眼高手低”。希望采用本教材的学校尽量创造条件,让学生有动手做实验的机会。

李国杰 中国工程院院士

序 言 二

在上个世纪,我就曾指导学生开展神经网络计算系统的研究。几十年过去了,人工智能、神经网络、计算机系统结构等方向的研究和产业已经发生了翻天覆地的变化。但是有一点没有变化,那就是系统思维对于人工智能的重要性。

系统思维是指从整体的角度,对技术栈各个环节进行全局考虑的思维方式。人工智能的技术栈涉及不少技术环节,不仅仅包括智能算法,还包括智能编程框架、智能编程语言、智能芯片等。如果没有系统思维,只考虑智能算法这一个环节或者把技术栈的各个环节割裂来考虑,不可能开发出准确、高效、节能的人工智能应用,也就使人工智能难以落地。

培养具有系统思维的人工智能人才必须要有好的教材。然而,在中国乃至国际上,对当代人工智能计算系统进行全局、系统介绍的教材十分稀少。因此,中国科学院计算技术研究所陈云霁研究员及其同事编写的《智能计算系统》教材就显得尤为及时和重要。

这本教材采用了一种比较独特的组织方式,以一个典型的深度学习应用(图像风格迁移)作为驱动范例,将上层的算法、中间的编程、底层的芯片串联起来,帮助读者对人工智能完整的软硬件技术栈形成系统的理解。更重要的是,这本教材不是孤立地介绍技术栈的各个环节,而是非常强调技术栈各个环节之间的结合部,例如一个算法怎样拆分成算子,算子在编程框架中怎样调度,芯片体系结构又如何支持算子,并且上述知识在后的实验中都有所体现。因此,这种组织方式在读者对知识体系的融会贯通和系统思维的形成上非常有帮助。

除了对人工智能技术栈覆盖的广度,《智能计算系统》还有一个特点是深度。这本教材不仅介绍智能计算系统的应用开发,更强调内在的原理。例如在算法部分,教材从线性回归开始,到感知机模型,再到多层感知机,后到深度学习,一步步地把神经网络计算背后的机理讲透。在体系结构部分,教材先从算法特征分析出发,介绍深度学习处理器的基本设计思想和简单模型,然后再讲具体优化技术,后介绍工业级深度学习处理器结构。这样不仅仅能授人以“鱼”,也能授人以“渔”。

《智能计算系统》之所以能对人工智能软硬件技术栈做出清晰的梳理,和陈云霁研究员独特的研究背景有一定关系。他从事人工智能和计算机系统结构的交叉研究十多年,曾经研制了国际上首个深度学习处理器芯片“寒武纪1号”,在国际学术界有较大的影响。Science杂志评价他为智能芯片研究的“先驱”和“领导者”。同时,陈云霁还有在多个高校讲授智能计算系统课程的丰富教学经验。这使得这本教材既体现了学术上的前沿性,又充分考虑了高校实际教学的需求。某种意义上说,这也是对中国科学院几十年来“科教融合”理念的传承。

陈国良 中国科学院院士


返回顶部