如何克服边缘设备硬件的加速障碍? 易灵思FPGA有妙招!

admin 04-10

 

前  言

 

在之前的文章中,针对在边缘运行机器学习算法的应用场景,我们确定了FPGA在可重配置性、功耗、尺寸、速度和成本方面超越其它 AI 芯片组的许多方式。此外,还了解了与微架构无关的RISC-V指令集(ISA)如何与FPGA 的架构灵活性无缝结合。然而,明显缺乏中端、成本效益的FPGA及其不够直接的设计流程是个主要瓶颈——完全定制的硬件描述语言(HDL)实现所需的软件技能很稀缺,且通常伴随陡峭的学习曲线。

 

易灵思基于创新量子计算结构的FPGA填补了这一空白,该结构由称为可交换逻辑和路由(XLR)单元的可重新配置块(可用作逻辑或路由)组成;它重新思考了传统设计中,逻辑元素(LE)和路由资源的固定比例。这允许在小巧的器件封装中使用高密度结构,其中FPGA的任何部分都得到充分利用。该平台的潜力足以解决当前边缘设备面临的典型障碍:功耗、延迟、成本、尺寸及易开发性。

 

易灵思FPGA最引人注目的特点可能是围绕它构建的生态系统和先进的工具流,它们降低了开发难度,使设计师能够使用相同的芯片轻松的在边缘实现人工智能——从原型到量产。易灵思 采用了RISC-V,从而允许用户在软件中创建应用程序和算法——利用此 ISA 的易编程性,而不受ARM等专用IP核的限制。由于这一切都是通过灵活的FPGA 架构完成的,因此用户可以在硬件上大幅加速。易灵思 提供对底层和更复杂的自定义指令加速的支持。其中一些技术包括 TinyML 加速器和预定义的硬件加速器模块。通过这些方法实现硬件加速的同时,又保留了软件定义的模型;且无需掌握VHDL即可对模型进行迭代和优化。这使得边缘设备具有极高速度,且同时在小巧封装内实现了低功耗。本文详细讨论了易灵思平台如何简化整个设计和开发周期,使用户能够利用灵活的FPGA结构来实现可扩展的嵌入式处理解决方案。

 

图片

详情请阅读https://www.eetchina.com/news/202303072866.html 

 

 

  边缘处的障碍

  “拦路虎”的演绎

 

 

图片

 

从大规模无线传感器网络到流媒体传输高分辨率360°沉浸式AR或VR体验,世界上大部分数据都位于边缘。将计算负担从云端分离出来并使其更靠近终端设备的举措,为自动驾驶、沉浸式数字体验、自主工业设施、远程手术等领域为代表的下一代高带宽、超低延迟应用打开了大门。一旦化解了与云之间互传数据的巨大桎梏,应用场景将无远弗届。

 

边缘处这些低延迟、高功耗计算的决定性要素,恰恰构成这些小巧但多能的功率受限设备的重大设计挑战。那么,如何才能设计出一款既能够处理耗电的相关ML算法、又无需投资复杂技术的设备呢?解决方案一直是:实现任何被认为足以运行合适应用程序和算法的硬件(例如CPU、GPU、ASIC、FPGA、ASSP),同时加速执行计算密集型任务以平衡计算时间(延迟)和所用资源(功耗)。

 

与任何创新一样,深度学习的前景随着模型的更新和优化技术的不断变化,需要使用更敏捷的硬件平台,这些平台的变化要几乎能与在其运行的程序一样快,且恰当的规避风险。FPGA的并行处理和灵活性/可重新配置性似乎可以完美地满足这种需求。但要使这些器件可用于主流、大批量应用,需要降低配置和加速 FPGA结构的设计障碍——这是个耗时的过程,通常需要较高的专业度。此外,传统的加速器通常不够精细,且包含通常无法很好扩展的模型的大部分。它们一般功耗还太高,且多半采用专有技术——导致工程师需要重新学习如何使用不同器件厂家特异的平台。

 

 

Sapphire RISC-V 内核

 

 

 

用C/C++在RISC-V核上创建A应用

 

易灵思借助以直观方式向AI/ML社区提供FPGA的解决方案,从而直面所有这些潜在障碍。RISC-V Sapphire内核可完全由用户通过Efinity GUI 配置;这样,用户不必了解在FPGA中实现 RISC-V 的背后所有VHDL,并且可以利用通用软件语言(例如 C/C++)的直接可编程性。这使设计团队能迅捷地在软件中快速生成应用程序和算法。所有必需的外设和总线都可以与Sapphire内核一起指定、配置和实例化,以提供完全配置的SoC(图1)。这种RISC-V能力包括多核(最多四核)支持和 Linux 功能,可为设计人员的FPGA应用提供高性能处理器集群,并能够直接在 Linux 操作系统上运行应用。下一步——硬件加速——通过硬件-软件分区大大简化;一旦设计师在软件中完善了算法,他们就可以逐步在灵活的 易灵思 FPGA结构中加速这一过程。但在我们继续下一步硬件加速之前,了解RISC-V架构的固有优势以及如何在FPGA结构中利用它是很重要的。

 

图片

图 1:Efinity GUI 使设计师能够使用熟悉的编程语言配置其 Sapphire RISC-V核(左)以及所需的外设和总线,以实现完全配置的SoC。此功能扩展到最多四个RISC-V核(右)。

 

 

具有定制指令能力的RISC-V

 

RISC-V架构的独特之处在于它没有定义所有的指令;实际上,它将有些指令留待设计师定义和实现。换句话说,可以创建一个自定义算术逻辑单元(ALU),它会在自定义指令调用时执行任意功能(图 2)。这些自定义指令具有与其余指令相同的架构(例如两个寄存器输入,一个寄存器输出),保证总共可使用八个字节的数据,且其中四个字节可以传回RISC-V。

然而,由于ALU构建在FPGA中,它既可以访问 FPGA数据、也可以从FPGA内提取数据。这允许用户扩展超过8个字节的数据,并使 ALU复杂性提高——访问之前放在FPGA内的数据(例如来自传感器)。就硬件加速而言,拥有任意复杂程度ALU的能力是速度倍增的关键因素。易灵思 已经具备了定制指令的能力,并通过TinyML平台将其适配于AI和ML社区。

 

图片

图2:可以使用RISC-V创建自定义ALU,其中标准配置包括两个四字节宽的源寄存器(rs1 和 rs2)和一个四字节宽的目标寄存器 (rd)。抓取自TinyML 网络研讨会,可向易灵思索取原始图像。

 

以上内容介绍了易灵思XLR结构、低功耗能力、RISC-V支持等针对边缘应用的显著优势,在下一篇文章中,我们将会为大家介绍TinyML AI加速平台,以及深入浅出的讲解如何在FPGA中快速部署您的AI应用,敬请期待!

 

 

 

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