0
11月初,2020年度国家科学技术奖励名单发布,陈云霁主持的「深度学习处理器体系结构新范式」项目获得国家自然科学奖二等奖。
该获奖项目的参与人均来自中国科学院计算技术研究所,除了陈云霁研究员,还有陈天石研究员、杜子东博士、孙凝晖院士与郭崎研究员,可以说集结了人工智能与高性能计算双领域的两派高手。
计算机领域无人不知:陈云霁与陈天石等人开发出国际首个深度学习处理器芯片寒武纪1号,引起全球范围内的广泛关注,陈云霁与陈天石也因此被国际科学顶刊Science刊文评为AI芯片的「先驱者」。
传统上认为,处理器芯片的研究创新偏向「从无到有」的发明系列。而这次计算所团队的工作获得的是处理器芯片领域历史上首个国家自然科学二等奖。国家自然科学奖是中国五个国家科学技术奖之一,授予在基础研究和应用基础研究中阐明自然现象、特征和规律、做出重大科学发现的公民。
因此,AI科技评论第一时间联系了陈云霁本人,就本次获奖项目与深度学习处理器的相关研究内容与陈云霁教授进行了较为深入的交流。
据陈云霁介绍,他们本次获得国家自然科学奖二等奖的项目主要是从理论上阐明了深度学习算法在硬件上执行的共性基本规律,从而形成了深度学习处理器这样一种体系结构新范式。
例如,他们发现深度学习在计算上的五个最基本算子:向量、矩阵、距离、非线性函数与排序。如同乐高拼插件,基于这五个算子设计出的深度学习处理器,可以处理成千上万、不断演进的深度学习算法。这为后来者在深度学习处理器方向发力做出了重要的指导作用。
此外,陈云霁介绍,这十多年来,他们主要在做两件事:一是开发深度学习处理器助力人工智能计算,二是反过来,用人工智能方法指导芯片的设计,该方向也日益受到学者们的关注。
1、获奖项目详情
AI科技评论:能否介绍一下这次获奖项目(「深度学习处理器体系结构新范式」)的研究背景?
陈云霁:人类社会开始逐渐进入智能时代,其中最核心的技术之一就是深度学习。深度学习对计算量的需求非常大,因为里面的模型往往是一个大规模的多层人工神经网络。一般来说,模型的规模越大,层数越多,潜在的表达能力就越强。某种意义上来说,计算量与智能水平之间的关系是正相关的。那么,这就带来一个问题:传统的芯片不一定适合深度学习的计算模式。所以我们提出了深度学习处理器这样的新体系结构范式,用来应对深度学习的任务。
所谓「范式」(paradigm),就是「受到广泛认可的模式」。比如说,CPU(中央处理器)就是一种范式,有很多企业参照 CPU 这个范式做出了各种各样的 CPU 来。GPU(图形处理器)也是一种范式,AMD、英伟达也是根据 GPU 这种范式去设计GPU芯片。我们提出来的深度学习处理器,也是一种范式,大家可以参照这种范式去设计各种各样的处理器芯片。
AI科技评论:深度学习处理器是您与陈天石教授共同提出来的,大概在2014年前后。这个项目也是沿袭了当时的研究吗?
陈云霁:对,是一脉相承的。最开始我们是设计了一个具体的深度学习处理器结构,比如2014年的DianNao,是我们跟法国INRIA(法国国立计算机及自动化研究院)合作的。但一个架构背后的基本规律与范式是什么?就是我们这个项目的贡献。雷锋网
图注:国际首个深度学习处理器芯片寒武纪1号
AI科技评论:您是说理论上的研究突破吗?
陈云霁:对。所谓的「范式」,就好比一个模板。具体的深度学习处理器架构,是可以根据这个模板去衍生出来的。过去我们设计一个具体的深度学习处理器,当然也很有意义,但可能会更偏向发明。而我们这次的工作,最主要是找到了深度学习处理器架构背后的共性范式,有了这个范式后,其他高校与企业都可以参照这个范式去设计自己的芯片。雷锋网
AI科技评论:能否具体讲讲范式的内涵?
陈云霁:我们最主要是找到了深度学习算法在硬件上执行的共性基本规律,包括计算、访存和通信。
以计算为例。我们发现,你要设计一个深度学习处理器,可以设计成各种各样,但必须至少支持五种最基本的算子:向量、矩阵、距离、非线性函数与排序。只要你支持好这五种算子,就可以支撑成千上万种深度学习算法。雷锋网
就好像乐高积木。乐高积木就是通过基本的接插件去拼出各种各样的城堡、飞机等等,我们相当于找到了最基本的乐高接插件。深度学习可能会不断演进或产生新的深度运算,但没有关系,我只要用这五个小乐高就可以把它给搭出来。所以这是我们在自然科学规律上的一个发现。
AI科技评论:这个项目大概是从什么时候开始的?
陈云霁:最早是2008年。当时我们开始探索人工智能和芯片设计的交叉研究。我从2002年开始做芯片设计,我弟弟陈天石从2005年读研开始研究人工智能算法。所以我们就一起探讨人工智能与芯片设计的交叉结合。雷锋网
AI科技评论:我们看到这个项目中还有杜子东博士、孙凝晖院士与郭崎研究员,他们是从什么时候开始加进来的?
陈云霁:最早是我和陈天石,后来孙凝晖院士、杜子东博士与郭崎研究员陆续加进来。深度学习处理器是一系列的工作,我们每个人都在其中做出了自己的贡献。
我跟陈天石可能参与得多一点,方方面面都参与了。杜子东也是比较早参与到这个工作中的,从他读研时开始,在算子之间的融合运算模式中起到了非常关键的作用。郭崎也是从2008年就开始参与,那时候他还是一个博士生,主要是在访存方面做了一些工作。
孙凝晖院士既是我们研究所(中国科学院计算技术研究所)的学术所长,也是我们计算机体系结构国家重点实验室的主任。我们这个工作是一个体系结构的工作,孙院士在计算和通信的体系结构规律的探索上都作出了很重要的贡献。雷锋网
AI科技评论:深度学习处理器是不是高性能计算与人工智能的结合?
陈云霁:我觉得它在很多思想与方法上将这两个方面结合到了一起。如果时间倒退到十多年前,大家可能会觉得高性能计算与人工智能之间没有什么直接关系,因为那时候深度学习方法还不是那么流行。当时人工智能的主流是支持向量机之类的方法,需要的计算量比较小,模型也比较小。
但现在不是这样的。有一个非常有名的例子:2012年,谷歌大脑用1.6万个CPU核去做深度学习训练,教系统如何识别人脸、猫脸等。
这是一个明显的、高性能计算与人工智能汇聚在一起的例子,而芯片又是高性能计算中最关键的部分。
这也与我们计算所的长期渊源有关。上世纪80年代末,李国杰院士从国外回来,成立了国家智能计算机研究开发中心。李院士是第一任主任,后来孙院士是第二任主任。我们这些研究实际上也是沿着这个脉络流传下来的。这使得我们的成员对人工智能的发展脉络有比较清晰的理解,其次是启发我们去思考人工智能算法共有的计算模式是什么样的。
AI科技评论:与寒武纪相比,这个项目更多是一个学术研究项目,还是一个工业研究项目?
陈云霁:这完全是一个基础理论研究项目。国家自然科学奖都是面向基础科学研究。基础研究的一个特点是要促进整个人类的进步,尤其是对于计算所这样一个国立科研院所来说,它应该是通过技术研究,能够让国内同行、国外的同行乃至整个社会从中受益。当然,寒武纪1号芯片也受到了这个项目论文的影响。
理论上的指导非常重要。举个例子,如果没有爱因斯坦的质能方程(E=MC^2),所有的核电站都是不存在的。所以,需要有一个基本的理论,然后大家根据这个理论去设计各种各样的具体芯片。所以,它的目标还是推动整个社会的进步。
2、深度学习处理器研究观察
AI科技评论:根据您的观察,应用于深度学习的处理器在体系结构上有什么特点?与用于通用计算的处理器有什么相同或不同之处?
陈云霁:从计算和访存两个维度上来说吧。
从计算维度上看,通用计算最主要是做加减乘除,但对于深度学习处理器来说,最基本的是我刚刚讲的五个算子。
从访存的角度来看,通用 CPU 在访问内存时是一个通道,而深度学习算法有一个共性,是里面的数据可以分为三个流,就像小朋友放学回家、会自动排成三个路队,比如说输入神经元、输出神经元与连接权重。
基于这些客观规律,我们在设计深度学习处理器的部件时,就会针对性地去设计。在计算层面,我们也可以把它拆解成五种共性的基本算法。在访存层面,它可以抽象成一个访存数据流,最后自动聚成三个流。
从实践的角度,具体的芯片你想怎么设计都是可以的。原先你可以把大家强行按在一个通道里。但我们把理论上的客观规律告诉学术界和工业界之后,大家一般就会设计三个独立的通道,兵分三路,那么效率肯定会提高。
AI科技评论:据您了解,您的团队所提出的理论影响的设计芯片的公司有哪些?
陈云霁:引用我们的发现的单位非常多。我们这里有一个大概的统计,说现在全球有5大洲、30个国家/地区、200个机构在引用或跟踪我们的工作,其中接近一半是美国的机构,引用者包括15位中美院士和120余位ACM/IEEE Fellow。全球前一百的大学(QS排名)一大半在引用我们的工作,包括哈佛、斯坦福、麻省理工、普林斯顿等等。很多业界顶尖的芯片公司,包括英伟达、谷歌、华为、联发科、英特尔、三星、IBM、高通、微软、台积电、苹果、AMD等,都在引用我们项目的成果,开展相关研究。
所以深度学习领域最权威的教科书《Deep Learning》(又称「花书」),由图灵奖获得者Yoshua Bengio所著,也引用了我们的工作。
我记得有位院士说过,做科研就两个目标,一个是进教科书,一个是进货架。能实现哪一个都是很好的。对我们计算所来说,我们最期望的事情是进教科书里。过去我们基础理论的工作能够进教科书的还是不多的。
AI科技评论:所以您是更关注它在学术上的突破对吗?
陈云霁:对。学术的突破也会受到我们国际同行企业的关注。举个例子,光英伟达就引用了我们的工作超过50次,英伟达的首席科学家 Bill Dally 在他的一些核心研究中也多次引用我们的工作,而且明确地指出他们的方法跟我们之前的工作类似。包括谷歌做的第一篇深度学习处理器论文,里面的作者有一位图灵奖得主和三位美国工程院院士,也引用了我们这个项目里的多个成果。
AI科技评论:您在深度学习处理器上的研究是否主要分为体系架构设计阶段与理论完善阶段?还是有其他分法?
陈云霁:应该不是这样划分。我们从2007年、2008年开始,就是将理论与实践紧密结合。中科大的校训就是「理实交融」。一方面, 我要设计一个具体的芯片,但另一方面,我们也要找出芯片背后的规律是什么。
就拿冯诺依曼体系结构来说。它是怎么出来的呢?是美国造了第一台通用计算机,叫「伊尼亚克」(ENIAC)。设计ENIAC的两个工程师,一个叫John Mauchly,一个叫Presper Eckert。造ENIAC的人当然有很多宝贵的经验,但也有很多地方没想清楚,所以在初步建成ENIAC后,他们就请了冯·诺依曼来当顾问。
图注:第一台通用计算机ENIAC
冯·诺依曼仔细分析了这台机器的优劣之处,然后提出了冯诺依曼架构,在此之后,我们造计算机都按照冯诺依曼机构来。所以从某种意义上说,没有ENIAC,就没有冯诺依曼架构。但如果没有冯诺依曼架构,不做理论突破,只照着当年的ENIAC,就没有现在的计算机,因为当时的ENIAC有很多问题。
我举个例子。如果你想听歌,听完歌后看电影,换个App就行,不需要将手机拆开、电路板拆开重组。但那个时候的ENIAC不是这样的。你想让它干别的事,得把机器里面的电线管子拔来插去,弄半天才能换个任务。然后冯·诺依曼总结了ENIAC的得失,进行了科学探索,形成了冯·诺依曼架构,才形成了我们现在计算机的最基本范式。
AI科技评论:所以从2008年开始,你们就是理论与实践双管齐下。
陈云霁:对,我们一直都是这样。理论与实践要相互印证。我记得毛主席的实践论里面就谈到,认识的第一次飞跃是从感性认识到理性认识,然后第二次飞跃再从理性回到实践中,如此螺旋交替上升。理论与实践是密不可分的。
AI科技评论:您会怎样划分您在深度学习处理器上的研究内容?
陈云霁:这十多年来,我们其实就干了两件事,一个是开发深度学习处理器来帮助人工智能处理,另一个是用人工智能来帮助芯片设计。
现在这个问题(用人工智能帮助芯片设计)也很热门。比如,我们在设计一个具体的芯片时,里面有很多参数,我们不知道哪一个选择是最好的,就可以用人工智能方法帮我们挑出来。还有布局、布线问题。现在谷歌也在用人工智能去做芯片的布局与布线(Placement & Routing)。一个芯片里有几十亿甚至上百亿个晶体管,要用线将它们连接起来,那么某个晶体管应该放在什么地方?它们之间怎么连线?这是一个非常复杂的问题,全靠人工去做不太现实。
AI科技评论:你们的一个标志性工作在2014年拿了ASPLOS最佳论文奖,所以从2008年到2014年间主要是做了这两件事对吗?
陈云霁:是的。这个过程其实非常痛苦,挑战性也比较大。在当时,我们做人工智能和芯片设计的交叉研究,就像在一个迷雾森林里,不知道东西南北,甚至不知道有没有出口,很茫然。当我们告诉大家我们做了一个深度学习处理器的时候,其实最艰难的地方已经过去了。最难的时候,我们甚至不知道自己在干什么,只知道想把人工智能与芯片设计结合起来,那结合起来到底会产生什么?我们不知道。
AI科技评论:那是在哪一个节点稍微感觉有头绪了呢?
陈云霁:可能是2012年左右开始有一点感觉了。
AI科技评论:当时是取得了哪些突破、让你们感觉没那么茫然吗?
陈云霁:这个没有。我们不是坐在那突然灵光一现,都是慢慢摸索,有很多小的成功,最后汇成了一个大的突破。
在2014年以前,我们最大的挑战可能是,我们在做的这个研究在当时的学术界是不认可的,工业界是不关心的,然后做这个(深度学习处理器)也发不了论文、申不了项目。但是,我们相信自己的学术理想,所以最后能够坚持做下来。
其实世界上聪明的人很多,只要你看准了一个方向,能够坚持做起来,我觉得基本上都能够看到成果。
AI科技评论:2014年获得ASPLOS最佳论文后,你们的研究内容有变化吗?
陈云霁:2014年之后,我们还是在这方面继续做了一系列工作。比如,我们开发了国际上第一个深度学习处理器的指令集 Cambricon,发表在了ISCA 2016上(获得最高分)。我们获得国家自然科学奖的成果,有很多是从那篇文章(如下)体现出来的,因为它归纳了一些最基本的计算与访存知识。
论文链接:https://max.book118.com/html/2019/0610/8003056114002027.shtm
AI科技评论:您在刚刚工作的时候就去做这种交叉研究,还是非常有勇气的。
陈云霁:是的,我现在想想也是挺无知无畏的。
我觉得当时最主要是有一个比较好的环境。坦率来说,现在国内学术界的青年科研人员的压力其实非常大,一会要评副高,一会要评正高,一会要评博导,在这么大的生存压力下,他们还有没有勇气去做一些国际主流学术界不认可的方向?反过来说,你想做一个国际上原创性的工作,那么在这个工作做出来之前,它一定是不被认可的。
去做一个全世界不认可的工作,然后通过自己的努力让这个工作被国际学术界认可,而且成为国际学术界的主流,这是最理想的情况。这条路的风险非常大,所以现在大部分青年科研人员只能屈从生存压力,在国际主流学术界已经认可的方向上做一些添砖加瓦的工作,比较容易发文章,评职称的风险会小一点。
但真正具有原创性的创新工作,往往是一个年轻博士在刚毕业时做出来的。比如,爱因斯坦提出狭义相对论的时候只有25岁。那现在我们25岁的人敢不敢去做这样的大问题?这是个问题。
不过人非圣贤,肯定都要考虑自己的实际生活。我觉得还有一种选择,就是青年科研人员能有一半的时间做国际主流的研究,再拿出一半的时间去做一些非共识的研究,能够平衡一下风险与收益。当时我们也是这样做的。
AI科技评论:您当时除了做深度学习处理器,还有做其他研究吗?
陈云霁:对。我从刚毕业到2012年评上研究员、博导之前,主要的工作是做龙芯的通用CPU。当时胡伟武老师让我担任龙芯3号的主架构师,做的是传统的芯片。所以我相当于大部分精力是花在了这上面。
AI科技评论:如果当时是all in的话,可能也受不了。
陈云霁:对。我一个刚刚毕业的博士生,一篇论文发不了,就算计算所不会把我怎么样,我自己也会感觉不踏实。但是你不能说一个人等已经评上了教授,再去做真正原创性的创新。雷锋网
AI科技评论:您刚刚谈到冯诺依曼体系架构。上世纪90年代,国际上也曾经有过一阵研制神经网络计算机的热潮,现在的深度学习与神经网络处理器研究与当年相比有什么突破?解决了哪些当年无法解决的问题?
陈云霁:在上世纪90年代,不说国外,国内像李国杰院士、陈国良院士都做过这方面的工作。但当时最主要的问题是,他们那个时候能处理的神经网络规模很小,一般来说几层神经网络,1000个神经元。
在深度学习时代,我们要处理的神经网络是没有上限的,理论上可以达到几百层,几十亿个神经元,这就带来了一个质变:你怎么样用一个有限规模的硬件去处理一个无限规模的算法?这是上世纪90年代那些工作不一定能解决的。
AI科技评论:你们提出来的深度学习处理器可以解决多大的神经网络?
陈云霁:不受规模限制。雷锋网
AI科技评论:现在大模型预训练已经成为一种潮流,但由于对计算资源要求高、运行时间长、成本高,中小企业难以接受。您如何看这种趋势,您的研究是否可以补上中小企业AI研究的短板?
陈云霁:我觉得随着计算技术的不断发展,大模型会逐渐进入到每个企业、每个人所能达到的范畴里。就像视频编解码。在上个世纪,视频编码也是只有很大的机器才能做的事情,也就是只有大的企业去做。但现在我们的手机就可以视频编码,你随便拍一个视频,然后它在手机上给你编码好。所以我对大模型是很乐观的,只是需要时间,遵循「摩尔定律」。摩尔定律还是很强的。雷锋网
图注:英特尔联合创始人戈登·摩尔(Gordon Moore)在1965年提出摩尔定律,认为「集成电路芯片上所集成的晶体管数量每隔18个月翻一番」,带来芯片算力的指数增长,也促进了通用计算机的飞速发展
AI科技评论:不是说摩尔定律已经失效了吗?
陈云霁:我上大学的时候就说摩尔定律要失效了,现在还没有失效。还有很多晶体管结构、封装、器件材料上的创新,有可能再延续摩尔定律更长的时间。我上大学的时候还听过一个说法,说地球上的石油还有XX年就用完了,但现在大家说还有很多(石油)。雷锋网
AI科技评论:在您所设想的通用智能处理器体系结构中,深度学习处理器、CPU与GPU等分别扮演什么角色?
陈云霁:它们的目标领域不一样。GPU是面向图形处理,DSP是面向信号处理,深度学习处理器是面向智能处理,CPU是什么都干。在现代计算机体系结构里,CPU就像一个司令官,它不再以计算为主要职责,更多是扮演一个管理调度的角色。
3、AI芯片的人才培养
AI科技评论:据您观察,近几年AI芯片的人才缺口方面有没有改善?
陈云霁:我们国家现在有很多高校成立了人工智能专业,或人工智能学院。但据我过去观察,人才培养上还是有很大的缺失。不光是数量上的缺失,还有培养方法上的缺失。大家都是培养学生怎么写人工智能算法,或写人工智能APP。雷锋网
我们的一个长期问题是「头重脚轻」,应用层做得非常好,但软硬件根基层上一般,基本不培养做核心软硬件的人才。这是一个很大的趋势。有一年,斯坦福大学邀请我去开一个关于智能计算系统基础软硬件的短期课程,我在网上查了一下才发现,斯坦福也没有这样的课程,所以它才会找我去(讲课)。然后国内也没有这样的课程。雷锋网
我当时就在想,我们是不是应该做点什么事?所以,2019年,我们就在中国科学院大学开设了国内第一门《智能计算系统》课程,希望培养一批对人工智能的基础软硬件有融会贯通的理解的人才。
AI科技评论:目前课程还在开设吗?有取得成效吗?
陈云霁:这门课程现在还在进行中,近年来还是取得了比较好的成效。现在全国已经有 80 所高校都开设了这门课。我们把教材写好了,教案写好了,PPT也写好了,MOOC也做好了,而且全部放到了网上。我们还搭了一个大的云平台,供大家做实验。雷峰网(公众号:雷峰网)
从数据观察,我们现在已经培养了大约1.3万名学生。这门课程已经被国科大、中科大、北大、清华、北航、复旦、上交等学校列入了他们的本科生或研究生培养计划里。我们还举办了多次导教班/助教班,培养了180余所学校约1200位老师和约200位助教。雷锋网
AI科技评论:在人才培养上,您的建议与看法是什么?我们还需要加大哪些方面的投入?
陈云霁:还是要理论与实践相结合。不能光教理论,一定要让学生动手做实验。我们程序员行业里面有一句著名的话:Talk is cheap. Show me the code.(话语是廉价的,给我看你的代码。)如果你没有真正动手去写代码,你就不能理解一个真正的智能计算系统如何运转。雷峰网
雷峰网原创文章,未经授权禁止转载。详情见转载须知。