清华微电子副所长尹首一:中国AI芯片的技术路线最全面

数据文摘出品

整理:牛婉杨

12月1日,GTIC 2020 AI芯片创新峰会在京举办,本次峰会聚集了AI芯片以及各个细分赛道的产、学、研精英人士,共议AI芯片在中国半导体黄金时代的创新与未来。

2020年对于AI芯片来说,是充满坎坷的一年,被芯片“卡脖子”也是我们不得不面对的一个难题。因此,文摘菌在会上就特别关注了清华大学微纳电子系副主任、微电子所副所长尹首一教授的主旨演讲“中国AI芯片的创新之路”,看看我们的中国“芯”发展到了什么程度。

“AI芯片已经发展了五六个年头,现在进入攻坚阶段。今天我想跟大家分享一下我对整个目前中国AI芯片发展的梳理,概述一下今天AI芯片在中国发展创新的情况。

以下为对尹首一教授大会演讲实录的整理,一起看看吧。

芯片是人工智能时代的核心基石和战略制高点

我们耳熟能详的AlphaGo、自动驾驶、手机上面的人脸解锁、智能拍照,包括日常用的无线耳机人机交互都离不开AI芯片的支撑。

AI芯片在推动智能化发展方面有两个最核心的作用:

一是芯片的绝对算力实际上决定了目前达到的智能化最高水平,或者说今天人工智能的上限是由芯片的算力决定的。最近一段,美国微软公司联合推出的GPT3非常火,成为今年在自然语言处理里面最强大的模型。这个模型的成功得益于巨大的算力支持,有1700亿个参数,需要一万张GPU卡,没有这样大的算力不能达到今天这么高的智能化能力,绝对的算力决定了今天智能化的数据。在绝对的算力增长和人工智能对算力需求上巨大的差距,芯片平均每两年大概性能翻一番,模型的增长大概每3.4个月对算力的需求翻一番。这是绝对算力的问题。

二是,今天我们非常关注芯片的能效。计算能效实际上直接决定了今天人工智能能够延伸到的范围有多大。在很多场景底下,我们需要超低能耗的AI计算能力,比如大家用的智能耳机,我们感受到智能耳机的续航时间长短,没有低功耗高能效的芯片,难以在便携穿戴设备上支持人工智能的应用。AI产业发展成有巨大潜力的产业,全球AI市场规模据预测到2025年将会达到6.4万亿美元,在这里面全球AI芯片市场将在2025年达到700亿美金,今天中国的AI芯片市场已经达到75亿人民币。AI芯片伴随人工智能产业的发展有巨大的发展潜力,未来也有非常强劲的增长潜力。

AI芯片的分类

从应用场景角度划分AI芯片

关于今天AI芯片的分类,大家经常问AI芯片用在哪里,AI芯片属于什么类别的产品。我们可以从两个维度来对AI芯片做一个分类,最简单的可以从应用场景角度做一个划分。

大家很熟悉今天的AI芯片至少可以分成云端、边缘端两类。云端可以进一步细分成推理应用和训练应用,推理应用很多是每天都在使用的感受到的智能化服务,比如自然语言处理,电商系统里面的用户推荐系统,包括现在很多地方在建的城市大脑,对交通状况预测,都依赖于云端推理。训练自然不用讲了,今天能用到的所有AI模型训练基本都来自于云端服务器。边缘侧的应用场景非常繁多,比如手机里面的拍照,智能音箱、安防监控、智能驾驶包括各种无人系统,在终端边缘上更多使用的是推理方式。

今天我们看到在不同的应用领域场景底下都有一个非常快的成长速度,简单总结一下从2017年到2022年过去几年的发展和未来两年的预测。五年间基本上每个场景底下AI芯片的复合增长率都接近50%,综合来看差不多以55%的年均复合增长率发展。这是一个简单的维度,从应用场景的角度可以对AI芯片做一个划分。

从技术路线的角度如何看今天的各种AI芯片?

经常有朋友问到某一种芯片的架构有什么特点,有什么样的优势,今天我们听到的AI芯片概念很多,包括有深度学习、处理器、神经网络处理器、神经形态计算、类脑计算,这都是实现AI不同的技术路线,今天从技术路线的维度,把AI芯片尤其中国AI芯片的发展情况做一个简单的概述。

从技术路线角度来讲,至少可以把今天的AI芯片分成两大类,一类是深度神经网络处理器,它的特点或者作用对今天的深度学习算法里面的最核心部分深度神经网络进行计算。另一类,神经形态处理器,类脑计算归为神经形态处理器,通过对人脑结构的复制或者模仿,去实现一定的智能处理能力。

下面将从这两个维度简单介绍一下今天中国AI芯片的发展,中国的AI芯片发展起步和国际产业基本同步,我对中国的AI芯片企业做了不完全的统计,非常有限,非常不完整,挂一漏万。据不完全统计,今天在做AI芯片的企业超过100家,像我们非常熟悉的寒武纪、地平线机器人、清微智能、灵汐科技等,从地域划分来看,北京、上海、长三角、深圳、珠三角是最为活跃的区域。

按照技术路线角度来看,从深度神经网络处理器的角度做一个介绍,深度神经网络处理器里面可以实现计算的芯片从计算架构的角度分成四种不同的类型:

  • 指令集处理器

  • 数据流处理器

  • 存内计算处理器

  • 可重构处理器

无论哪种技术路线,最终目标都是实现对深度神经网络的计算加速。

指令集处理器

指令集架构的处理器可以定义为一种采用完整神经网络指令集来进行神经网络计算加速的一类人工智能处理器。说到指令集大家熟悉的CPU是最典型的指令集处理器的例子,它的特点是采用一些预定义好的定长或者变长的指令作为处理的基本单元,通过对这些指令的组合构成指令流,由指令流来完成任意的计算任务。对于指令来讲,它的基本处理过程是取值、移码的处理过程。无论是CPU、GPU还是新型的NPU都有很多成功的案例在使用指令集的方式支持不同的计算任务,通过对神经网络的计算特征抽象,构造神经网络专用的指令集,就实现了专用的AI处理器。非常典型和知名的几家企业,包括寒武纪有专门的寒武纪指令集,包括燧原科技、壁仞科技,大家在做通用GTU,这里面也会用到类似的GPU或者神经网络专用指令,通过这样的方式来实现人工智能计算。

通过寒武纪的例子简单进一步解释一下,神经网络的专用指令集处理器会是什么结构。寒武纪公开发表的电脑架构结构示意图,这里面典型的计算部件有三个NFU就是神经功能单元,分别完成乘法、加法数、激活函数三类计算,另外还有三个不同的存储单元,分别存储着输入的特征数据、模型权重、输出的数据。寒武纪电脑架构的运行受到CT控制器的控制,典型指令集的指令示例,对于存储器来讲有LOAD、READ,还有运算指令MULT,对于NBout存储单元来讲有WRITE指令。典型的神经网络就会通过这样一通指令的组合完成计算。

数据流处理器

第二类比较重要的技术路线,数据流处理器。通过数据流调度决定张量的架构,特点是优化数据复用和计算的并行度。简单的一个示意图可以看到,在典型的数据流阵列里面,会对神经网络的张量划分成不同的Tile,映射到计算单元当中,典型的数据流包括两种,一种称为WS数据流,一种OS数据流,分别对应着充分复用权重数据或者充分复用部分数据,通过不同的数据流提高数据复用的程度,减少缓存,提高计算的并行度,从而最终提高系统的处理能力和提高处理的能效。

中科院微电子所研究的FlexFlow,还有清华大学研究的STICKER,处理一个张量的时候,通常把这个张量做一个划分,切分成小的Tile,张量被分成16×16为单位的不同Tile。基本的运算示意图,在PE计算单元阵列里面,它的每行PE会共享一个权重,每列PE会共享一个特征数据。通过这样的数据共享方式提高计算的并行度,减少数据传输,减少缓存等等。

存内计算处理器

很多研究机构、创业公司还是投资机构大家都对今天的存内计算非常感兴趣,什么是存内计算?逻辑电路或者处理单元被放置到存储器的内部,以便使数据更接近处理单元,或者我们直接在存储电路中执行计算,而不进行数据传输,这个就是我们今天所说的存内计算的概念。

它解决什么问题?传统的计算架构,处理单元和存储器之间是分离的结构,在每次计算中处理单元和存储器之间要进行一定的数据搬移。存内计算的架构,把一定的存储器,把一定的计算单元放到存储器内部,在计算过程里面不需要大量在存储器和计算单元搬移数据,从而解决了今天面临的传统计算架构中的存储墙的问题。

存内计算的研究非常火热,在存内计算根据我们使用的存储器类型不同分成不同的技术路线,比如采用主变存储器RRAM做存内计算,或者Flash闪存做存内计算,也可以通过SRAM做存内计算。由于采用不同的存储器,每个芯片的特点有所差异。

RRAM和Flash存储器最大的特别是非易失性存储,以RRAM为例,为什么在存储器内我们能够实现神经网络或者一定的AI计算。在每个存储单元里面的电阻值通过电流来调节,每个单元可以调节多种阻值,典型的忆阻器的结构交叉开关的形式,每个交叉点上代表代表一个权重值,当我们进行AI计算的时候,AI计算的本质是张量×张量,在神经网络里面在RRAM里面把权重以电脑的形式存储,再把特征图以电压的形式输入到横向的存储器的自线上去,当电压施加到电阻上的时候,就有电流流过,这些电流按照纵向位线的形式自然被加强。实际上这就形成了在矩阵或者张量计算里面的乘法累加过程,把数学上面的矩阵计算转化成物理上通过基尔霍夫定律和欧姆定律形成电压和电流的关系,也就是用物理定律的方式完成数学计算,这也是今天采用RRAM、Flash的方式做存内计算最吸引人的地方,我们没有再采用传统的数字计算部件,而采用模拟的方式、物理的方式去实现计算。

除了前面提到的RRAM、Flash非易失存储以外,芯片里面用到最多的是SRAM易失性存储器,制造工艺最简单,跟今天所有的制造工艺是兼容的,有制造商的优势,可以在SRAM里面实现存内计算,也是通过模拟的方式实现数字的计算通过模拟方式实现的神经网络计算免除数据搬移,降低了计算功耗,提高了计算效率。

可重构处理器

最后一类是基于可重构架构的AI处理器,用简单的词来概括可重构架构的特点,可以说它是一种空间阵列。示意图里面计算单元在空间排成一个阵列结构,具有计算并行性。另一方面,是近存计算,每个计算单元附近有一个存储单元,这样减少了数据搬移的距离。另外具有弹性粒度的特点,通过电路上的重构提高计算的位宽,随着算法的需求变化。从结构来讲可以动态重构,最终的计算由数据流驱动。

基于这样的结构可以实现很好的特性,适配神经网络计算中的需求。比如今天的神经网络里面有一个典型的需求就是多数据位宽,我们可以通过量化的方式把神经网络量化成不同的位宽,甚至在同一个神经网络里面不同的神经层上面都可以量化成不同的位宽。带来计算速度的增加,带来计算能效的提升,计算功耗的降低,这样就可以通过可重构的方式在运算部件、处理单元、计算阵列、互连网络等方面实现分层次重构,各个层次在运算中进行协同。能够实现多元的编程机制,这样的架构可以扩展今天看到传统计算结构里面数据位宽固定或者数据流固定的不足,提升AI计算里面的能效和算力。

另外,它可以作为非同计算,架构本身是一种微整结构,每个PE都可以采用不同的预制预构的技术实现,比如前面提到的存内计算,无论是Flash还是RRAM都可以放到计算阵列里面,把近存计算的技术加入其中,使得可计算的架构更丰富,充分发挥不同计算模式的优势。

能够实现类脑计算的神经形态处理器

下面看神经形态的处理器,从技术路线角度来讲,可以分为两类,一类是实现脉冲神经网络处理器,一类是设计一些真正的神经形态系列。

很多时候大家会看到脉冲神经网络这样一个概念或者看到类脑计算的概念,本质从实现脉冲神经网络的角度来讲,实现了模拟人的神经网络中脉冲放电机制这样一套模型。脉冲神经网络本身也是对我们的人脑神经网络抽象,在实现中把脉冲神经网络里面的典型数学模型,通过链路的方式实现出来,在运行中处理器就实现了模拟人脑计算特点的功能,实现了所说的类脑处理器。

清华研究的天机芯片,除了实现了脉冲神经网络以外,通过一些电路上的优化设计,也能同时支持深度神经网络,实现神经神经网络和脉冲神经网络的二合一的功能。大家看过一段演示视频,在天机芯片上通过智能控制实现自行车的自动驾驶(超链接),这是一个非常好的例子,通过脉冲神经网络和自然神经网络去实现人工智能的功能。

设计神经形态器件,前面一种脉冲神经网络实际上还是对人脑活动的一种数学抽象,到了神经形态器件,真的去设计一种物理的器件,在物理上模拟我们的神经原的行为。比如这里面有几个例子,可以应用例子动力学逼真模拟生物突触的可塑性以及神经原的工作模型。通过物理的方式实现能够模拟人的神经原之间放电过程的器件。假如我们把大量的模拟人的神经行为的器件互联起来,就有机会制造一个非常接近于人脑神经网络的网络,通过一定的刺激能够实现一定的智能。

中科院微电子所和其它团队合作的成果,有一个很好玩的例子,通过新材料氧化铌制备,设计出来一种器件结构,这个器件结构当施加电脉冲以后,它的响应曲线和人脑神经原受到的电脉冲以后的响应曲线非常接近。大量的器件联起来,就构造了非常有前景的去实现人脑智能的系统。这就是通过神经形态器件的方式去实现人工智能计算的技术路线。

结论

最后做一个简要的总结,到今天我们可以把AI芯片的发展做一个阶段性的回顾:

  1. 尽管经过五六年的发展,AI芯片已经取得非常大的成绩,但它仍然处于起步阶段。无论在科研还是在产业上,都具有非常广阔的创新空间。

  2. 另一方面,AI从算法角度来讲,从应用角度来讲,为我们芯片提出很多新的需求,它将促使我们的集成电路去探索很多颠覆性的技术,彻底突破传统架构的性能和能效瓶颈,实现集成电路的跨越式发展。

  3. 最后,回到中国,我们的AI芯片产业创新与国际同步,我们今天可以讲中国AI芯片的技术路线是最全面的,我们的应用领域是最丰富的,伴随着中国的人工智能产业快速发展,AI芯片领域一定大有可为。

谢谢大家!

未来智能实验室的主要工作包括:建立AI智能系统智商评测体系,开展世界人工智能智商评测;开展互联网(城市)云脑研究计划,构建互联网(城市)云脑技术和企业图谱,为提升企业,行业与城市的智能水平服务。

  如果您对实验室的研究感兴趣,欢迎加入未来智能实验室线上平台。扫描以下二维码或点击本文左下角“阅读原文”

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/486115.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux socket资源耗尽,TCP的socket资源被耗尽的问题

一、 故障现象部分机顶盒用户出现大面积登录APP时,界面停留在登陆页面,无反应。二、现象初步分析本次问题出现时,所有AAA出现了异常流量波动,在AAA异常流量段期间接到用户故障报障。此时主要表现在LVS集群显示真实的EPG 服务器不停…

dnf时装预览怎么打开_dnf怎么查找各职业时装代码

类型:游戏辅助大小:898KB语言:中文 评分:6.5标签:立即下载DNF Extractor这个软件的出现让很多不想花钱或是觉得官方时装或界面不好看的玩家能自己定制自己的游戏风格,各论坛网站上有很多模型补丁的下载&…

然后是几点

7-2 然后是几点(15 分)有时候人们用四位数字表示一个时间,比如1106表示11点零6分。现在,你的程序要根据起始时间和流逝的时间计算出终止时间。读入两个数字,第一个数字以这样的四位数字表示当前时间,第二个…

c语言作业系统输出超限,C语言网Online Judge系统支持语言和编译说明

Online Judge系统支持语言和编译情况:语言编译器语言版本编译参数Cgcc 4.6.3C99gcc Main.c -o Main -Wall -lm –static -stdc99 -DONLINE_JUDGECgcc 4.6.3C98/03g Main.cpp -o Main -Wall -lm –static -DONLINE_JUDGEJavaJava”1.7.0_60″Java7javac -J-Xms32m -J…

演讲实录丨CAAI名誉副理事长杨强教授:人工智能的金融实践

杨强CAAI 名誉副理事长、微众银行首席人工智能官AAAI/ACM/IEEE/CAAI/AAAS Fellow转自中国人工智能学会CAAI原创 丨 作者杨强教授以下是杨强教授的演讲实录:今天的报告主要讲两个内容,一个是人工智能发展;另一个是如何在金融领域落地。刚才已经…

玩转python(2)多线程的历史2

线程这个概念早在多核CPU出现之前就提出来了,单核时代的多线程主要是为了让CPU尽量不处于空闲状态,使其计算能力始终能得到利用。但本质上讲,在任意时刻只有一个线程在执行。 尽管任意时刻只有一个线程在执行,但是依然有些问题需要…

下取整函数的含义_取整函数解读

关于[x]以及{x}的性质与应用摘要:[x]和{x}是非常重要的数论函数,其他许多数学分支都要涉及到,在国内外的数学竞赛中也经常出现含有[x]和{x}的问题,这类问题新颖独特,颇具启发性。本文主要讨论[x]以及{x}的性质,和[x]以及{x}在数学中的应用&am…

基本的Windows相关的DOS命令

常见的DOS命令: exit:退出当前DOS命令窗口 cls:清屏 dir:列出当前目录下所有的子文件 cd:改变当前目录 cd路径 路径分为绝对路径与相对路径 绝对路径:表示该路径是从某个磁盘的盘符下作为出发点的路径…

keil 51 单片机c语言串口发送和接收程序,【精选】51单片机串口通信程序。。含详细例子51单片机串口通信程序。。含详细例子.pdf...

【精选】51单片机串口通信程序。。含详细例子51单片机串口通信程序。。含详细例子51单片机串口通信1./* 9600 11.0592MHz1./* 9600 11.0592MHz11..//**打开串口调试程序,将波特率设置无奇偶校验晶振1111.MHHzz,发送和接收使用的格式相同,如都…

ASP.NET MVC中的路由IRouteConstraint方法应用实例

在如下代码的写法中: public class RouteConfig{public static void RegisterRoutes(RouteCollection routes){routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapPageRoute("Report", "report", "~/Content/page/r…

2020年第五届中国通用人工智能年会

来源:知乎-刘凯-AGI现阶段,人工智能热正迅速“退烧”而回归理性,主流人工智能学界急切寻觅新的突破口。通用人工智能再次获得关注,并被期待成为下一轮技术引爆点。中国通用人工智能年会已成功举办四届,涉及计算机科学、…

post发送byte数组_KAFKA消息发送

消息发送的整体架构RecordAccumulator 主要用来缓存消息以便 Sender 线程可以批量发送,进而减少网络传输的资源消耗以提升性能。RecordAccumulator 缓存的大小可以通过生产者客户端参数 buffer.memory 配置,默认值为 33554432B,即32MB。如果生…

Java语言的特性

1. 简单性。Java语言的语法与C语言和C语言很接近,使得大多数程序员很容易学习和使用Java。 2. 面向对象。Java语言提供类、接口和继承等原语,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口…

%dn在c语言中是什么意思,请问C语言中 char far 是什么意思?

near指针和far指针?在DOS下(实模式)地址是分段的,每一段的长度为64K字节,刚好是16位(二进制的十六位)。near指针的长度是16位的,所以可指向的地址范围是64K字节,通常说near指针的寻址范围是64K。far指针的长度是32位&a…

未来的趋势发展 802.11v网络协议解析

目前的无线网络中,一个基站通常与拥有最强信号的接入点联系在一起。但是,这个接入点也许过载了。在802.11v标准中,包括了一个指令,接入点能够使用这个指令要求一个基站报告它支持的无线电信道、传输的功率范围、数据速率和支持的身…

从特斯拉到爱因斯坦,物理学家为何钟情于猫

牛顿和猫洞的故事,图片来自3milliondogs.com来源:数学中国尽管我们看到了大量的猫被用作实验对象。面对科学发展过程中这黑暗一面,我有必要强调一下,纵观历史,许多物理学家与他们的猫的关系要友好得多,猫成…

win10远程桌面连接凭据怎么设置_想在家办公,只需打开win10远程桌面连接就可以了,还犹豫什么...

远程桌面连接是一种使用户能够坐在一台计算机前连接到其他位置的“远程计算机”的技术。例如,用户可以从家庭计算机连接到工作计算机,并访问所有程序、文件和网络资源,就好像坐在工作计算机前一样。另外,用户可以让程序在工作计算…

c语言 嵌入式开发环境搭建,嵌入式C语言环境的搭建

IMPORT |Image$$RO$$Limit| IMPORT |Image$$RW$$Base| IMPORT |Image$$ZI$$Base| IMPORT |Image$$ZI$$Limit|IMPORT |Image$$RO$$Limit| IMPORT |Image$$RW$$Base| IMPORT |Image$$ZI$$Base| IMPORT |Image$$ZI$$Limit| IMPORT Main ; 声明C程序中的Main()函数 AREA Start,CODE…

Java的加载与执行

Java的运行包含两个特别重要的阶段:编译阶段,运行阶段。 编译阶段:编译阶段的主要任务是检查Java源程序是否符合Java语法。 符合Java语法则能够生成正常的字节码文件(xxxx.class) 不符合Java语法规则则无法生成字节码…

luogu1168 中位数

题目大意 给出一个长度为N的非负整数序列A[i],对于所有1 ≤ k ≤ (N 1) / 2,输出A[1], A[3], …, A[2k - 1]的中位数。即前1,3,5,……个数的中位数。 题解 要找到中位数我们需要的序列是单调不减的,故可以…