基于SoC FPGA的边缘人工智能计算系统构架

文档序号:1567253 发布日期:2020-01-24 浏览:18次 >En<

阅读说明:本技术 基于SoC FPGA的边缘人工智能计算系统构架 (Edge artificial intelligence computing system framework based on SoC FPGA ) 是由 詹宁斯·格兰特 *** 于 2019-09-17 设计创作,主要内容包括:一种基于SoC FPGA的边缘人工智能计算系统构架,包括MCU子系统和FPGA子系统,所述FPGA子系统包括:加速器,用于对人工智能算法进行加速运算;以及共享存储器,用作所述加速器与所述MCU子系统的接口;其中,所述MCU子系统向所述共享存储器上传待计算的数据,并取回运算结果;所述加速器独立地从所述共享存储器读取数据进行运算,并写回运算结果。该系统构架具有硬件面积小、功耗低、运算性能高和易用性强的优点,而且设计流程简单、灵活。(The utility model provides an edge artificial intelligence computing system framework based on SoC FPGA, includes MCU subsystem and FPGA subsystem, the FPGA subsystem includes: the accelerator is used for carrying out acceleration operation on the artificial intelligence algorithm; and a shared memory for interfacing the accelerator with the MCU subsystem; the MCU subsystem uploads data to be calculated to the shared memory and retrieves an operation result; the accelerator independently reads data from the shared memory for operation and writes back operation results. The system framework has the advantages of small hardware area, low power consumption, high operational performance and strong usability, and the design flow is simple and flexible.)

基于SoC FPGA的边缘人工智能计算系统构架

技术领域

本发明涉及人工智能技术领域,尤其涉及一种基于SoC FPGA的边缘人工智能计算系统构架。

背景技术

随着人工智能(AI)技术的发展和广泛应用,对不同场景下的人工智能计算提出了越来越大的挑战。人工智能计算的应用从一开始的云端逐渐扩展到边缘端,例如物联网(IoT)。边缘端是指靠近物或数据源头的一侧,例如物联网的边缘端是大量的传感器和摄像头。

边缘人工智能计算系统既要满足一定的性能要求又需要满足面积小、功耗低的需求。与此同时,多样的边缘应用算法对人工智能计算系统的易用性也是提出了很高要求。

在现有技术中,其中一种方案是采用纯微控制器单元(MCU)提供固定的硬件结构。该方案具有面积小、功耗低的特点,使用方便但是计算性能低。另外一种方案采用全定制化硬件。该方案可以满足计算性能的要求,但是设计成本高、周期长、风险大,并且易用性极差。基于FPGA的高层次综合平台(high-level synthesis)可以快速地将特定算法在FPGA中实现,易用性很好,但是需要较大规模的FPGA,无法达到人工智能边缘应用的面积和功耗要求。

因此,如何对特定的人工智能算法简单迅速地定制出高效的硬件结构并实现整个算法也是巨大的挑战。

发明内容

本申请所要解决的技术问题在于,针对现有技术中边缘人工智能计算的系统中的至少一个缺陷,提供一种基于SoC FPGA的边缘人工智能计算系统构架。该系统构架具有灵活、高效的优点,可使边缘人工智能算法的开发者快速简便地在SoC FPGA上实现低成本、高性能的计算。

为了解决上述技术问题,本申请提供了一种基于SoC FPGA的边缘人工智能计算系统构架,包括MCU子系统和FPGA子系统,所述FPGA子系统包括:加速器,用于对人工智能算法进行加速运算;以及共享存储器,用作所述加速器与所述MCU子系统的接口;其中,所述MCU子系统向所述共享存储器上传待计算的数据,并取回运算结果;所述加速器独立地从所述共享存储器读取数据进行运算,并写回运算结果。

另一方面,本申请还提供了一种用于上述基于SoC FPGA的边缘人工智能计算系统构架的编译方法,包括:获取人工智能模型;对所述人工智能模型的算法进行优化,从而获得优化算法;产生定制加速器;根据加速器功能,将所述优化算法映射为MCU指令集以及对所述加速器的操作指令,并生成软件二进制代码;以及根据加速器功能,通过FPGA编译将加速器IP核和MCU生成硬件系统。

又一方面,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质存储计算机指令,所述计算机指令使得计算机执行上述的编译方法。

实施本发明实施例,具有如下有益效果:

1.本申请通过MCU子系统与FPGA子系统相互配合,在FPGA中提供可定制的加速器,实现对人工智能算法的加速,一方面可以降低系统的功耗和面积,另一方面还保证了系统具有足够高的计算性能。

2.本申请通过共享存储器来实现加速器和MCU子系统之间的接口,保证加速器对MCU提供兼容的统一的数据通路,同时也减少了数据搬运,更加快了加速器的数据存取速度。

3.在本申请中,加速器功能被加入基于MCU的人工智能编译工具链,在编译过程中进行匹配和调用,极大地增强了该系统构架的易用性。

附图说明

为了更清楚地说明本申请或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请的实施例中一种基于SoC FPGA的边缘人工智能计算系统构架方框图;

图2为图1中的加法器的一个实施例结构示意图;

图3为图1中的加法器的另一个实施例结构示意图;

图4为图1中的共享存储器的一个实施例结构示意图;

图5为图1中的共享存储器的另一个实施例结构示意图;

图6为本申请的实施例中的一种编译方法流程图;

图7为本申请的基于SoC FPGA的边缘人工智能计算系统连接到云通信网络的各种系统的示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

在本说明书及权利要求书中,除非另有明确说明,“一”、“一种”或没有数量限定的情形,是指包括单数和复数的情况。而且,为了方便读者阅读,在说明书中可能使用标题或者子标题,这并不会影响本发明的保护范围。为了方便,有些词语可能使用了加粗、下划线、斜体或引号等。对于同样的内容,不管是否使用了加粗、下划线、斜体或引号等,其含义和范围都是一样的,这样的处理并不会影响词语的范围和含义。另外,下面将对本发明中使用的一些术语做具体说明。

通常来说,本申请中使用的术语具有本领域的常规含义。除非明确说明,本专利中所有的科学和技术术语具有所属领域技术人员所理解的常规含义。应理解,同一个事物可能用不同的方式或语言来描述,因此本专利中可能会使用近义词或变换语言来描述同一个事物,这并不影响本专利的保护范围。

在本申请中,可能会使用“包括”、“包含”、“具有”、“带有”、“设有”等词语,这些词应该理解为开放式的范围,即包括但是不限于。

通常来说,“多个”是指两个及以上。

系统构架

图1为本申请的实施例中一种基于SoC FPGA的边缘人工智能计算系统构架方框图。本申请提出将SoC FPGA中的FPGA部分作为人工智能指令加速器,并无缝接入MCU系统,从而总体形成带可定制加速器的SoC系统。而相应的加速器功能被加入基于MCU的人工智能编译工具链,在编译过程中进行匹配和调用。

该系统构架包括MCU子系统10和FPGA子系统20。FPGA子系统20中一部分资源被用来实现对人工智能算法的加速运算功能,该功能是针对每一个算法应用可定制的。这样一个特定算法就可以由MCU与加速器共同实现。

所述FPGA子系统20包括:加速器11,用于对人工智能算法进行加速运算;以及共享存储器12,用作所述加速器11与所述MCU子系统20的接口。其中,所述MCU子系统20向所述共享存储器12上传待计算的数据,并取回运算结果;所述加速器11独立地从所述共享存储器12读取数据进行运算,并写回运算结果。

仅仅通过将关键的计算下载到加速器中,本申请的系统构架可以在最低的功耗/最小的面积条件下,实现最大的加速。本申请的系统构架也考虑到了易用性的要求。本申请的系统构架不但成本低,而且还可以在无需专业软件的前提下,为算法/软件开发人员提供无缝的高水平用户接口。

具体地,所述加速器11为一个或多个。加速器11可以有各种灵活的功能与实现。例如,如图2所示,在一个实施例中,加速器30可以是由多个DSP模块组成高性能并行卷积运算,包括多个乘法器31和多个加法器32。在另一个实施例中,如图3所示,加速器40也可以是由少个或单个DSP进行多时钟周期累加卷积运算,包括一个乘法器41和一个循环累加器42。

所述共享存储器12与所述加速器11一一对应。每个加速器11与MCU子系统20的接口都是通过与MCU子系统共享存储实现的。如图1所示,所述MCU子系统20包括:MCU 21、内存22、输入输出接口23、总线25和/或外设24。MCU 21向共享存储器12上传待计算的数据,并取回运算结果。加速器11独立地从该共享存储器12读取数据进行运算,并写回运算结果。该共享存储器12对MCU 22和加速器11可以有各自的地址空间或索引方法。

进一步地,所述共享存储器12为所述FPGA子系统10中的寄存器或多端口内存模块。例如,如图4所示,在一个实施例中,共享存储器50包括多路选择器51和寄存器52。如图5所示,在另一个实施例中,共享存储器60包括双端口内存模块61。共享存储器还可以为其他形式的存储器,在此并不限制。

所述FPGA子系统10包括FPGA芯片。FPGA子系统内除加速器11和共享存储器12外,也可以存在其他功能模块,在此并不限制。

编译方法

图6为本申请的实施例中的一种编译方法流程图。编译工具链可以看作是对现有基于MCU的人工智能工具链的扩展。人工智能模型及算法被优化后,确定加速器功能,一方面通过FPGA编译生成硬件系统,另一方面将算法映射为MCU指令集以及对加速器的操作,生成软件二进制代码。

具体地,该编译方法,包括以下步骤:

S11,获取人工智能模型。一般可以通过读取人工智能建模软件的结果来获取。

S12,对所述人工智能模型的算法进行优化,从而获得优化算法。算法级的优化主要针对深度学习模型本身,利用诸如超参数设置、网络结构裁剪、量化等方法来减小模型大小和计算量,从而加速推理过程。其中提到的超参数设置、网络结构裁剪、量化都可以作为模型算法优化算法的例子。

S13,产生定制加速器。在确定加速器的功能时,可考虑特定人工智能算法的特性(如数据位宽,常用操作等等),以及给定的硬件资源限制等因素,给出最佳的平衡方案。与加速器功能对应的IP核被选定/配置,并加入到FPGA硬件设计中。

S14,根据加速器功能,将所述优化算法映射为MCU指令集以及对所述加速器的操作指令,并生成软件二进制代码。

S15,根据加速器功能,通过FPGA编译将加速器IP核和MCU生成硬件系统。

进一步地,在一个实施例中,所述根据加速器功能,将所述优化算法映射为MCU指令集以及对所述加速器的操作指令包括:

通过编译器读取并分析所述人工智能模型的算法;以及

提取可加速部分交由加速器实现并将剩下的部分交由MCU的指令集实现。

进一步地,所述加速器功能可以被表示为MCU扩展指令集或者被MCU视作外设功能。

作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现如上述实施例中所述的跨系统多线程节能方法。

例如,所述电子设备可以实现如图6中所示的步骤:S11,获取人工智能模型。S12,对所述人工智能模型的算法进行优化,从而获得优化算法。S13,产生定制加速器。S14,根据加速器功能,将所述优化算法映射为MCU指令集以及对所述加速器的操作指令,并生成软件二进制代码。S15,根据加速器功能,通过FPGA编译将加速器IP核和MCU生成硬件系统。

图7为本申请的基于SoC FPGA的边缘人工智能计算系统连接到云通信网络的各种系统的示意图。示意图600示出了AI服务器608、通信网络602、交换网络604、因特网650、以及便携式电子设备613-619。在一个方面,基于SoC FPGA的边缘人工智能计算系统架构可以用在AI服务器、便携式电子设备和/或交换网络中。网络或云网络602可以是广域网(“WAN”)、城域网(“MAN”)、局域网(“LAN”)、卫星/地面网络或广域网、城域网和局域网的组合。应当注意,即使向示意图600中添加或从示意图600中移除一块或多块(电路或元件),本发明的示例性实施例的基本概念也不会改变。

网络602包括多个网络节点(图6未示出),其中每个节点可包括移动性管理实体(“MME”)、无线网络控制器(“RNC”)、服务网关(“S-GW”)、分组数据网络网关(“P-GW”)或归属代理,以提供各种网络功能。网络602耦合到互联网650、AI服务器608、基站612和交换网络604。在一个实施例中,服务器608包括机器学习计算机(“MLC”)606。

可被称为分组核心网的交换网络604包括能够提供无线接入通信的小区站点622-626,例如3G(第三代)、4G或5G蜂窝网络。在一个示例中,交换网络604包括基于IP和/或多协议标签交换(“MPLS”)的网络,该网络能够在开放系统互连基本参考模型(“OSI模型”)层操作,用于客户端和网络服务器之间的信息传输。在一个实施例中,交换网络604通过蜂窝和/或无线网络在地理区域上与多个用户和/或移动台616-620逻辑耦合。应当注意,地理区域可以指校园、城市、大都市、国家、大陆等。

基站612,也称为小区站点、节点B或基站,包括能够耦合到各种用户设备(“UE”)和/或电子用户设备(“EUE”)的无线电塔。术语UE和EUE是指类似的便携式设备,这些词可互换使用。例如,UE或PED可以是经由无线通信的便携式电话615,笔记本电脑617,

Figure BDA0002204060330000071

616,平板电脑和/或

Figure BDA0002204060330000073

619。便携式设备也可以是智能手机,如

Figure BDA0002204060330000072

等。在一个示例中,基站612通过有线和无线通信网络促进诸如便携式手持设备613-619的移动设备之间的网络通信。应当注意,基站612可以包括附加的无线电塔以及其他陆地交换电路。

互联网650是使用传输控制协议/因特网协议(“TCP/IP”)的计算网络,为地理上分隔的设备提供通信链接。在一个示例中,互联网650经由***632耦合到供应商服务器638和卫星网络630。在一个例子中,卫星网络630可以提供多种功能,如无线通信以及全球定位系统(“GPS”)。在一个方面,具有DRPC的分区PSD可用于所有适用的设备,例如但不限于智能手机613-619、卫星网络630、汽车613、AI服务器608、企业607和家庭620。

上述描述涉及各种模块。这些模块通常包括硬件和/或硬件与软件的组合(例如固化软件)。这些模块还可以包括包含指令(例如,软件指令)的计算机可读介质(例如,永久性介质),当处理器执行这些指令时,就可以执行本发明的各种功能性特点。相应地,除非明确要求,本发明的范围不受实施例中明确提到的模块中的特定硬件和/或软件特性的限制。作为非限制性例子,本发明在实施例中可以由一种或多种处理器(例如微处理器、数字信号处理器、基带处理器、微控制器)执行软件指令(例如存储在非永久性存储器和/或永久性存储器)。另外,本发明还可以用专用集成电路(ASIC)和/或其他硬件元件执行。需要指出的是,上文对各种模块的描述中,分割成这些模块,是为了说明清楚。然而,在实际实施中,各种模块的界限可以是模糊的。例如,本文中的任意或所有功能性模块可以共享各种硬件和/或软件元件。又例如,本文中的任何和/或所有功能模块可以由共有的处理器执行软件指令来全部或部分实施。另外,由一个或多个处理器执行的各种软件子模块可以在各种软件模块间共享。相应地,除非明确要求,本发明的范围不受各种硬件和/或软件元件间强制性界限的限制。

以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。

12页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:面向物端数据处理的嵌入式智能计算机架构

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!