首页 > 推荐 > 正文

英伟达“AI霸权”重压当前,看挑战者们如何一战?

2017-10-09 09:15:55  来源:DeepTech深科技

摘要:在 9 月底刚刚结束的 NVIDIA 北京 GTC(GPU 技术大会)上,黄仁勋发布了最新的 AI 深度学习方案布局,通过架构的改善,及新版开发工具的推出,除维持过去强势的学习性能外,更在推理效率超越了所有竞争对手,就连 Google 新推出不久的 TPU 2 0 也要甘拜下风。
关键词: 英伟达 AI
\

  在9月底刚刚结束的NVIDIA北京GTC(GPU技术大会)上,黄仁勋发布了最新的AI深度学习方案布局,通过架构的改善,及新版开发工具的推出,除维持过去强势的学习性能外,更在推理效率超越了所有竞争对手,就连Google新推出不久的TPU2.0也要甘拜下风。
 
  但作为深度学习的另一热门方案,也就是近来被视为GPU地位最大潜在挑战者的FPGA(现场可编程门阵列),是否就这样被NVIDIA的气势所压倒?那也未必。
 
  FPGA在应用上的弹性,以及本身具备的超低延迟特性,都让其在多家一线云端服务大厂的服务系统架构中占有一席之地,未来通过工艺的演进,以及算法的改良,都可再压榨出更大的潜能。
 
  相比之下,NVIDIA有强势的架构设计,其所发表的TensorRT更是把生态紧紧绑在自家GPGPU身上。然而,Intel的FPGA方案反而改走兼容大度的路线,买下Nervana之后,其开发工具不只可针对自家Altera的FPGA支持最优化,甚至也可同步支持GPU计算的开发。
 
  虽然从NVIDIA的角度来看,他们肯定不希望FPGA介入GPGPU的AI计算生态。但是从Intel的策略布局及一线云服务大厂的做法观察,考虑到未来计算内涵会越来越多元,若能结合多种计算架构,互相搭配,各自负担部分擅长的计算工作,并以统一的生态框架来避免开发上的问题,或许才是整个AI产业,或相关云服务厂商真正的长期发展目标。
 
  针对异军突起的FPGA解决方案,DT君日前分别对该领域最具代表性的三家厂商进行了系列专访,包括Intel人工智能事业部首席技术官Amir Khosrowshahi、深鉴科技CEO姚颂,以及台湾的Allone Solution公司创始人刘淑敏。以下是本次FPGA系列专访的重点内容:
 
  核心架构:Intel人工智能事业部首席技术官
       Amir Khosrowshahi
 
  Intel目前积极在全球布局其FPGA生态,10月3日在台北举办AIDay展示其技术研发结果,原本在Nervana工作的Amir Khosrowshahi,也随着Nervana被并购进入Intel,出任人工智能事业部(AIPG)副总裁兼CTO。会后DT君也对Amir进行了专访。
 
  针对Nervana目前的平台支持状况,Amir表示,Nervana的发展目标就是为了要解决问题,当初AI计算以CUDA领导的GPGPU生态为主,Nervana理所当然的把GPU计算与生态开发当成第一目标。但随着XeonPhi、FPGA等计算生态也逐渐成熟,Nervana把发展重心也逐渐转移到后者,但作为融合不同计算架构的接着剂,过去的技术积累不会轻易放弃,Nervana同样能支持各家最新的架构,包含NVIDIA的Volta,以及随着Volta发表的最新一代开发环境TensorRT的所有特性。
 
  当然,谈到NVIDA,Amir也表示其Volta架构所集成的TensorCore是个相当有趣的东西,但Amir也强调,Tensor Core的概念其实并不是很新奇的东西,作为辅助的向量加速计算架构,其实早在超级计算器CRAY当中出现,也不是NVIDIA才有集成这样的加速架构,未来Intel下一代XeonPhi产品,代号Knights Mill也将加入了针对向量计算加速的两大指令,也就是QFMA以及QVNNI,可大幅加速机器学习以及推理能力。
 
  而XeonPhi相较起GPU架构,具备更大的内存支持能力,其对于AI应用的计算效率表现理论上会更优秀,且可有效避免数据传输的瓶颈产生。
 
  Amir谈到Nervana Engine,也就是集成FPGA与HBM内存的高效能深度学习架构,特别强调FPGA是个延迟非常低的架构。由于集成庞大的片上内存,学习的数据与产生的模型可以放在本地端内存,不需要做额外的数据迁移动作,可大幅减少对总线带宽的消耗。
 
  但随着AI的发展,其实社会上也出现了不少针对AI应用的疑虑,虽然说开发者开发AI的原意都是为了要改善社会,不论是增加产能,或者是改善交通安全,但随之而来的各类型应用,让人类产生害怕被取代的声音。
 
  对于这个充满争议的问题,Amir对DT君表示,AI是中立的,为了建构AI所学习的数据也是中性的,理论上不存在偏差,而AI基本上都是针对性的应用,比如说飞机有飞机的AI,汽车有汽车的AI,这些个别AI都是设计来辅助人类,并没有一个AI取代所有应用的状况。当然,部份取代在所难免,但从过去技术的发展轨迹观察,当新的技术推出后取代了部份人类的工作,也会有相对应的工作机会产生,所以其实对AI产业还是可以保持审慎乐观的态度。
 
  有效减少神经网络核心复杂度:深鉴科技CEO姚颂
 
  深鉴科技是近期在人工智能领域迅速崛起的一家初创公司。深鉴提供的核心服务主要就是一套深度压缩(deep compression)算法,通过此算法,可降低在机器学习后最终产生模型的复杂度,结果就是更加快速的推理过程,以及更加精简的存储空间需求。
 
  姚颂也特别跟DT君仔细说明了这套算法的核心逻辑:由于机器学习过程中产生的数值表,其实大部份内容都会是零,透过深鉴发展出来的算法,可自动剔除这些只是用来填空用的数值,只保留有意义的部份。
 
  但姚颂也强调,由于这套算法非常严谨,为了避免误判,而剔除不该剔除的部份,使用这套算法通常会延长机器学习所需要的时间,旧版算法需要人工操作,确认应该剔除的部份,但随着版本的更新,目前多余数据的剔除已经可以作到完全自动化。虽然需要的计算时间因为计算复杂度的关系,并不会缩短,但自动化流程可减少人工干预,让人力可以用在更有意义的工作上。
 
  目前,深鉴也利用Xilinx的FPGA开发了自有的DPU方案Aristotle(亚里士多德),这个方案基于Zynq7020SoC架构,支持包含1x1、3x3的CNN(卷积神经网络)操作,这个架构主要针对视频、图像的识别,由于架构的可延伸性,此方案也常被应用于包含服务器或者是像无人机、汽车、安防监控、机器人等应用中。
 
  另外,Descartes(笛卡尔)方案则是针对语音识别的架构,与Aristotle不同的是,此为针对RNN(循环神经网络)技术,内置了神经网络压缩技术,可大幅加速语音识别的效率。深鉴科技目前正在与全球一线科技公司合作来推进这套方案的部署,同时,此方案目前也被其他国内厂商所采用。
 
  姚颂表示,由于深鉴的算法都是自主开发,虽然指令集与编译程序都属于非常成熟的阶段,但为简化开发复杂度,目前还是通过Xilinx的FPGA架构来构建方案。但将来也不排除开发”硬”化的DPU架构。
 
  而深鉴也在算法方面,为合作伙伴提供专业的技术协助。比如说合作伙伴之一联发科,目前在发展自有的汽车芯片,而在关键的图像辨识算法方面就在与深鉴科技进行合作,希望利用深鉴在算法方面的优势,大幅加速未来基于联发科汽车芯片的图像处理能力。
 
  另外,姚颂还表示,目前也在与合作厂商开发类似Kirin970的终端AI处理能力,这部份进度和细节目前还不方便透露,但预期计算水平将可和业界主流方案相提并论。
 
  边缘计算:致力改善AI传输瓶颈,AlloneSolution公司创始人刘淑敏
 
  Allone创始人刘淑敏在创办这家公司之前,曾经在半导体公司从事CPU设计的工作,对于相关技术研发工作有着极为丰富的经验。
 
  目前Allone主要业务是协助客户把算法集成到FPGA之中,从而加速应用计算效能,而Allone本身也具有技术开发能力,且拥有不少关于存储的关键技术,比如说拥有SATAPhy等核心专利,表面上和AI产业并没有太大的关系,但实际上,AI计算时需要大量的数据流出与流入,这对于网络以及系统总线会产生庞大的压力,事实上,根据刘淑敏的说法,不少AI架构都处于因为计算速度太快,导致系统总线来不及喂数据的窘况。
 
  Allone除了协助客户把算法硬件化以外,也同时开发基于FPGA存储子系统加速单元,通过高效率的数据压缩处理技术,可以大幅减低系统总线的负担。
 
  目前的AI生态,从终端收集完数据传到云端,再把模型从云端传回到终端的过程,延迟太高,使用者的体验不佳,所以需要建立相当数量的边缘计算架构,借以分担云端的计算、传输负担,加速整个传输过程,让云端到终端的延迟削减到最小,甚至在终端或边缘端就做好计算工作。
 
  不论是物联网、汽车、零售业等,多数计算都发生在数据产生的地方,如果能在数据发生处就做好神经网络计算,那就可以大幅降低云端的负载。当然,边缘计算仍只是云端计算的补充,即便是未来终端的AI应用,也无法完全取代云端计算。
 
  刘淑敏也向DT君表示,中国大陆发展AI的速度相当惊人。目前大陆的制造业转型非常快,不少原本做电器或者消费性电子产品的公司也开始纷纷加入AI的行列,这些公司不一定会建自有的计算服务,但多半还是会和特定云服务结合,随着产品出货的增加,以及市场热度的增温,产生的数据也越来越多,对存储以及相关边缘计算的需求一定会带起来,而这也是Allone瞄准的主要市场目标之一。
 
  从CPU到FPGA,半导体技术将AI理论变为现实
 
  AI的概念发展极早,早在19世纪初期就有人提出图灵测试的概念,假设机器能拥有人类智能,并依此推理设计了相关判断方法。
 
  而在1950年代,类神经网络的概念被提出,如果利用数学来对神经元的动作进行仿真计算,理论上能建构出模仿人类观察、学习、判断事物的人造对象。当然,这个时期还没有半导体技术的支撑,所以这些概念只是停留在理论阶段。
 
  而我们现在讲的机器学习与逻辑判断的概念,也同样出现在半导体技术面世之前,Herbert Simon在1960年代提出用算法对人类推理的过程进行仿真,而这类算法也成为现今AI计算的基础。
 
  当第一个CPU在1971年被发明出来,AI这种很早就被提出来的理论科学却没有跟着起飞,最初受惠的反而是科学、商业等应用。这时业界都在讨论商用智能或专家系统,离AI概念还很远。
 
  进入21世纪后,网络应用成为主流,计算机成为必备。而后手机等各种智能终端也不断推陈出新,市场也越来越重视智能这两个字在产品中所能代表的意义。也因此,从云到端,我们都可以看到不同计算架构上开始把这些提出已超过半个世纪的AI概念整合进去,提供更多元化的服务,甚至,有些AI也开始做起人类的工作。
 
  以上是以AI本身的发展历程来解说,但如果是以半导体技术的发展为依归,可以分为四个大阶段,分别为CPU、GPU、混合式架构、以及包容所有架构的FPGA。
 
  最早被用来做AI相关的计算工作的还是以CPU为主,CPU有其天生限制,比如说其指令集天生缺乏效率,X86指令集极为古老。把多数复杂操作包成单一指令,虽可节省存储空间,但效率低,而RISC指令集架构则是相对做了许多简化,为了描述完整的计算内涵,程序复杂度却也因而提高,增加了对存储空间的需求。
 
  但后来X86引入了管线设计与单一指令多重处理的概念,用以增强效率,RISC方面除指令集的落差外,发展脉络也和X86架构相似,并导入不少向量加速单元的设计,强化处理特定数学计算的能力。
 
  这些向量加速单元其实功能就如今日的TensorCore或TPU单元,概念上一致性相当高。
 
  但数十年前工艺实在太落后,即便芯片设计概念和现在落差不大,但在规模、功耗以及成本方面无法与在相提并论。加上计算机应用在一般消费市场极为冷门等客观条件限制,除了少部分艰深的科学计算以外,很难普及到一般应用中。
 
  然而CPU还有另外一个弱点,那就是循环、分支预测错误造成的延迟,虽然可以通过架构的设计来尽量避免,但必须付出相当可观的成本,也因此后续才有更多AI的专用架构推出,毕竟只靠CPU,是无法满足AI计算所需要的效能。
 
  这个时期的AI计算工作虽然已经有学习以及建立模型的概念,甚至也发展出类神经网络技术,但都只是停留在科研的层面,且因半导体技术的落后,无法进行太复杂的计算。
 
  随后,AI在学习的规模上借助GPGPU的帮助得以大幅增加,在各种科学计算,以及视觉处理方面,GPGPU展现出了极高的弹性以及效能表现,但是在推理部分,由于GPU能够处理的数据精度固定,虽对学习的高速计算目的帮助很大,但用于推理就有点杀鸡用牛刀的感觉,一来推理不需要用到太高的精度,二来又要兼顾带宽限制以及存储需求。
 
  而GPU本身仍需针对传统应用,也就是绘图功能优化,无法针对AI的需求进行完全改造,因此,TPU这种向量计算架构也应运而生,TPU本身可针对低精度计算优化,且结合大量的片上内存,模型的存取与计算可直接在本地完成,不需要太多数据迁移,因此有效环节传输瓶颈。
 
  TPU发展到第二代,除了原本一代TPU就具备的推理能力,也增加了效率不错的学习功能,让TPU一跃成为完整的AI方案。但是TPU是Google用来验证TensorFlow的试验性硬件,并非真的要用来打相关方案市场,反而Google会希望业界参考相关做法,可真正设计出为TensorFlow优化的计算硬件设计,帮助扩大相关的生态。
 
  所以NVIDIA在其最新的Volta架构中导入了TensorCore设计,而Google也在第一时间在其云端服务器上导入了Volta架构,就可证明,这是Google引导市场风向的一贯做法,并非真的要加入直接竞争的局面。
 
  但Google的如意算盘虽然打得精,但业界也未必都会选择Google这条路,GPU目前只有两家能够供应,而在AI领域基本上就是NVIDIA的独角戏。TPU架构概念其实很单纯,那就是加了庞大片上内存的向量加速单元,架构本身并不特别,现在NVIDIA有了TensorCore,Intel则是增加了QFMA和QVNNI两种向量加速指令。
 
  最后是FPGA,其发展其实仅略晚于CPU,其现身于1980年代,由Xilinx(赛灵思)发明。FPGA最大的优势在于其逻辑电路可完全自定义,要用FPGA做到CPU、GPU功能,甚至专用的数学计算单元,如DSP等,基本上都不是问题,只要开发者够有创意,透过烧写FPGA内部固件程序,就可赋予FPGA全然不同的功能。
 
  虽然性能优秀,仅略低于固定功能的ASIC,且拥有强大的可自定义能力,但是在AI领域,FPGA其实发展的比GPU还要晚,就是因为弹性太大,业界缺乏足够好的开发工具来探索FPGA的真正潜力。
 
  业界如果要采用FPGA,那就是要从头到尾都自己来,在开发工具完整性不够的情况下,开发旷日废时不说,FPGA芯片成本又高,且相较于其他主流计算架构又更耗电,所以在应用上主要还是针对军工、医疗等较封闭的应用,消费性应用少之又少,也难打入服务器架构。即便AI议题渐热,FPGA仍被闲置在冷宫相当久一段时间。
 
  不过随着时间过去,各FPGA大厂都开始关注AI应用在云端以及终端的潜力,开发工具也终于逐渐完善,并支持各种主流AI标准,FPGA在AI应用方面的计算潜力也才真正有了发挥的空间。
 
  不过FPGA不仅止于AI相关的计算,由于FPGA过去担当各种数据传输主要干道的核心整流工作,面对AI所带来的庞大数据流,不只是输入,或者输出,如果没有一个高效率的管理核心来进行数据的压缩、导流,那么就算担当AI计算的核心再怎么强大,那整体效率还是高不起来。
 
  而这也就是FPGA之所以担任“超强黏着剂”的意义所在。
 
  目前FPGA不只能担当AI的计算部分,也可和不同架构协同处理,共同解决AI计算中的各种问题,毕竟CPU、GPU、TPU等架构主要还是针对计算的部分,数据传输还是需要外部组件来处理,FPGA就可很好的扮演协调数据传输的角色,而当有需要时,又能介入处理AI计算,可说是进可攻退可守。
 
  目前FPGA主要有Altera、Xilinx、Microsemi、Lattice等几家供货商,而各自专注的市场目标也有不同,但AI计算发展算是其中一个共同的方向。另外,目前高阶FPGA也都开始走向SoC化,比如说Xilinx的UltraScale系列,Altera的Stratix系列等。
 
  由于前两大FPGA供货商就占了全球约九成市场,所以针对这两大FPGA供货商进行简单介绍。
 
  Xilinx
 
  FPGA的发明者,主要针对高端FPGA应用发展,其目前主推的开发环境为VivadoHLS(High-LevelSynthesis),可以直接使用C,C++以及SystemC语言规范进行编程,无需手动创建RTL,从而可加速IP创建。
 
  当然,前者是为了那些希望从头打造自有方案的客户提供的开发环境,针对主流的AI学习方面,Xilinx也推出reVISION堆栈,针对机器视觉、机器学习等应用优化,完整支持了OpenVX、OpenCL、Caffe等主要标准,并支持了AI所需要的学习以及推理流程,协助客户快速建构完整的方案。
 
  Xilinx就推出集成ARM核心的SoC产品,从低端的Zynq-7000系列,到高端的ZynqUltraScale系列MPSoC/RFSoC,从基本的储存、马达控制,到ADAS驾驶辅助系统,甚至自动驾驶与基站通讯核心等等应用。
 
  Xilinx目前占市场超过53%以上的份额(以营收比重区分),其完善的开发工具可说功不可没。过去专注高端方案的推出,也成功确保了获利。
 
  Altera(Intel)
 
  Altera过去在FPGA市场的经营并不算成功,主要是因为过于集中在中低端市场,导致营收明显不如竞争对手。
 
  被Intel并购之后,其实也有不短的时间找不到方向,原本Intel期望借助FPGA之力来对抗GPGPU,但是在开发生态明显不如NVIDIA的状况下,只好缩回头继续打磨生态,期望有新的应用可以让FPGA重新发光,且最好能够统整Intel自家的主要计算架构,构成足以和GPGPU对抗的坚实生态。
 
  而并购Nervana可以说是Intel最重要的一步棋,通过Nervana提供的一站到位式套件服务,开发者可以快速开发出针对不同行业应用的方案。
 
  Nervana过去最令人称道的,就属于其针对所有AI计算应用支持的广泛性,由于基于号称现有计算理论上最快的矩阵操作算法Coppersmith–Winogradalgorithm,原本矩阵算法算是GPU的长处,但GPU针对的是计算器图学应用设计,并非AI优化,理论上,如果有专用架构,使用针对AI优化的专用矩阵,那么效率会比GPGPU更高。
 
  当然,这也是Intel打的如意算盘之一,通过Nervana的算法,Intel的硬件,打造出不输给NVIDIA的CUDA生态。
 
  继2015年并购Altera之后,2016年并购的Nervana为Intel带来更多元的生态支持能力,也具备了支持多种不同AI计算架构的基础,Nervan允许客户同时使用GPGPU、XeonPhi甚至FPGA,但只要通过Nervana,就可以无缝衔接这些计算能力,达成更高效能,或者更多元化的应用方式。
 
  当然,Intel的长期目标肯定还是会以自家架构取代竞品,但短期之内,Nervana对于开发者的友善程度,以及高效能的表现,仍可有效协助Intel打通过去因为开发工具包不够友善、支持性不够广的关系,改选择CUDA等敌对生态的客户。
 
  FPGA已全面融入全球主流云服务商
 
  目前几乎所有云服务企业都已经先后导入FPGA架构,协助处理整个云端AI计算的瓶颈。
 
  而各家方案的选择,微软使用的是Altera/Intel的FPGA方案,Amazon、百度、腾讯则是使用Xilinx的方案,Google在硬件的选择上,则是混合GPGPU和TPU方案,完全没有采用FPGA架构,主要是因其自用开发方案TPU和GPGPU都配合TensorFlow框架优化,目前FPGA还无法完全配合这么彻底之故。
 
  在深度学习方面,自然语音识别已经成为各家云服务公司的核心项目之一,Amazon正试图通过FPGA方案来加速Alexa的反应速度,微软也期望透过FPGA在推理的优势效率,改善其语音秘书Cortana的识别正确度与响应速度。
 
  Google的语音助手是目前最优秀的AI语音助手之一,但其并非通过FPGA加速,而是采用自家的TPU结合GPGPU方案,分别从学习与推理的效能着手,配合自家优势的搜索引擎,改善辨识正确性。
 
  百度与腾讯的语音服务目前绑定的服务要比其他国外云服务厂商更多,但是在自然语言辨识能力方面还是要稍弱后者,但未来语音助手也会随着FPGA架构的导入而有所优化。
 
  -End-

第四十一届CIO班招生
国际CIO认证培训
首席数据官(CDO)认证培训
责编:houlimin

免责声明:本网站(http://www.ciotimes.com/)内容主要来自原创、合作媒体供稿和第三方投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。