AI计算系统选择FPGA的六大疑惑与解答

2017-11-24 9:24:00

这几天,已经退役的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。

三: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落地效率。

神经网络加速方案:基于F10A的AI线上推理加速方案,针对CNN卷积神经网络的相关算法进行优化和固化,可加速ResNet等神经网络,能够应用于图片分类、对象检测和人脸识别等应用场景。

实测数据显示,在进行ResNet残差网络的图片识别分类任务时,F10A加速方案图片处理速度可达每秒742张,Top-5识别准确率达到99.6%,相比同档次GPU能效比提升3倍以上。而与通用CPU对比,在处理这种高并行、小计算量的任务时,F10A的优势将更明显。

WebP图片转码压缩加速方案:针对图片数据的压缩应用,嵌入基于FPGA计算环境下的WebP编解码优化算法,通过充分利用硬件流水设计和任务级并行,大大提升WebP图像压缩编码算法的处理性能,能够实现JPEG-WebP图片格式的快速转换,比传统实现方式的整体处理效率平均高9.13倍左右,最高性能可比CPU提高14倍。

数据压缩加速方案:为解决传统压缩架构的弊端,浪潮GZip算法加速方案充分利用板卡硬件流水设计和任务级并行,大幅提升了压缩任务的吞吐量并有效降低CPU的负载,压缩率(压缩率=1-压缩后文件/压缩前文件)最高可达94.8%,压缩速度达到1.2GB/s,10倍于传统方案的压缩效率。

五:我是做云的,FPGA咋管理?支持虚拟机么?

FaaS不仅仅是指板卡与软件算法的一体化服务,同时还可以支持公有云及在线远程管理和更新。FPGA解决方案能够支持动态逻辑的在线可重构、静态逻辑的远程更新,并且通过优化的监控管理机制,提升板卡远程监控管理的可靠性,通过它们可以实时的监控FPGA芯片的温度、板卡风扇转速、板卡内存特性等从而调整FPGA的工作频率。

同时FPGA也支持虚拟机的直接访问,板卡本身也加入了很多RAS(可靠性、可用性、可扩展性)特性,如高可靠内存访问等,支持并行(FPP)和串行(AS)双加载模式,任何一种模式加载出现故障,都可以快速切换到另一种模式加载,保证了板卡大规模服务的可用性。

有了这些特性,就可以利用FPGA方案,快速搭建FPGA云所需要的基础底层计算平台,不论是对外提供公有云服务,还是对内实现FPGA计算力快速分配都能够既高效又可靠。

六:我可不想当小白鼠,有谁用过了?

对于FPGA这种新兴的AI计算设备,“观望”往往是明智的选择,毕竟不是每家公司都想要作为新技术的小白鼠,而当有第一个吃螃蟹的人出现后,“跟进”则成为“飞猪”的必然之路。

目前,浪潮FPGA已经在百度、阿里巴巴、腾讯、网易、科大讯飞取得批量的落地应用或深度测试,FPGA在人工智能线上推理的能效优势已经得到大部分互联网和AI公司的认可。

那么,FPGA可以应用在哪些领域?我们可以听听腾讯云FPGA团队负责人怎么说:

在机器学习领域、金融领域、大数据领域、基因检测领域都存在比较大的数据量需要分析计算,这些是FPGA可以发挥高吞吐优势的领域。

网络安全领域有更安全、更低延时的需求,这些场景也可以发挥FPGA低延时的优势。

超大规模图像处理,这些图片的处理都使用FPGA来进行处理加速,都可以得到满意的效果。

现在比较热门的自然语言处理和语音识别这些也都是FPGA可以发挥优势的场景。

当FPGA成为一种计算力服务,有着高效的硬件、成熟的IP和云化管理,你还在顾虑什么?

未来,CPU+FPGA或许将作为新的异构加速模式,被越来越多的应用领域采用。