这是我几周前做的一个传统的90年代风格的性别识别神经网络的很好的隐藏节点。
一个简单的性别识别器网络中的90年代风格的隐藏节点图像
我的硕士项目是一种类似级联相关(cascadecorrelation)的神经网络Multi-rateOptimisingOrderStatisticEqualiser(MOOSE:多速率优化顺序统计均衡器),可用于日内的Bund(国库债券产品)交易。MOOSE曾经是为获取高速的LEO卫星信号(McCaw的Teledesic)而设计的一点成果,后来在从LIFFE迁移到DTB时将目标转向了Bund。作为一家投资银行的职业交易员,我可以购买很好的工具。我有那时候世界上最快的计算机:一个IBMMicroChanneldualPentiumPro200MHz处理器外加带有几MBRAM的SCSI。在1994年那会儿,将800,000个数据点输入到我的C++stream/dag处理器中看上去就像是黑魔法。有限差分方法让我可以做许多O(1)增量线性回归这样的运算,以获得1000倍的加速。那时候这看起来已经很好了。现在,你的手机都能嘲笑我的大方向。
那时候,在神经网络领域有很多研究。倒不是说它有过人的生产力,只是因为有用。读到LindsayFortado和RobinWigglesworth的FT文章《Machinelearningsettoshakeupequityhedgefunds》中EricSchmidt关于机器学习和交易的看法,还真有点让人高兴:
EricSchmidt是谷歌母公司Alphabet的执行董事长,他上周对一众对冲基金经理说他相信在50年内,所有交易都会有计算机解读数据和市场信号。
「我期待出现在交易方面做机器学习的创业公司,看看我描述的这种模式识别能否比数据分析专家的传统线性回归算法做得更好。」他补充说,「我这个行业内的许多人都认为这注定将成为一种新的交易形式。」
老朋友Eric,我在90年代早期就已经算是迟到了,你真是有点后知后觉。
好吧,现在情况已经不同了。我喜欢思考它,并喜欢将神经网络的这次新复兴称为感知时代(TheAgeofPerception)。这并不是智能,只是擅长模式而已。它仍然无力应对语言歧义。它还要一些时间才能理解基本的价值和概念,从而形成深刻的金融理解。
深度学习既被夸大了,也被低估了。这不是智能,但会有助于帮我们实现智能。一些人将其夸大为将会给我们带来替代人的类人机器的人工智能突破。我们仍然还受困于常识以及用于推理的简单文本中的歧义。我们还有很长的路要走。相对简单的规划算法和启发式方法以及基于神奇的深度学习的视觉、声音、文本、雷达等等的感知能力将会带来深刻的影响,就像是每个人和他们的狗现在理解的那样。所以我叫它「感知时代」。就好像是我们口袋里的超级计算机突然有了眼睛,并且快速适应了真实世界所带来的闪光性致盲。
深度学习将会带来巨大的影响,并且将会改变这颗行星上全人类的生活方式。但我们低估了其对我们的危险。不,我们不会和能激起或挑战我们最深刻的思想的深度图灵对话者约会——还不会。这将不可避免地到来,但在可见的未来里还不可见。借助语音、文本和Watson那样的数据库的智能代理可以实现非常先进的Eliza,但不会更先进了。自动化运输、食物生产、建筑、协助家事将会极大地改变人们的生活方式和不动产的价值。
除了这些泛泛之谈,本文的目的是收集一些关于芯片的思想见解——它们驱动着当前的神经网络革命。其中很多见解都不是最为激动人心的,但这对我来说是一个有用的锻炼。
神经网络硬件
与20年前相比,今天的神经处理方法并没有很大不同。深度更多的是一个品牌,而不是一项差异。激活函数已经得到了简化,以更好地适配硬件。主要的成功之处在于我们有了更多数据,对如何初始化权重、处理许多层、并行化和提升鲁棒性也有了更好的理解,其中要用到像是dropout这样的技术。1980年的Neocognitron架构与今天的深度学习器或CNN并没有显著差异,但YannLeCun让它具备了学习能力。
在90年代那会儿也有很多神经硬件平台,比如CNAPS(1990),它带有64个处理单元和256kB内存,可以在8/16位条件下达到1.6GCPS的速度(CPS是指每秒连接次数/connectionspersecond)或在1位条件下达到12.8GCPS的速度。你可以在《神经硬件概述(Overviewofneuralhardware)》[Heemskerk,1995,draft]中读到Synapse-1、CNAPS、SNAP、CNSConnectionistSupercomputer、HitachiWSI、My-Neupower、LNeuro1.0、UTAK1、GNU(通用神经单元/GeneralNeuralUnit)Implementation、UCL、Mantra1、Biologically-InspiredEmulator、INPGArchitecture、BACHUS和ZISC036。
阅读地址:https://pdfs.semanticscholar.org/5841/73aa4886f87da4501571957c2b14a8fb9069.pdf
好吧,东西还真多,但实际上还排除了软件和加速器板/CPU组合,比如ANZAplus、SAICSIGMA-1、NT6000、Balboa860协处理器、Ni1000识别加速器硬件(英特尔)、IBMNEP、NBC、NeuroTurboI、NeuroTurboII、WISARD、MarkII&IV、Sandy/8、GCN(索尼)、Topsi、BSP400(400微处理器)、DREAMMachine、RAP、COKOS、REMAP、通用并行神经计算机(GeneralPurposeParallelNeurocomputer)、TINETSIM和GeNet。另外还有一些模拟和混合模拟的实现,包括英特尔的电气式可训练模拟神经网络(801770NX)。你懂我要表达的意思了,那时候的东西还真是多。
这在1994年迎来了一次爆发:
乐观的摩尔定律告诉我们,TeraCPS即将实现:
「未来十年,微电子很可能将继续主导神经网络实现的领域。如果进展和过去进步得一样快,那就意味着神经计算机的性能将会增长大约2个数量级。因此,神经计算机将会接近TeraCPS(10^12CPS)的性能。由100万个节点(每个节点有大约1000个输入)组成的网络可以达到大脑的计算速度(100-1000Hz)。这将能为实验合理巨大的网络提供良好的机会。」
由于Minsky和Papert对隐藏层的不正确简单概括,打击了Rosenblatt的感知器梦想并最终导致了他不幸的死亡,神经网络研究遭遇了第一个冬天,研究资金被残酷地撤销了。1995年,又出现了另一次神经网络冬天,尽管那时候我其实并不知道。作为温水锅里的一只青蛙,我没有注意到正在加热。第二个冬天的主要原因是缺乏激动人心的进展,让人们普遍感到无聊了。
到了2012年,多亏了GeoffreyHinton的冬季生存技能,多伦多大学基于AlexNet开发的SuperVision在ImageNet处理上实现了极大的提升,第二个神经网络冬天也由此终结了。之后谷歌的LeNetInception模型在2014年打破了它的记录。所以据我估计,感知时代始于2012年。将它记在你的日历里面吧,五年已经过去了。
谷歌在几千台普通机器上进行了出色的并行CPU有损更新研究。吴恩达教授和他的朋友们让数十台GPU就能完成数千台CPU的工作,从而让规模化成为了可能。因此,我们从需要很好的资助的神经处理前景中解放了出来。好吧,或多或少吧,现在最先进的网络有时候需要数千台GPU或专用芯片。
更多数据和更多处理能力是其中的关键。让我们进入本文的重点,列出一些感知时代大数据之战中的一些关键平台:
英伟达的GPU
这一家是很难被战胜的。来自大型视频处理市场的收益驱动着巨大的规模经济。新款英伟达V100带有一种新的TensorCore架构,速度可达15TFlops(单精度/SP)或120TFlops(浮点精度,其中带有FP16的乘法和FP32的累加或加法,非常适合机器学习)。英伟达在它们的DGX-1中装入了8块计算卡,速度可达960TensorTFlops.
AMD的GPU
在机器学习领域,AMD一直是英伟达的追赶者。即将发布的AMDRadeonInstinctMI25有希望达到12.3TFlops(SP)或24.6TFlops(FP16)。如果你把英伟达的TensorCore也算进来,则AMD完全无力竞争。英伟达设备的带宽900GB/s也是AMD484GB/s的两倍。
谷歌的TPU
谷歌原来的TPU相比于GPU有很大的领先,并帮助DeepMind的AlphaGo赢得了与李世石的围棋大战。据描述,原来的700MHzTPU有95TFlops的8位计算能力或23TFlops的16位计算能力,同时功耗仅有40W。这可比当时的GPU快得多,但现在落后于英伟达的V100;但在单位功耗的计算能力上,TPU并没落后。据称新的TPU2是一款带有4块芯片的TPU设备,速度可达到180TFlops左右。每块芯片的性能都翻倍了,达到了45TFlops的16位计算能力。你可以看到与英伟达V100的差距正在变小。你没法买到TPU或TPU2。谷歌正在通过它们的云提供这些TPU服务,包含64台设备的TPUpod速度高达11.5PetaFlops。TPU2上巨大的散热片说明了一些原因,但市场正在发生变化——从单独的设备转向了设备的组合以及将这些组合以云的形式提供。
WaveComputing
Wave之父澳洲人CTOChrisNicol博士的成果斐然,领导开发了Wave的ComputeAppliance中的异步数据流处理器(asynchronousdataflowprocessor)。几年前,Metamako的创始人CharlesThomas在加州简单介绍了我和Chris认识。他们俩都曾在NICTA研究过无时钟异步。这两人都很出色。
我不确定Wave的设备最早是不是针对机器学习设计的,但在他们的3RUappliance上运行TensorFlow的速度可以达到2.9PetaOPS/s,这实在了不起。Wave将他们的处理器称为DPU,一个appliance有16个DPU。Wave使用了他们称之为粗粒度可重构阵列(CGRA:CoarseGrainedReconfigurableArray)的处理元素。我还不清楚2.9PetaOPS/s的速度对应多少位宽。根据他们的白皮书,其ALU可以执行1位、8位、16位和32位计算:
「算术单元是分区的。它们可以并行执行8位运算(完美适用于DNN推理)以及16位和32位运算(或以上的任何组合)。也可以执行一些64位运算,而且可以使用软件扩展到任意精度。」
关于其appliance中的16个DPU,还有一些额外的信息:
「WaveComputingDPU是一种包含了16384PE的SoC,它们被配置成了一个32×32集群的CGRA。它包含了4个HMC(HybridMemoryCube)第二代接口、一个PCIe第三代16通道接口和一个用于SoC资源管理的嵌入式32位RISC微控制器。这款WaveDPU可以在没有主机CPU时自动执行。」
对于TensoFlow指令:
「WaveDNNLibrary团队为TensorFlow等工作流程中所使用的常见DNN函数创建了预编译的可重新定位的kernel。它们可以被组合到Agent中并且可以被实例化成机器,以构建大型的张量数据流图和DNNkernel。」
「……一个可与TensorFlow、CNTK、Caffe和MXNet等机器学习工作流程交互的session管理器,可作为用于训练和推理的工作器过程(workerprocess)。这些工作流程可为工作器过程提供张量的数据流图。在运行时,Wave的session管理器会分析数据流图并将这些软件智能体放置到DPU芯片中,然后将它们连接起来以构建数据流图。这些软件智能体会被分配用于输入缓冲和本地存储的全局内存区域。CGRAkernel的静态本质和分布式的内存架构可以让一个性能模型准确估计智能体的延迟。session管理器可使用该性能模型来在智能体之间插入FIFO缓冲,这有助于DPU中通信和计算的重叠。这个可变智能体支持穿过整个图的数据流的软件流程,从而可以进一步增加并发性和性能。这个session管理器可以监控数据流图运行时的性能(通过监控卡顿、缓冲区下溢出和/或上溢出),并且可以动态地调节FIFO缓冲区的大小以实现吞吐量的最大化。在附加了DPU的处理器中,有一个分布式运行时管理系统会在运行时安装和卸载数据流图的一些部分,从而平衡计算和内存的使用量。这种在数据流计算机中的数据流图上的运行时重新配置还是有史以来第一次。」
是的,我也觉得非常酷。这个平台的惊人之处是它在架构方面比FPGA更加粗粒度,因此灵活性更低,但却很可能表现更好。非常有意思。
KnuEdge的KnuPath
在2016年6月时我在Twitter上谈过KnuPath。那以后他们的产品页面却失踪了。我不确定他们要把那1亿美元如何用到他们的MIMD架构上。那时候他们向我这样描述的:每个ASIC中有256个微型DSP(即tDSP)核以及一个ARM控制器,适用于35W包络中的稀疏矩阵处理。
它的性能未知,但他们把自己的芯片与一款当时的英伟达芯片进行了比较,那时候他们说实现了2.5倍的性能。我们知道英伟达现在凭借Tensor内核已经提速了十倍以上,所以KnuEdge还要努力才能跟上节奏。MIMD或DSP方法必须要得到非常好的效果才能在这一领域占据一席之地。时间会给我们答案。
英特尔的Nervana
NervanaSystems曾经除了开发他们的NervanaEngineASIC,还开发着一种GPU/软件方法,后来英特尔收购了这家公司。性能比较方面还不清楚。英特尔也在规划通过一个KnightsCrest项目将其集成到Phi平台中。NextPlatform认为其2017年在28nm节点上的目标是在某个位宽的运算速度达到55TOPS/s。英特尔还安排一个NervanaCon,将在12月份举办,所以那时候我们也许将能看到他们的第一批成果。
地平线机器人
这家中国创业公司正在研发一种大脑处理单元(BPU:BrainProcessingUnit)。余凯博士是正规军出身,他曾是百度深度学习研究院的负责人。今年早些时候,一段YouTube视频演示了基于Arria10FPGA的BPU仿真:https://youtu.be/GI9U9lUFaDo。目前关于这一平台的公开消息还很少。
Eyeriss
Eyeriss是MIT的一个项目,开发出了一款具有出色原始性能表现的64nmASIC。在AlexNet上,这款芯片的速度大约是英伟达TK1的一半。其优势在于借助于其行固定(rowstationary)方法,仅需要一个278mW的可重新配置加速器就能实现这样中规中矩的性能。赞。
Graphcore
去年Graphcore拿到了3000万美元的A轮融资,以开发他们的智能处理单元(IPU:IntelligenceProcessingUnit)。他们的网站还缺少细节,只是给出了一些亮眼的事实,比如多于14000个独立的处理器线程和大于100倍的内存带宽。根据NextPlatform报道的零星信息,其在一块芯片上具有多于1000个真实内核,并且采用了定制的互连方式。它的PCIe板具有一个16个处理器的元件。听起来似乎是数据流。抛开公关的言论,这个团队确实有很强的背景,而且投资者也不并不傻,所以就拭目以待吧。
Tenstorrent
Tenstorrent是加拿大多伦多的一家小创业公司,它宣称在深度学习的效率上实现了一个数量级的提升,和大多数公司一样,还没有什么公开的细节,但该公司入选了Cognitive300榜单。
Cerebras
Cerebras值得一提,因为它得到了Benchmark的支持,而且其创始人是SeaMicro的CEO。它似乎已经融资2500万美元了,而且仍然处于隐身模式。
Thinci
Thinci正在美国萨克拉门托开发视觉处理器,并且在印度也有员工。他们宣称即将推出他们的第一款硅芯片Thinci-tc500,而且已经开始进行标准评测和赢得客户了。但除了「一切都并行处理」之外,我们所知甚少。
Koniku
Koniku的网站正在倒计时,现在还有20几天。我已经等不及了。他们没有融到多少钱,而看过它们在福布斯上的这个视频之后(https://goo.gl/VA1PJx),你很可能也不得不相信他们,但你也无法预料究竟会如何。利用生物细胞肯定是不一样的。听起来就像是一个科研项目,但他们这样说:
「我们是一个企业。我们不是一个科研项目。」下周将在维也纳的PioneersFestival上发表演讲的Agabi这样说,「今天有些需求是硅所不能满足的,而我们可以通过我们的系统提供。」
Koniku提供的核心是所谓的神经元壳(neuron-shell),这家创业公司称其内部可以控制神经元彼此通信的方式,加上一种正在申请专利的电极,就可以在神经元上读写信息。所有这些都可以装在一个iPad大小的设备里,他们还希望能在2018年之前将其减小到一枚五美分硬币大小。
Adapteva
Adapteva是我最喜欢的一家小技术公司,正如你在之前文章《AdaptevatapesoutEpiphany-V:一款1024核64位RISC处理器》:https://goo.gl/6ZH7JP。去年年底时AndreasOlofsson拿出了他的1024核芯片,我们都等着看它的性能表现。Epiphany-V有用于深度学习的新指令,我们必须要看看这种带有64MB片上内存的更少内存控制器的设计是否具有合适的扩展能力。Andrea的设计和构建的出色效率可能能让我们真正负担得起这种芯片,所以让我们希望它有良好的表现吧。
Knowm
Known研究的是Anti-HebbianandHebbian(AHaH)可塑性和忆阻器。这里有篇覆盖这一主题的论文《AHaH计算:从MetastableSwitches到Attractors到机器学》:https://doi.org/10.1371/journal.pone.0085175。这对我来说有点太高级了。简单看了看,我看不出这项技术和胡言乱语的区别,但看起来确实科学味道十足。我需要亲眼看到才能相信。神经忆阻式处理器(neuromemristiveprocessor)的思想是很有趣的。我早上确实需要一个好的流行术语。
Mythic
Mythic的一款电池驱动的神经芯片具有低50倍的功耗。目前还看不到太多真正的细节。这款芯片大约纽扣大小,但大多数芯片不都这样吗?
「Mythic的平台能在纽扣大小的芯片上提供桌面GPU的性能。」
也许这又是一款适合无人机和手机的芯片,很可能被用在手机中,也可能被排除在外。
高通
手机显然是机器学习硬件的一大用武之地。我们希望能够识别狗的品种、花朵、树叶、癌症痣、翻译标识、理解口语等等。我们口袋里的超级计算机愿意用上它能得到的所有帮助,以便能迈入感知时代。高通一直以来都在鼓捣机器学习,推出了ZerothSDK和Snapdragon神经处理引擎(NPE)。这种NPE显然在高通所用的HexagonDSP上效果良好。
HexagonDSP已经远远不止是一个非常广泛的并行平台了,YannLeCun已经证实高通和Facebook正在合作开发一种更好的方法,参见Wired的文章《业界|谷歌TPU之后还有高通,人工智能芯片竞赛已经展开》:
「最近,高通已经开始制造执行神经网络的专用芯片,这条消息来自LeCun,因为Facebook正帮助高通开发机器学习相关技术,所以他对高通的计划很了解;高通技术副总裁JeffGehlhaar证实了这个项目,他说:『在原型设计和开发方面,我们还有很长的路要走。』」
也许我们很快就会看到KryoCPU、AdrenoGPU、HexagonDSP和HexagonVectorExtensions之外的其它东西。对于这一领域的创业公司来说,和高通的机器学习竞争将会艰难无比。
Pezy-SC和Pezy-SC2
这两者是Pezy开发的1024核和2048核处理器。Pezy-SC1024核芯片可以驱动2015年Green500超级计算机榜单的前三名的系统。Pezy-SC2是现在已经开始提供的后续芯片,我在6月份也做过关于它的演讲,但相关细节还很少,不过仍然很吸引人:
「PEZY-SC2HPCBrick:单个机箱中有32个带有64GBDDR4DIMM(2.1PetaFLOPS(DP))的Pezy-SC2模块卡,速度可达6.4Tb/s.」
不知道2048个MIMDMIPSWarrior64位核的机器能做到什么?在6月份的2017年Green500榜单中,一个英伟达P100系统拿到了头把交椅,而排名第7的是一个Pezy-SC2系统。所以看起来这款芯片还活着,但相关细节却很少。MotoakiSaito(齊藤元章)当然值得一看。
Kalray
尽管做了很多承诺,但Kalray的芯片还没有超过256核,我在2015年的一篇文章就谈到:https://goo.gl/pxqn7Z。Kalray宣传自己的产品说是适合嵌入式自动驾驶汽车应用,但我觉得其目前产品架构的形式并不是一种完美的CNN平台。Kalray有一个KalrayNeuralNetwork(KaNN)软件包并且宣称有比GPU更好的效率,在芯片上能实现高达1TFlop/s的速度。
随着即将到来的产品更新,Kalray的神经网络财富可能还会提升,就在这个月Kalray完成了新一轮2600万美元的融资。他们新的Coolidge处理器预计将在2018年年中上市,它会带有80或160个核,另外还有80或160个为视觉和深度学习优化的协处理器。
这在他们的多于1000核的方法上有了很大的改变,而我认为这是最明智的。
IBMTrueNorth
TrueNorth是IBM的神经形态CMOSASIC,是与DARPA的StNAPSE项目一起开发的。
这是一种单个芯片设计上的多核处理器网络,具有4096个核,每个核模拟256个可编程的硅「神经元」,总共就超过了100万个神经元。另外,每个神经元还有256个可编程的「突触」,信号可以在这些突触之间传递。因此,可编程突触的总是超过了2.68亿(2^28)。在基本构建模块方面,它的晶体管数量为54亿。因为存储、计算和通信都是在这4096个神经突触核中各自处理的,所以TrueNorth避开了冯·诺依曼架构的瓶颈,而且能效非常高,功耗为70mW,大约是传统微处理器的功率密度的万分之一(来自维基百科)。
IBM之前还在批评脉冲神经网络(spikingneuralnetwork)无法适配深度学习,现在IBM开发了一种在TureNorth上运行CNN的新算法。
这些神经元不会在每个周期内都放电,脉冲神经网络中的神经元必须逐渐积累它们的电势,然后才能放电……深度学习专家普遍认为脉冲神经网络在深度学习上没有效率——至少和卷积神经网络比起来是这样。Facebook人工智能研究院主任和深度学习先驱YannLeCun曾经批评过IBM的TureNorth芯片,因为它主要支持脉冲神经网络……
……这种神经形态芯片不会太激动人心,因为它们注重的脉冲神经网络在深度学习领域并不受欢迎。
为了让TrueNorth芯片很好地契合深度学习,IBM不得不开发了一种新算法,让卷积神经网络可以在这款神经形态计算硬件上很好地运行。这种组合方法实现了IBM所谓的「接近当前最佳」的分类准确度,实验涉及了视觉和语音挑战赛方面的8个数据集。在最好的情况下,它们的准确度达到了65%到97%。
当只使用一块TrueNorth芯片时,它只在这8个数据集中的1个数据集上超越了当前最佳的准确度。但如果使用多达8块芯片,IBM的研究者可以极大提升这款硬件在深度学习挑战上的准确度。这使TureNorth可以在其中3个数据集上媲美或超越当前最佳的准确度。
这个TureNorth测试也做到了每秒处理1200到2600视频帧。这意味着单个TureNorth芯片就能实时检测来自多达100个同时工作的相机的数据的模式……(来自IEEESpectrum)
TrueNorth的功率效率非常出色,所以非常值得考虑。
Brainchip的脉冲神经元自适应处理器(SNAP:SpikingNeuronAdaptiveProcessor)
SNAP不能做深度学习,这只是一个源于好奇心的项目,还没有实际落地成CNN工程解决方案,至少现在还没有。如果你想探索这条路,IBM的随机相变神经元(stochasticphase-changeneurons)似乎更有意思。
苹果的神经引擎(NeuralEngine)
到底会不会有?彭博社报道称这会是一款次级处理器,但没有什么细节信息。对苹果来说,这不仅是一个重要领域,而且也有助于与高通的竞争。
其它
1.寒武纪(Cambricon)——中国科学院在芯片上投入的140万美元。它是一个用于神经网络的指令集架构,具有数据级的并行、自定义向量/矩阵指令、片上scratchpadmemory。宣称速度是x86CPU的91倍,是K40M的3倍,且峰值功率仅有1%,即1.695W。参阅这两篇论文:
Cambricon-X:一个用于稀疏神经网络的加速器:
http://cslt.riit.tsinghua.edu.cn/mediawiki/images/f/f1/Cambricon-X.pdf
Cambricon:一个用于神经网络的指令集架构s:http://dl.acm.org/citation.cfm?id=3001179
2.前谷歌员工创立的GroqInc.,也许是另一种TPU?
3.Aimotive:https://aimotive.com/
4.DeepVision正在开发用于深度学习的低功耗芯片,也许这两篇创始人的论文能提供一点线索:
ConvolutionEngine:BalancingEfficiency&FlexibilityinSpecializedComputing[2013]:http://csl.stanford.edu/~christos/publications/2013.convolution.isca.pdf
ConvolutionEngine:BalancingEfficiencyandFlexibilityinSpecializedComputing[2015]:http://csl.stanford.edu/~christos/publications/2015.convolution_engine.cacm.pdf
5.DeepScale
6.ReducedEnergyMicrosystems正在开发用于CNN推理的低功耗异步芯片。据TechCrunch报道,REM是YCombinator第一个ASIC领域的风险投资。
7.Leapmind也很忙。
FPGA
微软已经站队FPGA了。Wired这篇文章说得很好:《深度|《连线》长文揭秘微软ProjectCatapult:人工智能时代押注FPGA》。
「Bing占据着世界上20%的桌面搜索市场和6%的移动手机市场,在Bing上,这个芯片能帮助Bing适应新品种的人工智能:深度神经网络。」
我对这种方法也有些兴趣。赛灵思和英特尔(收购了Altera)的FPGA是很强大的引擎。赛灵思自然宣称他们的FPGA是对INT8最好的,他们的一份白皮书里面包含了下面的幻灯片:
这两家供应商都很支持使用他们的FPGA做机器学习:
Xilinx–AccelerationZone:https://goo.gl/KheG5W
IntelFPGAOpenCL(https://goo.gl/S62fMA)和Solutions(https://goo.gl/zkYyXB)
尽管FPGA单位功耗的性能是很出色的,但这些供应商的更大型的芯片的售价却长时间以来都高得吓人。赛灵思的VU9P在Avnet上的售价超过5万美元。
寻找价格和能力之间的平衡点是FPGA的主要难题。
FPGA方法的一大优势是可以用来制定一些非常出色的架构决策。比如如果因为HBM,你想在板上DRAM压缩并且实时地解压,然后希望借此改善你的内存的浮点数据流,如果你足够努力,你能找到解决方案。参阅《用于基于FGPA的高性能计算的浮点数值数据流的带宽压缩(BandwidthCompressionofFloating-PointNumericalDataStreamsforFPGA-BasedHigh-PerformanceComputing)》:http://dl.acm.org/citation.cfm?id=3053688。
这种动态的架构敏捷性(architecturalagility)很困难,几乎无法用其它任何方法实现。
架构选择太多可能也是一个问题,但我自己还是挺喜欢这个问题的。这篇论文很不错《使用TILT减少SoftScalarCPU和定制硬件之间的性能差距(ReducingthePerformanceGapbetweenSoftScalarCPUsandCustomHardwarewithTILT)》:http://dl.acm.org/citation.cfm?id=3079757,其中研究了定制硬件和FPGA处理器(带有基于FPGA的水平微编码的计算引擎)的性能差距,这让人想起了古老的DISC和很多个月前的离散指令集计算机(discreteinstructionsetcomputer)。
谁是赢家?
在这样的竞争中,预测谁是赢家是傻瓜的举动。高通凭借其手机市场的主导地位,可以轻松进入赢家榜单。苹果不管做什么都会成功的。英伟达的V100有Tensor单元,也基本上赢了。我不确定我能否看到谷歌的TPU在无休止的长期硅谷竞赛中幸存下来,尽管目前它的性能很出色。我很喜欢FPGA方法,但我也不禁想他们应该以远远更低的价格发布DNN版本,这样才不会被大众漠视。英特尔和AMD会做自己的协处理器。因为所有主要玩家都参战了,所以其中很多都会支持标准的工具包,比如TensorFlow,这样我们就不必太在意规格了,关心基准就可以了。
在更小型的玩家中,我很喜欢而且支持的是Adapteva方法,我认为他们的内存架构可能并不适合DNN。我希望我错了。
WaveComputing可能是我继FPGA之后最喜欢的方法。他们的整个异步数据流方法是非常棒的。REM似乎也在做类似的事情;但我认为他们可能太迟了。WaveComputing能否在面对所有竞争对手时继续保持领先吗?也许只要他们的异步CGRA有一个本质优势,就可以。尽管我不确定他们是否只要DNN上的成功,因为他们的技术有更加广泛的应用能力。
神经形态脉冲处理器也许现在暂时可以忽略,但也可以保持关注,因为它们有很大的功耗优势。量子计算反正会让所有这些都稍逊风骚。IBM的TrueNorth可能会是个例外,因为它不仅能执行脉冲网络,还能有效地运行。
精彩评论