在过去的2016年,在计算机产业来说,相信没有一个概念比人工智能更热门。跨入2017年,专家们表示,人工智能生态圈的需求增长会更加迅猛。主要集中在为深度神经网络找寻性能和效率更适合的“引擎”。
现在的深度学习系统依赖于软件定义网络和大数据学习产生的超大型运算能力,并靠此来实现目标。但很遗憾的是,这类型的运算配置是很难嵌入到那些运算能力、存储大小、和带宽都有限制的系统中(例如汽车、无人机和物联网设备)。
这就给业界提出了一个新的挑战,如何通过创新,把深度神经网络的运算能力嵌入到终端设备中去。
Movidius公司的CEO Remi El-Ouazzane在几个月前说过,将人工智能摆在网络的边缘将会是一个大趋势。
Remi El-Ouazzane
在问到为什么人工智能会被“赶”到网络边缘的时候,CEA Architecture Fellow Marc Duranton给出了三个原因:分别是安全、隐私和经济。他认为这三点是驱动业界在终端处理数据的重要因素。他指出,未来将会衍生更多“将数据转化为信息”的需求。并且这些数据越早处理越好,他补充说。
CEA Architecture Fellow Marc Duranton
摄像一下,假如你的无人驾驶汽车是安全的,那么这些无人驾驶功能就不需要长时间依赖于联盟处理;假设老人在家里跌倒了,那么这种情况当场就应该检测到并判断出来。考虑到隐私原因,这些是非常重要的,Duranton强调。
但这并不意味着收集家里十个摄像头的所有图片,并传送给我,就称作一个号的提醒。这也并不能降低“能耗、成本和数据大小”,Duranton补充说。
竞赛正式开启
从现在的情景看来,芯片供应商已经意识到推理机的增长需求。包括Movidus (Myriad 2), Mobileye (EyeQ 4 & 5) 和Nvidia (Drive PX)在内的众多半导体公司正在角逐低功耗、高性能的硬件加速器。帮助开发者更好的在嵌入式系统中执行“学习”。
从这些厂商的动作和SoC的发展方向看来,在后智能手机时代,推理机已经逐渐成为半导体厂商追逐的下一个目标市场。
在今年早些时候,Google的TPU横空出世,昭示着业界意图在机器学习芯片中推动创新的的意图。在发布这个芯片的时候,搜索巨人表示,TPU每瓦性能较之传统的FPGA和GPU将会高一个数量级。Google还表示,这个加速器还被应用到了今年年初风靡全球的AlphaGo系统里面。
但是从发布到现在,Google也从未披露过TPU的具体细节,更别说把这个产品对外出售。
很多SoC从业者从谷歌的TPU中得出了一个结论,他们认为,机器学习需要定制化的架构。但在他们针对机器学习做芯片设计的时候,他们又会对芯片的架构感到怀疑和好奇。同时他们想知道业界是否已经有了一种衡量不同形态下深度神经网络(DNN)性能的工具。
工具已经到来
CEA声称,他们已经为帮推理机探索不同的硬件架构做好了准备,他们已经开发出了一个叫做N2D2,的软件架构。他们够帮助设计者探索和声称DNN架构。“我们开发这个工具的目的是为了帮助DNN选择适合的硬件”,Duranton说。到2017年第一季度,这个N2D2会开源。Duranton承诺。
N2D2的特点在于不仅仅是在识别精度的基础上对比硬件,它还能从处理时间、硬件成本和能源损耗的多个方面执行对比。因为针对不同的深度学习应用,其所需求的硬件配置参数都是不一样的,所以说以上几点才是最重要的,Duranton表示。
N2D2的工作原理
N2D2为现存的CPU、GPU和FPGA提供了一个参考标准。
边缘计算的障碍
作为一个资深的研究组织,CEA已经在如何把DNN完美的推广到边缘计算领域进行了长时间的深入研究。在问到执行这种推进的障碍时,Duranton指出,由于功耗、尺寸和延迟的限制,这些“浮点”服务器方案不能应用。这就是最大的障碍。而其他的障碍包括了“大量的Mac、带宽和芯片上存储的尺寸”,Duranton补充说。
那就是说如何整合这种“浮点”方式,是最先应该被解决的问题。
Duranton认为,一些新的架构是在所难免的,随之而来的一些类似“spike code”的新coding也是必然的。
经过CEA的研究指出,甚至二进制编码都不是必须的。他们认为类似spike coding这类的时间编码在边缘能够迸发出更强大的能量。
Spike coding之所以受欢迎,是因为它能明确展示神经系统内的数据解码。往深里讲,就是说这些基于事件的的编码能够兼容专用的传感器和预处理。
这种和神经系统极度相似的编码方式使得混合模拟和数字信号更容易实现,这也能够帮助研究者打造低功耗的硬件加速器。
CEA也正在思考把神经网络架构调整到边缘计算的潜在可能。Duranton指出,现在人们正在推动使用‘SqueezeNet取替AlexNet。据报道,为达到同等精度,使用前者比后者少花50倍的参数。这类的简单配置对于边缘计算、拓扑学和降低Mac的数量来说,都是很重要的。
Duranton认为,从经典的DNN转向嵌入式网络是一种自发的行为。
P-Neuro,一个临时的芯片
CEA的野心是去开发一个神经形态的电路。研究机构认为,在深度学习中,这样的一个芯片是推动把数据提取放在传感器端的一个有效补充。
但在达到这个目标之前,CEA相处了很多权宜之计。例如开发出D2N2这样的工具,帮助芯片开发者开发出高TOPS的DNN解决方案。
而对于那些想把DNN转移到边缘计算的玩家来说,他们也有相对应的硬件去实现。这就是CEA提供的低功耗可编程加速器——P-Neuro。现行的P-Neuro芯片是基于FPGA开发的。但Duranton表示,他们已经把这个FPAG变成了一个ASIC。
和嵌入式CPU对比的P-Neuro demo
在CEA的实验室,Duranton他们已经在这个基于FPAG的P-Neuro搭建了一个面部识别的卷积神经网络(CNN)。这个基于 P-Neuro的Demo和嵌入式CPU做了对比。(树莓派、带有三星Exynos处理器的安卓设备)。他们同样都运行相同的CNN应用。他们都安排去从18000个图片的数据库中去执行“人脸特征提取”。
根据示例展示,P-Neuro的速度是6942张图片每秒,而功耗也只是2776张图每瓦。
P-Neuro和GPU、CPU的对比
如图所示,和Tegra K1相比,基于FPGA的P-Neuro在100Mhz工作频率的时候,工作更快,且功耗更低。
P-Neuro是基于集群的SIMD架构打造,这个架构是以优化的分级存储器体系和内部连接被大家熟知的。
P-Neuro的框图
对于CEA的研究者来说 ,P-Neuro 只是一个短期方案。现行的 P-Neuro 是在一个CMOS设备上打造的,使用的是二进制编码。他们团队正在打造一个全CMOS方案,并打算用spike coding。
为了充分利用先进设备的优势,并且打破密度和功率的问题,他们团队设立了一个更高的目标。他们考虑过把RRAM当做突触元素,还考虑过FDSOI和纳米线这样的制程。
在一个“EU Horizon 2020”的计划里面,他们希望做出一个神经形态架构的芯片,能够支持最先进的机器学习。同时还是一个基于spike的学习机制。
这就是一个叫做NeuRAM3的项目。届时,他们的芯片会拥有超低功耗、尺寸和高度可配置的神经架构。他们的目标是较之传统方案,打造一个能将功耗降低50倍的产品。
Neuromorphic处理器
Neuromorphic处理器的基本参数
据介绍,这个方案包含了基于FD-SOI工艺的整体集成的3D技术,另外还用到的RRAM来做突触元素。在NeuRAM3项目之下,这个新型的混合信号多核神经形态芯片设备较之IBM的TrueNorth,能明显降低功耗。
与IBM的TrueNorth对比
而NeuRAM3项目的参与者包括了IMEC, IBM Zurich, ST Microelectronics, CNR (The National Research Council in Italy), IMSE (El Instituto de Microelectrónica de Sevilla in Spain), 苏黎世大学和德国的雅各布大学。
更多AI芯片角逐
其实AI芯片这个市场,已经吸引了很多玩家,无论是传统的半导体业者,还是所谓的初创企业,都开始投奔这个下一个金矿。除了上面说的CEA这个。我们不妨来看一下市场上还有哪些AI芯片。
一、传统厂商的跟进
(1)Nvidia
英伟达是GPU霸主,虽然错过了移动时代,但他们似乎在AI时代,重获荣光,从其过去一年内的股票走势,就可以看到市场对他们的信心。我们来看一下他有什么计划,在这个领域。
在今年四月,Nvidia发布了一个先进的机器学习芯片——Tesla P100 GPU。按照英伟达CEO黄仁勋所说,这个产品较之英伟达的前代产品,任务处理速度提高了12倍。这个耗费了20亿美元开发的芯片上面集成了1500亿个晶体管。
据介绍,全新的 NVIDIA Pascal? 架构让 Tesla P100 能够为 HPC 和超大规模工作负载提供超高的性能。凭借每秒超过 20 万亿次的 FP16 浮点运算性能,经过优化的 Pascal 为深度学习应用程序带来了令人兴奋的新可能。
而通过加入采用 HBM2 的 CoWoS(晶圆基底芯片)技术,Tesla P100 将计算和数据紧密集成在同一个程序包内,其内存性能是上一代解决方案的 3 倍以上。这让数据密集型应用程序的问题解决时间实现了跨时代的飞跃。
再者,因为搭载了 NVIDIA NVLink? 技术, Tesla P100的快速节点可以显著缩短为具备强扩展能力的应用程序提供解决方案的时间。采用 NVLink 技术的服务器节点可以 5 倍的 PCIe 带宽互联多达八个 Tesla P100。这种设计旨在帮助解决拥有极大计算需求的 HPC 和深度学习领域的全球超级重大挑战。
(2)Intel
在今年十一月。Intel公司发布了一个叫做Nervana的AI处理器,他们宣称会在明年年中测试这个原型。如果一切进展顺利,Nervana芯片的最终形态会在2017年底面世。这个芯片是基于Intel早前购买的一个叫做Nervana的公司。按照Intel的人所说,这家公司是地球上第一家专门为AI打造芯片的公司。
Intel公司披露了一些关于这个芯片的一些细节,按照他们所说,这个项目代码为“Lake Crest”,将会用到Nervana Engine 和Neon DNN相关软件。。这款芯片可以加速各类神经网络,例如谷歌TensorFlow框架。芯片由所谓的“处理集群”阵列构成,处理被称作“活动点”的简化数学运算。相对于浮点运算,这种方法所需的数据量更少,因此带来了10倍的性能提升。
Lake Crest利用私有的数据连接创造了规模更大、速度更快的集群,其拓扑结构为圆环形或其他形式。这帮助用户创造更大、更多元化的神经网络模型。这一数据连接中包含12个100Gbps的双向连接,其物理层基于28G的串并转换。
这一2.5D芯片搭载了32GB的HBM2内存,内存带宽为8Tbps。芯片中没有缓存,完全通过软件去管理片上存储。
英特尔并未透露这款产品的未来路线图,仅仅表示计划发布一个名为Knights Crest的版本。该版本将集成未来的至强处理器和Nervana加速处理器。预计这将会支持Nervana的集群。不过英特尔没有透露,这两大类型的芯片将如何以及何时实现整合。
至于整合的版本将会有更强的性能,同时更易于编程。目前基于图形处理芯片(GPU)的加速处理器使编程变得更复杂,因为开发者要维护单独的GPU和CPU内存。
据透露,到2020年,英特尔将推出芯片,使神经网络训练的性能提高100倍。一名分析师表示,这一目标“极为激进”。毫无疑问,英特尔将迅速把这一架构转向更先进的制造工艺,与已经采用14纳米或16纳米FinFET工艺的GPU展开竞争。
(3)IBM
百年巨人IBM,在很早以前就发布过wtson,现在他的人工智能机器早就投入了很多的研制和研发中去。而在去年,他也按捺不住,投入到类人脑芯片的研发,那就是TrueNorth。
TrueNorth是IBM参与DARPA的研究项目SyNapse的最新成果。SyNapse全称是Systems of Neuromorphic Adaptive Plastic Scalable Electronics(自适应可塑可伸缩电子神经系统,而SyNapse正好是突触的意思),其终极目标是开发出打破冯?诺依曼体系的硬件。
这种芯片把数字处理器当作神经元,把内存作为突触,跟传统冯诺依曼结构不一样,它的内存、CPU和通信部件是完全集成在一起。因此信息的处理完全在本地进行,而且由于本地处理的数据量并不大,传统计算机内存与CPU之间的瓶颈不复存在了。同时神经元之间可以方便快捷地相互沟通,只要接收到其他神经元发过来的脉冲(动作电位),这些神经元就会同时做动作。
2011年的时候,IBM首先推出了单核含256 个神经元,256×256 个突触和 256 个轴突的芯片原型。当时的原型已经可以处理像玩Pong游戏这样复杂的任务。不过相对来说还是比较简单,从规模上来说,这样的单核脑容量仅相当于虫脑的水平。
不过,经过3年的努力,IBM终于在复杂性和使用性方面取得了突破。4096个内核,100万个“神经元”、2.56亿个“突触”集成在直径只有几厘米的方寸(是2011年原型大小的1/16)之间,而且能耗只有不到70毫瓦,IBM的集成的确令人印象深刻。
这样的芯片能够做什么事情呢?IBM研究小组曾经利用做过DARPA 的NeoVision2 Tower数据集做过演示。它能够实时识别出用30帧每秒的正常速度拍摄自斯坦福大学胡佛塔的十字路口视频中的人、自行车、公交车、卡车等,准确率达到了80%。相比之下,一台笔记本编程完成同样的任务用时要慢100倍,能耗却是IBM芯片的1万倍。
跟传统计算机用FLOPS(每秒浮点运算次数)衡量计算能力一样,IBM使用SOP(每秒突触运算数)来衡量这种计算机的能力和能效。其完成460亿SOP所需的能耗仅为1瓦—正如文章开头所述,这样的能力一台超级计算机,但是一块小小的助听器电池即可驱动。
通信效率极高,从而大大降低能耗这是这款芯片最大的卖点。TrueNorth的每一内核均有256个神经元,每一个神经有分别都跟内外部的256个神经元连接。
(4)Google
其实在Google上面,我是很纠结的,这究竟是个新兴势力,还是传统公司。但考虑到Google已经那么多年了,我就把他放在传统里面吧。虽然传统也是很新的。而谷歌的人工智能相关芯片就是TPU。也就是Tensor Processing Unit。
TPU是专门为机器学习应用而设计的专用芯片。通过降低芯片的计算精度,减少实现每个计算操作所需的晶体管数量,从而能让芯片的每秒运行的操作个数更高,这样经过精细调优的机器学习模型就能在芯片上运行的更快,进而更快的让用户得到更智能的结果。Google将TPU加速器芯片嵌入电路板中,利用已有的硬盘PCI-E接口接入数据中心服务器中。
据Google 资深副总Urs Holzle 透露,当前Google TPU、GPU 并用,这种情况仍会维持一段时间,但也语带玄机表示,GPU 过于通用,Google 偏好专为机器学习设计的芯片。GPU 可执行绘图运算工作,用途多元;TPU 属于ASIC,也就是专为特定用途设计的特殊规格逻辑IC,由于只执行单一工作,速度更快,但缺点是成本较高。至于CPU,Holzle 表示,TPU 不会取代CPU,研发TPU 只是为了处理尚未解决的问题。但是他也指出,希望芯片市场能有更多竞争。
如果AI算法改变了(从逻辑上讲随着时间的推移算法应该会改变),你是不是想要一款可以重新编程的芯片,以适应这些改变?如果情况是这样的,另一种芯片适合,它就是FPGA(现场可编程门阵列)。FPGA可以编程,和ASIC不同。微软用一些FPGA芯片来增强必应搜索引擎的AI功能。我们很自然会问:为什么不使用FPGA呢?
评论
查看更多