CN116541073A - 基于多镜像fpga的加速器、加速器实现方法、终端设备及计算机可读存储介质 - Google Patents
基于多镜像fpga的加速器、加速器实现方法、终端设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN116541073A CN116541073A CN202210087349.8A CN202210087349A CN116541073A CN 116541073 A CN116541073 A CN 116541073A CN 202210087349 A CN202210087349 A CN 202210087349A CN 116541073 A CN116541073 A CN 116541073A
- Authority
- CN
- China
- Prior art keywords
- mirror
- fpga
- accelerator
- manager
- network
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 155
- 230000006870 function Effects 0.000 claims abstract description 139
- 238000004458 analytical method Methods 0.000 claims description 62
- 230000008569 process Effects 0.000 claims description 44
- 238000013468 resource allocation Methods 0.000 claims description 8
- 238000013507 mapping Methods 0.000 claims description 5
- 230000001133 acceleration Effects 0.000 abstract description 31
- 238000013461 design Methods 0.000 description 30
- 238000012545 processing Methods 0.000 description 19
- 238000004422 calculation algorithm Methods 0.000 description 11
- 238000004891 communication Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 7
- 230000007246 mechanism Effects 0.000 description 6
- 238000011161 development Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 238000011156 evaluation Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 230000007547 defect Effects 0.000 description 3
- 230000009977 dual effect Effects 0.000 description 3
- 238000003062 neural network model Methods 0.000 description 3
- 239000008186 active pharmaceutical agent Substances 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000007405 data analysis Methods 0.000 description 2
- 238000010223 real-time analysis Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000002360 explosive Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 108090000623 proteins and genes Proteins 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/22—Microcontrol or microprogram arrangements
- G06F9/28—Enhancement of operational speed, e.g. by using several microcontrol devices operating in parallel
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及基于多镜像FPGA的加速器、加速器实现方法、终端设备及计算机可读存储介质。加速器包括多镜像FPGA,包括在FPGA的镜像闪存中预存的多个镜像,利用硬件功能抽象方法以函数调用的形式通过时域复用的方式使用多镜像FPGA的硬件资源;离线管理器,与多镜像FPGA相连接,配置多镜像FPGA中的多个镜像和确定多镜像FPGA的功能负载情况;以及在线管理器,与多镜像FPGA相连接,被配置为控制FPGA镜像的切换,以进行FPGA资源的分配,其中,离线管理器和在线管理器被配置为分别调用预设的硬件函数实现多镜像FPGA的对应的硬件功能抽象方法。本发明使上层能够以函数调用的形式使用多镜像FPGA,方便实现加速目标,提高了方案的灵活性与易用性。
Description
技术领域
本发明涉及物联网网关技术领域,尤其涉及一种基于多镜像FPGA的加速器、加速器实现方法、设备以及计算机存储介质。
背景技术
现如今,物联网网关正在成为将传统和下一代设备引入物联网的关键要素。物联网网关对于实现连接至关重要,因为网关充当设备和云之间的桥梁,集成网络协议,帮助管理存储和边缘数据分析,并促进边缘设备和云之间的数据安全流动。随着连接设备数量的指数级增长、数据的蓬勃发展以及数据安全要求的不断提高,如今物联网网关需要支持的功能不断增加。包括处理网络协议和关键数据的安全传输、支持视频分析等。当前一代物联网网关面临硬件升级的压力。
当前第一代物联网网关,即,传统CPU(Central Processing Unit,中央处理器)架构的第一代物联网网关,也就是基于CPU架构的第一代网关加速方案,面临硬件升级的压力。该方案旨在促进通信协议兼容性和设备管理功能,包括:通过一定的设计使用一种可扩展的软件路由器,它可以与多个CPU内核并行处理数据包增大网络数据吞吐量,但该方案中,加速器功能单一,CPU架构下只能加速网络功能,不能或不能显著加速视频分析功能。
第二代物联网网关在传统CPU架构上添加GPU(Graphic Processing Unit,图形处理器),也就是基于CPU-GPU架构的第二代网关加速方案,其作为视频分析加速尽管已经可以满足常规网络功能和视频分析的计算要求。可对于当前具有高级网络功能(如数据加密和解密、数据压缩等)的物联网网关而言,仅仅添加GPU作为视频分析加速的这种方法仍存在许多弊端。例如:现有存在的基于CPU-GPU架构的第二代网关加速方案,通过在第一代加速方案的基础上,基于在GPU上的视频分析神经网络模型,以利用GPU加速框架进一步加速处理网络数据包,可是,在该方案下网关加速器被视为了一个整体,不同功能之间不能共享加速器资源,导致加速器利用率低,且在执行高级软件网络功能会消耗了大部分CPU资源,使得视频分析的数据预处理很少或没有CPU资源,导致GPU利用率处于较低水平。
现有技术中也存在基于FPGA(Field Programmable Gate Array,现场可程序化逻辑门阵列)的网关加速方案,基于FPGA网关加速方案。其中,FPGA作为灵活和可定制的硬件,已经被广泛用作加速器,例如,使用自动化工具来为各种功能生成基于FPGA的定制加速器,包括但不限于:将FPGA资源用于负载CPU的部分工作负载,显著降低CPU资源使用率;在FPGA上可以构建键值(key-value)存储,能够有效提高吞吐量;将视频工作负载的事务执行负载到FPGA提高视频处理速率;在FPGA上实现相关协议以减少CPU的工作量等等。
然而,现有各种基于FPGA的网关加速方案仍然存在如下弊端:1、每种功能需要使用定制FPGA来作为专用硬件加速器,加速器资源不能在不同功能之间共享,不仅导致网关设备整体成本昂贵且还令设备体积臃肿;2、现有多镜像FPGA不能根据需求或设定自动切换不同镜像,缺乏灵活性。
此外,目前的FPGA,例如英特尔MAX10系列FPGA,仅提供手动切换模式。如图4所示,仅提供手动开关SW1和开关SW2,一个开关用于通过CONF IG SEL引脚选择镜像,另一个开关用于通过RU nCONF IG引脚触发重新配置。要完成镜像切换操作,需要手动触发SW1和SW2。这不便于对于FPGA的选择的切换。
发明内容
本发明的主要目的在于提供一种基于多镜像FPGA的加速器、加速器实现方法、终端设备以及计算机存储介质,旨在解决现有技术中存在的基于FPGA的网关加速方案或者基于CPU-GPU架构的第二代网关加速方案存在的弊端,提升网关加速器的性能表现。
为达上述目的,本发明提出了一种基于多镜像FPGA的加速器,所述加速器包括:
多镜像FPGA,所述多镜像FPGA包括在FPGA的镜像闪存中预存的多个镜像,利用硬件功能抽象方法以函数调用的形式通过时域复用的方式使用多镜像FPGA的硬件资源;
离线管理器,所述离线管理器与所述多镜像FPGA相连接,所述离线管理器配置所述多镜像FPGA中的多个镜像和确定所述多镜像FPGA的功能负载情况;以及
在线管理器,所述在线管理器与所述多镜像FPGA相连接,所述在线管理器被配置为控制FPGA镜像的切换,以进行FPGA资源的分配,
其中,所述离线管理器和所述在线管理器被配置为分别调用预设的硬件函数实现所述多镜像FPGA的对应的硬件功能抽象方法。
在一方面,硬件功能抽象方法包括函数名称和相应的实现内存地址之间的函数地址映射,以通过函数调用的方式将所需的镜像加载到配置闪存。
在一方面,所述离线管理器包括镜像库、网络功能镜像决策器和视频分析镜像决策器,所述镜像库中配置并存储有多镜像FPGA的镜像,所述网络功能镜像决策器根据网络方法需求从所述镜像库中选择负载到FPGA的第一镜像,所述视频分析镜像决策器根据视频分析需求从所述镜像库中选择用于视频分析的第二镜像。
在一方面,所述第一镜像和所述第二镜像的数量大于或者等于一。
在一方面,所述在线管理器包括镜像调度器、网络方法进程管理器和视频分析进程管理器,所述镜像调度器用于控制进行FPGA镜像的切换,以在所述网络方法进程管理器和所述视频分析进程管理器之间进行FPGA资源分配。
在一方面,镜像调度器优先为网络功能分配FPGA资源,而将利用剩余的FPGA资源分配以用于视频分析。
在一方面,在现有网络数据包将验证延迟容限时,抢占信号被发送到镜像调度器,当镜像调度器接收到抢占信号时,所述网络方法进程管理器将FPGA镜像切换到网络功能镜像。
本发明还提出一种如上所述的基于多镜像FPGA的加速器实施的加速器实现方法,所述加速器实现方法包括:
通过所述离线管理器配置所述多镜像FPGA的镜像和确定所述多镜像FPGA的功能负载情况;
通过所述在线管理器控制进行FPGA镜像的切换;以及
通过所述离线管理器和所述在线管理器分别调用预设的硬件函数实现所述多镜像FPGA的对应的硬件功能抽象方法,
其中,利用硬件功能抽象方法以函数调用的形式通过时域复用的方式使用多镜像FPGA的硬件资源。
在一方面,通过网络功能镜像决策器和视频分析镜像决策器确定所述多镜像FPGA的功能负载情况。
在一方面,提供镜像调度器控制FPGA镜像的切换,以在网络方法进程管理器和视频分析进程管理器之间进行FPGA资源分配。
本发明还提出一种终端设备,所述终端设备包括:根据如上所述的基于多镜像FPGA的加速器、存储器、处理器,所述加速器被配置为执行如权利要求8至10中任一项所述的加速器实现方法。
本发明还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有加速器实现程序,所述加速器实现程序被处理器执行时实现如上所述的加速器实现方法的步骤。
相比于现有技术中存在的网关加速方案,本发明能够解决现有加速器功能单一且加速器资源不能与其他功能共享,而导致的加速器利用率低和成本昂贵和体积臃肿的问题,提高了加速器的经济性、智能性和小型性。并且,本发明还能够通过硬件功能抽象方法,解决现有加速方案中每种功能需要使用专用的定制FPGA的问题,从而使上层能够以函数调用的形式使用多镜像FPGA,方便实现加速目标,提高了方案的灵活性与易用性。此外,本发明的加速器寸更小、成本效益更高。
本发明为计算密集型视频分析和日益先进的网络功能提供硬件加速器,从而满足功能带来的性能要求,实现物联网网关中的视频分析和网络功能中存在的性能要求和发展趋势并解决现有技术带来的弊端。
附图说明
图1为根据本发明一较佳实施例的基于多镜像FPGA的加速器的系统架构图;
图2为根据本发明一较佳实施例的终端设备硬件运行环境的设备结构示意图;
图3为根据本发明一较佳实施例的加速器实现方法的流程示意图;
图4为现有的通过手动触发进行镜像切换机制的示意图;
图5为根据本发明一较佳实施例的加速器实现方法的多镜像切换机制的示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
下文所述的详细描述旨在描述主题技术的各种配置,而不是旨在仅表示主题技术可以采用的配置。附图并入本文,并且构成详细的说明书的一部分。详细的说明书包括具体的细节,为了提供对主题技术的透彻理解。然而,对于本领域技术人员来说,显而易见的是,主题技术不限于本文所述的具体细节,并且可以使用一个或多个实施例来实施。在一个或多个实例中,结构和组件以框图形式显示,以避免混淆主题技术的概念。本公开的一个或多个实施例由一个或多个图示出和/或结合一个或多个图描述。
术语解释
现场可编程逻辑门阵列(FPGA):目前以硬件描述语言(Verilog或VHDL)描述的逻辑电路,可以利用逻辑合成和布局、布线工具软件,快速地刻录至FPGA上运行。这些可编程逻辑组件可以被用来实现一些基本的逻辑门数字电路(比如与门、或门、异或门、非门)或者更复杂一些的组合逻辑功能。
双/多镜像(Multi/Dual-image):镜像文件是FPGA设计的最终文件,又称bitfile,比特流文件,用于配置FPGA的配置比特流。双镜像指的是在一块FPGA上可以同时存放两份镜像文件,分别运行两套用户设计的组合逻辑门;多镜像指的是在一块FPGA上可以同时存放两份或以上镜像文件,分别运行多套用户设计的组合逻辑门。多镜像FPGA可以在FPGA镜像闪存中预存多个镜像,实现镜像之间的快速切换。这种双/多镜像FPGA的一个典型例子是英特尔公司生产的Max10系列FPGA。
中央处理器(Central Processing Unit/CPU):中央处理器是电子计算器的主要设备之一,计算器中的核心配件。其功能主要是解释计算器指令以及处理计算器软件中的数据。CPU是计算器中重读指令,对指令译码并执行指令的核心基因。CPU有唯一的算术运算单元,可以在很少的循环内完成算术计算。同时,可以保存很多数据在里面。此外,CPU中还包括有复杂的逻辑控制单元,当程序有多个分支的时候,可以通过提供预测分支的能力来降低逻辑运算的复杂度。因此中央处理器能够有效运行指令复杂型程序。
图形处理器(Graphic Processing Unit/GPU):GPU是基于大的吞吐量设计的处理器,其中包括有很多的算术运算单元和很少的缓存。同时GPU支持大量的线程同时运行,如果需要访问同一个数据,缓存会合并这些访问,自然会带来延时的问题。尽管有延时,但是因为其算术运算单元的数量庞大,因此能够达到一个非常大的吞吐量的效果。因此,图形处理器能够有效运行数据复杂型程序。
本发明涉及一种基于多镜像FPGA的加速器,包括:多镜像FPGA、离线管理器和在线管理器,其中,所述离线管理器和所述在线管理器分别与所述多镜像FPGA相连接;所述多镜像FPGA的底层设计和硬件功能抽象方法构成所述加速器的硬件层设计,其中,所述硬件功能抽象方法基于所述离线管理器和所述在线管理器分别进行设计;所述离线管理器和所述在线管理器共同构成所述加速器的软件层设计。
本发明还涉及一种加速器实现方法,应用于如前所述的基于多镜像FPGA的加速器,所述加速器实现方法包括:通过所述离线管理器配置所述多镜像FPGA的镜像和确定所述多镜像FPGA的功能负载情况;通过所述在线管理器控制进行FPGA镜像的切换;通过所述离线管理器和所述在线管理器分别调用预设的硬件函数实现所述多镜像FPGA的对应的硬件功能抽象方法。
本发明还涉及一种终端设备,包括:加速器、存储器、处理器及存储在所述存储器上并可在所述处理器上运行的加速器实现程序,所述加速器实现程序被所述处理器执行时实现如前所述的加速器实现方法的步骤。
本发明还涉及一种计算机存储介质,所述计算机存储介质上存储有加速器实现程序,所述加速器实现程序被处理器执行时实现如前所述的加速器实现方法的步骤。
参照图1所示的根据本发明一较佳实施例的基于多镜像FPGA的加速器的系统架构图,本发明的基于多镜像FPGA的加速器1包括多镜像FPGA101、离线管理器102和在线管理器103,其中,离线管理器和在线管理器分别与所述多镜像FPGA相连接。多镜像FPGA101的底层设计和硬件功能抽象方法模块104构成加速器1的硬件层设计,其中,硬件功能抽象方法模块基于离线管理器和在线管理器分别进行设计。离线管理器102和在线管理器103共同构成所述加速器的软件层设计。
在本实施例中,基于多镜像FPGA的加速器包括硬件层设计与软件层设计,软件层设计包括在线管理器和离线管理器。在硬件层设计部分中,加速器采用多镜像FPGA的底层设计以及硬件功能抽象方法。其中,硬件功能抽象方法旨在解决上层设计时软件程序实现困难、在涵盖FPGA资源负载细节时耗时过多、FPGA供应商特定服务的代码不容易处理等问题。利用本实施方式的加速器,可以使得用户在上层能够以函数调用的形式使用多镜像FPGA,通过函数调用的方式调用硬件资源。此外,多镜像FPGA的底层设计(硬件层设计)涵盖了为解决多镜像FPGA不能自动切换不同镜像的问题的解决方法。
如图1所示,离线管理器102包括:镜像库1021、网络功能镜像决策器1024、视频分析镜像决策器1023,可选的,还包括视频分析需求模块1022和网络方法需求模块。镜像库1021包括视频分析库和网络方法库。在实际部署前,网络功能镜像决策器1024和视频分析镜像决策器1023能够分别根据网络方法需求与视频分析需求选择相应的一个或多个来自于镜像库的镜像。例如,网络功能镜像决策器1024根据网络方法需求从镜像库1021的网络方法库中选择第一镜像,视频分析镜像决策器1023根据视频分析需求从镜像库1021的视频分析库中选择第二镜像,其中,第一镜像和第二镜像的数量大于或者等于一。处理器1001可以用于调用存储器1005中存储的加速器实现程序,并执行以下操作:通过镜像库1021配置并存储多镜像FPGA的镜像;通过网络功能镜像决策器1024和视频分析镜像决策器1023确定所述多镜像FPGA的功能负载情况。
在线管理器103包括镜像调度器1032、网络方法进程管理器1034和视频分析进程管理器1035,可选的,还包括网络实时数据模块1031和视频实时数据模块1033。优选地,镜像调度器1032用于控制进行FPGA镜像的切换,以在网络方法进程管理器1034和视频分析进程管理器1035之间进行FPGA资源分配。在实际部署时,镜像调度器1032能根据实时输入的视频流文件,例如是来自视频实时数据模块1033的视频流文件,以及网络状况,例如是来自网络实时数据模块1031的网络状况,来控制FPGA镜像的切换,将FPGA资源分配给网络功能和视频分析;网络方法进程管理器1034负责对具体数据包的调用与处理;视频分析进程管理器1035负责对具体视频数据的分析与验证。处理器1001可以用于调用存储器1005中存储的加速器实现程序,并执行以下操作通过镜像调度器控制进行FPGA镜像的切换,以在网络方法进程管理器和视频分析进程管理器之间进行FPGA资源分配。
在本实施例中,本发明基于多镜像FPGA的加速器通过对硬件到软件进行的设计,实现了利用多镜像FPGA的特性,使用多镜像FPGA来加速视频分析和网络功能的新型加速器,从而在对网络处理影响最小的情况下最大限度地利用本方案硬件设计的计算能力。此外,本发明基于多镜像FPGA的加速器在软件设计中,具体设计了计算资源能力评估算法和将视频分析等功能负载到方案硬件设计上的高效资源分配算法,使得在视频分析和网络功能上的吞吐量得到显著提高,从而实现对计算密集型视频的实时分析和前沿的网络功能的支持。
参照图2中的根据本发明一较佳实施例的终端设备硬件运行环境。本发明一较佳实施例的终端设备2可以是包含上述基于多镜像FPGA的加速器的终端设备,例如,该终端设备可以是物联网中的网关设备等等。
如图2所示,该终端设备2可以包括:处理器201,例如CPU,通信总线202,用户接口203,网络接口204,存储器205。其中,处理器201通过通信总线202连接到用户接口203、网络接口204、和存储器205,由此通过通信总线202用于实现这些组件之间的连接通信。
用户接口203可以连接客户端,与客户端进行数据通信,用于接收用户的输入和/或提供对用户的输出,用户接口可以包括或者连接至显示屏(例如触摸显示屏)、输入单元(例如鼠标、键盘、手写板)等。可选地,用户接口203还可以包括标准的有线接口、无线接口等。网络接口204可以用于连接后台服务器,与后台服务器进行数据通信,用于通过有线或者无线的方式与网络(例如互联网)相连接,可选的可以包括标准的有线接口、无线接口(如Wi-Fi接口)等。处理器201可以用于调用存储器205中存储的加速器实现程序,并执行加速器实现方法。存储器205可以是高速RAM存储器,也可以是稳定的存储器(non-volatilememory),例如磁盘存储器。存储器205可选的还可以是独立于前述处理器201的存储装置。如图2所示,作为一种计算机存储介质的存储器205中可以包括操作系统2051、网络通信模块2052、用户接口模块2053以及加速器实现程序模块2054。
本领域技术人员可以理解,图2中示出的终端设备结构并不构成对终端设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
基于上述硬件结构,提出本发明加速器实现方法的各实施例。
根据本发明一较佳实施例的加速器实现方法的流程如图3所示,在本实施例中,该加速器实现方法应用于上述的基于多镜像FPGA的加速器。本发明加速器实现方法包括以下步骤。
首先,步骤S10,通过所述离线管理器配置所述多镜像FPGA的镜像和确定所述多镜像FPGA的功能负载情况;而后,步骤S20,通过所述在线管理器控制进行FPGA镜像的切换;最后,步骤S30,通过所述离线管理器和所述在线管理器分别调用预设的硬件函数实现所述多镜像FPGA的对应的硬件功能抽象方法。
步骤S10中,通过所述离线管理器配置所述多镜像FPGA的镜像和确定所述多镜像FPGA的功能负载情况。在本实施例中,加速器基于软件设计中的离线管理器确定哪些功能应该负载到FPGA以及如何预先配置FPGA的镜像,其旨在是将开发人员从耗时的FPGA编程和复杂的FPGA镜像决策中解耦。
在本实施例中,本发明加速器实现方法能够基于加速器为多种功能方法提供硬件资源加速,这意味着多种功能需要共享有限的FPGA资源。因此,本发明加速器实现方法通过加速器时域复用多功能加速机制达成加速器在时域上的复用,即,每个方法都有一个镜像,这些镜像被分别编程到逻辑单元上形成不同的功能模块,根据规定的次序、优先权等,依次加速相应的方法。
进一步地,在步骤S10中,通过所述离线管理器配置所述多镜像FPGA的镜像,可以包括通过所述镜像库配置并存储所述多镜像FPGA的镜像。在本实施例中,加速器为了实现配置多镜像FPGA的镜像,可以由离线管理器实现一个或多个镜像库来预先配置和存储多镜像FPGA的镜像。
进一步地,在步骤S10中,通过所述离线管理器确定所述多镜像FPGA的功能负载情况,可以包括通过所述网络功能镜像决策器和所述视频分析镜像决策器确定所述多镜像FPGA的功能负载情况。为此,离线管理器提供图像库来存储预先配置的图像。在本实施例中,加速器中的离线管理器实现一个或多个网络功能镜像决策器来确定将哪些网络功能负载到FPGA,并设计一个或多个视频分析镜像决策器来确定用于视频分析的神经网络模型镜像。
在本实施例中,步骤S20中限定了通过所述在线管理器控制进行FPGA镜像的切换。加速器基于软件设计中的在线管理器控制FPGA镜像的切换,确定如何在运行时切换镜像,以将FPGA资源分配给网络功能和视频分析,运行时切换适应运行时变化,最大限度地利用硬件资源,目标是最大化FPGA资源利用率。
步骤S20,可以包括通过所述镜像调度器控制进行FPGA镜像的切换,以在所述网络方法进程管理器和所述视频分析进程管理器之间进行FPGA资源分配。在本实施例中,镜像调度器是在线管理器的核心模块,镜像调度器首先为网络功能分配资源,然后利用剩余的计算能力加速视频分析。
镜像调度器在分配FPGA资源时优先考虑网络功能,这是因为以太网数据包的小数据包大小从64字节到1500字节不等,而基于FPGA的网络功能处理这种小数据的加速解决方案只需要超低微秒级的延迟,而视频的数据大小则各不相同,从几十兆到几百兆,具有毫秒级的延迟要求。网络功能的处理延迟远小于视频分析的处理延迟。
具体地,镜像调度器估计网络流量,并根据估计结果为网络功能分配足够的FPGA资源,即切换到网络功能镜像能有足够的时间,在剩余的FPGA资源上进行视频分析。网络流量估计和剩余资源的计算在镜像调度器将分配结果发送给网络方法进程管理器和视频分析进程管理器,并在资源分配给该功能时调用硬件切换相应的镜像。
网络方法进程管理器旨在调度网络收到镜像调度器的资源定位结果后进行数据包处理,当资源分配给网络功能时,网络方法进程管理器对所有未处理的网络数据包操作网络功能。
网络方法进程管理器另一功能是,当现有网络数据包将验证延迟容限时,向镜像调度器发送抢占信号,当镜像调度器接收到抢占信号时,网络方法进程管理器立即将FPGA切换到网络功能镜像。
视频分析进程管理器为视频分析分配FPGA资源时调度视频分析任务的处理。视频分析任务是使用给定的DNN(Deep Neural Networks,深度神经网络)模型处理一帧视频,视频分析任务可以在本地CPU或FPGA上执行。
需要说明的是,在本实施例中,并不是所有类型的DNN层在由FPGA处理时都具有更高的性能,在CPU上处理某些类型的层比FPGA更有效率。比如:在CPU上处理小数据大模型的全连接层的性能与FPGA相比并不算差。视频分析进程管理器运行分析任务负载优化算法,以最大限度地减少使用分配的FPGA资源处理视频分析任务的整体延迟。
在本实施例中,本发明加速器实现方法还基于加速器通过软件设计运行加速器时域复用多功能加速机制(具体如上述步骤S10至步骤S20的过程),解决了现有加速器功能单一,且加速器资源不能与其他功能共享,导致的利用率低和成本昂贵和体积臃肿的问题。该方案采用对硬件在时域上的复用的方法,使得加速器资源在时域上根据设计的计算资源能力评估算法和高效资源分配算法,实现了不同功能之间的硬件加速,例如网络功能的加速和视频分析功能的加速,并且自由切换功能实现多功能,从而增加加速器利用率,减少成本与减小体积。通过灵活、自动的加速器资源共享,使得加速器资源可以在不同功能之间共享,通过硬件电路和逻辑程序在不同功能之间自动切换。
进一步地,在本实施例中,本发明加速器实现方法还基于加速器运行加速器硬件抽象方法机制来解决现有存在的加速方案中,每种功能需要使用专用定制的FPGA,通过设计的硬件功能抽象方法,使上层能够以函数调用的形式使用多镜像FPGA,用户可以通过函数调用的方式调用硬件资源方便实现加速目标。
即,本发明加速器实现方法通过将多类型加速任务的工作量负载到多镜像FPGA上,并通过控制镜像的时间来为函数分配FPGA资源。为解决上层设计时程序写起来困难且耗时涵盖FPGA资源负载细节,并需要仔细处理FPGA供应商特定服务的代码,为此,本发明加速器实现方法通过在加速器中硬件设计部分设计了硬件功能抽象方法,包括与网络功能镜像决策器1024和视频分析镜像决策器1023相对应的镜像加载硬件方法、与镜像调度器1032相对应的镜像编程硬件方法、与网络方法进程管理器1034相对应的网络进程硬件方法和与视频分析进程管理器1035相对应的视频分析硬件方法。由此,使上层能够以函数调用的形式使用多镜像FPGA,用户可以通过函数调用的方式调用硬件资源。加速器用户可以通过函数调用的方式调用硬件API(Application Programming Interface,应用程序接口)。
在本实施中,硬件抽象方法的真正实现存储在FPGA存储器中。函数名称和相应的实现内存地址之间存在的映射被称为函数地址映射,函数地址映射是在将加速器安装到边缘设备时构建并存储在边缘设备的内存中的。加速器调用硬件函数时,首先通过函数地址映射查找函数在FPGA内存中的内存地址,然后访问具体的内存地址,运行该函数的实现。通过这种方式,函数地址映射为加速器用户提供了一个干净的逻辑抽象,使用户可以简单地调用这些硬件函数。
硬件函数抽象方法为上层提供了一个编程模型,该模型完全封装了多镜像FPGA的低级细节代码。使用多个硬件API,应用程序开发人员可以轻松地使用多镜像FPGA,而无需了解底层代码细节,通过组合这些API,应用程序开发人员可以控制FPGA的运行以实现丰富而复杂的功能。例如,使用函数Img_query_programmed来检查逻辑单元中编程的镜像是否是用于处理视频的所需镜像,如果没有,则调用函数Img_load和Img_program将所需的映像加载到配置闪存中,并将其编程到逻辑单元中,然后函数Data_load将视频帧加载到FPGA的用户闪存中,调用Task_process处理视频解析任务,最后从用户闪存中取回结果到闪存。
进一步地,在本实施例中,本发明加速器实现方法还基于加速器运行加速器多镜像快速切换机制来解决现有加速方案中,现有的多镜像FPGA不能根据需求或设定自动切换不同镜像,缺乏灵活性的问题,通过新的硬件电路与逻辑程序实现多镜像FPGA能根据算法自动切换不同镜像。即,本发明加速器实现方法通过加速器在硬件设计中的硬件抽象方法中实现用于在逻辑单元中切换编程镜像硬件抽象方法。特别的,本发明的加速器实现方法中,FPGA镜像之间的切换由指令自动完成。由此成为时域的多功能加速器,最大限度地提高了加速器的硬件资源利用率。
为了克服如图4所示的手动开关的缺陷,本发明加速器实现方法通过加速器在硬件设计中,用如图5所示的继电器代替手动开关SW1和SW2,也就是,在原来的SW1和SW2位置固定一个继电器。当切换到存储在闪存区域一的CPU映像时,该方案通过继电器0切换CONFIG SEL引脚,然后通过继电器1拉低RU nCONF IG引脚触发重新配置,反之亦然。由此,实现了通过指令或硬件函数的方式在FPGA上对镜像的快速切换。
进一步地,提出本发明加速器实现方法的一优选实施例。
在本实施例中,英特尔MAX10一个双镜像FPGA作为本发明基于多镜像FPGA的加速器的FPGA硬件板。MAX10有一个USB Blaster,可用于使用USB转串行电缆连接智能摄像头的USB端口。使用开源的RPC接口Thrift实现了加速器和智能摄像头之间的通信,RPC消息通过USB转串口线传输。通过将MAX10连接到智能摄像头,将媒体介入控制层和物理层处理网络数据包的工作量负载到Max10,可以将后处理、网络数据包直接传送到云端,无需浪费时间将处理结果返回给网卡,通过在Linux系统中编辑文件“ifcfg-eth0”来停用智能摄像头上的另一个网卡。
Max10中只有一张镜像可以用于网络方法加速,另一张分配给视频分析加速,因为Max10 FPGA的逻辑单元足够大以实现以上方式。通过在单个镜像中实现网络方法DES和Gzip,具体采用部分重配置(Partial Reconfiguration)技术在一个镜像中同时实现这两个功能。
通过在媒体介入控制层和物理层处理网络数据包,媒体介入控制层构建以太网帧,包括重新对齐有效载荷、修改源地址、计算和插入数据包间隙字节,物理层将数字信号转换为模拟信号。在具有足够计算能力的MAX10的FPGA区域实现媒体介入控制层,并在MAX10开发板的Marvell 88E111芯片中实现物理层,媒体介入控制层使用RGMII接口与物理层通信,物理层通过模块化连接器RJ-45连接以太网电缆以发送数据包。
选择通过PipeCNN作为神经网络模型实现视频分析镜像,PipeCNN是FPGA上基于OpenCL(Open Computing Language,开放运算语言)的高效卷积神经网络加速器,提供更快的硬件开发周期和软件友好的程序接口。使用PipeCNN,通过进行设计空间探索以找到最大化吞吐量或最小化执行时间的最佳设计,从而显著缩短了开发周期。
基于该最优实施例的结果表明,本发明应用于基于多镜像FPGA的加速器的实现方法,基于多镜像FPGA的网络传输与视频分析网关加速器可以将数据分析和传输的性能比目前的方法提高1.49倍和2.33倍,系统硬件资源的利用率可以达到92.51%,与之前方法相比,视频分析和网络处理的吞吐量显著提高。
并且,本发明还能够通过硬件功能抽象方法,解决现有加速方案中每种功能需要使用专用的定制FPGA的问题,从而使上层能够以函数调用的形式使用多镜像FPGA,方便实现加速目标,提高了方案的灵活性与易用性。
此外,本发明中由离线管理器和在线管理器共同构成的加速器的软件层设计,还能够实现多镜像快速切换,从而解决了现有基于FPGA的加速方案不能根据需求或设定自动切换镜像,缺乏灵活性的问题,提高了方案的可靠性和先进性。
本发明还提供一种计算机存储介质,该计算机存储介质上存储有加速器实现程序,所述加速器实现程序被处理器执行时实现如以上任一项实施例所述的加速器实现方法的步骤。
本发明计算机存储介质的具体实施例与上述加速器实现方法各实施例基本相同,在此不作赘述。
本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现如以上任一项实施例所述的加速器实现方法的步骤。
本发明计算机程序产品的具体实施例与上述加速器实现方法各实施例基本相同,在此不作赘述。
本发明提出了一种使用多镜像FPGA来加速视频分析和网络功能的新型加速器,利用多镜像FPGA的特性,通过对硬件到软件进行的设计,在对网络处理影响最小的情况下最大限度地利用本方案硬件设计的计算能力,我们设计了计算资源能力评估算法和将视频分析等功能负载到方案硬件设计上的高效资源分配算法,使得在视频分析和网络功能上的吞吐量得到显著提高,从而实现对计算密集型视频的实时分析和前沿的网络功能的支持。
本发明的方案采用对硬件在时域上的复用的方法,使得加速器资源在时域上根据设计的计算资源能力评估算法和高效资源分配算法,自由切换功能实现多功能,从而增加加速器利用率,从而减少成本与减小体积。
该方案解决了每种功能需要使用专用定制的FPGA,通过设计的硬件功能抽象方法,使上层能够以函数调用的形式使用多镜像FPGA,用户可以通过函数调用的方式调用硬件资源方便实现加速目标。
该方案解决了多镜像FPGA不能根据需求或设定自动切换不同镜像,缺乏灵活性的问题,通过设计新的硬件电路与逻辑程序实现多镜像FPGA能根据算法自动切换不同镜像。
在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
本说明书中使用的“包含”一词是指“至少部分包含”。在解释本说明书中包含“包括”一词的每条陈述时,也可能存在除此以外或以该词开头的特征。诸如“包含”和“包含”等相关术语应以相同的方式解释。
对于本发明所属领域的技术人员而言,在不背离所附权利要求书所限定的本发明范围的前提下,本发明在结构上的许多变化以及本发明的广泛不同的实施方式和应用将是显而易见的。本文的公开内容和描述纯粹是说明性的,并且在任何意义上都不旨在进行限制。在本文中提及具有与本发明相关的领域中的已知等同物的特定整数时,这些已知等同物被视为结合在本文中,如同单独阐述一样。
如本文所用,术语“和/或”是指“和”或“或”或两者。
在本说明书的描述中,可以参考不在所附权利要求的范围内的主题。该主题应被本领域技术人员容易地识别,并且可以有助于将如所附权利要求书中所定义的本发明付诸实践。
尽管本发明大致上如上所定义,但是本领域技术人员将理解,本发明不限于此,并且本发明还包括以下实施例给出示例的实施方式。
本发明的前述描述包括其优选形式。在不脱离本发明的范围的情况下可以对其进行修改。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (12)
1.一种基于多镜像FPGA的加速器,其特征在于,所述加速器包括:
多镜像FPGA,所述多镜像FPGA包括在FPGA的镜像闪存中预存的多个镜像,利用硬件功能抽象方法以函数调用的形式通过时域复用的方式使用多镜像FPGA的硬件资源;
离线管理器,所述离线管理器与所述多镜像FPGA相连接,所述离线管理器配置所述多镜像FPGA中的多个镜像和确定所述多镜像FPGA的功能负载情况;以及
在线管理器,所述在线管理器与所述多镜像FPGA相连接,所述在线管理器被配置为控制FPGA镜像的切换,以进行FPGA资源的分配,
其中,所述离线管理器和所述在线管理器被配置为分别调用预设的硬件函数实现所述多镜像FPGA的对应的硬件功能抽象方法。
2.如权利要求1所述的基于多镜像FPGA的加速器,其特征在于,硬件功能抽象方法包括函数名称和相应的实现内存地址之间的函数地址映射,以通过函数调用的方式将所需的镜像加载到配置闪存。
3.如权利要求1或2所述的基于多镜像FPGA的加速器,其特征在于,所述离线管理器包括镜像库、网络功能镜像决策器和视频分析镜像决策器,所述镜像库中配置并存储有多镜像FPGA的镜像,所述网络功能镜像决策器根据网络方法需求从所述镜像库中选择负载到FPGA的第一镜像,所述视频分析镜像决策器根据视频分析需求从所述镜像库中选择用于视频分析的第二镜像。
4.如权利要求3所述的基于多镜像FPGA的加速器,其特征在于,所述第一镜像和所述第二镜像的数量大于或者等于一。
5.如权利要求1或2所述的基于多镜像FPGA的加速器,其特征在于,所述在线管理器包括镜像调度器、网络方法进程管理器和视频分析进程管理器,所述镜像调度器用于控制进行FPGA镜像的切换,以在所述网络方法进程管理器和所述视频分析进程管理器之间进行FPGA资源分配。
6.如权利要求5所述的基于多镜像FPGA的加速器,其特征在于,镜像调度器优先为网络功能分配FPGA资源,而将利用剩余的FPGA资源分配以用于视频分析。
7.如权利要求5所述的基于多镜像FPGA的加速器,其特征在于,在现有网络数据包将验证延迟容限时,抢占信号被发送到镜像调度器,当镜像调度器接收到抢占信号时,所述网络方法进程管理器将FPGA镜像切换到网络功能镜像。
8.一种如权利要求1至7任一项所述的基于多镜像FPGA的加速器实施的加速器实现方法,其特征在于,所述加速器实现方法包括:
通过所述离线管理器配置所述多镜像FPGA的镜像和确定所述多镜像FPGA的功能负载情况;
通过所述在线管理器控制进行FPGA镜像的切换;以及
通过所述离线管理器和所述在线管理器分别调用预设的硬件函数实现所述多镜像FPGA的对应的硬件功能抽象方法,
其中,利用硬件功能抽象方法以函数调用的形式通过时域复用的方式使用多镜像FPGA的硬件资源。
9.如权利要求8所述的加速器实现方法,其特征在于,通过网络功能镜像决策器和视频分析镜像决策器确定所述多镜像FPGA的功能负载情况。
10.如权利要求8所述的加速器实现方法,其特征在于,提供镜像调度器控制FPGA镜像的切换,以在网络方法进程管理器和视频分析进程管理器之间进行FPGA资源分配。
11.一种终端设备,其特征在于,所述终端设备包括:根据权利要求1-8中任一项所述的基于多镜像FPGA的加速器、存储器、处理器,所述加速器被配置为执行如权利要求8至10中任一项所述的加速器实现方法。
12.一种计算机可读存储介质,所述计算机可读存储介质上存储有加速器实现程序,其特征在于,所述加速器实现程序被处理器执行时实现如权利要求8至10中任一项所述的加速器实现方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210087349.8A CN116541073A (zh) | 2022-01-25 | 2022-01-25 | 基于多镜像fpga的加速器、加速器实现方法、终端设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210087349.8A CN116541073A (zh) | 2022-01-25 | 2022-01-25 | 基于多镜像fpga的加速器、加速器实现方法、终端设备及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116541073A true CN116541073A (zh) | 2023-08-04 |
Family
ID=87454690
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210087349.8A Pending CN116541073A (zh) | 2022-01-25 | 2022-01-25 | 基于多镜像fpga的加速器、加速器实现方法、终端设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116541073A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230315957A1 (en) * | 2016-09-29 | 2023-10-05 | Amazon Technologies, Inc. | Logic repository service |
-
2022
- 2022-01-25 CN CN202210087349.8A patent/CN116541073A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230315957A1 (en) * | 2016-09-29 | 2023-10-05 | Amazon Technologies, Inc. | Logic repository service |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11290534B2 (en) | System and method for scheduling computer tasks | |
EP3001616B1 (en) | Techniques for routing service chain flow packets between virtual machines | |
EP3761171B1 (en) | Network functions virtualization platforms with function chaining capabilities | |
JP2001068993A (ja) | 情報処理システム | |
CN111880902A (zh) | 一种pod创建方法、装置、设备及可读存储介质 | |
CN109284815A (zh) | 神经网络模型算法编译方法、装置及相关产品 | |
CN110727697B (zh) | 数据的处理方法和装置、存储介质、电子装置 | |
JP7100154B6 (ja) | プロセッサコアのスケジューリング方法、装置、端末及び記憶媒体 | |
CN113485822A (zh) | 内存管理方法、系统、客户端、服务器及存储介质 | |
US8224638B1 (en) | Managing programmable device configuration | |
WO2023103419A1 (zh) | 基于消息队列的5g消息批量发送方法、装置及电子设备 | |
CN108093036B (zh) | 一种获取资源的方法及装置 | |
CN116541073A (zh) | 基于多镜像fpga的加速器、加速器实现方法、终端设备及计算机可读存储介质 | |
US20150312160A1 (en) | System for flexible dynamic reassignment of throughput | |
CN115794262A (zh) | 任务处理方法、装置、设备、存储介质以及程序产品 | |
CN110061857B (zh) | 一种多mec能力开放和共享的方法及系统 | |
CN113556387A (zh) | 边缘网关控制方法及系统、装置、电子设备、存储介质 | |
US11252457B2 (en) | Multimedia streaming and routing apparatus and operation method of the same | |
CN109302302A (zh) | 服务网元的扩缩方法、系统及计算机可读存储介质 | |
CN108306757B (zh) | 可编程数据平面虚拟层构建方法及存储介质 | |
CN115268951A (zh) | 一种操作系统的安装方法、装置、设备及存储介质 | |
US20210243137A1 (en) | Multiplexed resource allocation architecture | |
CN112887093A (zh) | 用于实现密码算法的硬件加速系统和方法 | |
CN113177211A (zh) | 用于隐私计算的fpga芯片、异构处理系统及计算方法 | |
CN114785851B (zh) | 资源调用处理方法、装置、存储介质及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40098446 Country of ref document: HK |