分享

清华魏少军:大部分AI芯片创业者将成为这场变革中的先烈

 yangtz008 2018-03-25

 


2018,想要follow最火的区块链技术?你还差一场严谨纯粹的技术交流会——2018区块链技术及应用峰会(BTA)·中国将于2018年3月30-31日登陆北京喜来登长城饭店。追求专业性?你要的这里全都有:当超强嘉宾阵容遇上业界同好的脑洞大联欢,1 1=无限可能,目前门票火热进行中。


整理 | 阿司匹林、费棋


3 月 9 日,智东西、极果和 AWE 联合举办的 GTIC 2018 全球 AI 芯片创新峰会在上海举行。


在人工智能备受关注的今天,中国的 AI 芯片产业正在迎来最好的发展时机,初创公司层出不穷,并出现了寒武纪这样的独角兽。


然而盛世之下,似有隐忧。


“两到三年内,我们一定会碰到一个低潮,这是不可避免的。今天的一部分,甚至是大部分的创业者将成为这场技术变革当中的先烈。”


清华大学微纳电子系主任、微电子所长魏少军教授在大会上直言不讳。


在他看来,目前还不存在适应所有应用的通用算法,所以应用领域的确定是 AI 芯片发展的一个重要前提,AI 的杀手级应用到目前为止还没有出现。因此,AI 的发展还有很长的路要走。


以下是魏少军教授演讲全文,AI科技大本营整理,略有删减:



我是做芯片设计,研究芯片设计及其理论的。


两年前我们尝试做了一下 AI 芯片,效果不错。后来,(我们)在国际上连续发表了一些有影响力的论文,有些被 MIT Technology Review 所引用。所以突然间,我发现了自己成了 AI 芯片的专家,其实不是。


今天跟大家做一些沟通,主要希望提出一些可能跟我们在坐的大佬们不太一样的观点,供大家评判,我的演讲题目是《人工智能发展需要应用和架构驱动创新双轮驱动》。


一、芯片是实现 AI 的当然载体



AI 不是一个新话题,早在(上世纪) 50 年代就出现过,经过 30 年的发展,从基本的概念开始转移到机器学习,再经过 30 年发展到了如今的深度学习。


今天看来,深度学习是我们主攻的一个重要内容,但它只是人工智能中非常窄的一个面。我们现在已经开始出现把一个很窄的东西来代替全面的人工智能,这是有偏颇的。


当然,这是有原因的,前年 AlphaGo 下棋赢了李世石,后来又赢了柯洁,这些都是很重要的标志性事件。但其实 2011 年的 IBM Waston 计算机参与的一个叫“危险边缘”的游戏,我觉得其实比 AlphaGo 更有代表性,当然大家可能不一定同意我的观点。


如果我们认真去思考,分析下两者比赛的过程,我们会发现 Waston 所具备的智能远远高于 AlphaGo,只是前者不够 fancy 而已。



智能化是下一轮(科技)发展的核心驱动力,这一点毫无疑问,但智能化到底是什么?对这个问题,大家的意见其实并不完全一致。


人类在处理一件事情时大致要经过以下几个过程:感知、传输、存储、处理、决策、传输、执行。在这样一个过程中,其实中间的一部分(也就是存储、处理加决策),我们更多地认为,它具备了现代计算逻辑、分析思维、经验知识判断、决策等各方面的主要内容,所以我们称中间这部分为智慧,前后两端为能力。


中文有时候会比较宽泛,说智能就包含了智慧和能力两部分,但其实我们更多的是在处理智慧部分,而不是能力部分。


所以人工智能这个词有问题,这个词是不清楚的,英文叫人工智慧而不是人工智能,但我们把两者结合到了一起。不过这无所谓了,因为我们可以认为它是可行的。



毫无疑问,芯片是实现 AI 的当然载体,包括 CPU、GPU、FPGA 等等,目前已经出现了 CPU GPU、CPU FPGA、CPU ASIC 等芯片平台,所有这些都离不开芯片。


所以刚才讲了,无芯片,不 AI。


如果你要做 AI 的话,你一定要芯片。在发展 AI 的过程中,芯片是不可或缺的基础内容。


二、人工智能芯片的若干关键要素



人工智能芯片既然如此重要,那么我们应该如何去实现它?我可能和在场嘉宾的观点不太一样。


我们先说 AI 面临着两个现实的问题:


  • AI 算法非常多,而且在不断演进,现在的算法并没有固定下来;

  • 一个算法对应一个应用,我们目前还没有一个统一算法可以覆盖所有应用,这是让做芯片的人最为痛苦的事情。


我们希望找到一个适应所有算法的芯片架构,而不是每一个应用做一种芯片,这个做起来非常困难。



神经网络有很多种,深度不一样,大小不一样,复杂程度不一样,但是无一例外,这些都是专用神经网络。面对这样一种情况,我们需要在芯片中实现一个具备深度学习的引擎,它是一个必备特性。


今天的深度学习所需要的计算量和参数量非常巨大。从 1997 年到 2007 年,那个时候只需要很少很少的运算量就可以完成一点点小工作,那时候整个计算量也上不去,而且一到十万个参数就很多了。


但是到了今天,比如 2014 年的时候,我们做到 19 层需要 196 亿次/秒的计算能力,加上 1.38 亿个参数;2015 年,参数已经增加到了 1.5 亿个。


这些东西需要这么大的运算量,所以也需要一个好的计算引擎。如果没有一个好的计算引擎,我们是完成不了这些运算工作的。


另一方面,从云端向终端迁移的过程中,我们必须有极高的能量效率,也就是所谓的每瓦多少个 TFLOPs。如果我们仍然效率不高,那么手机电池可能很快就耗完电了。


我们需要真实地去看待这件事情的发展,一个是计算量,一个是能量效率。


在这样的情况下,AI 芯片需要具备怎样的基本要素?


  1. 可编程性:它要适应算法演进和应用多样性

  2. 架构的动态可变性:适应不同算法,实现高效计算

  3. 高效的架构变换能力:< 10 Clock cycle,低开销、低延迟

  4. 高计算效率:避免使用指令这类低效架构;

  5. 高能量效率:~ 10 TOPS/W(某些应用:功耗 < 1mW;某些应用:识别速度 > 25 F/s);

  6. 低成本:能够进入家电和消费电子类

  7. 体积小:能够装载在移动设备上

  8. 应用开发简便:不需要芯片设计方面的知识


如果让一个人去开发芯片设计,那恐怕难度就很大了,所以目前的 CPU SW、CPU GPU、CPU FPGA 或者 CPU ASIC 可能都不是很理想的架构,未来我们需要探索架构创新。


既然谈到架构,我们就谈谈什么样的架构是合适的?应用和架构创新是人工智能芯片发展的必由之路。



首先来看应用。今天应用涵盖了几乎所有方面,无行业,不 AI。无论是人脸识别、语音识别、机器翻译、监控、交通规划、无人驾驶、智能陪伴、能源、舆情监控、智慧农业、智慧生产等等,AI 似乎涵盖了我们生产生活的方方面面。


但在这里我想问几个问题:哪些应用真的需要 AI?当我们用 AI 的时候,我们希望它能帮我们解决什么问题?我们做芯片的人特别想知道,什么是 AI 的杀手级应用?什么样的 AI 是我们每天都需要的?


这些问题直到今天都没有答案,有些貌似是 AI 的东西,但实际上不是 AI。


给大家说个笑话,今年是我的本命年,所以今年春节我要买一条红围巾,我就在网上搜了一下,但我没买,结果我就发现在我的手机上就不断出现红围巾的广告,这让我感到非常的烦,它是 AI 吗?它具备一种 AI 的性质,但它又不是 AI。它是给我帮助吗?是给我帮助,但不是我需要的帮助,我只不过看了一眼而已。回想几年以前,我想买一座台灯,结果在两个月当中,我的手机上就不断出现台灯广告。


我想,这都是对 AI 发展过程中的一种偏见,或者还没有达到 AI 真正需要的能力。


三、应用和架构创新是发展人工智能芯片的必由之路



我们说,应用确实很难,但是现在顾不了那么多,我们做芯片的人一定要先想到架构是什么,因此架构创新很重要。从感知、传输到中间的处理,一直到后面的传输和执行,这是发展过程中大概躲避不了的基本架构。


感知通过传感器,执行通过执行器,中间的传输有很复杂的网络,不管你处理多复杂的问题,大概的基本逻辑都在这,关键是中间这一块,所谓智慧处理的根本架构是什么?我们不知道,因为我们不知道人是怎么想问题的,所以我们只能用今天计算机的方式来想,大概是什么样的结构。有系统软件,有处理器,有存储,我们只能这样积极地模仿它而已。


不可避免地,我们要碰到这样一个基本定义,多输入多输出的系统,高度复杂、灵活的互联结构,多任务且高度并行化的运行系统,多处理单元系统,并行分布式存储,并行分布式软件,分布式处理与集中控制系统等等。


通过一个平时处理事情的简单流程来看看,我们是否真的能够按照自己能够接受的逻辑来思考一下整个流程?


当我们看到一个人,先看他长得什么样子,然后查查我的记忆,看我到底认不认识他。如果我没见过他,我要去认识一下,交换一下名片,先问下“您是什么单位的”,然后握握手,交换一下名片,然后就算是认识了,加深一下印象,再回到最开始。


在这个过程当中,大量的内容需要计算,计算无处不在。所以我觉得计算本身是我们架构创新的基本前提。为什么 GPU 在今天能够大行其道?就是因为它有很好的计算量,别人赶不上它。


但是,由于计算量如此丰富,我们又不知道人脑是怎样完成计算的,我们有的只有现在的芯片和软件,因此我们只好通过我们熟知的方式来构建一个所谓的能够具备智慧处理能力的芯片。这就一定会包含两个部分:智能软件和智能硬件。


智能软件应该包含这样几个方面的内容:自己学习的能力;形成知识和经验的能力;持续改进和优化的能力;再生和组织的能力;思维逻辑推理的能力;以及作出正确判断和决策的能力。


这些都不是芯片做的事情,而是软件做的事情,所以软件的作用在所谓的智慧芯片中起的作用一点也不比芯片差。


相反,芯片更多的是提供高性能计算平台,多任务并行计算能力,足够的带宽和吞吐量,极高的能量效率,灵活高效的存储,寻址功能,以及实时动态的功能变换能力。


我们经常说,实现智能的核心其实是软件,不是芯片,芯片不过是支撑智能的技术而已。因此,我们要改变下思路:做芯片的人,特别是做 AI 芯片的人,要把软件放在足够高的位置,因为它才是真正实现人工智能的根本点。



在这种情况下,我们希望硬件能够跟着软件不断变化,所以这里提出了“软件定义芯片”的概念,也就是 Software defines Chip(SdC)。芯片如果不能被软件定义,那你是做不好的。


我们早在 10 年前就提出了这个概念,但是阳春白雪,和者盖寡,知道的人并不多。但去年有一个很有趣的现象,DARPA 在电子振兴计划(ERI)中提出了三个支柱:材料、架构、设计,用于支撑美国 2025 - 2030 年之间的国家电子设计能力。这其中每一个方向都设置了一个课题,其中一个课题在架构中提出了软件定义硬件的概念,也就是 Software defines Hardware。


我摘录了中间的一段话:所谓要建立运行时可以实时重新配置的硬件和软件,他们具备像 ASIC 一样的性能,而没有牺牲数据密集型计算的可编程性。


那什么叫 runtime(实时运行时)呢?它可以让你的硬件结构可以跟着软件在变化的时候是 300~1000 纳秒,也就是硬件跟着软件变化,硬件功能和架构随软件变化而变化,这是一个重要特点。我只能笑一笑说,这个工作我们 10 年前已经完成了,远远走在了美国同行前面。


大家可能觉得 FPGA 早就可以这样做了,但我认为 FPGA 不行,为什么呢?我这里要指出 FPGA 的十大缺陷,希望使用 FPGA 的人不要在意:


  1. 细粒度:由于要实现比特级运算,运算颗粒度必须为细粒度;

  2. 配置信息量大:通常为几兆到十几兆字节;

  3. 配置时间长:通常需要十几毫秒到几十毫秒;

  4. 静态编程:一旦配置完成,不可更改。如果要改变 FPGA 的功能,只能下电或在线重新载入配置信息;

  5. 逻辑不可复用:所有电路必须全部装入 FPGA ,复用性为零;

  6. 面积效率低:每个 LUT 只能实现一位运算,面积效率只有 5%。一个千万级的 FPGA 只能实现几十万门的逻辑电路;

  7. 能量效率低:由于逻辑利用率低,引发无效功耗巨大;

  8. 需要特种工艺:FPGA 往往需要最先进的制造工艺,且需对工艺进行特别调整;

  9. 电路设计技术:应用者必须具备电路设计知识和经验;

  10. 成本高昂:目前的 FPGA 价格为几千到几万美元一片。


我只列出了 10 个缺陷,从这些缺陷里大家可以看到,你可以用 FPGA 做一个简单的验证系统,但用 FPGA 做一个实用系统,对不起,恐怕很难。


所以我们说 FPGA 无法承担 SdC 的重任,想要做到软件定义芯片非常困难。


那什么样的系统可以完成我们所说的 SdC 呢?



我们应该从最理想的计算硬件架构上去考虑。上图左边给出了一个软件,右边是一个与其拓扑结构完全一致的硬件结构。当然,我们没有考虑硬件本身的开销,这样的计算效率一定是最高的,我想这一点不用怀疑。



可惜的是,软件可以无穷大,硬件总是有边界的。因此我们只好把软件分成若干块,一块一块地搬过去,比如第一个模块搬过去,运行完后,赶快改变它,然后执行第二个模块,然后按照它的任务依赖性把第三个、第四个、第五个模块.....依次搬过去,直到完成。


显然,这样一个逻辑发展就要求我们的硬件结构和它的功能必须是动态的,随时可以改变,这就是软件定义芯片的基本概念。


问题是怎样才能很快去实现它呢?这是工作难点,我想我们在过去的 10 年当中,就是为了解决这个问题。


这样的一种计算架构,实际上是专用集成电路当中非常经典的一种架构:数据通道 控制单元。


我们可以看到,控制单元根据软件的要求,将划分后的任务逐块地送到数据通道中去执行,同时数据通道根据要求来配置计算单元并完成执行。道理很简单,问题是要创建完全可重构的数据通道和完全可编程的控制单元,如果能够做到这两点,那这就是软件可变化的。



这个与经典计算架构是有差别的,我把经典计算模式与我们现在的可重构计算模式做了一个比较。大家可以看到,传统架构是冯诺依曼等效架构,它是刚性的;而可重构计算是柔性的,它是一个函数化的应用结构。


经典计算模式当中,它是应用适应计算,而我们恰好倒过来,计算架构适应应用。经典模式当中,一个任务有一个处理软件,而在我们新架构当中,一个任务有多个等效处理软件。


在经典架构的处理过程当中,软件不变,而在现在的架构当中,硬件和软件都在动态地、选择性地改变。经典架构采取的是高度复用的方式,原因是需要降低成本,而我们这边采用的是冗余应用。


这样一种创新是不是改变了传统的计算模式,比如冯诺依曼体系结构?很遗憾,告诉大家,我们还是在冯诺依曼体系结构当中,没有改变,但是它却有很大不同。


要改变冯诺依曼体系结构不是闹着玩的事情,有人说,“我已经改变了这个模式,我做出了非冯计算结构”,我基本会跟他说,“你没弄明白什么叫非冯结构”。


我们利用这样一个结构,也就是软件定义芯片、可重构硬件这样一种结构,来实现 AI 芯片的时候,我发现它有独特的优势,我可以把硬件按照 AI 算法来不停地变换,以达到最佳计算效率。


从 AI 的应用着手,定义我们所要采用的深度神经网络,然后再决定硬件功能,这样的一种结构,我们认为是最佳的一种方式。当然,最开始我们并不知道这一点,我们只是在无意当中尝试了这里面的基本计算单元。



上图左边有一个阵列,每个方框里面都有 PE,基础计算单元的架构是什么?我们这里面分成两种,一种叫通用的,一种叫超级的,这两种方式代表了不同的计算内容,包括卷积计算、全连接计算、池化等等。我们可以通过定义的方式,把每个 PE 的功能随时进行定义,来完成我们需要的网络运算。


不仅如此,我们还可以把一个阵列上众多的 PE 通过定义方式不断改变,来适应不同层面的计算内容。通过这种方式,也可以大大提升我们系统能效。



在过去的两三年中,我们做了这样几款芯片:Thinker - Ⅰ ,Thinker - Ⅱ,Thinker - S。Thinker - Ⅰ 在去年的国际会议上获得了大奖,在今年的 ISCC 上我们对 Thinker - Ⅱ 做了相应的介绍,Thinker - S 被 MIT Technology Review 报道了。


Thinker - Ⅱ 在做人脸识别的时候,只需要 6 ms,而且功耗极低;Thinker - S 在用于语音应用的时候,只需要 0.3 mW 的功耗,在 MIT Technology Review 的介绍当中,一颗 3A 的电池可以用一年的时间。


四、总结



最后总结一下。虽然我们做了 AI 芯片,但是从我内心来说,我从来不承认我是做 AI 芯片的。上图是 Gartner 的 Hyper Cycle,我把跟 AI 相关的内容都用红线标了出来。可以看到,AI 基本还在第一个峰波上,也就是说,它还处在第一轮的发展过程当中。AI 现在太热了,甚至我们的媒体在推波助澜的过程当中起了一些不太好的作用,我认为现在 AI 是过热的。



最后我想提几个问题。


因为还不存在适应所有应用的通用算法,所以应用领域的确定成为 AI 芯片发展的一个重要前提,但非常遗憾,AI 的杀手级应用到目前为止还没有出现。因此,AI 的发展还有很长的路要走。


但这不是主要的,最重要的问题是,能否出现像通用 CPU 那样独立存在的通用 AI 处理器?如果存在,它的架构会是什么样子?如果不存在,那我们今天以满足特定应用为主要目标的 AI 芯片恐怕就只能做 IP 核了,早晚有一天会被人家吸收到 SoC 当中去,那 AI 芯片公司将何去何从?


最后,两到三年内,我们一定会碰到一个低潮,这是不可避免的,今天的一部分,甚至是大部分的创业者将成为这场技术变革当中的先烈,但我很钦佩大家。


毫无疑问,这将是 AI 芯片发展过程中,最令人钦佩也最令人动容的伟大事件。


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多