中科院计算所包云岗:开源芯片存在“死结”
编者按:7月12日-7月14日,2019第四届全球人工智能与机器人峰会(CCF-GAIR 2019)于深圳正式召开。峰会由中国计算机学会(CCF)主办,雷锋网、香港中文大学(深圳)承办,深圳市人工智能与机器人研究院协办,得到了深圳市政府的大力指导,是国内人工智能和机器人学术界、工业界及投资界三大领域的顶级交流博览盛会,旨在打造国内人工智能领域极具实力的跨界交流合作平台。
2019年7月13日,来自学术界、工业界、投资界的重磅嘉宾齐聚CCF-GAIR 2019 AI芯片专场共同探讨芯片的前沿技术以及AI芯片的落地。值得关注的是,演讲嘉宾们在分享中频频提及软硬融合。
中科院计算所研究员、先进计算机系统研究中心主任,中国开放指令生态联盟秘书长包云岗在《面向未来领域专用架构的敏捷开发方法与开源芯片生态》的主题演讲中指出,今天软件、硬件之间有巨大的性能差异,同样一个算法或者一个程序,一个普通的程序员来写和一个懂体系架构的人来写,性能可能差63000倍。
中科院计算所研究员、先进计算机系统研究中心主任,中国开放指令生态联盟秘书长包云岗
他给出了两种弥补软硬件之间性能差异的方法,其中采用领域专用体系结构(DSA)的方法面临碎片化问题,需要找到经济快速的方法来应对。开源芯片将会起到非常重要的作用。
但开源芯片存在一个“死结”,不过包云岗认为这是一个打破开源芯片死结的时代,也是一个打造开源芯片生态的时代。
以下为包云岗研究员的主题演讲内容,作了不改变原意的编辑与整理:
非常感谢邀请我来参加这次CCF-GAIR。我主要想跟大家介绍一下近年来芯片敏捷开发以及开源芯片的现状。
过去几年摩尔定律从每18个月翻一番,到现在已经快变为十年甚至二十年性能才能翻一番。这似乎意味着摩尔定律就快停滞了。但从另外一个角度看,我们看到了领域专用体系结构的兴起。
这是为什么?今天的软件、硬件之间有巨大的性能差异,同样一个算法或者程序,比如矩阵乘法,一个普通的程序员来写和一个懂体系架构的人来写,可以差63000倍。如果按照摩尔定律折算,相当于把摩尔定律再延长二十多年。这实际上意味着摩尔定律赋予的能力还没有充分挖掘出来。
如何弥补性能和软硬件之间的差异?有两种思路:一种是可以雇更好的程序员写出更好的软件,但是这样的人终究很少;
另一种是在硬件上加速,一些工作让硬件来做,
所以提出了硬件加速器,也就是领域专用的体系结构。
但这种又会带来一个新的问题,领域专用体系结构的兴起会带来碎片化问题。因此需要找到经济、快速的方式来应对。
如果可以做到把芯片开发像软件开发一样,未来可以把芯片开发迭代的周期从按年变成按月,软硬件就可以协同起来实现敏捷开发,那就可以实现快速开发芯片的需求了。我相信,未来有可能做到的。
降低芯片设计门槛的重要意义
如果要做到这一点,芯片设计的门槛要降到足够低,就像刚才地平线黄总讲的,我们需要让更多人可以来做芯片。降低芯片设计门槛意义重大,不光是对产业界和对学术界,对我们的人才培养也一样。
如今的中美贸易战,归根到底还是人才的比拼,因为我们芯片设计方面的人才和美国差距非常大。这个人才危机不只中国经历过,1980年代初美国也经历过,当时整个美国2000多所大学里面只有不到100个教授和学生在研究半导体。美国政府在1981年启动了MOSIS的项目,提出了芯片领域都知道的MPW(Multiple Project Wafer)模式,把整个芯片设计成本降下来,使得大学里面的研究小组也可以做芯片,可以流片。
最终体现出的价值,一方面培养了大量学生,第二是催生半导体产业新的商业模式,也就是今天的无晶圆企业和代工企业。MOSIS也成功催生出英伟达、高通等公司。
很多人可能经历过开源软件,它带来两大价值,一方面把互联网创新的门槛降低,可以很容易构建一个APP,90%可以使用开源代码,用户只需要写10%,甚至更少的代码就可以完成自己的功能,实现想要做的业务。开源软件还有一个价值,就是互联网企业的自主能力也在增强,互联网公司有能力去IOE,在软件层次上不像芯片那样被卡脖子那么厉害。
降低互联网公司创新门槛、增强互联网企业的自主能力,这是开源软件的两大价值。
回头看芯片设计,今天芯片设计的门槛真的非常高,14纳米工艺并不是最先进的工艺,一款芯片整个投入下来成本也要到上亿的规模,只有很少的企业可以做。如果投资人听到投一个(中端)芯片公司只需小几千万,基本上会认为这个企业在忽悠。但互联网公司投几百万,就认为可以把公司做起来。所以,门槛高了对整个产业并不利,同时制约了创新。
开源芯片的“死结”
芯片是不是可以像开源软件一样,帮助我们应对这个问题,把硬件设计的门槛降下来。然而,现实是现在存在一个死结,做一个芯片和IP需要花那么多精力,做完以后很多企业不愿意开源,导致市场上没有开源可以用,大家只能去买,而且IP都还很贵,买来以后则会花很多力气和时间去验证它以降低风险,这又增加了人力的投入,所以开源芯片存在一个“死结”。
怎么打破它?最近几年很多力量都在试图把开发投入这一环给解开,从而打破开源芯片的死结。我们来看一下整个业界和学术界都做了哪些工作。
首先,这里面存在很多机遇,一个是IoT新的应用场景出现。我们知道有一个贝尔定律(Bell’s Law),每十到十五年就会有一种新形态的计算机出现,从以前的大型机到工作站、到台式PC机、到笔记本、手机,十到十五年就会产生一个新的颠覆。
到今天,IoT就是这样一种新的应用需求,它对芯片的设计会提出很多新的需求,它要求可定制化、尺寸小、开发周期短,很重要的一点是对工艺的要求不再那么高。
我们说摩尔定律即将终结,从另外一个角度看,也会带给我们一些机会。为什么?这意味着成熟工艺可以用的时间更长,而且成熟工艺的成本也在不断下降。十年前我要用40纳米需要千万的量级,今天要用40纳米,可能几十万就可以做到。
这种成熟工艺成本的下降,可以给整个业界带来创新。这是集成电路里面顶级的会议ISSCC,从1988年到1998年、从2008年到2018年,学术界做的芯片和发表的论文越来越多,这是因为65纳米的工艺成本不断下降。比如2018年很多小组都有经费可以支持65纳米芯片的流片,所以在2018年的时候,来自学术界的论文(包括和工业界合作)比例已经到了50%以上,这带来了创新的机会。
综合来说,今天确实进入了一个黄金时代,当我们把指令级开源工具、新语言、新应用综合起来看,确实是黄金时代到来了。值得一提的是,全世界范围内尤其是学术界早已经感受到或者洞察到这样一个时代的变化。2016年,体系结构领域的顶级会议ISCA上有个远景研讨会,讨论2030年会发生什么样的体系结构的变化,认为“开源”是未来大主题(Big Theme)。
在今年的ISCA上又举办了一个远景研讨会,直接把“开源”和“敏捷开发”作为主题来讨论,一共有11个报告,美国有10个,中国有1个,我很荣幸有机会作为一个中国代表来介绍开源芯片。
我们可以看到,第一个报告是2017年的图灵奖得主,后面还有多位工程院院士。美国企业界、政府机构对开源和敏捷开发已形成共识,认为这是未来的发展方向。我做了很多会议记录,近期会整理出来。
开源芯片生态四要素
我们提到开源芯片,第一反应是RISC-V,这其实是片面的。我们还需要有开源EDA工具链、敏捷开发的设计流程、高层次的综合、加速器敏捷设计方法,以及高效验证硬件代码自动生成、端到端的形式化验证等等,可以看到开源芯片有一系列的问题包含在里面。
我在远景研讨会上的报告里面把开源生态做了一个总结,分为四个要素,首先要有开源的指令集,包括开源的IP和SoC的模板,除此之外还有开源EDA工具链。光有这些还不够,需要有性价比高、快速低廉的验证和仿真方法。当然,芯片做出来以后怎么把它用好?还需要有操作系统和编译器的支持。真正满足这些以后,我们才有可能让芯片里面90%的代码能够重用,从而可以让客户很方便地完成10%的定制,可以做出适合你的加速器或者AIoT的芯片出来。
我们分别来看一下每部分的进展。对于开源的IP,我们知道RISC-V可以降低IP的成本。开源芯片的概念需要大家理解,我们很多时候说到RISC-V就跟开源芯片混在一起。其实RISC-V只是一个指令集,基于这个指令集可以做具体设计,这两者不一样,就像是C语言的语法和真正的代码,这是两个完全不同的层次。
这是我从报告当中摘出的一页,从这一页当中可以看到,规范或者标准是一个维度,具体的设计、源码又是另外一个维度。实际上,我们的规范有闭源的,比如英特尔的指令级归英特尔所有,有可授权的ARM指令集,也有开源的规范,像RISC-V,赋予了开源的设计。所以这是两个不同的维度,RISC-V给我们打开了新的空间。
2015年RISC-V的基金会成立,现在有200家成员,目前中国仅有25家。中国有很多人关注,但实际上在国际上我们的力量还不够,我们怎么影响整个社区,把中国的需求在国际上有所体现,还需要有更多人来加入。我们去年做过统计,国内公开的跟RISC-V相关的企业已经有100多家。可以看到这方面确实发展的很快。
芯片敏捷开发
RISC-V仅仅只是一个方面,我们还需要开源硬件开发的语言以及开源EDA工具链,这对开源芯片也非常关键。现在有很多更高级的语言可以提高芯片开发的效率,比如Chisel、PyMTL。同时已经有一些开源工具链可以让大家用,从设计到网表,从网表到GDS的版图,都可以找到开源工具。
我们团队对一些开源的工具链和语言做了对比实验,比如敏捷开发这方面,Chisel是面向更高抽象的硬件开发语言,对整个芯片开发有更好的抽象。如果我们用Chisel来设计芯片,就有点像JAVA语言来写,有更好的效率。
我们找了工程师和本科生来完成同样的任务,工程师用6周时间,写了5000多行代码,真正有效的大概是1700多行,6周以后,他的Linux还是不能启动起来。本科生用3天时间写了350行代码可以启动多核Linux,支持DMA模式的以太网。新的语言可以提升14倍的开发效率,并且代码更少。
当然这个工程师不服气,他说他的代码写得更好、质量更高,所以我们找了另外一个更低年级的本科生,他在上大三,没有学过Chisel。他一边读Verilog的代码一边学Chisel,把Verilog代码翻译成Chisel,然后放在FPGA上验证。可以看到除了中间除了逻辑的资源多一点,其他的都明显是Chisel的版本比Verilog更好。
当把Chisel的高级属性用起来,几乎都比Verilog的性能好,这时候工程师认可了它的能力。其实这个工程师并不弱,拿到了耶鲁大学的Offer。
另一个实验,我们让一个没有硬件开发经验的员工用开源EDA工具链尝试从Verilog生成GDS版图,确实可以做到,虽然工艺比较低,用了中兴国际180纳米,但整个流程所用的工具全是开源的。现在只是起步,相信未来通过不断使用和迭代优化,开源的工具链也有可能成为一个选择。仿真和模拟方面我们也需要有更多力量投入进来,让整个仿真变得更低廉、更容易做,因为现在仿真设备真的很贵,动不动就要几百万甚至上千万。
也有一些新的模式可以用,比如像云计算那样,不用买设备,直接租就可以。实际上也有企业在朝这个方向发展。我们在中科院也做了这样的尝试,从2014年开始招本科生,我们的课程实验会让他们设计芯片。原来给每个人发FPGA板做芯片的指令和模块,但是满意度很差,不到27%。
后来集中到云平台进行仿真和模拟,学生只要一个账号登录进去,就可以在上面开发,做芯片指令的扩展,满意度达到88%。很有意思,35%的学生由原来不喜欢做芯片的方向变成开始喜欢了。所以,好的开发平台对吸引人才也是有很大帮助的。
关于软件工具链,我认为有三个层次,分别是:第一层是面向芯片,针对新扩展的指令或者新加的传感器来进行扩展,这需要Linux、LLVM这些软件起作用。
第二层是功能软件层,就像Apache、MySQL等。
第三层是面向用户和程序员,需要提供更好统一的API,这就像安卓起到的作用,当然这还有很多空间需要挖掘。
开源芯片生态建设
为了达到这些目标,我们去年成立了中国开放指令生态联盟,希望以RISC-V为抓手推动开源芯片生态。我们也有一些规划,包括刚开始我们可以通过开源SoC,接着可以用开源的工具链设计开源的芯片,最后让每个本科生都可以带着自己设计的芯片毕业。也许十年左右的时间可以起到一定的效果。
总得来看,今天的开源芯片还是处于二十多年前开源软件的阶段,中间还有很长一段路要走。我们计算所与深圳鹏城实验室成立了开源芯片院士工作室,有计算机体系结构国家重点实验室在支持,会一起推动开源芯片生态的建设。
我们推出了两个报告,分别是《开放指令集与开源芯片发展报告》《开源项目风险分析与对策建议》,报告中有近期大家都很关心的中美贸易大战下面开源项目有没有风险、开源的平台License等等。
最后的结论是,现在到了一个新的时代,到了一个可以打破开源芯片死结的时代,同时这也是一个打造开源芯片的新时代,但是需要更多人来一起努力。
我的报告就到这里。谢谢大家!
页:
[1]