北京2017年11月22日电 /美通社/ -- 这几天,已经退役的AlphaGo又强行刷了一波头条,不是又跟哪位世界高手对决,而是“新狗”通过无监督式学习,仅用3天时间就战胜了李世石版的AlphaGo,然后用了21天时间战胜了柯洁版本AlphaGo。AlphaGo让我们真真切切地看到了AI计算的强大。
目前,在AI计算平台使用最广泛的两种加速部件是GPU和FPGA。GPU可适用于具备计算密集、高并行、SIMD(Single Instruction Multiple Data,单指令多数据流)应用等特点的深度学习训练模型领域,并且GPU创建了包含CNN、DNN、RNN、LSTM以及强化学习网络等算法在内的应用加速平台和生态系统。
但是,最近FPGA又频频被各AI领域的巨头看好,比如微软、百度、科大讯飞都对FPGA应用前景有所期待。那么如果让你选择FPGA作为AI计算系统的主力军,你会有什么样的顾虑?
顾虑一:FPGA有啥优势?什么样的场景更适合FPGA?
首先,深度学习包含两个计算环节,即训练和推理环节。GPU在深度学习算法模型训练上非常高效,但在推理时对于小批量数据,并行计算的优势不能发挥出来。
而FPGA 同时拥有流水线并行和数据并行,因此处理任务时候延迟更低。例如处理一个数据包有 10 个步骤,FPGA 可以搭建一个 10 级流水线,流水线的不同级在处理不同的数据包,每个数据包流经 10 级之后处理完成。每处理完成一个数据包,就能马上输出。通常来说,FPGA 加速只需要微秒级的 PCIe 延迟。当Intel 推出通过 QPI快速通道互联的 Xeon + FPGA 之后,CPU 和 FPGA 之间的延迟甚至可以降到 100 纳秒以下。
其次,FPGA是可编程芯片,算法烧录更加灵活。目前来看,深度学习算法还未完全成熟,算法还在迭代衍化过程中,若深度学习算法发生大的变化,FPGA是软件定义硬件,可以灵活切换算法,快速切入市场。
未来至少95%的机器学习计算都是用于推断,只有不到5%是用于模型训练,而FPGA正是强在推断。大幅提升推断效率的同时,还能最小限度损失精确性,这正是FPGA的强项。
顾虑二:FPGA的计算性能能不能满足我的需求?
与CPU和GPU不同,FPGA是一种典型的非诺依曼架构,是硬件适配软件的模式,它能够根据系统资源和算法特征灵活的调整并行度,达到最优的适配,因此能效比高于CPU和GPU。
以浪潮F10A为例,这是目前业界支持OpenCL的较高密度较高性能的FPGA加速设备,基于Altera的Arria 10芯片,单芯片峰值运算能力达到了1.5TFlops,功耗却只需35W,每瓦特性能达到42GFlops。同时,F10A设计为高密度的半高半长PCI-E插卡,同时具有灵活的板卡内存配置,较大支持32G双通道内存,是业内同等FPGA卡内存容量的4-8倍。此外,F10A支持2个10Gb光口,可以实现数据直接从网络到板卡处理,无需经过CPU,大大减低了传输延时。
测试数据显示,在语音识别应用下,浪潮F10A较CPU性能加速2.87倍,而功耗相当于CPU的15.7%,性能功耗比提升18倍。
顾虑三:FPGA的开发周期得1年以上吧,这不能满足我的业务上线需求?
传统的FPGA的开发类似于芯片的开发,采用硬件描述语言(HDL)开发,HDL开发带来的问题就会像芯片设计一样周期会比较长,从架构设计、到仿真验证、再到最终完成,需要一年左右的开发时间。
但是互联网的业务迭代速度极快,在几个月时间内就可能完成庞大用户群的积累,因此业务对于数据中心的要求是“快”—计算力平台的升级要尽量快地满足业务的发展,因此FPGA的传统开发模式动辄以半年或年为单位的开发周期难以满足需求。
为此浪潮尝试通过OpenCL高级语言开发方式,它把底层的硬件如总线、IO接口、访存控制器等和底层软件如驱动、函数调用等全部封装,变成标准单元提供上层支持,用户只需要关注算法本身,OpenCL开发的逻辑通过编译工具直接映射到FPGA中,开发周期从至少1年缩短至4个月以内。
顾虑四:对于O经验的公司,怎样快速上线FPGA应用?
或许你还是有些顾虑,即时开发效率大幅提升、开发周期大大缩短,但是对于技术和团队储备不足的中小型AI企业来说,FPGA仍是“高不可攀”的AI加速部件。
如果,有一种方案能够将软件、算法和硬件板卡整合,以软硬一体化的形式,提供FaaS(FPGA as a Service)服务。你还有什么顾虑么?
目前,浪潮正在针对市场上需求最迫切的几种应用场景进行算法的移植开发,在图像压缩、文本数据压缩及神经网络加速等应用开发出业界领先的IP,省去客户的算法开发周期,最小化FPGA落地门槛、较大化FPGA落地效率。
实测数据显示,在进行ResNet残差网络的图片识别分类任务时,浪潮F10A加速方案图片处理速度可达每秒742张,Top-5识别准确率达到99.6%,相比同档次GPU能效比提升3倍以上。而与通用CPU对比,在处理这种高并行、小计算量的任务时,F10A的优势将更明显。
顾虑五:我是做云的,FPGA咋管理?支持虚拟机么?
FaaS不仅仅是指板卡与软件算法的一体化服务,同时还可以支持公有云及在线远程管理和更新。浪潮FPGA解决方案能够支持动态逻辑的在线可重构、静态逻辑的远程更新,并且通过优化的监控管理机制,提升板卡远程监控管理的可靠性,通过它们可以实时的监控FPGA芯片的温度、板卡风扇转速、板卡内存特性等从而调整FPGA的工作频率。
同时浪潮FPGA也支持虚拟机的直接访问,板卡本身也加入了很多RAS(可靠性、可用性、可扩展性)特性,如高可靠内存访问等,支持并行(FPP)和串行(AS)双加载模式,任何一种模式加载出现故障,都可以快速切换到另一种模式加载,保证了板卡大规模服务的可用性。
有了这些特性,就可以利用浪潮FPGA方案,快速搭建FPGA云所需要的基础底层计算平台,不论是对外提供公有云服务,还是对内实现FPGA计算力快速分配都能够既高效又可靠。
顾虑六:我可不想当小白鼠,有谁用过了?
对于FPGA这种新兴的AI计算设备,“观望”往往是明智的选择,毕竟不是每家公司都想要作为新技术的小白鼠,而当有第一个吃螃蟹的人出现后,“跟进”则成为“飞猪”的必然之路。
目前,浪潮FPGA已经在百度、阿里巴巴、腾讯、网易、科大讯飞取得批量的落地应用或深度测试,FPGA在人工智能线上推理的能效优势已经得到大部分互联网和AI公司的认可。
那么,FPGA可以应用在哪些领域?我们可以听听腾讯云FPGA团队负责人怎么说:
当FPGA成为一种计算力服务,有着高效的硬件、成熟的IP和云化管理,你还在顾虑什么?
浪潮拥有国内领先的FPGA软硬件开发团队,浪潮正联合Intel及BAT、科大讯飞、网易等AI领先企业深入研发基于FPGA的通用系统方案,包括深度学习、网络加速、存储优化等,并将方案推广到其它应用领域和客户。未来,CPU+FPGA或许将作为新的异构加速模式,被越来越多的应用领域采用。