毫无疑问,如果评选2016年度科技界十大最耀眼热词,人工智能&深度学习必定会华丽丽地上榜。从年初阿尔法狗战胜世界围棋冠军李世石,到年末世界互联网大会上BAT大佬们的集体AI秀,每一个信号都在不断提示着我们,人工智能时代来了,未来已来,且就在我们身边。
1956年,约翰·麦卡锡等人出席的达特茅斯会议正式标志着人工智能的诞生。经过60年的发展,人工智能历经了三次浪潮,发展可谓起起落落。
第一次,达特茅斯会议确立了人工智能这一术语,第一款感知神经网络软件和聊天软件诞生,数学定理被证明,人类第一次进入了人工智能的狂欢时期。然而,人们很快发现,这些理论和模型只能解决一些非常简单的问题,他们把问题想得过于简单,人工智能随即进入低谷。
第二次,八十年代Hopfield神经网络和BT训练算法的提出,使得人工智能再次兴起,出现了语音识别、语音翻译模型也为第二次人工智能的热潮点燃了希望之火。但这些设想迟迟未能进入人们的生活之中,第二次浪潮也随之破灭。
第三次,随着2006年Hinton提出的深度学习技术,以及2012年ImageNet竞赛在图像识别领域带来的突破,人工智能再次迎来了烈火烹油式的爆发。特别是到了2016年,大数据技术的日臻成熟以及高性能计算和算法的跨越式进步,为人工智能的发展带来了真正的动力。
高性能计算加速深度学习落地,GPU与FPGA各有所长
而这一次人工智能热潮的兴起,与前两次有着截然不同的本质区别,其中高性能计算应用加速能力的大幅提升功不可没。在恒扬数据应用加速部门产品经理张军看来,深度学习模型是构建在海量的数据和强有力超算能力基础之上的,传统计算架构已经无法支撑深度学习大规模并行计算需求,因此,通过底层应用加速计算过程结合深度学习算法上的优化,是推动人工智能整个产业链发展的重要环节。
目前针对深度学习的分布式加速主要有三种方式:GPU、FPGA和NPU。GPU是最先被引入深度学习领域的,我们熟知的阿尔法狗就是由1920个CPU+280个GPU搭建的超算平台,作为最早看好深度学习应用加速的公司,英伟达是该领域当仁不让的领导者,通过打造CUDA平台,GPU在SIMD单指令多数据流架构中的优势被全面激发,结合高并行计算和高计算吞吐的特点,GPU可以大规模适用于具备计算密集、高并行、SIMD应用等特点的深度学习训练模型领域。目前,GPU已经在深度学习训练模型领域开创性地创建了包含CNN、DNN、RNN、LSTM以及强化学习网络等算法在内的应用加速平台和完整的生态系统。
GPU虽火,但从技术上讲,也有一定的局限性。
首先,运行能效比不佳。相比较而言,运行深度学习算法实现同样的性能,GPU所需功耗远大于FPGA,通常情况下,GPU只能达到FPGA能效比的一半或更低。
其次,应用过程中无法充分发挥并行计算优势。深度学习包含两个计算环节,即训练(Off-line)和推理(On-line)环节。GPU在深度学习算法模型训练上非常高效,但在推理时一次性只能对于一个输入项进行处理,并行计算的优势不能发挥出来。
第三,硬件结构固定不具备可编程性。目前来看,深度学习算法还未完全成熟,算法还在迭代衍化过程中,若深度学习算法发生大的变化,GPU无法像FPGA一样可以灵活的配置硬件结构,快速切入市场。 而以上这些不足,恰恰可以通过FPGA加速的方式来弥补。
可以说,GPU和FPGA在加速深度学习算法方面各有所长。 据张军介绍,单纯从性能角度来看,目前看FPGA的性能要弱于GPU,但FPGA在性能功耗比方面的表现却非常惊艳,以恒扬NSA系列深度学习加速卡来看,性能功耗比可以做到70GFlops/W,是英伟达M4的2倍多,是Intel众核芯片的5倍,优势还是相当明显的。这一点,对大型数据中心而言至关重要,可以节省大量服务器部署及机房建设、用电成本。
从计算优势来讲,目前大家看到在深度学习模型训练领域基本使用的是SIMD架构,即只需一条指令可以平行处理大量数据,这一点正好可以发挥GPU并行计算优势,但是容易让人忽略的是,在完成训练模型后,深度学习还需要进行推理计算环节,即MISD单一数据需要用多条指令平行处理,而这部分计算,正是FPGA最为擅长的。
根据赛灵思全球战略与市场营销高级副总裁Steve Glasev介绍,他认为FPGA未来在超级数据中心将成主流应用,尤其是在深度学习方面,在这方面GPU强在训练,而FPGA强在推断。一旦需要大规模部署训练模型,就必须大幅度提高效率,这需要新的推断引擎来提升效率,比如3到4倍,同时还要最小限度损失精确性,这正是FPGA的强项。他预测,未来至少95%的机器学习计算都是用于推断,只有不到5%是用于模型训练,这是两者的区别。
另外,不同架构的FPGA由于底层DSP有所不同,因此在不同领域的利用率和计算效率也有所不同。
从灵活性来说,GPU一旦设计完成就无法根据应用去调整硬件资源,但FPGA可以根据特定的应用给硬件编程,能针对任何新型应用和算法进行硬件优化。正是这种特有的可重配置和可重编程特性,FPGA能在一秒之内快速切换成不同的设计方案,面对下一个工作负载进行硬件优化,成为超大规模数据中心应用提供高度灵活、复杂多变的和高能效的最佳计算方案。
打造深度学习生态闭环,为人工智能赋能
作为第二代分布式计算联盟创始成员以及OpenPower组织联盟成员,恒扬数据与赛灵思、IBM在分布式计算领域有着深入密切合作。据恒扬数据张军介绍,2015年起,恒扬就关注到在全球7大超级数据中心,特别是在机器学习、深度学习领域,FPGA会成为主流应用之一,今年10月百度宣布设计出用以加速机器学习推断的赛灵思 UltraScale FPGA池以及11月AWS大会上Amazon EC2 F1实例,更加坚定了我们的想法。
比如Amazon EC2 F1实例,它是第一个用于FPGA应用加速的可编程硬件云实例,用户可以选择最高集成8块高性能16nm Xilinx UltraScale+ VU9P FPGA的方式,将FPGA架设在云端,类似于Vivado HLS/SDSoC remote server模式,用户只需要购买云服务,即可获得相应的开发工具,包括集成深度学习主流框架的应用开发套件、应用函数库、配置管理工具等等,进行开发、仿真、调试、编译等工作,定制FPGA硬件加速,从而大幅降低开发难度,缩减开发时间,让云服务用户更加便捷地加速深度学习推断、基因分析、金融分析、视频处理、大数据、安全等工作负载。
目前,恒扬非常看好类似的应用,正在与国内的几大数据中心展开联手合作,我们致力于与赛灵思联手,与超大数据中心进行深度合作,挖掘FPGA在深度学习中的潜能。