0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

利用FPGA构建边缘AI推理的解决方案

得捷电子DigiKey 来源:得捷电子DigiKey 作者:得捷电子DigiKey 2022-10-13 09:51 次阅读

对于希望在边缘的推理处理器上实施人工智能 (AI) 算法的设计人员来说,他们正不断面临着降低功耗并缩短开发时间的压力,即使在处理需求不断增加的情况下也是如此。现场可编程门阵列 (FPGA) 为实施边缘AI所需的神经网络 (NN) 推理引擎提供了特别有效的速度和效率效率组合。然而,对于不熟悉 FPGA 的开发人员来说,传统FPGA的开发方法可能相当复杂,往往导致他们去选择不太理想的解决方案。

本文将介绍来自Microchip Technology的一种比较简单的方法。通过这种方法,开发人员可以使用FPGA和软件开发套件 (SDK) 构建经过训练的NN,或者使用基于FPGA的视频套件立即启动智能嵌入式视觉应用开发,从而避开传统的FPGA开发。

为什么要在边缘使用AI?

边缘计算为物联网 (IoT) 应用带来了诸多好处,涵盖了包括工业自动化、安全系统、智能家居等在内的多个领域。在以工厂车间为目标的工业物联网 (IIoT) 应用中,边缘计算通过避免到云端应用的往返延迟,可以显著缩短过程控制环路的响应时间。同样,基于边缘的安全系统或智能家居门锁即使由于意外或人为原因与云端的连接断开时,也能继续正常工作。在很多情况下,在任何此类应用中使用边缘计算时,都可以通过减少产品对云资源的依赖来帮助降低整体运营成本。随着产品要求的提高,开发者可以依靠产品中内置的本地处理功能去帮助维持更稳定的运营开支,而不会面临增加昂贵的云资源的意外需求。对机器学习 (ML) 推理模型的快速接受和需求的增加,极大地提高了边缘计算的重要性。对于开发人员来说,推理模型的本地处理能力有助于降低云端推理所需的响应延迟和云资源成本。对于用户来说,使用本地推理模型会让他们更加相信,其产品在偶尔与互联网断开或基于云的供应商产品发生变化时仍能正常运行。此外,在安全和隐私方面的担忧会进一步推动对本地处理和推理的需求,以限制通过公共互联网传输到云端的敏感信息数量。

为基于视觉的对象检测开发NN推理模型是一个多步骤过程。首先进行模型训练,这一步通常在TensorFlow等ML框架上使用公开的标记图像或自定义的标记图像进行训练。由于处理需求,模型训练通常使用云端或其他高性能计算平台的图形处理单元 (GPU) 进行。训练完成后,模型被转换为能够在边缘或雾计算资源上运行的推理模型,并将推理结果以一组对象类概率的形式交付(图1)。

da1a8648-4a26-11ed-a3b6-dac502259ad0.png

图1:在多步骤过程的末端实现边缘人工智能的推理模型,需要使用现有或定制型训练数据在框架上训练和优化NN。(图片来源:Microchip Technology)

为什么推理模型存在计算方面的挑战?

与训练过程中使用的模型相比,虽然NN推理模型的大小和复杂程度都有所降低,但还是需要大量计算,这对于通用处理器来说仍是一个挑战。在其通用形式中,深层NN模型由多层神经元集组成。在一个全连接网络的每一层内,每个神经元nij 都需要计算每个输入与相关权重系数Wij 的乘积之和(图2)。

da601c62-4a26-11ed-a3b6-dac502259ad0.png

图2:通过NN进行推理所需的计算次数会造成庞大的计算工作量。(图片来源:MicrochipTechnology)

图2中没有显示激活函数和类似函数带来的额外计算要求。激活函数通过将负值映射为零,将大于1的值映射为1来修改每个神经元的输出。每个神经元nij 的激活函数的输出作为下一层i+1的输入,以此类推直至每一层。NN模型的输出层最终产生一个输出向量,代表原始输入向量(或矩阵)对应于监督学习过程中使用的某一个类(或标签)的概率。相比上图所示具有代表性的通用NN架构,有效的NN模型是由大得多、复杂得多的架构来构建的。例如,用于图像对象检测的典型卷积NN(CNN) 以分段方式应用这些原理,扫描输入图像宽度、高度和颜色深度,从而生成一系列最终会产生输出预测向量的特征图(图3)。

da94f112-4a26-11ed-a3b6-dac502259ad0.png

图3:用于图像对象检测的CNN会在许多层中牵涉到大量神经元,这对计算平台提出了更高的要求。(图片来源:Aphex34CC BY-SA 4.0)

用FPGA加速NN数学

虽然在边缘执行推理模型的方案不断涌现,但很少有方案能够提供实际的边缘高速推理所需的最佳灵活性、性能和能效组合。在现有的边缘AI替代品中,FPGA特别有效,因为它们可执行基于硬件的高性能计算密集型工作,同时功耗相对较低。尽管FPGA优势突出,但由于传统的开发流程有时会让没有丰富FPGA经验的开发人员望而生畏,舍弃FPGA。为了有效实施通过NN框架生成的NN模型的FPGA,开发人员需要了解将模型转换为寄存器传输语言 (RTL)、设计综合和最终审定之间的细微差别,并需要制定具体的设计阶段路线,从而做到优化实施(图4)。

dad21e7a-4a26-11ed-a3b6-dac502259ad0.png

图4:为了在FPGA上实现NN模型,开发人员即便是现在还需要了解如何将其模型转换为RTL,并执行传统的FPGA工作流程。(图片来源:Microchip Technology)

凭借其PolarFire FPGA、专用软件和相关知识产权 (IP),Microchip Technology提供了一种解决方案,让没有FPGA经验的开发人员也能广泛地使用高性能、低功耗边缘推理。PolarFire FPGA采用先进的非易失性工艺技术制造,旨在最大限度地提高灵活性和性能,同时将功耗降至最低。除了用于通信和输入/输出 (I/O) 的大量高速接口外,它们还具有深厚的FPGA结构,能够使用软IP内核支持高级功能,具体包括RISC-V处理器、高级内存控制器和其他标准接口子系统(图5)。

db07a87e-4a26-11ed-a3b6-dac502259ad0.png

图 5:Microchip Technology 的 PolarFire 架构提供了一种深度结构,旨在支持高性能设计要求,包括实施计算密集型推理模型。(图片来源:Microchip Technology)

PolarFire FPGA架构提供了一套广泛的逻辑元件和专用功能块,通过PolarFireFPGA系列的不同器件获得各种不同的容量支持,具体包括MPF100T、MPF200T、MPF300T和MPF500T系列(表1)。

dba82b46-4a26-11ed-a3b6-dac502259ad0.png

表1:PolarFire系列包括多种FPGA结构特性和容量。(表格来源:Digi-Key Electronics,基于Microchip Technology的PolarFire数据表)

在特别令人关注的推理加速功能中,PolarFire架构包括一个专用数学块,提供一个具有预加法器的18位 × 18位有符号乘法累加函数(MAC)。内置的点积模式使用一个数学块来执行两个8位乘法运算,通过利用模型量化对精度的影响可以忽略这一优势,提供了一种可提高容量的机制。除了能加快数学运算外,PolarFire架构还有助于缓解在通用架构上实施推理模型时遇到的存储器拥堵问题,例如用来保存在NN算法执行过程中创建的中间结果的小型分布式存储器。另外,NN模型的权重值和偏置值可以存储在一个系数为16深 x 18位的只读存储器(ROM) 中,这种存储器通过位于数学块附近的逻辑元件构建。结合其他PolarFire FPGA结构特性,数学块为Microchip Technology更高级别的CoreVectorBlox IP奠定了基础。这将作为一个灵活的NN引擎,能够执行不同类型的NN。除了一组控制寄存器外,CoreVectorBlox IP还包括三个主要功能块:

微控制器:一个简单的RISC-V软处理器,可从外部存储器读取Microchip固件二进制大对象 (BLOB) 和用户特定型NN BLOB文件。通过执行固件BLOB的指令来控制CoreVectorBlox的整体运算。

矩阵处理器 (MXP):这是一种由8个32位算术逻辑单元 (ALU) 组成的软处理器,旨在使用逐元素张量运算对数据向量执行并行运算,包括加法、减法、xor、移位、mul、dotprod等,并根据需要使用8位、16位和32位混合精度。

CNN加速器:使用通过数学块实现的二维MAC函数阵列来加速MXP运算,运算精度为8位。

一个完整的NN处理系统将包括CoreVectorBloxIP块、存储器、存储器控制器和主机处理器,如微软RISC-V (Mi-V) 软件处理器内核(图6)。

dbbcd6b8-4a26-11ed-a3b6-dac502259ad0.png

图6:CoreVectorBlox IP块与Microchip的Mi-V RISC-V微控制器等主机处理器配合,实现NN推理模型。(图片来源:Microchip Technology)

在视频系统实施过程中,主机处理器将从系统存储器加载固件和网络BLOB,并将其复制到双数据速率 (DDR) 随机存取存储器 (RAM) 中供CoreVectorBlox块使用。当视频帧到达时,主机处理器将其写入DDR RAM,并向CoreVectorBlox块发出信号,以开始图像处理。在主机运行网络BLOB中定义的推理模型后,CoreVectorBlox块将结果(包括图像分类)写回DDR RAM中,供目标应用程序使用。

开发流程简化了NN FPGA实施

Microchip使开发人员避开了在PolarFire FPGA上实施NN推理模型的复杂性。NN模型开发人员无需处理传统FPGA流程的细节,而是像往常一样使用其NN框架,并将生成的模型加载到Microchip Technology的VectorBlox 加速器软件开发工具包 (SDK) 中。SDK生成所需的一组文件,包括正常FPGA开发流程所需的文件和上文提到的固件和网络BLOB文件(图7)。

dc0a6568-4a26-11ed-a3b6-dac502259ad0.png

图 7:VectorBlox Accelerator SDK 管理在 FPGA 上的 NN 模型实施细节,自动生成设计并运行基于 FPGA 的推理模型所需的文件。(图片来源:Microchip Technology)

由于VectorBlox Accelerator SDK流程将NN设计置于在FPGA中实施的NN引擎之上,因此不同的NN可以在同一FPGA设计上运行,而无需重复FPGA设计综合流程。开发者为生成的系统创建C/C++代码,并能在系统内快速切换模型,或使用时间切片同时运行模型。

VectorBlox Accelerator SDK将Microchip Technology Libero FPGA设计套件与NN推理模型开发的全套功能融为一体。除了模型优化、量化和校准服务之外,SDK还提供了一个NN仿真器,能让开发人员在FPGA硬件实施中使用其模型之前用相同的BLOB文件进行模型评估(图8)。

dc887746-4a26-11ed-a3b6-dac502259ad0.png

图8:VectorBlox Accelerator SDK提供了一套全面的服务,旨在优化由框架生成的推理模型的FPGA实施。(图片来源:Microchip Technology)

VectorBlox Accelerator SDK支持采用开放神经网络交换 (ONNX) 格式的模型,以及来自包括TensorFlow、Caffe、Chainer、PyTorch和MXNET在内的多种框架的模型。可支持的CNN架构包括MNIST、MobileNet版、ResNet-50、Tiny Yolo V2和Tiny Yolo V3。Microchip正在努力扩大支持范围,将大多数网络纳入预训练模型的开源式OpenVINO工具包开放模型动物园中,包括Yolo V3、Yolo V4、RetinaNet和SSD-MobileNet等。

视频套件演示FPGA推理

为帮助开发人员快速启动智能嵌入式视觉应用开发,MicrochipTechnology提供了一个全面的样例应用,设计用于在该公司的MPF300-VIDEO-KIT PolarFireFPGA视频和成像套件和参考设计上运行。基于Microchip MPF300T PolarFire FPGA,该套件电路板结合了双摄像头传感器、双数据速率4 (DDR4) RAM、闪存、电源管理和各种接口(图9)。

dcbd6794-4a26-11ed-a3b6-dac502259ad0.png

图9:MPF300-VIDEO-KIT PolarFire FPGA视频和成像套件及相关软件能让开发人员在智能嵌入式视觉应用中快速启动基于FPGA的推理。(图片来源:Microchip Technology)

该套件附带一个完整的Libero设计项目,用于生成固件和网络BLOB文件。将BLOB文件编程到板载闪存中后,开发人员点击Libero中的运行按钮即可开始演示,处理来自摄像头传感器的视频图像,并将推理结果在显示屏上显示(图10)。

dd01842e-4a26-11ed-a3b6-dac502259ad0.png

图10:Microchip Technology PolarFire FPGA视频和成像套件演示了如何设计和使用围绕Microchip CoreVectorBlox NN引擎构建的智能嵌入式视觉系统的FPGA实施。(图片来源:Microchip Technology)

对于每个输入视频帧,基于FPGA的系统会执行以下步骤(步骤编号与图10相关)。

从相机中加载一帧画面

将帧存储在RAM中

读取RAM中的帧

将原始图像转换为RGB、平面化RGB并将结果存储在RAM中。

Mi-V soft RISC-V处理器启动CoreVectorBlo x引擎,从RAM中检索图像,进行推理并将分类概率结果存储回RAM中。

Mi-V使用结果创建一个包含边界框、分类结果和其他元数据的叠加帧,并将该框架存储在RAM中。

原始帧与叠加帧混合并写入HDMI显示屏。

该演示支持Tiny Yolo V3和MobileNet V2模型加速,但需要开发人员改动少许代码,将模型名称和元数据添加到包含两个默认模型的现有列表中,即可使用上述方法运行其他SDK支持的模型。

结论

NN模型等人工智能算法通常会施加计算密集型工作负载,这需要比通用处理器更强大的计算资源。虽然FPGA能够很好地满足推理模型执行的性能和低功耗要求,但传统的FPGA开发方法可能会很复杂,往往导致开发人员转向不太理想的解决方案。如图所示,使用Microchip Technology的专用IP和软件,没有FPGA经验的开发人员也能实施基于推理的设计,更好地满足性能、功耗以及设计进度要求。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1627

    文章

    21685

    浏览量

    602323
  • 边缘AI
    +关注

    关注

    0

    文章

    90

    浏览量

    4964

原文标题:用FPGA构建边缘AI推理应用很难?这样做,变简单!

文章出处:【微信号:得捷电子DigiKey,微信公众号:得捷电子DigiKey】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    如何通过FPGA和软件开发工具包(SDK)创建边缘AI应用

    边缘推理处理器实现人工智能(AI)算法的设计人员不断需要降低功耗和开发时间,即使处理需求不断增加。现场可编程门阵列(FPGA)提供了速度和功率效率的有效组合,用于实现
    的头像 发表于 02-21 11:57 4675次阅读
    如何通过<b class='flag-5'>FPGA</b>和软件开发工具包(SDK)创建<b class='flag-5'>边缘</b><b class='flag-5'>AI</b>应用

    利用 FPGA 快速路径构建高性能、高能效边缘 AI 应用

    。现场可编程门阵列 (FPGA) 为实施边缘 AI所需的神经网络 (NN) 推理引擎提供了特别有效的速度和效率效率组合。然而,对于不熟悉 FPGA
    的头像 发表于 10-03 14:31 962次阅读
    <b class='flag-5'>利用</b> <b class='flag-5'>FPGA</b> 快速路径<b class='flag-5'>构建</b>高性能、高能效<b class='flag-5'>边缘</b> <b class='flag-5'>AI</b> 应用

    边缘AI“金矿”:PC的智能和感知,Lattice sensAI有了新方案

    边缘计算的FPGA硬件和设计软件解决方案,针对边缘智能的莱迪思sensAI也更新到了4.1版本。最近,莱迪思半导体亚太区资深市场开拓经理林国松,就莱迪思最新的
    的头像 发表于 11-26 10:14 3266次阅读
    <b class='flag-5'>边缘</b><b class='flag-5'>AI</b>“金矿”:PC的智能和感知,Lattice sensAI有了新<b class='flag-5'>方案</b>

    超低功耗FPGA解决方案助力机器学习

    本帖最后由 曾12345 于 2018-5-23 15:49 编辑 全新的毫瓦级功耗FPGA解决方案为机器学习推理在大众市场物联网应用中实现快速部署创造机遇。1. 将AI加速部署
    发表于 05-23 15:31

    硬件帮助将AI移动到边缘

    FPGA器件可能适用于边缘应用上的AI。(来源:Lattice Semi)“这类FPGA非常适合这些非视觉的低端传感器处理应用,”莱迪思半导体部门和
    发表于 05-29 10:38

    EdgeBoard FZ5 边缘AI计算盒及计算卡

    ` 随着应用场景的多样化,利用人工智能技术在边缘侧部署一系列创新应用解决方案,对企业传统的业务形态进行升级,加速业务增长,增强竞争优势,起着至关重要的作用。 在市场需求和产业趋势的推动下,米尔
    发表于 08-31 14:12

    如何使用ECP5FPGA解决网络边缘应用设计挑战

    的显着领先优势,ECP5 FPGA是满足新兴AI市场上多元需求的理想选择。例如,ECP5 FPGA中的DSP能够以相比GPU浮点运算更低的功耗/MHz来进行定点运算。这些特性为功耗要求严苛的网络
    发表于 10-21 11:53

    AI遇上FPGA会产生怎样的反应

    是人工智能大跃进的基础,在线下模型训练中Xeon-Phi、GPU等发挥着巨大的作用,而在线上的推理任务中,浪潮FPGA深度学习加速解决方案则能够实现7倍以上的能效比提升。 卷积网络之父、Facebook
    发表于 09-17 17:08

    嵌入式边缘AI应用开发指南

    保驾护航。下面让我们来了解如何不借助手动工具或手动编程来选择模型、随时随地训练模型并将其无缝部署到TI处理器上,从而实现硬件加速推理。图1: 边缘AI应用的开发流程第1步:选择模型边缘
    发表于 11-03 06:53

    嘉楠勘智K510开发板简介——高精度AI边缘推理芯片及应用

    随着人工智能应用的不断普及,各种行业应用对于算力的需求不断增加。从当前提供AI加速运算的解决方案来看,在云端仍然以GPU方案为主,在终端领域,使用边缘
    发表于 11-22 15:52

    索尼投资树莓派,共同开发边缘 AI 解决方案

    索尼半导体解决方案(SSS)今天发布新闻稿,宣布和树莓派公司签署战略协作框架,持有后者的少数股权,共同开发边缘人工智能(Edge AI解决方案。IT之家翻译索尼新闻稿内容如下:“公司
    发表于 04-13 15:55

    基于FPGA嵌入式AI解决方案的百度EdgeBoard

    EdgeBoard是基于FPGA打造的嵌入式AI解决方案,能够提供强大的算力,并支持定制化模型,适配各种不同的场景,并大幅提高设备的AI推理
    发表于 03-13 11:23 1025次阅读

    边缘AI推理将覆盖60%设备,莱迪思FPGA+sensAI 4.1组合拳如何打?

    ABI的研究调查表明,预计到2024年设备端的AI推理功能将覆盖近60%的设备。FPGA作为实现边缘AI的技术方式之一受到了青睐。要知道
    的头像 发表于 08-12 16:39 2564次阅读
    <b class='flag-5'>边缘</b><b class='flag-5'>AI</b><b class='flag-5'>推理</b>将覆盖60%设备,莱迪思<b class='flag-5'>FPGA</b>+sensAI 4.1组合拳如何打?

    Microchip推出针对智能边缘设计的PolarFire FPGA和SoC解决方案堆栈

    Microchip推出针对智能边缘设计的定制PolarFire FPGA和SoC解决方案堆栈,以加快开发速度,同时推动FPGA的采用。 为了加快智能
    的头像 发表于 10-26 18:09 1361次阅读

    利用内存及存储构建边缘策略

    利用内存及存储构建边缘策略
    的头像 发表于 11-23 09:04 315次阅读
    <b class='flag-5'>利用</b>内存及存储<b class='flag-5'>构建</b><b class='flag-5'>边缘</b>策略