CN113849405B - 基于fpga的智能应用在线设计评估系统及方法 - Google Patents
基于fpga的智能应用在线设计评估系统及方法 Download PDFInfo
- Publication number
- CN113849405B CN113849405B CN202111119941.3A CN202111119941A CN113849405B CN 113849405 B CN113849405 B CN 113849405B CN 202111119941 A CN202111119941 A CN 202111119941A CN 113849405 B CN113849405 B CN 113849405B
- Authority
- CN
- China
- Prior art keywords
- fpga
- remote user
- server
- power consumption
- intelligent application
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3664—Environments for testing or debugging software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- 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)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种基于FPGA的智能应用在线设计评估系统及方法,可以从功耗、准确度、计算效率等多个维度对非嵌入式FPGA、嵌入式FPGA针对智能应用处理性能进行全面客观的评估,可作为FPGA智能应用设计在线比赛支撑平台;并且支持用户在线对非嵌入式FPGA和嵌入式FPGA完成设计、仿真、综合编译、测试等操作,可作为训练平台推广FPGA的使用。
Description
技术领域
本发明涉及智能应用在线设计及评估技术领域,尤其涉及一种基于FPGA的智能应用在线设计评估系统及方法。
背景技术
随着人工智能应用算法复杂度的不断提升,其对硬件算力的要求也日益增加,传统的CPU同构计算方式远不能满足应用的计算需求,FPGA(Field Programmable GateArray,现场可编程门阵列)作为可编程器件,相较GPU可获得更好的效能功耗比,相比ASIC(专用集成电路)具有更高的灵活性。因此基于FPGA的机器学习算法加速器研究吸引了大量的学界及业界目光。在自主可控的大背景下,采用非嵌入式FPGA与飞腾、龙芯等国产CPU构成异构协同加速架构实现对智能应用的高性能计算成为了国内研究的主流方向,采用嵌入式FPGA在星载、舰载等对效能功耗比要求较高的场景实现智能应用加速也是工业界研究的热点,但是由于FPGA逻辑资源有限,设计工具特殊,FPGA在线开发和深度学习应用方面仍旧受到极大的限制。
为了推进FPGA的发展及应用,用最少的硬件资源建立最广泛的智能应用生态环境,远程在线设计验证测试和评估是必不可少的。如今FPGA面向智能应用的设计方案百花齐放,不同的硬件设计方案导致的硬件功耗、智能应用计算效率和识别准确率也各不相同,亟需一个客观全面的测试评价平台对FPGA设计方案进行全方位的评估。目前具有如下两种评测方案:
方案一、自动评测的在线FPGA试验平台及相关方法。
该方案的主要内容包括:平台接收用户针对FPGA实现设备编辑的相关电路设计程序代码;对所述电路设计程序代码进行仿真,当仿真结果符合预期要求时,根据用户提交的评测请求,对电路设计程序代码进行综合编译;通过试验测试例执行程序将综合编译得到的硬件设计源文件烧写到FPGA试验设备,并执行实验测试运行程序脚本,得到各测试点的运行测试结果:通过实验评测打分程序综合所有测试结果计算总评分数。方案主要面向学生FPGA学习考试的应用场景,支持用户远程开发,系统自动评测程序设计是否正确,以达到减少老师的手工评测工作量的目的。
然而,该方案主要存在如下技术问题:该方案FPGA芯片内既没有集成CPU核构成嵌入式FPGA,也没有通过PCIe高速接口与服务器连接形成FPGA云服务器加速计算模式,故该平台无法支撑图像检测、语音识别等智能应用场景的协同高效计算。
方案二、用于FPGA云服务器性能测试的系统及方法。
该方案提供一种用于FPGA云服务器的系统及方法,来解决因物理底层结构对云服务器产生的影响,导致测试准确度不高的问题。方案包括加载模块和测试模块:加载模块分别从云端加载已加密的第一硬件测试程序和第二硬件测试程序到待测FPGA云服务器,第一硬件测试程序用于测试待测FPGA云服务器的数据传输性能,第二硬件测试程序用于测试待测FPGA云服务器中FPGA器件的计算性能。测试模块在待测FPGA云服务器中的虚拟机上分别运行第一硬件测试程序和第二硬件测试程序,第一个硬件程序通过PCIe DMA测试传输性能,第二个硬件程序通过浮点运算测试加速性能,以分别获得数据传输性能和FPGA器件的计算性能,从而完成对待测FPGA云服务器的性能测试。
然而,该方案主要存在如下技术问题:平台虽然可以测试应用的加速性能,但是没有对FPGA功耗和智能应用处理的准确度测试进行相关方案设计,不能够客观科学的对用户的设计方案进行系统评估,无法作为比赛平台为本领域遴选出优秀的设计团队和设计方案;除此之外,该方案只针对CPU+FPGA异构协调加速模式,对于嵌入式FPGA的智能应用处理性能没有考虑。
综上所述,亟需设计一个统一测试平台,全面客观地评测国产智能软硬件的处理性能,为FPGA加速智能应用领域遴选出优秀的设计团队和设计方案,也为设计方案的进一步优化提供科学数据参考。
发明内容
本发明的目的是提供一种基于FPGA的智能应用在线设计评估系统及方法,可支持用户远程进行FPGA程序设计和开发,并采用统一标准对用户的开发程序进行测试,从FPGA程序运行的功耗、计算效率、识别准确率等维度对用户设计方案进行评估。
本发明的目的是通过以下技术方案实现的:
一种基于FPGA的智能应用在线设计评估系统,其特征在于,包括:服务网关、开发服务器、管理服务器、运行服务器、FPGA、功耗计与存储服务器;
所述服务网关,用于将远程用户的资源请求发送至管理服务器;
所述FPGA包括:嵌入式FPGA与非嵌入式FPGA;
所述管理服务,用于根据远程用户的资源请求类型,进行资源分配与调度;
所述开发服务器,用于根据管理服务器为远程用户分配的资源通过虚拟机的形式为远程用户提供远程使用的FPGA开发环境,供远程用户进行FPGA程序设计、仿真、综合、编译以及调试,编译的程序文件存储在开发服务器的指定位置;当远程用户资源请求类型对应于国产CPU与非嵌入式FPGA的应用场景时,接收到远程用户发送的评估请求后,将远程用户开发的FPGA程序传输至所述运行服务器;当远程用户资源请求类型对应于嵌入式FPGA的应用场景时,接收到远程用户发出的评估请求后,开发服务器从存储服务器中拷贝评估计分程序和测试数据集,通过运行评估计分程序,将FPGA程序烧录至嵌入式FPGA的配置空间,完成智能应用的部署,并调用测试数据集进行智能应用的评估,再结合相应功耗计统计的嵌入式FPGA功耗输出智能应用评分;
所述运行服务器与非嵌入式FPGA组成异构协同加速架构,所述运行服务器中采用国产CPU,提供CPU程序的开发环境,支持远程用户对CPU程序进行开发与编译,接收到FPGA程序后,从存储服务器中拷贝评估计分程序和测试数据集,通过运行评估计分程序,将FPGA程序烧录至非嵌入式FPGA的配置空间,完成智能应用的部署,再调用测试数据集进行智能应用的评估,通过调用CPU程序与FPGA程序进行异构协同计算,并结合相应功耗计统计的非嵌入式FPGA功耗输出智能应用评分;
所述存储服务器,用于保存远程用户的运行环境、用户的开发环境、评估计分程序以及应用测试数据集;当远程用户申请资源分配时,系统在存储服务器上为远程用户分配开发环境存储空间挂载在开发服务器上,对于国产CPU与非嵌入式FPGA的应用场景,系统还在存储服务器上为远程用户分配运行环境存储空间并挂载在运行服务器;当远程用户退出系统后,远程用户所有数据自动保存到存储服务器上。
一种基于FPGA的智能应用在线设计评估方法,该方法基于前述的系统实现,步骤包括:
远程用户访问系统提供的网页页面,对所述远程用户提交的帐号密码进行审核,审核通过后允许所述远程用户接入系统;
根据所述远程用户的资源请求类型进行资源分类,通过虚拟机的形式为远程用户提供远程使用的开发环境,供远程用户进行FPGA程序设计、仿真、综合、编译以及调试;
当接收到远程用户运行请求后,通过评估计分程序进行智能应用的部署,并调用测试数据集与对智能应用进行测试;
测试数据集运行完毕后,结合智能应用的识别准确率、计算效率以及功耗计统计的FPGA功耗,计算智能应用评分并反馈给远程用户。
由上述本发明提供的技术方案可以看出,可以从功耗、准确度、计算效率三个维度对非嵌入式FPGA、嵌入式FPGA针对智能应用处理性能进行全面客观的评估,可作为FPGA智能应用设计在线比赛支撑平台;并且支持用户在线对非嵌入式FPGA和嵌入式FPGA完成设计、仿真、综合、编译、调试等操作,可作为训练平台推广FPGA的使用范围。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。
图1为本发明实施例提供的一种基于FPGA的智能应用在线设计评估系统的硬件架构示意图;
图2为本发明实施例提供的系统的应用场景示意图;
图3为本发明实施例提供的运行服务器与FPGA连接结构示意图;
图4为本发明实施例提供的系统总体设计架构图;
图5为本发明实施例提供的资源分配的多用户分时复用流程图;
图6为本发明实施例提供的安全接入防护示意图;
图7为本发明实施例提供的一种基于FPGA的智能应用在线设计评估方法的流程图;
图8为本发明实施例提供的系统提供的网页页面示意图;
图9为本发明实施例提供的测试数据输出格式示意图。
具体实施方式
下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。
首先对本文中可能使用的术语进行如下说明:
术语“包括”、“包含”、“含有”、“具有”或其它类似语义的描述,应被解释为非排它性的包括。例如:包括某技术特征要素(如原料、组分、成分、载体、剂型、材料、尺寸、零件、部件、机构、装置、步骤、工序、方法、反应条件、加工条件、参数、算法、信号、数据、产品或制品等),应被解释为不仅包括明确列出的某技术特征要素,还可以包括未明确列出的本领域公知的其它技术特征要素。
下面对本发明所提供的一种基于FPGA的智能应用在线设计评估系统进行详细描述。本发明实施例中未作详细描述的内容属于本领域专业技术人员公知的现有技术。本发明实施例中未注明具体条件者,按照本领域常规条件或制造商建议的条件进行。本发明实施例中所用仪器未注明生产厂商者,均为可以通过市售购买获得的常规产品。
本发明实施例提供的一种基于FPGA的智能应用在线设计评估系统,如图1所示,主要包括:服务网关、开发服务器、管理服务器、运行服务器、FPGA、功耗计与存储服务器。该系统,可支持用户远程进行FPGA程序设计和开发,并采用统一标准对用户的开发程序进行测试,从FPGA程序运行的功耗、计算效率、识别准确率等多个维度对用户设计方案进行评估,根据测试数据集的不同可支持图像目标检测、语音识别、文本情报分析等应用的FPGA加速方案评估。系统可支持CPU+FPGA的体系结构和嵌入式PSOC(可编程化系统单芯片)体系结构的开发、测试及评估。该方案可采用确定FPGA型号,用户设计FPGA实现方案的方式,作为比赛平台为本领域遴选出优秀的设计团队和设计方案。除此之外,本方案支持用户远程开发设计,降低用户入门成本,可以有效的推广FPGA使用。
如图2所示,为该系统的应用场景,将该系统应用于编程比赛,远程用户通过调试终端远程访问系统的入口,通过VPN经过安全隔离后与系统的服务网关进行通信,服务网关反向代理各终端请求到指定的国产服务器资源上,为用户提供在线开发环境及智能应用FPGA计算资源。系统则建立在对不同型号的FPGA计算资源的异构管理上,可支持CPU+FPGA的体系结构(国产CPU+非嵌入FPGA设备)和嵌入式PSOC体系结构(嵌入式FPGA),根据不同用户的需求提供不同形式的计算、存储资源。
为了便于理解,下面针对系统做详细的介绍。
一、硬件架构。
如图1所示,硬件层面主要包括:服务网关、开发服务器、管理服务器、运行服务器、FPGA、功耗计与存储服务器。
1、服务网关。
所述服务网关,可以使用交换机实现,提供若干接入点,用于将远程用户的资源请求发送至管理服务器,由管理服务器根据远程用户的资源请求类型进行资源分配与调度。
2、管理服务器。
管理服务器负责整个系统的分布式集群管理、异构资源融合调度与统一监控管理,主要对系统的计算、存储与网络资源进行分布式管理,对不同远程用户所需要的不同资源需求进行异构融合调度,对整个系统运行情况实现统一监控。
资源分配与调度方面,根据远程用户的资源请求类型(CPU+FPGA的体系或嵌入式PSOC体系),分配相应的资源,即分配第一类开发服务器或第二类开发服务器为远程用户提供资源服务。
3、FPGA。
本发明实施例中,所述FPGA主要包括非嵌入式FPGA与嵌入式FPGA,各自对应CPU+FPGA的体系结构与嵌入式PSOC体系结构。
本发明实施例中,所述嵌入式FPGA是指FPGA内置FPGA核与CPU核;与之相对的,非嵌入式FPGA内置FPGA核。
非嵌入式FPGA及嵌入式FPGA单独连接一个功耗计,所述功耗计为与其连接的非嵌入式FPGA或嵌入式FPGA供电,并实时测量非嵌入式FPGA或嵌入式FPGA加速逻辑运行时的功耗。
4、功耗计。
如之前所述,本发明实施例中,每一个功耗计单独连接一个FPGA,功耗计的启停操作由评估计分程序控制,能测量程序运行期间的功率和功耗,系统打分计算公式中加入功耗的参数,用以评估关键指标性能/能耗比。
本发明实施例中,使用功耗计为FPGA供电,从而将FPGA的供电电源与PCIe总线的电源线分离。使用单独的供电方式,因此可用功率计单独测量FPGA的能源消耗,与运行服务器的电源功耗无关。
5、开发服务器。
所述开发服务器,用于根据管理服务器为远程用户分配的资源通过虚拟机的形式为远程用户提供远程使用的FPGA开发环境,远程用户可以在终端设备中通过浏览器接入系统,在开发环境下进行FPGA程序设计、仿真、综合、编译以及调试,编译的程序文件存储在开发服务器的指定位置。
如之前所述,本发明支持两种结构体系,因此,设计了两类开发服务器。第一类开发服务器针对CPU+非嵌入FPGA的体系结构,如图1中的开发服务器1,其运行若干虚拟机,虚拟机与每一运行服务器一一对接;第二类开发服务器针对嵌入式PSOC体系结构,同样运行若干虚拟机,每一虚拟机单独与一个嵌入式FPGA及一个功耗计对接,如图1中的开发服务器2。
需要说明的是,开发服务器中虚拟机的数目、运行服务器的数目、非嵌入式FPGA的数目、嵌入式FPGA的数目都可以根据实际情况自行设定。
根据远程用户资源请求类型不同,将通过相应类型的开发服务器进行对接。
当远程用户资源请求类型对应于国产CPU与非嵌入式FPGA的应用场景时(即针对CPU+非嵌入式FPGA的体系结构),接收到远程用户发送的评估请求后,将远程用户开发的FPGA程序传输至所述运行服务器。
当远程用户资源请求类型对应于嵌入式FPGA的应用场景时(即针对嵌入式PSOC体系结构),接收到远程用户发出的评估请求后,开发服务器从存储服务器中拷贝评估计分程序和测试数据集,通过运行评估计分程序,将远程用户开发的FPGA程序烧录至嵌入式FPGA的配置空间,完成智能应用的部署之后,调用测试数据集进行智能应用的评估,再结合相应功耗计统计的嵌入式FPGA功耗输出智能应用评分。
6、运行服务器。
本发明实施例中,所述运行服务器中采用国产CPU(图2提供了国产CPU的示例,例如,飞腾、申威、龙芯),运行服务器通过高速PCIe接口与非嵌入式FPGA组成异构协同加速架构(即前文提到的CPU+FPGA的体系结构),可通过PCIe接口对非嵌入式FPGA进行智能应用加速区域(即FPGA可重构区域的智能应用加速算子)的逻辑配置;所述非嵌入式FPGA能够通过PCIe DMA数据传输实现对国产CPU的协同加速计算。如图3所示,为运行服务器与非嵌入式FPGA连接结构。
本发明实施例中,所述运行服务器及非嵌入式FPGA均与功耗计连接;所述运行服务器用于对功耗计进行配置以及接收功耗计统计的非嵌入式FPGA的功耗值,其中,运行服务器与功耗计可通过以太网连接。
如图3所示,所述运行服务器中运行远程用户对应的容器环境,提供CPU程序的开发环境,支持远程用户对CPU程序进行开发、编译;还支持评估程序及用户CPU端程序的运行。运行服务器接收到FPGA程序后,从存储服务器中拷贝评估计分程序和测试数据集,通过运行评估计分程序,将FPGA程序烧录至非嵌入式FPGA的配置空间,完成智能应用的部署,再调用测试数据集进行智能应用的评估,通过调用CPU程序与FPGA程序进行异构协同计算,并结合相应功耗计统计的非嵌入式FPGA功耗输出智能应用评分。
如图3所示,运行服务器中包含保留一些必要的固件、PCle驱动、FPGA运行时管理等部分;同样的,非嵌入式FPGA中还设有相应的静态区域,静态区域设有PCle DMA控制器、DDR控制器等部分;考虑到这些部分均为常规技术,故不做赘述。
本发明实施例中,所述智能应用包括:图像目标检测、语音识别以及文本情报分析等,对智能应用进行评估包括计算效率与识别准确率评估,结合功耗计统计的功耗,从三个维度对智能应用进行综合评估。
需要说明的是,针对不同智能应用时,会使用不同的测试数据集、结果输出格式、计算分数基准也有所差别,管理人员只需修改评估计分程序中的测试脚本即可,具体的测试脚本内容可参照常规方式实现,本发明不做赘述。示例性的,测试数据集可以为SAR图像、语音处理和自然语言方面的应用数据集,系统具备评估这三个方面应用指标的能力。
7、存储服务器。
本发明实施例中,所述存储服务器,用于保存远程用户的运行环境、用户的开发环境、评估计分程序以及应用测试数据集等;当远程用户申请资源分配时,系统在存储服务器上为远程用户分配开发环境存储空间并自动挂载在开发服务器上,对于国产CPU与非嵌入式FPGA的应用场景,系统还在存储服务器上为远程用户分配运行环境存储空间并自动挂载在运行服务器(用户容器中);当远程用户退出系统后,远程用户所有数据自动保存到存储服务器上。
二、软件层次架构。
如图4所示,系统软件层次主要包括:平台层、软件算法层以及测试评估层。
所述平台层部署在所述管理服务器上,所述平台层主要包括:分布式集群管理模块、异构资源融合调度模块、统一监控管理模块等。平台层主要对系统的计算、存储与网络资源进行分布式管理,对不同远程用户所需要的不同资源需求进行异构融合调度,对整个系统运行情况实现统一监控。平台层中三个模块的具体工作方式可参照常规技术,本发明不做赘述。
所述软件算法层部署在所述运行服务器上,所述软件算法层包含若干智能软件算法框架(例如,TenSorFlow、Pytorch、国产软件框架等)与开发工具(例如,anaconda/python等),用于满足远程用户对不同机器学习框架的自由选择需求,实现对国产自主机器学习技术栈的适配和支撑。
所述测试评估层部署在存储服务器上,包含测试数据集以及评估计分程序,用于供开发服务器(具体为第二类开发服务器)与运行服务器上调用,从而对远程用户提交的程序文件进行测试和评估。
本发明实施例中,软件层能够实现如下三个方面关键功能。
1、资源封装。
为了在有限的硬件资源情况下尽可能满足足够多的用户使用需求,通过网络化的方式,将CPU、FPGA以及其他设备对外提供服务。远程使用终端设备,通过VPN接入服务网关,通过服务网关申请资源使用权限,系统将远程用户资源请求加入资源申请队列,在满足资源分配需求时,进行资源分类并设定使用时间;当达到设定的使用时间时,对进行资源禁用,等待远程用户的下次申请使用;当资源未被分配使用时,通过隔离化的手段(也即通过隔离区)分配给其他远程用户使用。
2、资源分配。
为提高比赛硬件利用率,降低成本,本发明实施例中采用多用户分时复用单FPGA的方式,如图5所示,用户可以通过容器方式快速恢复开发环境,主要流程包括:
第一远程用户(即用户1)在第一次向系统请求资源时,为其分配第一计算单元,并保证在第一计算单元上只创建一个容器(即用户1容器),接入相关FPGA供第一远程用户使用,其他远程用户的容器被处于停止状态;当第一远程用户结束第一次请求资源的使用时,第一远程用户使用的容器被制作成镜像,保存于存储服务器的镜像仓库中,供下次使用;当第一远程用户再次向系统请求资源时,根据资源分配情况,将第二计算单元分配给第一远程用户,并从存储服务器的镜像仓库中将第一远程用户的镜像,拉取至计算第二计算单元,从而创建容器,分配FPGA资源,供第一远程用户使用,如此保证了用户环境的始终一致性;其中,对于国产CPU与非嵌入式FPGA的应用场景,计算单元包括运行服务器与非嵌入式FPGA;对于嵌入式FPGA的应用场景,计算单元为非嵌入式FPGA。
3、安全访问。
如图6所示,所述远程用户使用终端设备通过互联网经隔离区接入系统中的服务网关;所述隔离区依托多维度纵深防御体系,对系统资源以及远程用户行为进行检测。
隔离区主要包括:VPN SERVER(VPN服务器),以及设置于VPN服务器两端的防火墙,通过隔离区能够实现包括日志审计、病毒检测与异常流量监控等防御措施;所述日志是指远程用户从访问系统开始直至退出系统期间所记录的日志数据。
本发明实施例以上方案相较于现有技术而言,主要获得如下有益效果:
1)可以从功耗、准确度、计算效率三个维度对非嵌入式FPGA、嵌入式FPGA针对智能应用处理性能进行全面客观的评估,可用于FPGA智能应用设计在线比赛平台。
2)可以支持远程用户在线对非嵌入式FPGA和嵌入式FPGA完成设计、仿真、综合,测试等操作,可作为训练平台推广FPGA的使用范围。
3)系统通过设置隔离区机制保证了远程用户的安全访问,有效的保障了用户的数据安全。
基于上述系统,本发明实施例还提供一种基于FPGA的智能应用在线设计及评估方法,如图7所示,步骤包括:
步骤1、远程用户访问系统提供的网页页面,对所述远程用户提交的帐号密码进行审核,审核通过后允许所述远程用户接入系统。
本发明实施例中,远程用户通过浏览器可以访问系统提供的网页页面,并输入正确的账号密码进行登录。
步骤2、根据所述远程用户的资源请求类型进行资源分类,通过虚拟机的形式为远程用户提供远程使用的开发环境,供远程用户进行FPGA程序设计、仿真、综合、编译以及调试。
远程用户登录系统的网页页面后,网页页面会展示多个菜单选项,选择设备页面后,系统将为远程用户的资源请求类型自动分类相应的资源与运行环境;此后,远程用户可以通过网页页面中的开发环境选项进入虚拟机开发环境。如图8所示,展示了系统提供的网页页面截图,远程用户所有操作在网页页面上完成,该网页页面的底部黑框为运行服务器上分配给用户的容器操作界面;点击网页页面中的开发环境即可访问开发服务器里给用户分配的虚拟机环境。值得注意的是,图8展示的仅为一种可行的网页页面示例,在实际应用中,系统开发人员可以根据实际情况或者经验调整网页页面的布局和/或网页页面所展示的内容。
远程用户在终端设备上通过浏览器访问系统,完成智能应用的CPU程序设计及编译以及FPGA程序开发、仿真、编译。
远程用户开发的程序最终将部署在系统中作为智能应用进行后续的评估,因此,在进行程序开发时需要考虑智能应用的输出格式,以符合应用评估需求,具体的输出格式要求可由系统管理人员根据实际情况进行设定。
以图像舰船目标检测智能应用为例,如图9所示,输出数据是用户根据程序输出结果所生成的文档,输出为舰船检测结果,每个舰船以矩形框的形式进行标识,要求模型提交检测结果为一幅图像对应一个.txt格式的结果文件,命名形式为:图像名称.txt,存储格式与训练阶段真值文件格式一致,输出数据格式说明如下。
txt文件中包含图像中检测到的所有舰船目标左上角坐标和右下角坐标,每个目标一行,具体形式如下:
X1 Y1 X2 Y2
X1 Y1 X2 Y2
……
X1 Y1 X2 Y2
其中,(X1,Y1)为矩形框左上角坐标,(X2,Y2)为右下角坐标。
值得注意的是,上文给出的是一种可行的数据格式,在实际应用中,数据格式也可以根据实际情况或者经验做相应的调整。
步骤3、当接收到远程用户运行请求后,通过评估计分程序进行智能应用的部署,并调用测试数据集对智能应用进行测试。
用户点击运行程序按钮向系统发送运行请求,系统调取测试镜像(包含相应测试数据集),并把用户开发的程序拷贝到测试镜像的具体位置,评估计分程序进行智能应用的部署之后,调用测试数据集对智能应用进行测试,等待测试结果。其中,对于评估计分程序中的测试脚本,管理员可以根据具体应用情况调整输出格式、计分权重等。
步骤4、测试数据集运行完毕后,结合智能应用的识别准确率、计算效率以及功耗计统计的FPGA功耗,计算智能应用评分并反馈给远程用户。
测试数据集运行完成后,评估计分程序通过比较测试数据集的正确答案得出智能应用的识别准确率,通过统计测试数据输入到结果输出完成的时间得出计算效率,通过功耗计测出FPGA功耗值通过网络传输到运行服务器上,评估计分程序获取这三个维度的数据后根据既定的规则计算出一个最终分数。
本发明实施例中,既定的规则的具体内容可参照常规技术来实现,设计方案从识别准确度、计算效率和功耗三方面综合考量;以图像目标检测应用为例,识别准确度考量的有两方面:目标框位置是否准确、目标框的标签是否为真实目标种类;计算效率是指在硬件平台上测试时处理图片的速度;功耗是指测试所有图片的能源消耗。
(1)识别准确度。
评价识别准确度的指标通过综合预测的类别和框选的位置,来评测模型的目标检测性能,精度指标的值越大说明越精确,最理想的情况是完全一致,此时该项得分为1。
评价识别准确度的指标为:mAP(Mean Average Precision),用于评测多目标的检测性能,采用的方法为PASCAL VOC Challenge的计算方法,具体流程为:
对于某个类别C,首先将模型输出所有是C类别的预测框,按照置信度排序;
通过设定不同的k值,选择top k个预测框,计算得到对应的Recall值和Precision值,Recall值和Precision值计算方法如公式(1)、(2)所示;
其中,TP(True Positives)是一张图片中将正类预测为正类数,FP(FalsePositives)是将负类预测为正类数,FN(False Negative)是将正类预测为负类。
将计算得到的所有Precision值取平均即AP(Average Precision),即公式(3)所示,其可以表示为以Recall值做X轴,计算得到的Precision值做Y轴的曲线下面积。
由于AP是针对单一类别的,mAP是将所有类别的AP求和,再取平均,如公式(4)所示:
mAP=所有类别的AP之和/总类别数 (4)
同时考虑实际应用需求,mAP低于0.5时,检测结果的精度已无法满足实际应用需求。为避免出现mAP过低,检测结果无法实用,但速度特别快的结果获得名次,当mAP低于0.5时,该项置零。
(2)计算效率。
评价计算效率的指标为每秒帧率,即每秒内模型在硬件平台上处理图片的数量,每秒帧率值越大说明批量处理效率越高。
实际应用中,大部分都要求运算速度在25FPS以上,因此计算公式的设计原则为,速度超过25FPS的,对最终得分是正向的加权(增加最终分),速度低于25FPS的,对最终得分是负向的加权(减小最终得分)。
计算公式如下:
公式(5)中,requirement为规定的参考速度值25FPS,FPS(measure)为各远程用户的测量速度值,FPS_penaltyi为速度分数。
(3)功耗。
评价功耗的计算指标指模型处理所有图片的能源消耗,由专用的功耗设备(即前述的功耗计)测量得出。能耗低的能耗得分高,同等条件下,能耗低的方案胜出。
评价功耗的计算指标为:ESi,指模型处理所有图片时的能源消耗(计算功耗的功能程序由系统提供),单位为千焦(KJ)。如公式(6)所示,Ei是指远程用户i处理所有的K张图片的功耗,为管理员给出的基准测试程序的功耗,暂定为3.2KJ,正式数值可由管理员根据实际情况或者经验进行调整。
ESi是远程用户i的功耗分数,通过与0取max,保证功耗分数始终为正,远程用户的Ei值与成反比,计算公式为:
在进行实际计算时,采集到的直接的数据是离散的电流和电压值,因此,采集记录智能应用运行期间所有的电流和电压值,通过积分的方式,计算得出最终的功耗。
(4)综合评分。
综合考察识别准确度、计算效率和功耗三项得分得出一个综合评分,作为远程用户的最终得分。综合评分的计算原则为识别准确度高、计算效率高、功耗低的方案得分高。
远程用户i的最终分数为TSi,计算公式为:
mid_TSi=Rai×Cei×ESi (8)
公式(8)中Ra(Recognition accuracy)表示识别准确度,Ce(Computingefficiency)表示计算效率,角标i表示远程用户i,示例性的,对于图像目标检测应用,可以各自带入前文计算出的mAPi、FPS_penaltyi,对于其他智能应用,可根据实际情况或者经验采用相应方式来计算识别准确度Ra与计算效率Ce,具体可参照常规技术实现,此处不做赘述;通过公式(8)将三个指标分数相乘得到的mid_TSi为中间结果,再通过公式(9)将其换算至千分制计算出的TSi即远程用户i的最终分数。
需要说明的是,在实际应用中识别准确度、计算效率可根据不同的智能应用选择相应的常规评估方案得到相应的分数,具体的可以由管理员根据实际情况或者经验进行调整。此外,每个远程用户每次评估结果及分数都会保存在存储服务器中,远程用户可以在网页页面的提交历史和实时排名处查看自己的每次提交成绩和最新成绩。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。
Claims (10)
1.一种基于FPGA的智能应用在线设计评估系统,其特征在于,包括:服务网关、开发服务器、管理服务器、运行服务器、FPGA、功耗计与存储服务器;
所述服务网关,用于将远程用户的资源请求发送至管理服务器;
所述FPGA包括:嵌入式FPGA与非嵌入式FPGA;
所述管理服务,用于根据远程用户的资源请求类型,进行资源分配与调度;
所述开发服务器,用于根据管理服务器为远程用户分配的资源通过虚拟机的形式为远程用户提供远程使用的FPGA开发环境,供远程用户进行FPGA程序设计、仿真、综合、编译以及调试,编译的程序文件存储在开发服务器的指定位置;当远程用户资源请求类型对应于国产CPU与非嵌入式FPGA的应用场景时,接收到远程用户发送的评估请求后,将远程用户开发的FPGA程序传输至所述运行服务器;当远程用户资源请求类型对应于嵌入式FPGA的应用场景时,接收到远程用户发出的评估请求后,开发服务器从存储服务器中拷贝评估计分程序和测试数据集,通过运行评估计分程序,将FPGA程序烧录至嵌入式FPGA的配置空间,完成智能应用的部署,并调用测试数据集进行智能应用的评估,再结合相应功耗计统计的嵌入式FPGA功耗输出智能应用评分;
所述运行服务器与非嵌入式FPGA组成异构协同加速架构,所述运行服务器中采用国产CPU,提供CPU程序的开发环境,支持远程用户对CPU程序进行开发与编译,接收到FPGA程序后,从存储服务器中拷贝评估计分程序和测试数据集,通过运行评估计分程序,将FPGA程序烧录至非嵌入式FPGA的配置空间,完成智能应用的部署,再调用测试数据集进行智能应用的评估,通过调用CPU程序与FPGA程序进行异构协同计算,并结合相应功耗计统计的非嵌入式FPGA功耗输出智能应用评分;
所述存储服务器,用于保存远程用户的运行环境、用户的开发环境、评估计分程序以及应用测试数据集;当远程用户申请资源分配时,系统在存储服务器上为远程用户分配开发环境存储空间挂载在开发服务器上,对于国产CPU与非嵌入式FPGA的应用场景,系统还在存储服务器上为远程用户分配运行环境存储空间并挂载在运行服务器;当远程用户退出系统后,远程用户所有数据自动保存到存储服务器上。
2.根据权利要求1所述的一种基于FPGA的智能应用在线设计评估系统,其特征在于,所述开发服务器分为两类,第一类开发服务器中运行若干虚拟机,虚拟机与每一运行服务器一一对接;第二类开发服务器中运行若干虚拟机,每一虚拟机单独与一个嵌入式FPGA及一个功耗计对接。
3.根据权利要求1所述的一种基于FPGA的智能应用在线设计评估系统,其特征在于,所述运行服务器通过PCIe接口对非嵌入式FPGA进行智能应用加速区域的逻辑配置;所述非嵌入式FPGA能够通过PCIe DMA数据传输实现对国产CPU的协同加速计算;所述运行服务器及非嵌入式FPGA均与功耗计连接;所述运行服务器用于功耗计进行配置以及接收功耗计统计的非嵌入式FPGA的功耗值。
4.根据权利要求1所述的一种基于FPGA的智能应用在线设计评估系统,其特征在于,非嵌入式FPGA及嵌入式FPGA单独连接一个功耗计,所述功耗计为与其连接的非嵌入式FPGA或嵌入式FPGA供电,并实时测量非嵌入式FPGA或嵌入式FPGA加速逻辑运行时的功耗。
5.根据权利要求1所述的一种基于FPGA的智能应用在线设计评估系统,其特征在于,所述智能应用包括:图像目标检测、语音识别以及文本情报分析,对智能应用进行评估包括计算效率与识别准确率评估,结合功耗计统计的功耗,从三个维度对智能应用进行综合评估。
6.根据权利要求1所述的一种基于FPGA的智能应用在线设计评估系统,其特征在于,系统包含软件层,所述软件层包括:平台层、软件算法层以及测试评估层;其中:
所述平台层部署在所述管理服务器上,用于对系统的计算、存储与网络资源进行分布式管理,对不同远程用户所需要的不同资源需求进行异构融合调度,对整个系统运行情况实现统一监控;
所述软件算法层部署在所述运行服务器上,包含若干软件算法框架与开发工具,用于满足远程用户对不同机器学习框架的自由选择需求,实现对国产自主机器学习技术栈的适配和支撑;
所述测试评估层部署在存储服务器上,包含测试数据集以及评估计分程序,供开发服务器与运行服务器上调用。
7.根据权利要求6所述的一种基于FPGA的智能应用在线设计评估系统,其特征在于,通过软件层进行资源封装,包括:将远程用户资源请求加入资源申请队列,在满足资源分配需求时,进行资源分类并设定使用时间;当达到设定的使用时间时,对进行资源禁用,等待远程用户的下次申请使用;当资源未被分配使用时,通过个隔离化的手段分配给其他远程用户使用。
8.根据权利要求6所述的一种基于FPGA的智能应用在线设计评估系统,其特征在于,通过软件层进行资源分配,包括:采用多用户分时复用单FPGA卡的方式;
第一远程用户在第一次向系统请求资源时,为其分配第一计算单元,并保证在第一计算单元上只创建一个容器,接入相关FPGA供第一远程用户使用,其他远程用户的容器被处于停止状态;当第一远程用户结束第一次请求资源的使用时,第一远程用户使用的容器被制作成镜像,保存于存储服务器的镜像仓库中,供下次使用;当第一远程用户再次向系统请求资源时,根据资源分配情况,将第二计算单元分配给第一远程用户,并从存储服务器的镜像仓库中将第一远程用户的镜像,拉取至计算第二计算单元,从而创建容器,分配FPGA资源,供第一远程用户使用;其中,对于国产CPU与非嵌入式FPGA的应用场景,计算单元包括运行服务器与非嵌入式FPGA;对于嵌入式FPGA的应用场景,计算单元为非嵌入式FPGA。
9.根据权利要求6所述的一种基于FPGA的智能应用在线设计评估系统,其特征在于,通过软件层进行实现安全访问,包括:所述远程用户使用终端设备通过互联网经隔离区接入系统中的服务网关;所述隔离区依托多维度纵深防御体系,对系统资源以及远程用户行为进行检测,包括日志审计、病毒检测与异常流量监控。
10.一种基于FPGA的智能应用在线设计评估方法,其特征在于,该方法基于权利要求1~9任一项所述的系统实现,步骤包括:
远程用户访问系统提供的网页页面,对所述远程用户提交的帐号密码进行审核,审核通过后允许所述远程用户接入系统;
根据所述远程用户的资源请求类型进行资源分类,通过虚拟机的形式为远程用户提供远程使用的开发环境,供远程用户进行FPGA程序设计、仿真、综合、编译以及调试;
当接收到远程用户运行请求后,通过评估计分程序进行智能应用的部署,并调用测试数据集与对智能应用进行测试;
测试数据集运行完毕后,结合智能应用的识别准确率、计算效率以及功耗计统计的FPGA功耗,计算智能应用评分并反馈给远程用户。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111119941.3A CN113849405B (zh) | 2021-09-24 | 2021-09-24 | 基于fpga的智能应用在线设计评估系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111119941.3A CN113849405B (zh) | 2021-09-24 | 2021-09-24 | 基于fpga的智能应用在线设计评估系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113849405A CN113849405A (zh) | 2021-12-28 |
CN113849405B true CN113849405B (zh) | 2022-12-13 |
Family
ID=78979639
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111119941.3A Active CN113849405B (zh) | 2021-09-24 | 2021-09-24 | 基于fpga的智能应用在线设计评估系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113849405B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114863585B (zh) * | 2022-04-06 | 2023-08-08 | 宗申·比亚乔佛山摩托车企业有限公司 | 一种车辆智能测试监控系统、方法及云平台 |
CN114661614B (zh) * | 2022-04-11 | 2024-08-23 | 浙江大学 | 面向云环境的fpga硬件设计能力评测系统和方法 |
CN115623460B (zh) * | 2022-09-21 | 2023-09-12 | 盐城工学院 | 一种自评分的远程实验系统及方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110378463B (zh) * | 2019-07-15 | 2021-05-14 | 北京智能工场科技有限公司 | 一种人工智能模型标准化训练平台及自动化系统 |
CN110704135B (zh) * | 2019-09-26 | 2020-12-08 | 北京智能工场科技有限公司 | 一种基于虚拟环境的竞赛数据处理系统和方法 |
CN112529309A (zh) * | 2020-12-16 | 2021-03-19 | 北京航天智造科技发展有限公司 | 一种云数据中心智能管理系统 |
-
2021
- 2021-09-24 CN CN202111119941.3A patent/CN113849405B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN113849405A (zh) | 2021-12-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113849405B (zh) | 基于fpga的智能应用在线设计评估系统及方法 | |
CN103220364B (zh) | 一种基于云的系统管理训练平台架构 | |
CN111414172B (zh) | 应用软件自动部署发布系统及方法 | |
CN109961151A (zh) | 用于机器学习的计算服务的系统及用于机器学习的方法 | |
US20230206132A1 (en) | Method and Apparatus for Training AI Model, Computing Device, and Storage Medium | |
US10810018B2 (en) | Device with extensibility | |
WO2022120717A1 (zh) | 仿真任务调度方法、执行方法、仿真实现方法及装置 | |
JP6614466B2 (ja) | 能力付与データ生成装置 | |
CN105138765B (zh) | 基于Docker的人工交通系统大规模计算实验方法 | |
Zhou et al. | {PetS}: A unified framework for {Parameter-Efficient} transformers serving | |
CN102880543B (zh) | 用于集成测试平台的测试数据供应链管理器 | |
CN110249300A (zh) | 内置于数据集成工作流编辑器中的测试用例生成器 | |
CN111062521B (zh) | 一种在线预测方法、系统及服务器 | |
Annighoefer et al. | Challenges and ways forward for avionics platforms and their development in 2019 | |
CN110991040A (zh) | 一种复杂产品协同仿真环境构建方法 | |
CN114564374A (zh) | 算子性能评估方法、装置、电子设备及存储介质 | |
CN111597114A (zh) | 小程序的验证方法、装置、设备及存储介质 | |
CN109918169A (zh) | 一种基于obe模式的云实验实训系统 | |
CN109100952B (zh) | 分布式半实物仿真航天器健康管理系统区域推理机 | |
US11874761B2 (en) | Apparatus and method to assign threads to a plurality of processor cores for virtualization of a hardware configuration | |
Irvine et al. | Labtainers: a framework for parameterized cybersecurity labs using containers | |
JP2023070000A (ja) | 対話環境におけるニューラル・ネットワークを使用したユーザの意図及び関連するエンティティの認識 | |
JP2023070002A (ja) | 会話型人工知能アプリケーションにおける非構造化データの記憶及び取得 | |
CN106227601A (zh) | 用于虚拟化平台的资源配置的方法和装置 | |
US20240045662A1 (en) | Software code verification using call graphs for autonomous systems and applications |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |