无缝替代GPU,让FPGA加速你的AI推理!

如今,基于深度学习(DL)的人工智能(AI)应用越来越广泛,不论是在与个人消费者相关的智能家居、智能驾驶等领域,还是在视频监控、智慧城市等公共管理领域,我们都能看到其身影。

众所周知,实施一个完整的AI应用需要经历训练和推理两个过程。所谓“训练”,就是我们要将大量的数据代入到神经网络模型中运算并反复迭代,“教会”算法模型如何正确的工作,训练出一个DL模型。而接下来,我们就可以利用训练出来的模型来在线响应用户的需求,根据输入的新数据做出正确而及时的决策判断,这个过程就是“推理”。

通常来讲,一个AI应用中“训练”只需要做一次——有时这个工作会交给第三方专业的且有充沛算力资源的团队去做,而应用开发工程师要做的则是将训练好的模型部署到特定的硬件平台上,满足目标应用场景中推理过程的需要。由于推理过程会直接联系最终用户,推理的准确性和速度也会直接影响到用户体验的好坏,因此如何有效地为AI推理做加速,也就成了当下开发者普遍关心的一个热门的话题。

AI推理加速,FPGA胜出!

从硬件架构来看,可以支持AI推理加速的有四个可选方案,它们分别是:CPU、GPU、FPGA和ASIC,如果对这几类器件的特性进行比较,会发现按照从左到右的顺序,器件的灵活性/适应性是递减的,而处理能力和性能功耗比则是递增的。

CPU是基于冯∙诺依曼架构,虽然其很灵活,但由于存储器访问往往要耗费几个时钟周期才能执行一个简单的任务,延迟会很长,应对神经网络(NN)这种计算密集型的任务,功耗也会比较大,显然最不适合做AI推理。

GPU具有强大的数据并行处理能力,在做海量数据训练方面优势明显,而推理计算通常一次只对一个输入项进行处理的应用,GPU并行计算的优势发挥不出来,再加上其功耗相对较大,所以在AI推理方面也不是最优选择。

从高性能和低功耗的角度来看,定制的ASIC似乎是一种理想的解决方案,但其开发周期长、费用高,对于总是处于快速演进和迭代中的DL和NN算法来说,灵活性严重受限,风险太大,在AI推理中人们通常不会考虑它。

所以我们的名单上只剩下FPGA了。这些年来大家对于FPGA快速、灵活和高效的优点认识越来越深入,硬件可编程的特性使其能够针对DL和NN处理的需要做针对性的优化,提供充足的算力,而同时又保持了足够的灵活性。今天基于FPGA的异构计算平台,除了可编程逻辑,还会集成多个Arm处理器内核、DSP、片上存储器等资源,DL所需的处理能力可以很好地映射到这些FPGA资源上,而且所有这些资源都可以并行工作 ,即每个时钟周期可触发多达数百万个同时的操作,这对于AI推理是再合适不过了。

与CPU和GPU相比,FPGA在AI推理应用方面的优势还表现在:

  • 不受数据类型的限制,比如它可以处理非标准的低精度数据,从而提高数据处理的吞吐量。
  • v功耗更低,针对相同的NN计算,FPGA与CPU/GPU相比平均功耗低5~10倍。

  • 可通过重新编程以适应不同任务的需要,这种灵活性对于适应持续发展中的DL和NN算法尤为关键。
  • 应用范围广,从云端到边缘端的AI推理工作,都可胜任。
  • 总之一句话,在AI推理计算的竞争中,FPGA的胜出没有悬念。

    GPU无缝对接,FPGA即插即用

    不过,虽然FPGA看上去“真香”,但是很多AI应用的开发者还是对其“敬而远之”,究其原因最重要的一点就是——FPGA上手使用太难了!

    难点主要体现在两个方面:

  • 首先,对FPGA进行编程需要特定的技能和知识,要熟悉专门的硬件编程语言,还要熟练使用FPGA的特定工具,才能通过综合、布局和布线等复杂的步骤来编译设计。这对于很多嵌入式工程师来说,完全是一套他们所不熟悉的“语言”。
  • 再有,因为很多DL模型是在GPU等计算架构上训练出来的,这些训练好的模型移植、部署到FPGA上时,很可能会遇到需要重新训练和调整参数等问题,这要求开发者有专门的AI相关的知识和技能。
  • 如何能够降低大家在AI推理中使用FPGA的门槛?在这方面,Mipsology公司给我们带来了一个“惊喜”——该公司开发了一种基于FPGA的深度学习推理引擎Zebra,可以让开发者在“零努力(Zero Effort)”的情况下,对GPU训练的模型代码进行转换,使其能够在FPGA上运行,而无需改写任何代码或者进行重新训练。

    这也就意味着,调整NN参数甚至改变神经网络并不需要强制重新编译FPGA,而这些重新编译工作可能需要花费数小时、数天,甚至更长时间。可以说,Zebra让FPGA对于开发者成了“透明”的,他们可以在NN模型训练好之后,无缝地从CPU或GPU切换到FPGA进行推理,而无需花费更多的时间!

    目前,Zebra可以支持Caffe、Caffe2、MXNet和TensorFlow等主流NN框架。在硬件方面,Zebra已经可以完美地支持Xilinx的系列加速卡,如Alveo U200、Alveo U250和Alveo U50等。对于开发者来说,“一旦将FPGA板插入PC,只需一个Linux命令”,FPGA就能够代替CPU或GPU立即进行无缝的推断,可以在更低的功耗下将计算速度提高一个数量级。对用户来说,这无疑是一种即插即用的体验。

    图1,Zebra可适应由GPU加速器训练的NN,并无缝地在FPGA上部署

    强强联手,全生态支持

    更好的消息是:为了能够加速更多AI应用的落地,安富利亚洲和 Mipsology 达成了合作协议,将向其亚太区客户推广和销售 Mipsology 这一独特的 FPGA 深度学习推理加速软件 —— Zebra。

    这对于合作的双方无疑是一个双赢的局面:对于Mipsology来说,可以让Zebra这个创新的工具以更快的速度覆盖和惠及更多的开发者;对安富利来说,此举也进一步扩展了自身强大的物联网生态系统,为客户带来更大的价值,为希望部署DL的客户提供一整套全面的服务,包括硬件、软件、系统集成、应用开发、设计链和专业技术。

    安富利推理加速成功应用案例:智能网络监控平台AI Bluebox

    本文转载自: 安富利微信公众号

    最新文章