清华魏少军:人工智能时代中国芯片设计的应对之道-阿里云开发者社区

开发者社区> 阿川925> 正文

清华魏少军:人工智能时代中国芯片设计的应对之道

简介: AI芯片最大的障碍不是技术问题,而是如何落地。
+关注继续查看

魏少军是清华微纳电子系教授,在2019杭州云栖大会上,他分享了“人工智能时代中国芯片设计的应用之道”,以下是他的分享内容文字整理,经编辑。

_1

现在每个人都在谈人工智能,我一直研究芯片的架构,所以对芯片架构情有独钟,当看到人工智能的时候,第一个想到的就是人工智能芯片的架构是什么?

回过头看,对深度神经网络的研究可以追溯到早期(上世纪80年代),诺贝尔生理学和医学奖获得者David Hunter Hubel发现了视觉神经、神经元、突触,他想象了突触和神经元之间是怎样连接的。

因此,找到了一种似乎看起来可行的,通过一个节点表示神经元,通过节点互联表示突触,并用其上的权重来表示突触的通与不通或半通,因此形成了所谓的人工神经网络,进一步形成了深度神经网络。

_2

今天我们说“无产业不AI,无应用不AI,无芯片不AI”。ARM公司院士Rob Aitken曾谈到,从Cloud的Big ML到Edge的Medium ML再到物联设备的Little ML,大概各有两个数量级的差距,从10的8次方到10的12次方。另一个角度看,从实际现实的信号输入到云中的结构化数据,中间也需要大量的过程。因此可以看到,从云上的AI到应用上的AI可以说是无所不在,只是目前更多还是在考虑云上的AI。

乐观预测,到2025年的时候,深度学习芯片市场将达到663亿美元。2018年,主要是GPU占主导地位;到2025年的时候,以专用目标作为主要目的芯片数量会远远超过GPU等通用芯片。这至少说明了一件事,就是AI芯片到2025年将具备巨大的市场规模(600亿美元以上),全球现在芯片市场也就是4000多亿的规模,所以到2025年将有1/6由AI芯片主导,所以影响是非常大的。

_3

人工神经元等神经网络的机理其实是加权和,也就是各种层次的加权和,这样的结构要去真正完成计算任务,就需要很好的训练(通过数据的训练),找到权重的数值,最终形成训练的结果,以指导最后的推理计算。这看起来好像很简单,但它孕育着巨大的问题,即它需要巨量的计算能力,也就是算力。不同的人工神经网络适配不同的应用,例如CNN卷积神经网络可用于视觉识别,FCN全连接神经网络可用于手写体识别,RNN循环神经网络可用于语音识别和翻译等。人工神经网络到目前为止有两个问题还没有解决:一是算法仍在不断演进,新算法层出不穷;二是一种算法对应一种应用,没有一个统一的算法。

如果要去设计AI芯片而且在一个芯片上能够实现多种不同的应用,显然是不可能的,因为每一个都要做大量的运算,所以一颗芯片能完成一种神经网络的运算已经不得了。例如:1997年到2007年的ANN神经网络只有三层、网络参数为1万、芯片运算量为20万次/秒;2012年的AlexNET神经网络为7层、网络参数为6000万、芯片运算量为10亿次/秒;2014年的GoogleLeNet神经网络为22层、网络参数为5000万、芯片运算量为15亿次/秒;2014年的VGG19神经网络为19层、网络参数为1.38亿、芯片运算量为196亿次/秒;2015年的ResNet神经网络为152层、网络参数为1.5亿、芯片运算量为113亿次/秒。

_4

所以,一颗芯片对应一种应用,两种应用就是两颗芯片,N个应用就要N颗芯片,这是应该现代AI芯片设计的重大瓶颈。前段时间清华大学的施路平教授在《Nature》上发表了一篇封面文章,把类脑计算与深度神经网络合到一个芯片中,引起了《Nature》的高度重视。原因在于现在做芯片之难,除了本身的高计算量之外,把AI从云推向边缘时的能量效率也成为巨大的问题。

可以看到VGG19,大概需要196亿次的运算加上同时处理1.38亿的参数,如果不考虑能量效率的问题,手机大概算一次电就没了,所以肯定是不行的。

所以说AI芯片需要高能效的通用Deep Learning引擎,它确实需要一个全新的算法,传统的算法都不行。其实计算能力的提升并不复杂,人脑的计算能力其实非常有限,超算早已超过人脑,所以简单的追求人脑的计算能力不是目标。相反要看到,人脑和机器逻辑去比较,最重要的一点是人脑有140亿神经元,工作频率只有200Hz,传导速率以每秒钟120米的速度,由于人脑皮层有半米也就是1/4平方米,所以还是可以完成10的16次方运算。而人脑的重量为1.2-1.6公斤,而能量效率非常高(只耗20瓦),但机器以天河2号超级计算机为例堆积了很多芯片,可以实现10的34次方运算,代价是720平方米占地面积、5吨重量以及24兆瓦功耗。因此,在现实中,不可能每个人一天到晚背一个超算去工作。所以,一定要找到一种能够实现与人脑差不多能量效率的设计,当然现在不知道应该是什么样的设计。

_5

总结一下AI芯片应该具备的基本要素:第一,可编程性,可适应算法的演进和应用的多样性;第二,架构的动态可变性,要适应不同的算法,实现高效计算;第三,要有高效的架构变换能力,变换时钟周期要很低,低开销、低延迟;第四,高计算效率,避免使用像指令这样的低效率架构;第五,高能量效率,达到10TOPS/W,某些应用的功耗要低于1mW,某些应用的速度要达到25F/s的识别速度;第六,低成本,要能进入家电和消费类电子产品;第七,体积小,要能够装载在移动设备上;第八,应用开发简便,不需要芯片设计方面的知识等。

因此,目前流行的CPU+软件、CPU+GPU、CPU+FPGA、CPU+ASIC的做法,均不是理想架构,可能需要一种全新的架构。

也正是因为如此,我们今天还没有真正实现人工智能,UC伯克利大学的Michael Jordan教授曾说过:今天所说的Artificial Intelligence其实不是AI,更多是Intelligence Augmentation或叫IA增强智能,也就是利用这些技术来帮助人类真正实现和加强智能能力,而离真正的AI还差很远。

_6

去年3月9号,我在2018 GTIC会上提出了一个问题,当时问题的前半部分是:是否会出现类似通用CPU那样独立存在的“通用AI处理器”,如果存在的话,它的架构是怎样的?实际上我那时候心里是有一点点答案的,但我想听听世界上的大牛们是怎么说的,而当时问题的后半句没列出来,想问的是如果不存在的话,今天做AI芯片的公司将何去何从?

后半句问题今天已经有答案了,我认为是存在这样的一个通用AI芯片的,因为在过去一年当中看到太多的相关技术,给了我们很大的启示。问题是怎么去看待这样的AI芯片。

John L. Hennessy和David A. Patterson在图灵奖讲座《计算架构的新黄金时代:专用领域硬件/软件的联合设计、增强安全、开放指令集以及敏捷芯片开发》中有一个名言,叫AI等于Architecture+Intelligence,我觉得这句话还不能够很清晰地表达AI的意义,我更多认为AI等于Architecture+Innovation,也就是说要做AI的话,首先想到的是架构的创新,如果架构上不创新,按照现在的这种方式走下去,恐怕很难获得真正所需要的架构。

AI处理器现在有很多种架构,比如ASIP的Cambricon、RS Dataflow的Eyeriss、Systolic Array的TPU、Sparsity的SCNN、Flexible Bit的UNPU等,问题是这些是不是最理想的呢,现在需要认真思考一下。

为了做这个事情,我们花了一年时间做了一个路线图:横轴是Deep Learning的Algorithm算法,纵轴是Hardware Architecture硬件架构。沿着横轴有各种各样不同的DL Algorithm,可能还在不断地演进,称为“More Algorithm”;纵轴上看到有各种各样的Hardware Architecture,称为“More Architecture”,或者更时髦的词叫“More than Algorithm”。最重要的不在于这两点,实际上要看的是中间结果,中间结果是算法与硬件的Co-design。做芯片的人都知道,曾经非常崇敬Hardware和Software的Co-design,现在看来不行,而要从Algorithm入手,也就是说硬件和算法这两者要结合到一起。派生出不同的应用场景也是自然的,现在面临的是各种各样的Co-design、Co-optimization、Co-verification、Co-implementation,因此做芯片不再容易,而变得越来越复杂。

_7

现在的实现是怎样的呢?可以分成三个阶段,当然还有第四个阶段叫AI Chip2.0。

第一个阶段,可称为AI Chip 0.5的早期阶段,那时候要实现AI应用没有任何的现成算法,所以把CPU、GPU、FPGA、DSP都拿来用了,当时关心的是能不能实现AI计算,只要能实现就好,而不关注Performance性能够不够,当然GPU的Performance最高,所以用GPU的最多。到了AI Chip 1.0阶段,开始出现像Google TPU、MIT Eyeriss等。这时候不仅仅关注了Performance,还关注了像Power Consumption、Energy等问题,都是与应用密切相关的问题。所以,要考虑一个新产品、新技术的落地,最简单的办法就是做一个专用的芯片。到了AI Chip 1.5阶段,开始发生变化了,有两个标志性的成果:一个是清华的Thinker,还有一个是Wave Computing的DPU,分别考虑的不仅仅是专用的领域,是半通用的Reconfigurable可配置的,同时能够把Training训练和Inference推理两个任务放在一起,就意味着在性能、能量、效率、功耗等之外又加了一个Flexibility,即灵活性。在这个过程中看到Reconfigurable和System是关注的重点。到这儿还是一个Semi-General,还不是一个真正意义上的通用芯片。通用AI芯片是什么呢?目前为止还没有看到,它应该是一个通用的、自适应的、智能化和智慧化的设计,其中Intelligent和Intelligence成为两个关键词。

早期的AI芯片更多在考虑训练,像云端更多是训练计算任务,因为云端的计算能力足够强,找到那些权重参数要花费很多的算力。后来要通向终端应用的话,要有Inference能力,未来的芯片应该不分Training与Inference,应该两个都包含在其中,因为有可能在终端也要做Training和Inference,最终能不能实现也要拭目以待。

我们看到从AI Chip 1.5阶段开始出现了一种新的架构,是可配置Reconfigurable的,其实这个技术早就出现了,它在1990年就出现了,中间经过了90年代的发展期,后来又高速发展,到现在为止人们突然发现它可以用来做AI芯片。Wave-Computing就是采用了这一结果,只是它用的是静态任务。

_8

第二种称之为软件定义,可以把软件的可编程性和硬件的可编程性定义为两个轴,尝试着把现在已有的芯片往入四个象限,例如CPU、DSP等以软件编程为主的在第二象限中,第三象限有ASIC和SoC,第四象限是FPGA和EPLD,问题是第一象限是什么呢?并不知道第一象限是什么,这就找到了一个全新的路径,第一象限应该空间可以发掘。我们称第一象限为可重构计算的芯片或叫软件定义芯片,通过软件来定义硬件的架构和功能,而且是实时和动态的定义,这样就可以解决算法在不断演进、硬件功能不断变化,如何适应算法的变化和算法的选择。通过这种方式,清华也做了重要的尝试,比如Thinker,这是一系列可重构神经网络的计算架构,这个计算架构用的是一种与其它理论不太一样的思路,它具有跟ASIC差不多的性能,但具有CPU一样的灵活性。

_9

去年年初,MIT Technology Review专门写了一篇评论文章,对清华的这颗芯片进行评论,认为中国取得了一个宏观级的成果,这颗芯片我们今年把它推向市场以后,也成立了一个公司,今年大概已经可以到千万美元的量级、几百万颗的订单了,一下获得了很好的机会。
为什么很好呢?因为它的能量效率极高,绝对功耗又极低,用它进行语音处理的时候只有200多个微瓦、0.2个毫瓦,一节电池可以用一年,用于人脸识别时大概6个毫秒可以识别一个人脸,而且同时可以识别很多的人脸,识别率高于人的识别,而每一个识别的功耗只有12毫瓦。

最后,一个更为理想化的想法是怎么能够让芯片变得更智慧一些,刚才信息化最终都想能够实现智慧化,什么叫做智慧化?需要具有自己学习的能力。人类通过接受教育、通过学习,变得与众不同。所以,学习和教育或者训练和推理,很可能起到重要的作用。设想一下,如果芯片也可以通过学习和接受教育,那是不是这颗芯片能变成越来越聪明呢,变得与其它的芯片不一样呢?如果能做到这一点,芯片的智慧化就至少有了一点点眉目。

_10

我们给出一种可能的智慧芯片架构,大家可以看到它包含了可重构的内核加一个训练内核,同时有很多On Chip或On Device的Compiler软件,其它新设计包括Algorithm和Software的进化,当然最难的是怎样甄别软件和应用,这是可以实现的。经过时间的推移和技术的不断推进,相信这个问题可能可以实现的。

如果看架构的主要功能,可以看到三个红色的部分,现在看起来最难突破,也是最后才能突破的,也就是如何根据应用来定义一个或找到一个最适合的神经网络。通过应用定义的神经网络去找到对应的软件,这又是个难点。当然,怎样把数据抽取出来进行训练以及进行推理,这也很难。这个问题可能不是今天能解决掉的,但未来可能可以解决。

蓝色的硬件方面,至少知道该怎么做,从Reconfigurable Processor的角度是可以说清楚的,Training Engine只要性能足够高、能量效率足够高,也是可行的。

剩下绿色要解决的是比较难的。第一个叫On-Chip Compiler能不能做到,而且这个Compiler应该是具备一定智能化的Compiler,这个事情本身就是个难点。更难的是Software Evolution也就是软件的自演进,怎么能够让算法和软件自己演进,而不是简单的改参数,而甚至是自己编程,可以对架构进行变形,架构变形后再自动产生相应的算法,算法再产生软件,这样一个过程能否智能化?如果这个过程能够实现智能化,就认为向前迈了一大步。再把刚才红色的问题攻破以后,AI芯片就具备了初步的智慧功能,可以通过不断地训练和使用过程,不断地自我学习,变得越来越聪明,越来越适合应用。

设想一下,当有这样一颗芯片用在阿里云中,想换掉这颗芯片的难度都会变得非常大了,因为换掉它要付出巨大的代价,所有的训练和学习都浪费了,因此一定会想办法把“知识”传递下去。

_11

这样的智慧芯片,除了刚才讲到的人工智能芯片所具有的特性之外,更重要的是以下三点:学习能力,接受教育,成长能力;算法、软件的自主演进能力;自主认知,自主判断,自主决策的能力。这三点都是难上加难,需要真正意义上花费大精力去实现。当时,讲技术、讲芯片、讲算法,再多也没用,应用是真正要解决的问题,AI芯片最大的障碍不是技术问题,是如何落地的问题。今天要甄别一个AI能不能有实际应用,真的很难。

列出一些应用来,它们可以用AI去实现,但十有八九不用AI也能完成,甚至完成的更好,这时候AI的压力就变得非常大。那么,到底哪些应用需要AI?需要AI帮忙解决什么样的问题?什么是AI的“杀手级”应用?以及什么样的AI应用是我们每天离不开的?如果把这些问题搞清楚,也许就知道如何去发展真正意义上可用的AI芯片了,那时候AI就真正的来临了。(文/宁川)

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
50款免费 PSD 名片设计模板源文件下载《下篇》
  名片是陌生人之间建立联系的最便捷、最有效的工具。名片它可能是给你的客户留下正面的印象第一步,另一方面,名片是一个企业最重要和最符合成本效益的营销工具之一,尤其是对于刚刚起步的企业。这里收集了50款免费的名片设计模板,提供 PSD 源文件下载。
912 0
基于声网的音视频SDK和FreeSWITCH开发WebRTC2SIP Gateway 报文设计 (二)
基于声网的音视频SDK和FreeSWITCH开发WebRTC2SIP Gateway 报文设计
219 0
寒武纪重磅发布首款AI云芯片,陈天石要让端云结合占领10亿智能终端!
今天,寒武纪发布第三代IP产品Cambricon 1M和最新一代云端AI芯片MLU100和板卡产品。MLU100云端芯片不仅可独立完成各种复杂的云端智能任务,更可以与寒武纪1A/1H/1M系列终端处理器完美适配,让终端和云端在统一的智能生态基础上协同完成复杂的智能处理任务。
1982 0
短视频SDK的编译设计与实现系列(一)——CMake基础入门
一、背景介绍 在开写之前,简单介绍一下我要写这篇文章的背景及出发的方向。我们团队主要是做端上的多媒体开发,而这里面有大量的代码都是用c++来写的,由于历史原因,原先的工程结构其交叉编译配置比较复杂,另外加上团队很多同学之前都是做端上业务开发的,本身对于c/c++的交叉编译不是特别熟悉,因此萌生了从实用角度梳理一篇能够帮大家快速扫盲的Cmake基础教程的想法,同时也是对我自己的一次学习总结。 既
3851 0
+关注
20
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载