FPGA在AI应用中的优势

作者:默宸 ,来源:FPGA开源工作室

前言

随着人工智能和物联网技术的融合,AIoT(人工智能物联网)的概念应运而生,即AI(人工智能)+IoT(物联网)。目前,边缘AI正广泛应用于工业领域,这种技术可以为工业物联网边缘的多传感器分析和机器学习应用提供最低的时延、功耗和成本。在工业领域,当前热门的边缘AI应用包括工业机器人、智慧路灯、智能监控等。

目前,在AI计算平台使用最广泛的两种加速部件是GPU和FPGA。GPU已经在深度学习训练模型领域开创性地创建了包含CNN、DNN、RNN、LSTM以及强化学习网络等算法在内的应用加速平台和完整的生态系统。深度学习包含两个计算环节,即线下训练和线上推理环节。GPU在深度学习算法模型训练上非常高效,但在推理时,一次性只能对于一个输入项进行处理,并行计算的优势不能发挥出来.

相比较而言,运行深度学习算法实现同样的性能,GPU所需功耗远大于FPGA,通常情况下,GPU只能达到FPGA能效比的一半或更低。目前来看,深度学习算法还未完全成熟,算法还在迭代衍化过程中,若深度学习算法发生大的变化,GPU无法像FPGA一样可以灵活的配置硬件结构,快速切入市场。

01、FPGA有啥优势?什么样的场景更适合FPGA?

CPU是一种非常通用的架构,它的工作方式基于一系列的计算机指令,也称为“指令集”。简单来说,CPU从内存中提取一小部分数据,放在寄存器或者缓存中,然后使用一系列指令对这些数据进行操作。操作完毕后,将数据写回内存,提取另一小部分数据,再用指令进行操作,并周而复始。我把这种计算方式称为“时域计算”。

不过,如果这些需要用指令进行处理的数据集太大,或者这些数据值太大,那么CPU就不能很高效的应对这种情况。这就是为什么在处理高速网络流量的时候,我们往往需要使用定制芯片,比如网卡芯片等,而不是CPU。这是因为在CPU中,即使处理一个字节的数据也必须使用一堆指令才能完成,而当数据流以每秒125亿字节进入系统时,这种处理方式哪怕使用再多的线程也忙不过来。

对于GPU来说,它所擅长的是被称作“单指令多数据流(SIMD)”的并行处理。这种处理方式的本质是,在GPU中有着一堆相同的计算核心,可以处理类似但并不是完全相同的数据集。因此,可以使用一条指令,就让这些计算核心执行相同的操作,并且平行的处理所有数据。

首先,深度学习包含两个计算环节,即训练和推理环节。GPU强在训练,而FPGA强在推断,FPGA 同时拥有流水线并行和数据并行,因此处理任务时候延迟更低。例如处理一个数据包有10 个步骤,FPGA 可以搭建一个10 级流水线,流水线的不同级在处理不同的数据包,每个数据包流经10 级之后处理完成。每处理完成一个数据包,就能马上输出。通常来说,FPGA 加速只需要微秒级的PCIe 延迟。当Intel 推出通过QPI快速通道互联的Xeon + FPGA 之后,CPU 和FPGA 之间的延迟甚至可以降到100 纳秒以下。

其次,FPGA是可编程芯片,算法烧录更加灵活。目前来看,深度学习算法还未完全成熟,算法还在迭代衍化过程中,若深度学习算法发生大的变化,FPGA是软件定义硬件,可以灵活切换算法,快速切入市场。

02、FPGA的计算性能在其他领域的应用

除了在AI的线上推理方向,FPGA在其他很多方面也能发挥价值。在面向计算密集型任务,比如矩阵运算、图像处理、机器学习、压缩、非对称加密、搜索的排序等的时候,拥有流水线并行和数据并行的FPGA效率会高很多

03、FPGA的独特优势有哪些?

传统的FPGA的开发类似于芯片的开发,采用硬件描述语言(HDL)开发,HDL开发带来的问题就会像芯片设计一样周期会比较长,从架构设计、到仿真验证、再到最终完成,需要一年左右的开发时间。

但是互联网的业务迭代速度极快,在几个月时间内就可能完成庞大用户群的积累,因此业务对于数据中心的要求是“快”—计算力平台的升级要尽量快地满足业务的发展,因此FPGA的传统开发模式动辄以半年或年为单位的开发周期难以满足需求。

为此尝试通过OpenCL高级语言开发方式,它把底层的硬件如总线、IO接口、访存控制器等和底层软件如驱动、函数调用等全部封装,变成标准单元提供上层支持,用户只需要关注算法本身,OpenCL开发的逻辑通过编译工具直接映射到FPGA中,开发周期从至少1年缩短至4个月以内。

04、FPGA可以应用在哪些领域?

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

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

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

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

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

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


文章转载自:FPGA技术联盟
*本文由FPGA技术联盟授权转发,如需转载请联系作者本人

推荐阅读