FPGA在AI应用中的优势
0 2023-03-21

前言

随着人工智能和物联网技术的融合,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或许将作为新的异构加速模式,被越来越多的应用领域采用。


声明: 本文转载自其它媒体或授权刊载,目的在于信息传递,并不代表本站赞同其观点和对其真实性负责,如有新闻稿件和图片作品的内容、版权以及其它问题的,请联系我们及时删除。(联系我们,邮箱:evan.li@aspencore.com )
0
评论
  • 相关技术文库
  • 人工智能
  • 机器人
  • AI
  • 神经
  • 傅里叶变换用于图像处理的原理与例子

    我在上两篇文章「、「」中介绍了傅里叶级数的本质以及编写了一些有趣的傅里叶动画,主要讲述了周期性函数究竟是如何一步步被分解成正余弦函数的和的。但是,不幸的是我们在工程中使用的一些函数往往会有一些非周期性函数,那么我们该如何用三角函数来描述它们

    05-29
  • 从A到Z的各种PU

    从最常见的CPU,GPU,到现在的DPU,VPU,NPU,TPU等等。26个英文字母已经不够用了。APU义项

    05-25
  • 一文解析基于单元格的AOI(Area of Interest)算法

    原文地址: http://www.cnblogs.com/corefans/archive/2009/07/23/1529699.html、基于格子的AOI算法

    05-21
  • SLAM和ROS是谁离不了谁?

    SLAM是同步定位与地图构建。主要用于解决移动机器人在未知环境中运行时定位导航与地图构建的问题,SLAM分为:激光SLAM和视觉SLAM,他们各有千秋,常见的应用有:扫地机器人,无人驾驶车,无人机,等等。

    05-15
  • 解析智能座舱最重要的技术

    在汽车向着智能化、网联化和多功能化发展的今天,座舱的智能交互、操作方便性成为消费者关注的重点,智能座舱正在成为汽车厂商争夺的高点。

    05-08
  • 电池管理系统功能解析

    动力电池BMS最核心的功能就是采集系统的电压、温度、电流、绝缘电阻、高压互锁状态等数据,然后分析数据状态和电池的使用环境,对电池系统充放电过程进行监测和控制,从而在保证电池安全的前提下最大限度地利用动力电池系统储存的能量。

    04-24
  • 马斯克开源的Twitter核心算法

    3 月 31 日,正如马斯克一再承诺的那样,Twitter 已将其部分源代码正式开源,其中包括在用户时间线中推荐推文的算法。目前,该项目在 GitHub 已收获 10k+ 个 Star。

    04-24
  • 如何使用FPGA加速深度学习计算

    OpenAI在其研究中使用FPGA技术主要是为了提高计算效率和性能,从而实现更智能、更高效的人工智能计算。随着FPGA技术的不断进步和OpenAI研究的不断发展,我们相信这种结合将会有更广泛的应用和更深入的发展。

    04-20
  • 自动驾驶2D和3D视觉感知算法详解

    环境感知是自动驾驶的第一环,是车辆和环境交互的纽带。一个自动驾驶系统整体表现的好坏,很大程度上都取决于感知系统的好坏。

    04-13
  • 智能机器三项核心技术

    来源:TI您试过用智能手机“召唤”汽车驶出停车位吗?您知道现在很多精细的外科手术都是由机器人手臂操作完成的吗?您听说过无人机能自动跟踪GPS飞行路线,并安全着陆

    04-03
下载排行榜
更多
广告