主讲导师|冯杰
本文编辑|梁家祥
7月17日,智东西公开课推出的AI芯片系列课进行完第四讲,由灵汐科技首席架构师冯杰主讲,主题为《类脑芯片的架构演进》。冯杰老师围绕CPU、GPU、FPGA、ASIC以及类脑等代表性芯片架构从算法支持度、规模扩展性、有效算力、有效算力成本比、有效算力功耗比五个维度做了详细的对比分析,并对Tianjic类脑芯片架构的高算力、低功耗、高扩展性和高并行度及应用做了详细介绍,本文为冯杰老师的主讲实录,共计13868字,预计读完需要13分钟。
主讲实录
冯杰:大家好,我是灵汐科技芯片架构师冯杰。感谢智东西提供交流平台,让大家能够在一起交流人工智能的发展。今天我分享主题为《类脑芯片的架构演进》。以下是今天要分享的提纲:
1.人工智能的驱动力和现状
2.代表性芯片架构分析
3.人脑的启示
4.Tianjic芯片架构分析
5.灵汐科技的类脑计算平台
这张图相信大家都很熟悉,它揭示了这些年人工智能在某些领域蓬勃发展的根本原因,也就是说,在合适的时机,有大量的数据、有效的算法以及比较高的算力进行有机结合,推动了人工智能的高速发展。
今天,很多领域都能看到人工智能的身影,从创作到游戏,从金融到安防等,很多行业为了提升效率和品质,都在采用AI技术,因此有人说我们正在进入智能时代,在我看来,这并没有夸张,至少我们已经站到智能时代的门槛附近了。
但是,今天我们也不得不看清一个严峻的现实,那就是数据量越来越大,数据类型越来越多,从以前主要的文本信息,到后来的图像信息、音频信息、视频信息,再到现在和未来各种传感器信息,数据的种类是五花八门,多种多样,数不胜数的;在算法上,不同的应用领域有不同的算法涌现,比如有图像识别算法、语音识别算法以及目标跟踪算法等,各种算法日新月异,种类繁多,高速发展。但是它们的基点,也就是算力的进步却越来越慢,已经大大落后于数据和算法的需求。我们都知道提供算力的是芯片,我们也知道芯片工业的发展已经快到极限了,目前是7nm量产,也许明年后年就是5nm或者1nm会量产,也可能在未来会有更小的尺寸,但没有人知道能不能继续维持下去,到目前为止,能够实用的新材料暂时还没有看到。
数据和算法还在继续高速发展,我们需要立足于现状,分析问题的原因,找出解决的办法,接下来我会对数据、算法以及算力一一加以分析。
从这张图可以看到,数据量在呈指数级增长,由于数据量是由数据的产生方式、存储方式以及传播方式决定的。因此,随着科技的进步和社会的发展,数据量一定是越来越大的。
今天我们每个人都是大量数据的制造者,比如平时拍照、录音、录视频、刷朋友圈等,再加上物联网时代正在走近,如果在未来真正实现了万物互联,数据量会更加庞大。数据包含有用的数据和垃圾数据,当然,有用数据和垃圾数据是相对的,取决于怎么使用这些数据,谁使用这些数据。
如何对海量数据进行分类,分辨出有用数据,还是垃圾数据,以及如何对这些数据进行处理,挖掘出有用数据的价值,让它们服务于人类呢?这是一个巨大的挑战。
人力是有限的,数据是无限的,靠人工肯定是不可能的,只能靠人工智能代替人对数据进行分类和处理,并服务于人类。而人工智能之所以能够处理这么大的数据,靠的是算法,接下来我们来看看人工智能的算法。
首先是人工神经网络的算法,这是我们最熟悉的人工智能算法。目前最流行最强大的深度学习算法就是最有代表性的人工神经网络算法,这张图片描述了人工神经网络的发展历程。
1943年,心理学家MeCulloch和数理逻辑学家Pitts第一次提出人工神经网络的概念,同时也提出了第一个人工神经元的数学模型,也就是著名的MP模型(神经元的阈值模型),人工神经网络的时代就此开启。但是,纵观整个人工神经网络的发展并不是一帆风顺,也是几经波折才发展到今天的繁华局面。
1958年,Rosenblant在原油的MP模型基础上提出了非常著名的感知器概念,也叫感知器模型。它是一种最简单的二元线性分类器,后来被广泛应用。感知器模型的提出和应用迎来了人工神经网络发展的第一次高潮。1969年,Minsky和Papert发现感知器不能处理线性不可分问题,也就是“异或”问题,看起来挺简单的“异或”问题,感知机无法解决;同时,由于当时的计算机也是刚刚发展不久,性能很低,很难快速运行大规模的神经网络的计算,因此人工神经网络的发展第一次陷入了低潮。但是人工神经网络的发展并没有就此停滞,还是有一批人前赴后继,寻找前进的道路。
直到1974年,Werbos提出误差反向传播有监督学习算法,也就是我们今天都在用的BP算法,用误差反向传播算法可以训练多层感知机即MLP,它有效地解决了“异或”问题,这是很重要的一步,算是彻底迈过了1969年Minsky和Papert给我们留下来的难题,翻开了人工神经网络发展的新篇章。
1982年Hopfield提出了著名的Hopfield网络。Hopfield是模拟人类记忆的循环神经网络模型,对神经网络的信息存储和提取进行非线性的数学描述。到1986年,Rumelhart和McCelland提出了BP神经网络,采用Sigmoid非线性结构函数(也叫S函数),并且系统地建立了多层感知器的BP学习算法,后来在1989年,三层或三层以上的BP网络从数学上也被证明了可以逼近任何封闭区间内的连续函数,这就是著名的万能逼近定理。
万能逼近定理是指一个前馈神经网络如果具有线性输出层和至少一层具有某种“挤压”性质的激活函数的隐藏层,例如Sigmoid激活函数,只要给予网络足够数量的隐藏单元,那么它就可以以任意精度来近似任何从一个有限维空间到另外一个有限维空间的Borel可测函数。简单来说,就是三层的BP网络,如果中间隐藏层足够宽,同时带上合适的激活函数,就可以让一个空间无限逼近另外一个空间的函数,当然,我们知道这只是理论上的。
1989年,LeCun在论文中提到的CNN BP训练方法,算是人工神经网络的第二次高潮。回顾人工神经网络的发展历程会发现,我们的前辈是非常聪明的,无论是BP算法还是CNN的提出,他们在几十年前就已经为我们打下了坚实的基础,而我们只是在做一些实现,实现他们当时不具备条件去验证以及大规模推广的理论,我们今天的进步都是站在他们的肩膀上取得的。
上个世纪末九十年代,人工神经网络又碰到了难题:基于Sigmoid激活函数深层人工神经网络在训练时会遇到梯度消失的问题。也就是说BP训练过程中传递的误差从后往前越来越小,误差传到浅层时几乎为零,很难进行更有效的学习训练,简单地说,就是网络深度无法再增加了,性能受限了。
同时,九十年代互联网的飞速发展吸引了绝大多数人的眼光,即使当时人工智能领域比如专家系统也取得了不小的进步,但是很少有人关注,这个时期算是人工神经网络的第二次低潮。当然人工神经网络的研究并没有停滞,而在这个时期,LSTM模型在1997年被提出,同时LeNet也在1998年被提出。
直到2006年,多伦多大学教授Geoffrey Hinton把单层受限玻尔兹曼机堆栈成了多层深度信念网络(Deep Belief Network,简称DBN),并且提出了无监督逐层贪婪预训练方法,再结合全局有监督BP算法进行微调,使得七层以上的神经网络训练得到收敛。Hinton让我们看到了深度学习的曙光,我们确实即将迎来了深度学习高速发展的时代。因此有人说2006年是深度学习元年,Hinton被人尊称为深度学习之父。
接下来几年深度学习一直在发展,比较重要的是2011年,大家用不连续可导的ReLU激活函数代替原来一直使用的连续可导激活函数,比如Sigmoid激活函数。ReLU的运用抑制了深层网络训练梯度消失的问题,让我们能够进一步加深网络。因此在2012年,Hinton的学生提出了AlexNet,第一次使用深度达到八层的CNN网络,并在当年的ImageNet图像识别大赛中取得冠军。
从2012年开始,接下来四年的图像识别大赛中算法的识别率越来越高,直到2015年的ResNet,它的识别率达到了96.43%,已经高于人眼识别率(大概是95%)。ImageNet图像识别大赛对深度学习算法的发展起了很大的推动作用,大赛期间伴随着人工神经网络的深度越来越深,网络结构越来越复杂,性能也越来越好。
在人工神经网络算法发展的过程中,还伴随着几个标志性事件的发生,也就是图上面的那些红点。比如1997年IBM深蓝计算机在国际象棋中打败了当时的世界冠军,取得了不小的轰动;而最引人注目的还是2016年,AlphaGo击败李世石,这场比赛的结果才算是真正点燃了大众对人工智能的关注,让大家把目光投向了人工智能领域,紧跟着就是资金和人才大量向人工智能领域汇集,为人工智能进一步发展开启了一个黄金时代。今年(2018)六月份,在DOTA 5V5游戏中,人工智能又胜过业余玩家,我想胜过职业玩家应该指日可待,在这个游戏中,人工智能已经开始表露出了配合、引诱甚至牺牲的策略,我相信这又将是人工智能发展的一个里程碑。
从以上的回顾中,我们能看到人工神经网络虽然几经沉浮,但是也取得了傲人的成绩,而且直到今天,在不同的应用领域中,深度学习算法还在继续前进,比如融合不同的网络以及一些传统算法来解决更多更高难度的任务。
但是我们也应该看到,现有的深度学习算法也有它固有缺陷。比如我们曾经想尽办法在宽度上拓展网络,取得了性能的提高,后来又想尽办法在深度上挖掘,取得了显著的性能提升,可是到了今天,我们发现,继续增加网络的深度和宽度,性能都不会再得到提高了。曾经最引人注目的图像识别领域,这几年的性能几乎没有提升,2015、2016以及2017年的误识率基本上都在3%左右。也许现在正是我们把目光投向人工神经网络以外的其他算法领域的时候了,比如神经动力学。
神经动力学其实比人工神经网络出现得更早。早在1907年就出现了神经元的行为学模型“LIF”模型;1952年又出现了神经元的仿生学模型“Hodgkin-Huxley”模型(简称HH模型);2003年出现了介于行为学模型和仿生学模型之间的“lzhikevich”模型。
神经动力学和人工神经网络都属于人工智能连接主义研究的范畴,但是它们的侧重点是不一样的,人工神经网络,比如DNN是借鉴大脑对信息分层处理的特性,在空间上模仿大脑;而神经动力学是既借鉴大脑神经元连接的空间特性,又借鉴神经元处理信息的时间动力学过程,具备了丰富的时空动力学特性。所以我们觉得它更接近真正的神经元模型,也更接近于大脑的构造和信息处理机制,很有可能成为通用人工智能的突破口,但是这些都是以算力为代价的。
上面的坐标图表示不同的神经动力学模型对算力的要求和仿生学程度。横坐标代表计算不同的神经动力学模型所要花费的算力代价,纵坐标是不同模型的仿生学程度,也就是生物可信度。从图上我们可以看到仿生学程度越高所要求的算力也就越高。
比如“HH”模型在计算中有大量的微分方程,因此需要发挥很大的算力,而现在的计算机是很难进行处理的;又比如“lzhikevich”模型,对算力的要求属于中等,但是也还是很高,所以它的应用范围也不广。
“LIF”模型的数学方程和前二者比起来就简单多了。通过LIF动力学以及其他的变体可以构建多种多样的神经网络模型,最有代表性神经网络模型有两个:非脉冲编码的连续LIF模型和基于脉冲编码的LIF模型,也就是脉冲神经网络SNN。由于SNN最简单,对算力要求也最低,因此也最为我们所熟知,很多时候SNN简直成了神经动力学网络的代名词。
从上面我们可以看到,神经动力学的发展是与算力息息相关的。为了神经动力学的发展,建立起既能高效支持人工神经网络算法,又能高效支持神经动力学算法的计算平台显得尤为重要。接下来我会分析一下现有的人工智能计算平台。
从图上可以看到,人工智能计算平台主要分为通用计算平台和专用神经网络计算平台。通用计算平台主要有CPU、GPU以及FPGA。
CPU包括Intel和ARM,Intel是CISC阵营,ARM是RISC阵营。Intel主要用于PC服务器领域,提供高性能计算;ARM主要是用于移动和嵌入式领域,最大的特点是低功耗。
GPU主要是NVIDIA和AMD。但是在AI服务器领域,NVIDIA对市场的占有率达到了70%,远远高于AMD30%的占有率,他们两家几乎占到了100%的市场。
FPGA主要包括Xilinx和Altera,而现在Altera已经被Intel收购,因此未来估计FPGA领域将是Xilinx一统江湖。
专用神经网络计算平台ASIC,根据对算法支持度的不同,ASIC又分为支持人工神经网络的深度学习加速器芯片以及支持神经动力学的神经形态芯片。
支持深度学习的芯片有很多家,比如Google,GraphCore,寒武纪,Wavecompting等公司。每一家都有自己的特色,性能上面各有千秋。
神经形态芯片从实现方式来看,分为数字芯片、模拟芯片和新材料芯片。数字芯片主要有TrueNorth、Loihi以及SpiNNaker;模拟芯片主要有Neurogrid、BrainScales以及ROLLS;新材料芯片主要有Memristor组成的阵列。神经形态芯片目前并没有商用化,还处于实验室验证阶段。
从上图能够看到,通用计算平台CPU、GPU或者FPGA基本都处于巨头垄断状态,每一个领域只有一个或两个霸主,地位完全无法撼动。而神经网络计算ASIC是群雄争霸,没有人能一统江湖,这或许是我们所有人的机会,就看大家有没有能力把握住。
接下来我会对刚才介绍中很有代表性的芯片进行分析,以了解这些芯片的特点。
首先是CPU。CPU平台是数字领域中的万能计算平台,除了能够实现神经网络的计算外,还能实现其他所有的通用计算和控制。这张图片显示的是Intel最新服务器CPU的Skylake架构。
Skylake是多核架构,采用2D Mesh片上网络实现多核调度和互联,每一个核都采用传统的结构,包含计算单元、控制单元等电路。芯片与外界的互联通过PCIE接口实现,同时具有Memory Controller外挂DDR。右边的雷达图是对CPU特点的概括,我会从五个方面来总结CPU以及后面其他计算平台的特性。
首先看一下算法支持度。这里的算法是指神经网络计算算法,也就是刚才说过的人工神经网络算法和神经动力学算法。CPU是万能计算平台,它能支持所有的神经网络算法,因此它的算法支持度得分是100分。
第二个是有效算力。有效算力是指能有效发挥在神经网络计算上的算力。通常我们会说一个芯片的峰值算力是多少tops,真正把神经网络放进去计算的时候,会发现也许只有10%-20%的算力能够发挥出来,其他的算力都是浪费的。当然,算力发挥不出来的原因,不仅是芯片的因素,还有其他的一些因素,很多时候是因为软件没有做相应的优化。而在这里,我们先把软件的因素排除掉,默认软件已经是最优化了,因此只看芯片能发挥的有效算力。CPU的有效算力得分比较低,只有40分。因为CPU主要是用于通用计算和复杂控制,而神经网络计算是由某些特定的,比如大量的并行卷积运算,CPU并没有针对它们进行优化,因此它的得分不高。
第三个是有效算力功耗比,指有效算力除以所消耗的功耗。这个功耗不只是芯片自身计算的功耗,还包括计算过程中用到的存储器,比如DDR的功耗,因为有很多芯片包括大多数神经网络加速器,不带DDR是无法工作的。由于CPU的有效算力比较低,而功耗比较高,再加上DDR的功耗,因此它的有效算力功耗比得分很低,只有20分。
第四个是有效算力成本比,指有效算力除以成本。同样的,这个成本不只是包括芯片本身的成本,还包括计算过程中用到的存储器成本,由于CPU有效算力比较低,而价格又比较贵,因此它的有效算力成本比得分只有30分。
最后是规模扩展性,指多个芯片扩展互连形成大规模算力的能力。这在大型神经网络计算或者多网络协同计算时非常重要。CPU的扩展互联是通过PCIE接口实现。其实凡是用PCIE接口通过总线实现扩展互联的芯片都有比较明显的缺点,第一个缺点是扩展互联的芯片数量是有限的,一般只能是几个芯片的扩展互联,如果通过树形的方式扩展互联就形成了第二个缺点,多个芯片扩展互联后算力发挥效率会急剧下降。
比如两个100T的芯片扩展互联后,也许只能发挥80%的效率,即160T的总算力,而且扩展互联芯片的数量越多,效率下降就越快。又比如,四个100T的芯片扩展互联,结果也许只能发挥60%的效率,也就是240T的总算力,因此CPU的规模扩展性只有50分。
接下来看看第二个计算平台——GPU。
GPU是最通用,也是我们最熟悉的神经网络计算平台。大多数人从一开始学习神经网络就是用GPU进行神经网络的训练和推理,而且现在市场上能买到的真正实用的并且效率比较高的神经网络计算平台也只有GPU。
这里分析的例子是NVIDIA最新GPU V100的架构。V100是众核架构,是由很多小核组成的芯片,芯片由Memory Control负责DDR的读写,GPU有两种接口实现片外互联,一种是PCIE,一种是NVLink。NVLink是NVIDIA专门开发的高速互连接口,目的就是为了得到更好的可扩展性。
GPU对人工神经网络算法的支持度比较高,但是对神经动力学的支持效率是比较低的,因此它的算法支持度是85分。
关于有效算力,V100的有效算力是非常高的,它的通用FP16算力有30tops。而Tensor FP16的算力达到了120tops,因此它的有效算力得分90分。
GPU的功耗很高,比如V100是300瓦,但是由于它的算力非常高,因此它的有效算力功耗比是70分。
由于GPU是很贵的,V100采用12nm工艺,面积达到了815平方毫米,成本相当高,因此它的有效算力成本比得分为30分。
GPU是通过PCIE和NVLink实现互联的,由于NVLink的接口能够很好的实现它们之间的互联,因此规模扩展性得分为80分。
FPGA是由大量的可编程逻辑阵列组成,用户可以根据需要灵活地对FPGA进行编程实现想要的功能。由Memory Controller负责读写外部存储器DDR,FPGA外部电路的通信是通过多种高速串行总线接口实现的。
因为是可编程逻辑阵列,所以具有非常好的灵活性,可以针对不同的算法做不同的设计,因此FPGA的算法支持度得分很高,几乎和CPU差不多,是95分。
对FPGA进行编程是比较难的,与对CPU进行编程的难度相比,不是一个等级上的。FPGA本身的计算速度可以做到很快,但是由于需要与外部DDR交换数据,限制了其算力发挥,因此FPGA的有效算力得分是60分。
关于有效算力功耗比,FPGA比GPU的功耗要低很多,再加上它的有效算力也能够做得比较高,因此FPGA的有效算力功耗比得分是70分。
但是FPGA的成本还是比较高,尤其在大规模应用的情况下,它的成本非常高,所以算力成本比只有50分。
FPGA的规模扩展能力比较强,可以通过多组高速接口互联,所以其规模扩展性能得分80分。
TPU是真正专门为了人工神经网络计算而打造的一款加速器芯片,它的架构是针对人工神经网络算法优化过的,芯片内部有大量并形的计算单元阵列,也有比较大的片内储存,还有Memory Controller负责读写外部存储器DDR,由PCIE实现芯片扩展互联。
TPU能高效的支持人工神经网络算法,但是对神经动力学算法的支持度比较低,所以其算法支持度得分80分。
TPU的算力比较高,对Tensor FP16,算力能达到45tops,在优化软件程序后,TPU算力效率能够发挥到60%多,因此其有效算力得分是70分。
TPU的功耗大约是130W,因此它的算力功耗比得分是60分。大家可以发现现在很多人工神经网络加速器的算力功耗比都不是很理想,大部分都低于GPU功耗比。
TPU的算力成本比得分是80分,因为它虽然只有45tops,但是它是在比较便宜的28纳米的工艺上实现的。
TPU扩展互联的接口还是PCIE,因此得分60分。
神经形态芯片,这里以IBM的TrueNorth为例。TrueNorth是众核架构,里面的每一个神经元阵列就是一个小核,所有的核都是存算一体,即工作时不需要外带DDR,每一个小核使用2D Mesh片上网络实现互联,片间互联是通过LVDS接口。
TrueNorth基本上只能支持神经动力学的SNN算法,对人工神经网络算法的支持度极低,所以算法支持度得分为30分。
而且TrueNorth算力也很低,只有58gops,与一般加速器常见的几十tops相比是非常低的,所以有效算力得分只有10分。
TrueNorth虽然算力很低,但是功耗也很低,100多毫瓦,因此它的有效算力功耗比有70分。
但是由于有效算力太低,而成本并不低,采用28nm工艺,面积达到了430多平方毫米,因此它的有效算力成本比只有10分。
TrueNorth采用的是2D Mesh片上网络,芯片与芯片之间可以通过LVDS串口直接互联,因此具有非常好的可扩展性,得分为90分,这也是TrueNorth最大的优势之一。
从这些数据可以看到,TrueNorth是一款有显著优缺点的芯片,包括存算一体、算力极低、算力功耗比高和可扩展性强的特点,这也是很多目前形态芯片的普遍现象,它们基本上都只能支持神经动力学算法,对更加流行更加成熟更加强大的人工神经网络算法比如CNN算法的支持度很低,因此这些神经形态芯片现在几乎没有办法商业化,处于实验室验证阶段。
分析了这么多的计算平台后,接下来看看人脑到底有哪些特点?
首先人脑是存算一体的,显而易见人脑的存储信息和处理信息是一起的。在刚才提到的各种计算平台中,无论是CPU、GPU、FPGA还是深度学习加速器,它们采用的都是存算分离的冯诺伊曼结构,因此在提高性能时有一个很大的瓶颈,就是存储带宽限制的问题。当然,神经形态芯片有的是存算分离,有的是存算一体,但是可惜的是,它们的算法支持度和算力都太低了。
人脑的第二个特点是具有极大的规模性,我们知道人脑是由上百亿个神经元细胞组成的,这些神经元细胞通过极其复杂的互联形成了一个规模巨大的有机系统,因此很多人认为要模拟真正的人脑,一定要达到某种规模才能看到类似人脑的效应,这也是TrueNorth一直追求大规模互联的原因。
人脑的第三个特点是具有一些比较明显的功能分区,比如视觉区、听觉区、情感区等,这些不同的功能分区有机的结合在一起,互相配合着完成大脑的活动。
第四个特点,人脑处理任务时具有极高的并行度,因为我们在任何时候都是在同时做多件事,比如一边走路一边唱着歌,眼睛还一边欣赏着美景等,人脑能够让它们互不干扰,完全并行。
第五个特点,人脑具有极低的功耗。虽然我们人脑能处理这么多复杂的任务,但是消耗的能量却是极低的,才20W左右。举个例子,刚才提到的GPU,实现一个单一的任务功耗就达到300W,或许同样单一的任务对于人类来说也只是轻松地瞟一眼。当然,人脑还有其他很多特点,比如计算的高容错性、不确定性等。我们正是受到人脑这些特点的启发,开发出类脑芯片Tianjic的。
Tianjic采用优化过的众核架构,由一系列核构成阵列完成神经网络的计算。为什么要使用优化过的众核架构呢?因为我们认为,在摩尔定律即将失效的今天,在现有的工艺基础上,从优化架构入手可能是提高芯片性能最重要的手段。
当然,局部电路的优化,比如优化某些乘加器,提高它们的工作频率也可以提高性能,又或者随着Package技术的进步,把加速器芯片和HBM封装在一个package里面,也是提高性能的手段,但是这些手段带来芯片性能的提升跟优化架构带来的性能提升相比是微不足道的。架构就像物种的基因,一颗小草尽管使劲地施肥,它也长不成一棵参天大树,无非是一颗比较高大肥壮的小草而已,因为这是基因决定的。
CPU和GPU每一次大的性能提升也都是从架构入手,用新的架构代替旧的架构。比如GPU是从Kepler架构到Pascal架构,再到现在V100的Volta架构,因此它的性能才提升到现在的高度。当然,这些都还是在传统的冯诺伊曼架构基础上的提升。
而Tianjic,由于每一个核都自带存储区,所有的计算数据都在本地操作,因此从芯片的层面看,Tianjic在总的架构上已经超越了传统的冯诺伊曼结构,所以Tianjic不像传统架构的芯片一样在计算的时候必须与DDR进行大量的数据交互而受存储带宽的限制,使整个芯片的性能受到影响。这是Tianjic芯片算力高的一个极其重要的原因。因为不用从外部导入数据,因此它的功耗比较低,也节省了成本和空间。
同时,我们每一个核里面都有一个通用处理器,也就是说核阵列包含由多个CPU组成的CPU阵列,因此具有极大的灵活性,能高效的支持各种神经网络算法。
Tianjic芯片采用的是2D Mesh片上网络结构,用于核与核之间的通信互联。芯片与外部的通信是通过高速串口实现的。
接下来我会讲一下Tianjic芯片的互连。
当我们想要扩展算力的时候,可以通过高速串口实现片间互联,而且可以从东南西北四个方向同时扩展,因为我们的串口带宽很高,能够保证计算过程中足够快的传输片间信息,因此从总体上看,所有的芯片都是无缝连接的,并且扩展互联不会降低算力的效率,也就是说有多少个Tianjic芯片互联就能得到多少倍单Tianjic芯片的算力。
这是Tianjic芯片架构相对于传统芯片架构又一极大的优势。这样就可以用Tianjic芯片组成一个具有极高算力和极大规模的芯片阵列,甚至可以尽可能接近人脑规模。
Tianjic的众核架构和2D Mesh片上网络相较于传统芯片架构还有一个极大的优势,就是多核重组特性。因为Tianjic芯片的核阵列中是众核平等的,核与核之间没有主从之分,当多Tianjic芯片组成芯片阵列时,阵列中芯片与芯片之间没有主从之分。因此,在用户眼里,整个芯片阵列就是一个巨大的核阵列,用户可以灵活的用软件来配置自己的任务,把不同的任务同时配置在不同的核组中,真正的实现多任务的并行处理,不管任务之间是有关联性还是没有关联性。这就很像人脑的行为,前面我们分析过,人脑不同的区域有不同的功能,并且能够高效并行的处理各种任务。
正是在大脑的启发下,我们设计的Tianjic芯片让我们看到了模拟人脑的希望,也看到了可能实现通用人工智能的希望。
我们给客户提供的是不仅仅是一块芯片,还包括一整套解决方案:最底层是Tianjic芯片,负责提供算力;在芯片的基础上,我们会提供给客户完备的工具链;我们会帮助客户把算法高效的在芯片上运行,也会对客户的应用提供最好的服务。
接下来我将对工具链算法和应用加以说明。
工具链是非常重要的,也是我们工作的重中之重。大家都知道GPU在AI领域拥有绝对的优势地位,它之所以这么强大,除了具有强劲的性能以外,还有它强大的工具链,因此我们一定会竭尽全力打造一款强大的全栈式工具链,给客户提供各种层次的开发工具。
例如,如果客户嫌麻烦,那就可以使用我们通用的API,客户只需要把通用的框架,比如TensorFlow或者Caffe训练出来的网络原封不动地交给我们的应用接口,我们的工具就会自动地完成编译、优化等一系列工作,让芯片能够发挥最佳的性能,以最快的速度完成客户的任务;如果客户想定制任务,我们也提供灵活的开发工具,客户可以根据自己的需求,灵活地开发优化自己的应用。总之我们提供给客户的一定是一款功能强大而又灵活易用的工作链。
灵汐科技有一支强有力的算法团队,既能跟踪国际最前沿的算法发展,又能优化客户最成熟的应用算法,并且对人工神经网络和神经动力学网络都有着非常深入的研究,可以保证类脑计算平台高效地支持各种网络。
应用方面,我们会和客户进行合作,帮助客户开发各种板卡、服务器之类的产品,支持客户边缘计算或者终端的各种应用,也希望以后在各行各业的智能化计算平台中都能看到Tianjic的身影。
灵汐科技的目标就是为各行各业的智能化提供高效稳定的计算平台,同时致力于降低用户使用算力的成本,助力客户的发展。
我们相信,我们的产品能够用在各个领域,比如数据中心、安防、智能医疗、自动驾驶等领域。
总之,我们希望Tianjic的高算力、低功耗、高扩展性和高并行度,能够为推动整个人工智能产业的发展贡献自己的力量。同时也希望有一天对人工智能的从业人员来说,不再像今天一样为了节省一点点算力,花很大的力气去做剪枝、优化之类,最后还得忍受网络性能的降低,这不应该成为AI领域工程师们的常态。
我们希望我们的产品能够给客户提供取之不尽用之不竭且便宜的算力,让工程师们能够很轻松就能实现最佳的性能。
Q&A环节
问题一
安绍岩-展讯通信-高级软件主管
1. 相比其它AI架构,类脑架构的优势、劣势对比,能否举出具体验证数据做对比。
2. 灵汐对于该类脑芯片后续技术演进的思考。
冯杰:1、主要优势有:一、算力高;二、功耗低;三、存算一体,不需要外挂DDR,节省成本功耗和空间;四、算法的支持度灵活,既能高效支持人工神经网络算法,又能高效支持SNN算法;五、扩展性好,能得到极大算力的芯片阵列,而且算力效率不会下降;六,支持多核重组特性,可以实现多任务并行处理。这些性能都会有具体的数据支持,会在公司产品发布时统一公布。
2、类脑芯片的发展取决于很多方面的因素,首先是算法的突破,类脑芯片要既高效支持人工神经网络算法,又高效支持SNN算法,而不能像现在这样,ANN算法发展很好,而SNN并没那么好。Tianjic之所以高效支持SNN,就是想给大家提供一个好的平台,供大家积累这方面的经验,希望能为SNN的突破出一份力;其次是材料、新器件、新工艺的突破,它们都会对类脑芯片的进步提供相当大的助力;最后是架构突破,由于新材料的突破需要比较长的时间,如何在现有的工艺基础上,挖掘出更好的性能是我们需要面对的现实问题,Tianjic芯片的架构已经做了突破,但我觉得还有性能提高的空间,我们会一直走在突破的路上。
问题二
翟云-北京君正-部门总监
1.Tianjic既然定位于类脑计算,为何还要支持CNN、LSTM等现有流行算法?
2.脉冲神经网络如何训练,在什么FrameWork下训练?相比现在主流的CNN、LSTM的精度如何
冯杰:1、Tianjic作为一款类脑芯片,不应该对人工智能算法有区别对待,而应该同时能高效支持CNN和SNN等所有的神经网络算法。我们从大脑的机制中尽量吸取了更多的优势,比如存算一体、高扩展性等。我们希望Tianjic芯片组成的阵列有一天能真正地接近大脑的规模,并且模拟大脑的特性。
2、SNN是比较难训练的。现在一般采取的是三种训练方法,分别是无监督学习规则、ANN间接学习算法以及BP有监督直接学习算法,对SNN来说,最常见的是用无监督学习算法的训练,这个算法描述起来挺简单的,如果前继神经元发放,当天神经元也跟着发放,那么两个神经元之间的突触强度就会增加;如果当前神经元发放后前继神经元才发放,那么突触强度就会减弱。无监督学习算法是目前在生活中得到验证且比较有效的训练方法,但是因为无监督学习算法的训练,有时候并不是真正的work,所以现在很多SNN的训练还是借鉴ANN的训练方法实现。
问题三
姜爱鹏-南京华捷艾米-芯片设计总监
1.RISC-V 的热度最近逐渐升高,RISC-V生态链的完善,对AI芯片是否会有促进作用,会体现在哪些方面?
2. 对应于边缘计算的应用场景,或者对于推理的应用场景,是否有比较好的AI芯片架构可参考?
3.对于降低AI芯片的运算功耗,或者说提高能效比,有哪些好的建议?或者说有设计规则需要遵守?
冯杰:1、RISC-V生态链的完善对AI芯片有极大的促进作用,我认为很多AI芯片都有用到RISC-V的机会,之所以现在还有很多人有顾虑,就是因为RISC-V的生态链不够完善,导致很多人担心未来是否还会发展的问题。其实这也不只是AI领域的人会有这种顾虑,其他领域的人肯定也有类似的顾虑。因此,如果生态链完善了,不仅对AI芯片有极大的促进作用,还会对其他很多行业有很大的促进作用。
2、AI芯片有各种各样的架构,每个架构都有自己的特点,关键是取决于应用场景,比如Tianjic,最大的优点是高算力、低功耗、高扩展性以及高并行度,如果应用场景需要这些特点,那么Tianjic就是很好的AI芯片。
3、首先,在IC设计中有一系列降低功耗的手段;其次,功耗与芯片的架构有极大的关系,比如Tianjic的存算一体,所有的数据都在本地操作,这样带来的功耗损失就变少了,又比如,有的芯片虽然算力还不错,但是真正把网络运行起来能发挥的效率并不高,这种情况下,它的功耗是很高的。最后,功耗还跟算法有关,如何把硬件的算力发挥出来,很多时候是需要让算法和硬件进行匹配的,比如Tianjic,会在工具链中自动编译优化,把客户的网络以最高的效率映射到芯片中进行,省去客户对自己算法的优化过程,同时还节省了功耗。
问题四
孙中-西工大-SoC设计与验证研究生
类脑芯片设计的难点在哪? 在没有杀手级应用情况下,如何做验证?
冯杰:个人认为,在现有的工艺条件下,芯片的架构设计是最重要的,因为架构整个芯片的基因,决定了芯片的性能。至于杀手级应用也是由芯片的性能决定的,如果芯片性能高,使用灵活,能很好地支持现有的应用,那就可以验证芯片的性能了。至于是否能够胜任现有的或者将来的重量级应用,需要通过实际的案例来给出答案。
问题五
韩少锋-caveDSP-FAE
1. 经过灵汐的工具链映射编译之后,量化的位宽是8位还是16位的?典型网络的精度如何?相比浮点网络有多少损失?
2.是否支持4bit网络?是否支持4bit以下的网络,比如二值网络?
冯杰:1、Tianjic芯片支持FP16的数据类型,网络的精度由算法和客户提供的参数决定,我们编译器不会对客户的网络参数进行任何的修改,我们希望提供给客户足够的算力,保持客户原始的参数,当然也会保持网络原始的精度,而不会做任何修改。
2、Tianjic芯片能够高效的支持是FP16、int8、三值和二值网络,同时我们不会对网络参数进行修改。
问题六
梁伟强-上海高清-芯片研发经理
类脑芯片的架构是模仿人的大脑设计出来的吗?和常规的神经网络有什么本质区别?
冯杰:类脑芯片架构是受大脑的启发设计出来的,它能高效支持人工神经网络和神经动力学网络等各种神经网络算法,所以从芯片运行的角度看,我们认为应用在不同的神经网络下是没有什么不同的。
问题七
李文昌-深度科技-行业总监
1.相关场景的应用开发者或公司多么,需要哪些知识储备?
2.商业模式会有创新么?
冯杰:1、芯片的应用取决于应用场景,很多人工智能的应用我们都支持,Tianjic能高效支持ANN和SNN。现在已经有挺多的公司在跟我们洽谈中。除了必备的应用相关知识以外,并不需要其他专门的知识储备,我们的工具链会提供强大而易用的工具给客户。
2、关于创新,创新是灵汐科技的灵魂,不管是技术还是商业模式上我们都一直在创新。当然,我主要关注技术的创新,而商业的创新主要是由我的同事梅迪来负责,如果有这方面的问题,你可以询问他,我们会有后期的商务活动,比如10月23号在北京的安博会上,我们会有相关产品的展览,希望大家到时候多多支持。
问题八
刘发强-清华大学-类脑计算研究中心博士生
类脑芯片的神经元是不是必须用模拟电路实现才可以更好地发挥出其功耗优势?
冯杰:神经元可以通过多种方式实现,包括模拟电路、数字电路以及新材料等都可以实现,至于哪种方式更省功耗,则需要跟实际应用相结合,从系统的角度来分析每一个具体的任务需要花费的算力,才能确定消耗的功耗,而不能一句话去敲定哪一种是最省功耗的方式。
问题九
何军-上海高性能集成电路设计中心-高级工程师
虽然都是AI芯片,但是类脑芯片与基于深度学习的芯片有较大不同,能否比较一下,包括适合的应用、通用性、功耗和未来的发展方向等?
冯杰:Tianjic跟传统的AI芯片从架构上来讲确实有很大的不同,由于Tianjic既高效支持深度学习算法,又高效支持SNN算法,因此能应用在现有的各个AI领域,而且功耗比较低,算力功耗比高,对于这些特点具体的值,我们以后会统一公布。我们对类脑芯片的发展很看好,关于神经动力学算法的短腿也一定会补起来的。以前我们主要是缺乏高效运行的SNN硬件平台,并且已有的平台比如TrueNorth是不对中国人开放的,我们的平台推出了以后,相信会为SNN的发展做出贡献,为整个人工智能的发展做出贡献,也为国内想从事SNN研究的朋友提供更大的便利,谢谢。
问题十
贾晓云-中科院微电子所-助理研究员
国内人工智能芯片企业与国外巨头竞争力如何?
冯杰:可以看到近几年来,国内诞生了很多人工智能芯片企业,并且发展的速度很快,势头也很好。但是目前来看,国际巨头的产品还是处在领先地位,我们还需要继续努力,不过我们有信心,这也是灵汐科技进入这个领域的原因,我们会脚踏实地地往前走,希望能够超越国际巨头,谢谢。
问题十一
梁龙飞-上海新氦类脑智能科技-副总经理
类脑芯片产业发展目前最大的瓶颈在哪里?
冯杰:从国内的情况来看,整个人工智能的发展包括类脑芯片的产业发展是比较分散的,如果能够把所有的力量都集中起来,相信能够很快的发展,人工智能芯片国内外的起跑线差不多,相信一起共同努力是不会落后于国外多少的,尤其是ASIC芯片。
问题十二
李海东-广智微芯-IC工程师
Tianjic基于SNN,在single chip和chip array上,有哪些商业化的应用?
冯杰:Tianjic不是基于SNN的,而是基于众核架构的类脑芯片,我们对ANN、SNN都有很好的支持,所以无论是Single Chip还是Chip Array都取决于客户的实际要求,单芯片的算力比较大,组成Chip Array当然就更大,如果客户需要用到这么大的算力,自然是可以去扩展的,但是如果用不着的话,也就没必要去拓展,主要取决于实际的商业需求。
课件下载
第一讲,联发科计算与人工智能本部总监张家源主讲,主题为《如何基于 NeuroPilot平台打造手机AI》
第二讲,深思考人工智能CEO杨志明主讲,主题为《医疗影像专用AI处理器的机遇与挑战》
第三讲,触景无限CEO肖洪波主讲,主题为《玩转模块化AI 让智能更简单》
第四讲,灵汐科技首席架构师冯杰主讲,主题为《类脑芯片的架构演进》
第五讲,华登国际合伙人王林主讲,主题为《浅谈AI带来的集成电路领域创新与投资机会》
第六讲,澎峰科技联合创始人赵华龙主讲,主题为《如何从0到1搭建RISC-V处理器》
关注智东西公开课服务号,回复关键词“课件”获取AI芯片系列课课件
新课预告
继AI芯片系列课之后8月7日起,自动驾驶系列课第三季重磅上线了!这次我们邀请到了青飞智能、中创博远、易成自动驾驶、酷哇、西井科技、深兰科技、北科天绘、腾讯8位创始人和技术大牛,深度解析限定场景自动驾驶商用车落地案例。名额有限,速速报名!
,