一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种高性能硬件加速和算法验证系统及方法与流程

2022-02-21 08:04:03 来源:中国专利 TAG:


1.本发明涉及一种算法验证系统及方法,尤其涉及一种高性能硬件加速和算法验证系统及方法。


背景技术:

2.随着科技的发展和社会的进步,人工智能领域等技术发展突飞猛进,而深度学习算法作为人工智能领域的一个关键技术,在计算机视觉、自然语言处理等领域应用十分的广泛。
3.在技术发展的早期,在执行类似深度学习的复杂算法的过程中,主要采用cpu来实现算法处理,但是cpu无法高效的实现包含大量数值运算的复杂算法。传统的方案通过将包含大量计算核心的gpu用于处理并行度较高的深度学习算法模型。但gpu能耗较高,无法实现大规模的部署和应用。而且gpu的并行性是通过多次复制相同的通用计算核心来实现。gpu的指令集限制导致一个时钟周期内只能实现一个基本指令。同时,gpu的架构不可更改,无法支持某些特殊的指令。故传统的gpu架构的算法验证系统存在运算效率比较低,指令兼容性不强,灵活性不高的问题。
4.其他单一的处理器算法验证系统在算法执行的过程中需要指令读取-指令译码-指令执行的步骤,也会导致系统运算性能下降,并且存在功耗较高的问题。


技术实现要素:

5.发明目的:本发明旨在提供一种高性能硬件加速和算法验证系统及方法,解决算法验证系统中算法验证效率低和系统功耗较高的问题。
6.技术方案:本发明的所述的高性能硬件加速和算法验证系统,包括处理器模块、存储模块、高速通信接口模块、外设接口模块、时钟模块、电源管理模块和调试与下载模块;所述存储模块、高速通信接口模块、外设接口模块、时钟模块、系统电源模块、调试与下载模块均与处理器模块连接;
7.处理器模块包括主处理器和协处理器,主处理器实现硬件加速功能并对算法验证,协处理器协调主处理器工作;存储器模块实现系统数据的缓存和运行程序的存储;高速通信接口模块实现处理器模块与外部高速设备之间数据的传输和处理;所述外设接口模块实现处理器模块与外部设备之间的信号的传输和处理;时钟模块为处理器模块提供系统时钟;所述电源管理模块为处理器模块提供工作电压;调试和下载模块实现系统的程序下载和功能调试。
8.所述主处理器为fpga,协处理器为带有arm硬核的芯片,主处理器通过lvds差分信号线和单端mio与协处理器连接。
9.所述存储器包括第一存储器和第二存储器,第一存储器与主处理器连接,第二存储器与协处理器连接;第一存储器包括第一ddr存储模块和第一非易失存储模块;第二存储器包括第二ddr存储模块、第二非易失存储模块、内嵌式存储模块;
10.所述第一ddr存储器用于fpga主处理器数据的缓存,第一非易失存储模块用于存储主处理器的系统程序,用于上电后的系统运行;
11.所述第二ddr存储模块用于arm协处理器数据的缓存,第二非易失存储模块用于存储协处理器的系统程序用于上电后的系统运行,内嵌式存储模块用于存储嵌入式操作系统,实现对主处理器和协处理器任务进程的调度和控制;
12.所述第一ddr存储模块通过地址总线和数据总线与主处理器连接;所述第二ddr存储模块通过地址总线和数据总线与协处理器连接;所述第一非易失存储模块通过spi总线接口、bpi总线接口与主处理器连接;所述第二非易失存储模块通过spi总线接口与协处理器连接;所述内嵌式存储模块通过mmc总线接口与协处理器的连接。
13.所述高速通信接口模块包括pcie接口模块、sata接口模块、高速光纤接口模块;所述pcie接口模块实现系统与外部pc机的通信和数据交互,sata接口模块实现系统对sata接口设备的数据读写操作,高速光纤模块实现系统与外部光纤设备的通信和数据交互。
14.所述外设接口模块包括与处理器通信的网络通信模块、usb模块和sd卡模块;所述网络通信模块支持千兆以太网数据的传输,usb模块用于系统与pc主机端或usb外设的信息交互。所述外设接口模块的信号还包括与处理器通信的fmc接口拓展模块,用于拓展外设接口。
15.所述时钟模块包括主处理器时钟模块和协处理器时钟模块;主处理器时钟模块为主处理器提供高精度的lvds差分系统时钟;协处理器时钟模块为协处理器提供单端有源系统时钟。
16.所述调试和下载模块包括jtag接口模块、uart接口模块和i2c接口模块;jtag接口模块实现主处理器和协处理器的程序下载和调试;uart接口模块实现程序在线调试,以及与外部的rs232接口通信;i2c接口模块实现对系统内部带有i2c通信接口的模块操作,实现程序的交互和传递。
17.所述第一存储模块还包括bpi接口的并行flahs存储模块,当主处理器内部的lut使用量超过阈值时,主处理器从bpi接口的flahs中加载程序实现主处理器程序的加载和启动,当主处理器内部的lut使用量小于阈值时,主处理器从spi接口的flahs中加载程序实现主处理器程序的加载和启动。
18.本发明所述的高性能硬件加速和算法验证方法,包括以下步骤:
19.(1)协处理器从外设接口模块或高速通信接口模块连接的外设中,读取n个图片,n大于等于2,设定每个图片的标准值;
20.当主处理器内部的lut使用量超过阈值时,主处理器从bpi接口的flahs中加载程序实现主处理器程序的加载和启动,当主处理器内部的lut使用量小于阈值时,主处理器从spi接口的flahs中加载程序实现主处理器程序的加载和启动;
21.(4)主处理器通过lvds将图片数据转换为并行的位图数据,并将位图数据缓存在ddr中,对输入的n个图片同时算法验证;
22.(5)判断算法验证结果是否与对应的目标图片初始值相等,如果相等,则执行步骤(1),如果不相等,则执行步骤(6);
23.(6)修正算法,重新算法验证,执行步骤(5)。
24.有益效果:与现有技术相比,本发明具有如下显著优点:
25.(1)采用fpga主处理器和arm协处理器相互配合的系统平台,具备软、硬件全可编程能力和高效的并行算法实现能力,其动态可重构的特性搭配丰富的外设接口和模块有效提升系统的运算性能,降低系统的功耗。
26.(2)以差分数据信号实现fpga主处理器与arm协处理器两者之间的协同处理,满足高速率数据交换和传输的需求,适用于高带宽的数据交互,并有效的提升信号传输的质量。
27.(3)主处理器采用多个高速扩展的hpc接口,实现多通道高速数据的输入,并实现与协处理器的交互和同步的处理,实现高效的运算效果,提升系统的性能。
28.(4)根据系统程序占用的内部的lut使用的比例采用了串行和并行接口通信方式动态切换和选择的方式,提升系统的处理速度和降低系统功耗,从而满足系统设备的启动的需求。
附图说明
29.图1为本发明的结构示意图;
30.图2为本发明一个实施例的示意图。
具体实施方式
31.下面结合附图对本发明的技术方案作进一步说明。
32.如图1所示,本发明所述的高性能硬件加速和算法验证系统包括处理器模块、存储模块、高速通信接口模块、外设接口模块、时钟模块、电源管理模块以及调试和下载模块。各模块均与处理器模块连接。
33.处理器模块包括fpga主处理器模块和带有arm硬核的zynq协处理器模块。主处理器实现硬件加速功能和算法的实现,协处理器通过发送控制指令协调主处理器的工作。fpga主处理器模块与协处理器模块通过多对lvds差分信号线和单端mio进行连接,实现指令和数据的交互和控制。
34.存储模块包括主处理器端的第一存储模块和协处理器端的第二存储模块。主处理器端的第一存储模块包括第一ddr存储模块和第一非易失存储模块。协处理器端的第二存储模块包括第二ddr存储模块、第二非易失存储模块、内嵌式存储模块。主处理器端的第一ddr存储模块用于fpga主处理器数据处理过程中数据的缓存,第一非易失存储模块用于存储主处理器端程序上电后的运行。协处理器端的第二ddr存储模块负责协处理器段的数据的缓存和处理,第二非易失存储模块用于存储协处理器端的运行程序和代码,用于上电后进行系统的初始化和程序的执行。内嵌式存储模块用于存储嵌入式的操作系统,可以用于实现对主处理器和协处理器任务的进程的调度和控制。其中,ddr存储模块通过地址总线和数据总线与处理器模块相连接。非易失高速通信接口模块和处理器模块通过spi接口和bpi总线接口进行连接。内嵌式存储模块通过mmc接口总线协议来实现与协处理器的连接。
35.高速通信接口模块和fpga主处理器模块的高速通信接口相连,实现高带宽、大吞吐量、低时延要求的数据的传输和处理。高速通信接口模块包括pcie接口模块、sata接口模块、高速光纤接口模块。pcie接口模块用于实现系统与外部pc机的通信和数据交互。sata接口模块实现系统对sata接口设备的数据的读写操作。高速光纤模块用于接收外部的高速光信号,并传输给主处理器。
36.外设接口模块包括fmc接口拓展模块,通过fmc接口可以拓展多种高速和低速的外设接口,实现多种信号的输入和处理,该扩展接口模块可以实现高速hdmi、dp视频信号以及高速ad/da信号的传输和处理。
37.外设接口模块还包括网络通信模块、usb模块以及sd卡模块,这些模块与协处理器进行通信和连接。网络通信模块支持千兆以太网数据和信息的传输。usb模块用于系统与pc主机端以及usb外设的信息交互。当usb模块工作在主模式时,外设通过usb与主设备实现信息的交互。当usb模块工作在从模式时,主机pc通过usb接口实现对本系统的控制和信号的传输。
38.时钟模块包括主处理器的时钟模块和协处理器的时钟模块。主处理器的时钟模块主要为主处理器提供系统时钟,该时钟为高精度的lvds差分时钟,为系统正常工作提供时钟参考。协处理器的时钟模块主要为嵌入式的硬核提供系统时钟,该时钟为单端有源时钟。
39.电源管理模块为主处理器和协处理器提供稳定的电源,确保系统工作的正常和稳定,同时也为其他与主处理器和协处理器通信的外设模块提供稳定工作的电平标准。并且,该电源模块通过控制系统的上电时序以确保系统的工作的稳定和正常。对于主处理器和协处理器,系统的上电控制顺序为内核上电

辅助电源供电

端口供电

外设接口供电的系统的电源方案。
40.调试和下载模块实现系统的程序下载和功能调试的作用,包括jtag接口模块、uart接口模块以及i2c接口模块。jtag接口模块用于多个处理器的程序下载和调试功能。uart接口模块可以实现与程序的在线调试接口功能,也可以同时采用电平转换芯片实现与外部的rs232接口的通信和数据传输的功能。i2c接口模块实现对系统内部的带有i2c通信接口的模块进行读写操作,实现程序的交互和传递的功能。
41.如图2所示,本实施例中,fpga主处理器选用赛灵思v7系列的模块。该模块包括36个高速gtx收发模块,单通道速率达13.6gbps,适合超高带宽的数据信号的接收和发送。同时集成了串并转换模块,可以针对不同的输入信号进行解码和处理。该模块内部包含多组lvds电平接口的信号,可以实现与其他处理器的信号的通信和传输。
42.协处理器模块为带有arm硬核的zynq。该处理器模块内嵌arm模块,运行频率可达866mhz。该协处理器模块包括逻辑驱动部分和嵌入式处理部分,其中逻辑处理部分负责与fpga主处理器进行通信和控制。通信方式包括差分信号接口和单端通信端口。单端通信端口实现arm协处理器对fpga主处理器的控制和通信。差分信号接口实现fpga主处理器和arm协处理器的信号的交互,具体包括高速差分传输接口和低压信号传输接口,从而实现不同速率和格式信号和数据的传输。
43.本实施例中,主处理器的ddr存储模块为ddr3或ddr4模块。以ddr3模块为例,由于该模块采用了双倍数据速率的工作模式,当ddr3的运行时钟速率为533mhz时,ddr3的数据速率为1066mb/s,数据位宽为64bit,地址总线位宽为15位,从而满足fpga主处理器数据处理的缓存需求。非易失存储模块主要为具有spi通信接口的flash存储模块,该模块通过外部的jtag接口实现对主处理器的上电后程序的写入,使得fpga主处理器在上电后通过内部的jtag接口实现程序的读取,保证主处理器系统的正常工作,本发明所采用的flash的存储空间为512mb,可以实现加速和算法验证系统的程序存储需求。
44.主处理器的存储模块还包括bpi接口的并行flash存储模块。该并行的flash存储
模块与串行的flash模块可以作为主处理器启动的选择方案。当主处理器内部的lut单元使用超过65%时,此时程序量加载较大,同时为了满足pcie设备识别的建立时间要求为100ms,此时主处理器通过设备选择模块输出设备启动选择信号,选择bpi并口的通信方式,从bpi接口的flahs中加载程序实现主处理器程序的加载和启动,可以快速的实现程序的启动,满足高速外设的加载启动要求,同时提高加载效率,同时可以降低系统功耗。反之,当主处理器内部的lut使用量小于65%时,主处理器通过设备选择模块输出设备启动选择信号,选择spi串口通信方式,从spi接口的flahs中加载程序实现上电启动和运行。通过采用这种方式可以根据程序所占用的内部lut的比例来动态自适应的选择程序加载的方案,可以有效的提升系统处理效率和降低系统的功耗。
45.协处理器的ddr存储模块采用与主处理器相同的ddr3存储模块,该存储模块用于缓存zynq协处理器外设接收和经过协处理器处理的数据信号。协处理器的非易失存储模块和fpga主处理器的spi规格存储模块规格相同,用于实现协处理器上电后的程序运行,确保协处理器的正常工作。内嵌式存储模块为emmc模块,该模块可以运行嵌入式操作系统,从而可以实现对协处理器模块运行进程的管理和控制,并可以通过协处理的mio间接的实现对主处理器的控制,进一步提升加速系统的运行的效率,同时实现任务的调度,控制系统运行的功耗。
46.本实施例中,高速通信接口模块的pcie采用x8的工作模式,可以实现支持7.8gb/s高带宽的数据吞吐量的传输,可以实现处理器模块与pc终端机的高速通信和数据交换,实现由加速系统进行加速,终端pc进行信号的最终处理。sata接口模块作为外设硬盘接口模块,用于外部存储的扩展方案,以扩大加速和验证系统的存储空间,该接口支持sata2.0接口标准传输速度达3gbps,可以满足高带宽速率的传输要求,实现很低的延时的快速读写和响应的要求。高速光纤接口模块包括10g sfp 模块和40g的qsfp 模块。高速光纤接口模块在接收外部的光纤信号后,通过内部的光电转换模块实现信号的转换和处理的工作,从而可以保证本发明的系统可以高效的处理外部接收到的信号,保证系统工作的可靠性。
47.本实施例中,外设接口拓展模块包括满足fmc接口标准的hpc连接器,该连接器可以实现多种类型接口信号的输入和输出。满足最高支持8k hdmi和dp信号的输入和输出,满足超高清视频信号处理的要求。同时,为了兼容高速模数信号的采集和处理的需求,本发明所述的hpc模块可以实现超高采样率的ad/da采集需求,最高采样率达到gsps,从而进一步的扩展系统外设功能,满足对多种类型信号的输入需求,从而扩展系统的兼容性。
48.本实施例中,网络通信模块采用rj45的接口方案支持千兆以太网数据和信息的传输。usb模块采用2.0的方案,用于系统与pc主机端以及usb外设的信息交互。主处理器的时钟模块选用200m的差分有源晶振,通过fpga主处理器的hr分区的时钟输入口,实现系统时钟的输入,协处理器的时钟模块主要输入33.3333mhz的时钟信号,可以确保协处理系统的各模块的正常稳定的工作。调试和下载模块采用jtag接口模块,由于该系统的处理器模块和其他外设的调试接口均采用jtag接口的方案模式,故存在多个jtag接口的驱动方式,本实施例中,采用了单一jtag口以菊花链形式将所有芯片串联起来实现下载编程。采用菊花链的方式首先可以节省多个jtag口占用的pcb空间;其次,便于fpga程序进行在线或远程升级。
49.本发明的工作过程如下:
50.在一个实施例中,通过本发明所述的系统来实现目标识别的深度学习算法验证,该深度学习算法主要用来识别贴片后的电路板卡上的元器件是否存在漏件。
51.本实施例中通过大量的元器件元素图片作为样本集,样本集的80%图片作为训练集,通过建立深度学习算法模型,然后通过20%的测试集带入建立的深度学习算法模型,进行模型算法验证。设定测试集为100张图片,每张图片的标准值为0-100的一个固定值。
52.将测试集的bmp图片存入到外设接口模块的sd卡中。系统上电后,协处理器通过sdio总线读取sd卡中的测试集图片,并将测试集的位图图片通过并串转换为串行信号,然后通过lvds信号线传输到主处理器。由于该深度学习模型算法实现过程较为复杂,内部逻辑单元使用较大,处理器内部的lut使用量大约为70%,故主处理器选择以bpi方式来读取flash中的程序进行上电初始化,同时通过lvds将测试集的图片信号转换为并行的位图数据信号,并将位图数据信号缓存在ddr中,运行深度学习模型算法,对位图进行运算,得到算法执行后的结果。
53.本发明的协处理器通过mio发送控制指令到主处理器,主处理器通过并行的方式同时对100张图片进行算法运算,将每张图片的运算结果与测试集的对应标准值进行比较,当运算的结果与标准值相等时,则判定算法模型为准确,否则算法模型不准确,需要重新修正算法模型。
54.本发明采用了fpga主处理器与ddr3中的数据缓存的位图数据进行数据交互,可以同时按照并发的长度和次数并行的对位图图像数据进行并发的传输,有效的提升的系统运算的速度,进而有效的提升了算法验证的效率。
55.本发明采用协处理器在一个时钟周期内,发送单次控制信号指令到主处理器,主处理器接收到指令开始执行,即可完成整个位图数据的处理和验证。而其他单一的处理器在一个时钟周期,通过指令的读取-指令译码-指令执行这个步骤只能完成图像特定位宽的数据的验证。对于测试集的图片的数量越多,需要的时钟周期越长。因此本发明的算法验证系统在复杂算法的验证过程中的效率相对于传统单一处理器,综合效率可以提升45%左右,并且可以降低系统功耗约20%。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献