易灵思TinyML平台助力硬件加速

admin 05-21

 

易灵思最新的16nm钛金系列已经逐步量产,通过优化的Quantum架构,具备超低功耗、超高性能、超小封装以及超高密度的特点。无论是针对带宽要求高的视频图像处理应用,还是对性能、功耗要求极高的边缘AI加速应用,均能通过钛金系列FPGA来充分实现客户产品的优势和价值。

目前Ti35 ~ Ti180多款型号已经发布,逻辑资源覆盖35K-176K,全系列支持RISC-V软核,性能可达400-500MHz,针对机器视觉、视频、AI等领域,同样支持MIPI 2.5G硬核与3733Mbps LPDDR4/4x硬核,提供了大带宽的图像接入,视频输出以及高速率、高带宽的存储接口。

 

图片

 

利用钛金系列FPGA,您可以根据下文的TinyML平台介绍,以极高的能效比来部署专用的AI加速应用。

 

TinyML平台

自定义指令库

 

使用TinyML平台进行硬件加速

TinyML 平台简化了硬件加速过程,其中易灵思 采用了 TensorFlow Lite 模型中使用的计算原语,并创建了自定义指令以优化其在FPGA结构中加速器上的执行(图1)。通过该方式,TensorFlow 的标准软件定义模型被吸收进RISC-V中复合体,并被加速到硬件速度水平;充分利用了丰富的开源 TensorFlow Lite 社区资源。使用流行的Ashling工具流简化了整个开发流程,使设置、应用创建和调试成为一个简单直观的过程。

 

图片

图 1:TensorFlow Lite创建标准 TensorFlow 模型的量化版本,并使用函数库让这些模型能在边缘的MCU上运行。易灵思 TinyML采用这些TensorFlow Lite模型,并使用 RISC-V 核的自定义指令功能,在 FPGA 硬件中加速这些模型。

 

许多TinyML平台的自定义指令库都在对易灵思 GitHub 上的开源社区开放,可以从而得以免费访问易灵思 Sapphire 核以及设计和开发高度加速的边缘AI应用所需的一切。

 

图片

点击了解更多 https://www.eetchina.com/news/202303072866.html 

 

加速策略

概述

 

RISC-V核、易灵思 FPGA 结构和丰富的开源TensorFlow社区的结合赋能创造性的加速策略实现,可将其分解为以下几个步骤(图 2):

第 1 步

使用Efinity RISC-V IDE运行 TensorFlow Lite模型

 

第 2 步

使用TinyML加速器

 

第 3 步

用户定义的指令加速器

 

第 4 

硬件加速器模板

如前所述,“第1步”是贯穿Efinity GUI 的标准流程,用户可在其中获取Tensorflow Lite 模型并在 RISC-V 上使用与标准 MCU 完全相同、熟悉的流程在软件中运行它——不必担心无需纠结VHDL。在第1步之后,设计师大概率会发现其正在运行的算法的性能并非最优,因此需要加速。“第2步”涉及硬件-软件分区,用户可以在其中实现TensorFlow Lite 模型中的基本构建块,然后直接单击并拖动以实例化自定义指令,使模型在 Sapphire RISC-V 核上的运行(方式)得到巨大加速。

 

图片

图2:易灵思加速策略

 

用户自定义指令加速器

“第 3 步”支持设计师可在不使用TinyML平台中模板的情况下创建自己的自定义指令,从而允许用户在 RISC-V 核上实施创新、创建加速。

硬件加速器模板

最后,在 RISC-V 上加速所需的基本要素后,“第 4 步”涉及将它们植入带有加速“Socket套接字”的免费 易灵思 SoC 框架中。该量子加速器”Socket”套接字允许用户“指向”数据、检索数据并编辑其内容;例如,对更大数据块执行卷积操作。

 

Sapphire SoC 可用于执行整体系统控制及执行固有顺序型或需要灵活性的算法。如前所述,硬件-软件协同设计允许用户选择是在 RISC-V 处理器中还是在硬件中执行此计算。在这种加速方法中,预定义的硬件加速器”Socket”套接字连接到直接内存访问 (DMA)控制器和用于数据传输和 CPU 控制的 SoC 从接口,可用于人工智能推理之前或之后的预处理/后处理。DMA控制器实现了流畅了外部存储器与设计中其它构建块之间的通信(图3):

 

图片

图 3:边缘视觉 SoC 框架示例图

 

• 将数据帧存储到外部存储器,

• 向/从硬件加速块发送和接收数据,

• 向后处理引擎发送数据。

 

在图像信号处理应用中,这看起来像是让 RISC-V 处理器与像嵌入式软件一样执行 RGB 到灰度的转换,而硬件加速器在FPGA的流水线、流式处理架构中执行Sobel边缘检测、二进制腐蚀(binary erosion)和二进制膨胀(binary dilation)(参见“Edge Vision SoC 用户指南Edge Vision SoC用户指南”)。这可扩展到多相机视觉系统,使用户公司能以极快的速度将其设计转化为产品并进行部署。

 

MediaPipe Face Mesh

用例

 

我们通过下面的案例举例更好地来凸显该过程的简单性。MediaPipe Face Mesh(人脸网格)ML 模型实时估算数百个不同的三维面部特征。易灵思采用此模型并将其部署在以300MHz运行的钛金系列 Ti60 开发套件上。如图 4 所示,RISC-V核上运行的卷积对延迟的影响最大。要注意的是,FPGA 接近 60% 的资源占用率并不能实际反映 ML 模型的大小。实际情况,是因为整个相机子系统都在 FPGA 中实例化,以便实时执行加速基准测试。

 

图片

图 4:在 Ti60 开发套件上运行的 MediaPipe Face Mesh 预训练网络显示了延迟和所用资源。

图 4 源抓取自 TinyML 网络研讨会

 

使用 TinyML 平台的简单自定义指令

创建并运行一个简单、自定义的——两个寄存器输入、一个寄存器输出——卷积指令,显示延迟时间缩短了四到五倍。随着用于加速 ADD、MAXIMUM 和 MUL 函数的自定义指令的应用,可进一步缩短延时。但由于 RISC-V 花费更少的时间执行这些操作,延迟改进会达到一个稳定水(图 5)。

 

图片

图 5:借助为 CONV、ADD、MAXIMUM 和 MUL 函数创建的简单自定义指令可显着缩短延迟。

图 5 源抓取自TinyML网络研讨会

 

使用DMA的复杂指令

生成了一个任意复杂的 ALU 来替换原始原初CONV。此举改变了原始曲线的斜率并再次显著的显着缩短了延迟。然而,由于复杂指令占用了FPGA 内部的更多资源,因此FPGA 的占用率也有所上升。再次强调:资源栏接近 100% 占用率的原因仅仅是因为该FPGA 包含了用于演示目的的整个相机子系统需要值得注意的是:延迟的相对缩短和资源占用率的上升(图 6)。

 

值得指出的是,若切换到更大逻辑规模的FPGA(例如 Ti180),在甚至用不到50% 可用FPGA资源的情况下,就可运行所有这些复杂的指令以实现大规模加速。这些明显的权衡恰恰使工程师能够轻松地可视化FPGA的延迟、功耗和成本/体积之间的取舍。具有严苛的延迟要求但更宽松功耗指标的边缘应用可选择更多的加速设计以显着提高性能。而在功耗严苛的应用中,降频降耗的诉求会抵消提升性能的努力,其间的权衡取舍应可实现以显着降低的功耗获得更适度、划算的性能提升。

 

图片

图 6:采用更大的自定义卷积指令以实现更快加速;但消耗的资源也水涨船高。注意:FPGA几乎被完全占用仅仅是因为该FPGA包含了整个相机子系统,如果 Ti60 只运行 ML 模型,其资源占用将大大降低。

图 6 源抓取自 TinyML 网络研讨会

 

AI/ML 开发的范式转变

简言之,易灵思结合了熟悉的 RISC-V ISA 开发环境,并利用其自定义指令功能在架构灵活的 FPGA 结构中发挥作用。与许多硬件加速器不同,这种方法不需要任何第三方工具或编译器。借助机器指令实现的加速也是细粒度的——这是只有FPGA才可能实现可能带来实际意义的粒度级别。

 

边缘设备可在易灵思 FPGA 的创新设计架构上进行原型设计和部署这一事实意味着该解决方案是面向未来的。可以在熟悉的软件环境中表达新模型和升级的网络架构,并在自定义指令级别实施加速,而只需少量 VHDL工作(带用于引导的可用模板库)。这种程度的硬件-软件分区(其中90% 的模型保留在RISC-V上运行的软件中)支持极快的上市时间。所有这些方法的组合产生了一个专业的解决方案,真正降低了实现边缘设备的进入门槛。设计师现在有世界一流的嵌入式处理功能可用,可通过最先进的工具流访问该功能,并在革命性的易灵思 Quantum 结构上进行实例化。

 

 

 

 

返回列表
Copyright © 2021-2022 粤ICP备20066342号44030502008221