CN110309088A - Zynq fpga芯片及其数据处理方法、存储介质 - Google Patents
Zynq fpga芯片及其数据处理方法、存储介质 Download PDFInfo
- Publication number
- CN110309088A CN110309088A CN201910533699.0A CN201910533699A CN110309088A CN 110309088 A CN110309088 A CN 110309088A CN 201910533699 A CN201910533699 A CN 201910533699A CN 110309088 A CN110309088 A CN 110309088A
- Authority
- CN
- China
- Prior art keywords
- data
- read
- pea
- external memory
- write
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/32—Handling requests for interconnection or transfer for access to input/output bus using combination of interrupt and burst mode transfer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7839—Architectures of general purpose stored program computers comprising a single central processing unit with memory
Abstract
本发明提供一种ZYNQ FPGA芯片及其数据处理方法、存储介质,PS部分配置PL部分的PEA中PE的运算参数,并使能PE的计算启动;PEA根据PE的运算参数,确定读命令和写命令,以及写命令的个数,分别将读/写命令发送至DMA控制器的读/写命令接口;DMA控制器根据读命令,启动从外部存储设备读取数据流程,并将读取到的数据发送至PEA;PEA根据读取到的数据进行计算,将计算结果写回DMA控制器;DMA控制器将计算结果传输至外部存储设备,等待传输结束将每个写命令对应的结束标志信号发回PEA;PEA在接收到与写命令的个数相同数目的结束标志信号后,发送中断至PS部分,有效提高处理深度学习模型的整体性能。
Description
技术领域
本发明实施例涉及人工智能技术,尤其涉及一种ZYNQ FPGA芯片及其数据处理方法、存储介质。
背景技术
随着深度学习的不断发展,深度学习模型逐渐被应用于各个方面,例如,云计算、边缘计算,等等。以边缘计算为例,目前在人工智能的研究中,边缘计算所需处理的数据量急剧增长,已远远超出终端设备核心处理器芯片的片上内存,需要借助外部存储设备来做中间处理数据的临时缓存。因此,如何将深度学习模型高效地部署在拥有较少资源和较低成本的终端设备,将高度受限于核心处理器芯片与外部存储设备的数据通讯效率。
现有基于ZYNQ现场可编程门阵列(field programmable gate array,简称:FPGA)芯片的深度学习模型硬件方案,是分别在处理系统(processing system,简称:PS)部分与可编程逻辑(programmable logic,简称:PL)部分挂载双倍速率同步动态随机存储器(double data rate synchronous dynamic random access memory,简称:DDR SDRAM,习惯称为DDR),其中PS部分通过其内置的DDR控制器与其挂载的DDR实现数据通讯,PL部分则通过用户接口操作其他配套的DDR PHY控制器与其挂载的DDR实现数据通讯。
其中,深度学习模型包括多个神经网络层,不同的神经网络层可能由PS部分处理或者PL部分处理,例如,神经网络层1由PS部分处理,神经网络层2由PL部分处理。此时,基于上述硬件方案,PL部分需要从PS部分挂载的DDR获取PS部分对神经网络层1进行处理后的数据,作为PL部分处理神经网络层2的输入数据,同时该数据为PS部分处理神经网络层1的输出数据。数据在PS部分和PL部分处理间的切换,导致两侧DDR之间数据频繁交互并占用数据传输时间,从而影响处理深度学习模型的整体性能。
发明内容
本发明实施例提供一种ZYNQ FPGA芯片及其数据处理方法、存储介质,以有效提高处理深度学习模型的整体性能。
第一方面,本发明实施例提供一种数据处理方法,应用于ZYNQ FPGA芯片,ZYNQFPGA芯片包括PS部分和PL部分,其中PS部分与PL部分共享外部存储设备,外部存储设备挂载在PS部分。数据处理方法,包括:
PS部分配置PL部分的PEA中PE的运算参数,并使能PE的计算启动,PE为深度学习模型中的神经网络层对应的处理模块;
PEA根据PE的运算参数,确定读命令和写命令,以及写命令的个数,并将读命令发送至DMA控制器的读命令接口,将写命令发送至DMA控制器的写命令接口;
DMA控制器根据读命令,启动从外部存储设备读取数据流程,并将读取到的数据发送至PEA;
PEA根据读取到的数据进行计算,并将计算结果写回DMA控制器;
DMA控制器将计算结果传输至外部存储设备,并等待传输结束将每个写命令对应的结束标志信号发回PEA;
PEA在接收到与所述写命令的个数相同数目的结束标志信号后,发送中断至PS部分。
本发明实施例至少具有以下优势:
一方面,采用根据神经网络层处理特点自定义的DMA传输和中断机制,其由基于PL部分实现的各神经网络层所组成的PEA来驱动数据传输,并由PEA完成中断上报,即PL部分负责计算加速,由于ZYNQ FPGA芯片的PL部分拥有高并行数据处理、高实时响应以及低处理延时等诸多特性,由PL部分全权掌控的DMA传输和中断机制极大地提升了整个神经网络运算的处理性能。
另一方面,该数据处理流程中控制信令(PEA将PS部分配置的运算参数是使能信息转换为DMA控制器进行数据搬移的信息,例如包括上述读命令和写命令)和数据通道是相互独立的,读和写的机制也相互独立且可以同时工作,大大减少了数据在ZYNQ FPGA芯片的停留时间并减少芯片内部存储需求,能够节省芯片资源消耗和提升处理性能。
在一种可能的设计中,运算参数是由PS部分根据深度学习模型中各神经网络层的数据需求配置给PE的。由PS部分根据深度学习模型中的神经网络层的数据量需求,灵活地分配出动态内存空间调度给PS部分或者PL部分做数据处理的中间存储,以便于实现PS部分与PL部分之间数据处理的切换,其中切换和计算过程的调度由PS部分控制,即PS部分负责调度管理,充分发挥了ARM处理器灵活通用的调度性能,避免了数据在不同片外存储系统通讯的时间开销。
在一种可能的设计中,PE的运算参数,可以包括:数据传输大小、传输次数和读写基地址,等等。
在一种可能的设计中,PL部分使用N个AXI_HP接口,通过DDR控制器与外部存储设备互联,其中,N为正整数,从而使得整个访问过程无需PS部分干涉。
在一种可能的设计中,DMA控制器根据读命令,启动从外部存储设备读取数据流程,并将读取到的数据发送至PEA,可以包括:DMA控制器根据读命令,采用N个数据搬运器控制AXI_HP接口的读操作,从外部存储设备读取数据;DMA控制器将N个数据搬运器读取到的数据转换为N倍的所述读取到的数据的位宽,并发送至PEA。
在一种可能的设计中,DMA控制器将计算结果传输至外部存储设备,可以包括:DMA控制器采用N个数据搬运器控制AXI_HP接口的写操作,将计算结果转换为N分之一倍的所述计算结果的位宽,并传输至外部存储设备。
在一种可能的设计中,N取值为2时,DMA控制器分别对两个数据搬运器的读写数据进行乒乓切换,以保证数据次序。
在一种可能的设计中,外部存储设备中对应PL部分处理的数据采用HWC存储格式进行存储,外部存储设备中对应PS部分处理的数据采用CHW存储格式进行存储。
为了提高HWC存储格式和CHW存储格式这两种数据格式之间的转换效率,本发明实施例设计了跳跃式的DMA读写方式。可选地,读命令和写命令的控制域均包括以下内容:数据的起始基地址、数据长度、跳跃至下一次基地址的数据间隔长度和从起始基地址开始跳跃的次数。
进一步地,从起始基地址开始跳跃的次数为0时,控制域支持不跳跃的内存读或写。
第二方面,本发明实施例提供一种ZYNQ FPGA芯片,包括:PS部分和PL部分,PS部分与PL部分共享外部存储设备,外部存储设备挂载在PS部分。具体地:
PS部分,用于配置PL部分的PEA中PE的运算参数,并使能PE的计算启动,PE为深度学习模型中的神经网络层对应的处理模块;
PEA,用于根据PE的运算参数,确定读命令和写命令,以及写命令的个数,并将读命令发送至DMA控制器的读命令接口,将写命令发送至DMA控制器的写命令接口;
DMA控制器,用于根据读命令,启动从外部存储设备读取数据流程,并将读取到的数据发送至PEA;
PEA,还用于根据读取到的数据进行计算,并将计算结果写回DMA控制器;
DMA控制器,还用于将计算结果传输至外部存储设备,并等待传输结束将每个写命令对应的结束标志信号发回PEA;
PEA,还用于在接收到与所述写命令的个数相同数目的结束标志信号后,发送中断至PS部分。
在一种可能的设计中,运算参数是由PS部分根据深度学习模型中各神经网络层的数据需求配置给PE的。
在一种可能的设计中,PE的运算参数,可以包括:数据传输大小、传输次数和读写基地址。
在一种可能的设计中,PL部分使用N个AXI_HP接口,通过DDR控制器与外部存储设备互联,其中,N为正整数。
在一种可能的设计中,DMA控制器在根据所述读命令,启动从外部存储设备读取数据流程,并将读取到的数据发送至PEA时,具体为:根据读命令,采用N个数据搬运器控制AXI_HP接口的读操作,从外部存储设备读取数据;将N个数据搬运器读取到的数据转换为N倍的所述读取到的数据的位宽,并发送至PEA。
在一种可能的设计中,DMA控制器在将计算结果传输至外部存储设备时,具体为:采用N个数据搬运器控制AXI_HP接口的写操作,将计算结果转换为N分之一倍的所述计算结果的位宽,并传输至外部存储设备。
在一种可能的设计中,N取值为2,DMA控制器分别对两个数据搬运器的读写数据进行乒乓切换,以保证数据次序。
在一种可能的设计中,外部存储设备中对应PL部分处理的数据采用HWC存储格式进行存储,外部存储设备中对应PS部分处理的数据采用CHW存储格式进行存储。
在一种可能的设计中,读命令和写命令的控制域均包括:数据的起始基地址、数据长度、跳跃至下一次基地址的数据间隔长度和从起始基地址开始跳跃的次数。
在一种可能的设计中,从起始基地址开始跳跃的次数为0时,控制域支持不跳跃的内存读或写。
第三方面,本发明实施例提供一种ZYNQ FPGA芯片,ZYNQ FPGA芯片上存储有计算机程序,在计算机程序被处理器执行时,执行如第一方面任一项所述的数据处理方法。
第四方面,本发明实施例提供一种终端设备,包括如第二方面或第三方面任一项所述的ZYNQ FPGA芯片。
第五方面,本发明实施例提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机执行指令,计算机执行指令被处理器执行时用于实现如第一方面任一项所述的数据处理方法。
本发明实施例提供的ZYNQ FPGA芯片及其数据处理方法、存储介质,至少具有以下优势:
一方面,采用根据神经网络层处理特点自定义的DMA传输和中断机制,其由基于PL部分实现的各神经网络层所组成的PEA来驱动数据传输,并由PEA完成中断上报,即PL部分负责计算加速,由于ZYNQ FPGA芯片的PL部分拥有高并行数据处理、高实时响应以及低处理延时等诸多特性,由PL部分全权掌控的DMA传输和中断机制极大地提升了整个神经网络运算的处理性能。
另一方面,该数据处理流程中控制信令(PEA将PS部分配置的运算参数是使能信息转换为DMA控制器进行数据搬移的信息,例如包括上述读命令和写命令)和数据通道是相互独立的,读和写的机制也相互独立且可以同时工作,大大减少了数据在ZYNQ FPGA芯片的停留时间并减少芯片内部存储需求,能够节省芯片资源消耗和提升处理性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为现有基于ZYNQ FPGA芯片的深度学习模型硬件结构示意图;
图2为本发明实施例提供的ZYNQ FPGA芯片的深度学习模型硬件结构示意图;
图3为本发明一实施例提供的数据处理方法的流程图;
图4为本发明一实施例提供的PS部分与PL部分的交互实现示例图;
图5为本发明一实施例提供的读命令和写命令的控制域的示意图。
具体实施方式
图1为现有基于ZYNQ FPGA芯片的深度学习模型硬件结构示意图。参考图1,分别在PS部分与PL部分挂载DDR,其中PS部分通过其内置的DDR控制器与其挂载的DDR实现数据通讯,PL部分则通过用户接口操作其他配套的DDR PHY控制器与其挂载的DDR实现数据通讯。
针对深度学习模型的处理特点,基于上述硬件方案,数据在PS部分和PL部分处理间的切换,导致两侧DDR之间数据频繁交互并占用数据传输时间,从而影响处理深度学习模型的整体性能。
且,由于现有ZYNQ FPGA芯片最多支持挂载4个DDR颗粒,基于DDR颗粒并行度影响带宽的考虑,PS部分及PL部分两侧均部署最大颗粒并行度的DDR,将会导致终端设备成本较高,不利于商业化部署。
基于上述,本发明实施例应用于ZYNQ FPGA芯片,该ZYNQ FPGA芯片包括PS部分和PL部分,其中PS部分与PL部分共享外部存储设备,且该外部存储设备挂载在PS部分,如图2所示。即整个ZYNQ FPGA芯片只保留PS部分挂载的外部存储设备,例如DDR,同时供PL部分与PS部分使用。
图3为本发明一实施例提供的数据处理方法的流程图。本发明实施例提供一种数据处理方法,该数据处理方法可以通过软件和/或硬件的方式实现。
如图3所示,该数据处理方法包括:
S301、PS部分配置PL部分的运算单元阵列(processing element array,简称:PEA)中运算单元(processing element,简称:PE)的运算参数,并使能PE的计算启动。
其中,PE为深度学习模型中的神经网络层对应的处理模块。
可以理解,由于PL部分(FPGA)内部的设计结构是众多并列的PE共用一套DMA传输机制,因此根据结构将多个并列的PE称为PEA。
可选地,PE的运算参数,可以包括但不限于:数据传输大小、传输次数和读写基地址。PEA中的每个PE对应不同的数据传输大小、传输次数以及PS部分为其做动态内存分配后的读写基地址。
S302、PEA根据PE的运算参数,确定读命令和写命令,以及写命令的个数,并将读命令发送至直接存储器访问(direct memory access,简称:DMA)控制器的读命令接口,将写命令发送至DMA控制器的写命令接口。
S303、DMA控制器根据读命令,启动从外部存储设备读取数据流程,并将读取到的数据发送至PEA。
S304、PEA根据读取到的数据进行计算,并将计算结果写回DMA控制器。
需要说明的是,S304中PEA根据读取到的数据进行计算与S303中DMA控制器将读取到的数据发送至PEA,两个步骤可以部分重叠,也就是说,在DMA控制器将读取到的数据发送至PEA的过程中,PEA可以根据已接收到的数据进行计算。
S305、DMA控制器将计算结果传输至外部存储设备,并等待传输结束将每个写命令对应的结束标志信号发回PEA。
S306、PEA在接收到与所述写命令的个数相同数目的结束标志信号后,发送中断至PS部分。
对应地,PS部分在接收到该中断之后,即确定该次数据处理流程结束。
可选地,PEA还可以根据PE的运算参数,确定读命令命令的个数。对应地:
S303可以替换为:DMA控制器根据读命令,启动从外部存储设备读取数据流程,并将读取到的数据发送至PEA,并等待传输结束将每个读命令对应的结束标志信号发回PEA。
S306可以替换为:PEA在接收到与所述写命令的个数和所述读命令的个数之和相同数目的结束标志信号后,发送中断至PS部分。
例如,PEA根据PE的运算参数,确定的写命令的个数为a,确定的读命令的个数为b,则PEA在接收到a+b个结束标志信号后,发送中断至PS部分。可以理解,a和b均为正整数。
上述交互流程将深度学习模型中神经网络层的处理与DMA传输紧密结合起来,完成一次PEA数据处理的一套读写流程。
需说明的是,传统方案采用的Central DMA通常直接由PS部分控制数据传输启动,并且将传输完毕的中断信号上报给PS部分等待其做下一步某个神经网络层的操作指令,很显然,这种方案过度依赖PS部分的控制,处理延时和实时性很难达到较优的性能;在几十层甚至上百层的神经网络处理中,对于终端侧性能有限的处理器来说,叠加后的整体性能损失将会更加严重。因此,本发明实施例舍弃了由PS部分控制DMA传输和中断的机制,改为采用根据神经网络层处理特点自定义的DMA传输和中断机制,其由基于PL部分实现的各神经网络层所组成的PEA来驱动数据传输,并由PEA完成中断上报,即PL部分负责计算加速。
具体地,PL部分的PEA根据神经网络层处理特点来控制DMA的传输基地址、传输长度和启动时间点等。PEA只需要将PE的运算参数这些需求发送给与DMA控制器的命令(包括读命令和写命令)接口,即可完成相应的数据读写传输操作。DMA控制器在传输完每个命令所对应的数据后,会分别给出读完成以及写完成标志信号,并通知给PEA由每个PE来决定自己所需要的读写传输是否完成,从而产生计算完成的中断通知PS部分。
由于ZYNQ FPGA芯片的PL部分拥有高并行数据处理、高实时响应以及低处理延时等诸多特性,因此,由PL部分全权掌控的DMA传输和中断机制极大地提升了整个神经网络运算的处理性能。
另外,该数据处理流程中控制信令(PEA将PS部分配置的运算参数是使能信息转换为DMA控制器进行数据搬移的信息,例如包括上述读命令和写命令)和数据通道是相互独立的,读和写的机制也相互独立且可以同时工作,大大减少了数据在ZYNQ FPGA芯片的停留时间并减少芯片内部存储需求,能够节省芯片资源消耗和提升处理性能。
在上述实施例中,运算参数是由PS部分根据深度学习模型中各神经网络层的数据需求配置给PE的。由PS部分根据数据量需求,例如H、W、C等,灵活地分配出动态内存空间调度给PS部分或者PL部分做数据处理的中间存储,从而便于实现PS部分与PL部分之间数据处理的切换,切换和计算过程的调度由PS部分控制,充分发挥了PS部分中ARM处理器灵活通用的调度性能,避免了数据在不同外部存储设备通讯的时间开销。
一些实施例中,PL部分使用N个AXI_HP接口,通过DDR控制器与外部存储设备互联,其中N为正整数,整个访问过程无需PS部分干涉。其中,AXI_HP接口作为高速数据传输接口,主要用于PL部分访问PS部分挂载的外部存储设备,例如DDR和On-Chip RAM等。
示例性地,考虑到现有ZYNQ FPGA芯片所造成的带宽限制,本发明实施例即并行度为4的16比特(bit)位宽DDR4 2400,因此,ZYNQ FPGA芯片与外部存储设备最大可实现4*16bit*2.4GHz/8=19.2GB/s的带宽。在DDR42400带宽受限的条件下,PL部分将使用2个AXI_HP接口:AXI_HP0和AXI_HP2接口,通过DDR控制器直接访问DDR,如图4所示,整个访问过程无需PS干涉。由于双工的读写通道互不干扰,在设计系统时钟300MHz的条件下,双口AXI_HP的读写带宽可达到128bit*2*2*300MHz/8=19.2GB/s,与外部存储设备带宽相匹配,可最大程度发挥外部存储设备带宽效率。
在上述场景下,S303、DMA控制器根据读命令,启动从外部存储设备读取数据流程,并将读取到的数据发送至PEA,可以包括:DMA控制器根据读命令,采用N个数据搬运器(DataMover)控制AXI_HP接口的读操作,从外部存储设备读取数据;以及,DMA控制器将N个数据搬运器读取到的数据转换为N倍的所述读取到的数据的位宽,并发送至PEA。
进一步地,S305中“DMA控制器将计算结果传输至外部存储设备”,可以具体为:DMA控制器采用N个数据搬运器控制AXI_HP接口的写操作,将计算结果转换为N分之一倍的计算结果的位宽,并传输至外部存储设备。
仍参考图4,数据搬运器的个数也为2。也就是说,本实施例采用两个数据搬运器来同时控制两个AXI_HP接口的读写操作,对于两路近乎同时传输来的128bit位宽的数据,则需要读(RD)写(WR)各两套128bit位宽转换为256bit位宽的FIFO来做数据片内缓存和位宽切换。可选地,DMA控制器分别对两个数据搬运器的读写数据进行乒(Ping或PING)乓(Pong或PONG)切换,以保证数据次序。
以外部存储设备为DDR为例,深度学习模型的数据在DDR上通常有两种存储格式:HWC和CHW,其中前者适合PL部分处理特点,后者适合PS部分处理特点。因此,外部存储设备中对应PL部分处理的数据采用HWC存储格式进行存储,外部存储设备中对应PS部分处理的数据采用CHW存储格式进行存储。
例如,有4*4*3的图像数据,也就是高度为4,宽度为4,三个RGB通道的图像数据。其中:
CHW存储格式下内存中的排列为:
R0R1R2R3R4R5R6R7R8R9R10R11R12R13R14R15,
G0G1G2G3G4G5G6G7G8G9G10G11G12G13G14G15,
B0B1B2B3B4B5B6B7B8B9B10B11B12B13B14B15
HWC存储格式下在内存中的排列为:
R0G0B0,R1G1B1,R2G2B2,R3G3B3,R4G4B4,R5G5B5,R6G6B6,R7G7B7,R8G8B8,R9G9B9,R10G10B10,R11G11B11,R12G12B12,R13G13B13,R14G14B14,R15G15B15
针对上述存储格式转换的需求,为了提高这两种存储格式之间的转换效率,本发明实施例设计了DMA读写的跳跃机制。如图5所示,读命令和写命令的控制域分别包括:
Start_address:数据的起始基地址;
Transfer_length:数据长度;
Stride_length:跳跃至下一次基地址的数据间隔长度;
Repeat_times:从起始基地址开始跳跃的次数。
通过配置以上控制域,即可实现多次跳跃读写操作,大致流程为:
1.从Start_address开始,读或写Transfer_length的内存数据;
2.跳跃至Start_address+Stride_length的内存位置,读或写Transfer_length的内存数据;
3.跳跃至Start_address+2*Stride_length的内存位置,读或写Transfer_length的内存数据;
4.依照2和3的步骤总共重复跳跃Repeat_times次数,完成一次DMA控制命令所对应的数据读或写。
可选地,该控制域同时支持不跳跃的内存读或写,即设置Repeat_times为0即可。
经验证,本发明实施例可灵活、高效的完成HWC和CHW两种存储格式的转换。
综上,本发明实施例充分发挥ZYNQ FPGA芯片中PS部分(ARM)与PL部分(FPGA)各自的处理特点,从DMA传输机制上着手优化和提升外部存储设备与片内计算单元之间的数据交互效率,使得芯片能够以终端设备的形式,高性能地处理人工智能领域急剧增加的图像数据和中间处理数据,并且做到平台化设计从而兼容运行随业务场景快速变化以及多样化的深度学习模型。
参考图2,本发明实施例提供一种ZYNQ FPGA芯片,包括:PS部分和PL部分,PS部分与PL部分共享外部存储设备,外部存储设备挂载在PS部分。其中:
PS部分,用于配置PL部分的PEA中PE的运算参数,并使能PE的计算启动,PE为深度学习模型中的神经网络层对应的处理模块。
PEA,用于根据PE的运算参数,确定读命令和写命令,以及写命令的个数,并将读命令发送至DMA控制器的读命令接口,将写命令发送至DMA控制器的写命令接口。
DMA控制器,用于根据读命令,启动从外部存储设备读取数据流程,并将读取到的数据发送至PEA。
PEA,还用于根据读取到的数据进行计算,并将计算结果写回DMA控制器。
DMA控制器,还用于将计算结果传输至外部存储设备,并等待传输结束将每个写命令对应的结束标志信号发回PEA。
PEA,还用于在接收到与写命令的个数相同数目的结束标志信号后,发送中断至PS部分。
本发明实施例的ZYNQ FPGA芯片,可以用于执行上述各方法实施例中的技术方案,其实现原理和技术效果类似,其中各个模块的功能可以参考方法实施例中相应的描述,此处不再赘述。
可选地,运算参数是由PS部分根据深度学习模型中各神经网络层的数据需求配置给PE的。
可选地,PE的运算参数,包括但不限于:数据传输大小、传输次数和读写基地址。
进一步地,PL部分使用N个AXI_HP接口,通过DDR控制器与外部存储设备互联,其中,N为正整数。示例性地,N取值为2,但本发明实施例不以此为限制。
在一些实施例中,DMA控制器在根据读命令,启动从外部存储设备读取数据流程,并将读取到的数据发送至PEA时,可以具体为:根据读命令,采用N个数据搬运器控制AXI_HP接口的读操作,从外部存储设备读取数据;以及,将N个数据搬运器读取到的数据转换为N倍的读取到的数据的位宽,并发送至PEA。
在一些实施例中,DMA控制器在将计算结果传输至外部存储设备时,可以具体为:采用N个数据搬运器控制AXI_HP接口的写操作,将计算结果转换为N分之一倍的计算结果的位宽,并传输至外部存储设备。
可选地,N取值为2,DMA控制器分别对两个数据搬运器的读写数据进行乒乓切换,以保证数据次序。
作为一种可选方案,外部存储设备中对应PL部分处理的数据采用HWC存储格式进行存储,外部存储设备中对应PS部分处理的数据采用CHW存储格式进行存储。
进一步地,读命令和写命令的控制域分别包括:数据的起始基地址、数据长度、跳跃至下一次基地址的数据间隔长度和从起始基地址开始跳跃的次数。当从起始基地址开始跳跃的次数为0时,控制域支持不跳跃的内存读或写。
本发明实施例还提供一种ZYNQ FPGA,该ZYNQ FPGA芯片上存储有计算机程序,在计算机程序被处理器执行时,执行如上任一实施例所述的数据处理方法。
本发明实施例还提供一种终端设备,包括如上任一实施例所述的ZYNQ FPGA芯片。
本发明实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机执行指令,该计算机执行指令被处理器执行时用于实现如上所述的数据处理方法。
在上述的实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个单元中。上述模块成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施例所述方法的部分步骤。
应理解,上述处理器可以是中央处理单元(central processing unit,简称:CPU),还可以是其他通用处理器、数字信号处理器(digital signal processor,简称:DSP)、专用集成电路(application specific integrated circuit,简称:ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器可能包含高速RAM存储器,也可能还包括非易失性存储NVM,例如至少一个磁盘存储器,还可以为U盘、移动硬盘、只读存储器、磁盘或光盘等。
总线可以是工业标准体系结构(industry standard architecture,简称:ISA)总线、外部设备互连(peripheral component Interconnect,简称:PCI)总线或扩展工业标准体系结构(extended industry standard architecture,简称:EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本申请附图中的总线并不限定仅有一根总线或一种类型的总线。
上述存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。存储介质可以是通用或专用计算机能够存取的任何可用介质。
一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于专用集成电路(application specific integrated circuits,简称:ASIC)中。当然,处理器和存储介质也可以作为分立组件存在于终端或服务器中。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (23)
1.一种数据处理方法,其特征在于,应用于ZYNQ FPGA芯片,所述ZYNQ FPGA芯片包括处理系统PS部分和可编程逻辑PL部分,所述PS部分与所述PL部分共享外部存储设备,所述外部存储设备挂载在所述PS部分;
所述数据处理方法,包括:
所述PS部分配置所述PL部分的运算单元阵列PEA中PE的运算参数,并使能所述PE的计算启动,所述PE为深度学习模型中的神经网络层对应的处理模块;
所述PEA根据所述PE的运算参数,确定读命令和写命令,以及所述写命令的个数,并将所述读命令发送至直接存储器访问DMA控制器的读命令接口,将所述写命令发送至所述DMA控制器的写命令接口;
所述DMA控制器根据所述读命令,启动从所述外部存储设备读取数据流程,并将读取到的数据发送至所述PEA;
所述PEA根据所述读取到的数据进行计算,并将计算结果写回所述DMA控制器;
所述DMA控制器将所述计算结果传输至所述外部存储设备,并等待传输结束将每个写命令对应的结束标志信号发回所述PEA;
所述PEA在接收到与所述写命令的个数相同数目的结束标志信号后,发送中断至所述PS部分。
2.根据权利要求1所述的数据处理方法,其特征在于,所述运算参数是由所述PS部分根据深度学习模型中各神经网络层的数据需求配置给所述PE的。
3.根据权利要求1所述的数据处理方法,其特征在于,所述PE的运算参数,包括:
数据传输大小、传输次数和读写基地址。
4.根据权利要求1所述的数据处理方法,其特征在于,所述PL部分使用N个AXI_HP接口,通过DDR控制器与所述外部存储设备互联,N为正整数。
5.根据权利要求4所述的数据处理方法,其特征在于,所述DMA控制器根据所述读命令,启动从所述外部存储设备读取数据流程,并将读取到的数据发送至所述PEA,包括:
所述DMA控制器根据所述读命令,采用N个数据搬运器控制AXI_HP接口的读操作,从所述外部存储设备读取数据;
所述DMA控制器将所述N个数据搬运器读取到的数据转换为N倍的所述读取到的数据的位宽,并发送至所述PEA。
6.根据权利要求4所述的数据处理方法,其特征在于,所述DMA控制器将所述计算结果传输至所述外部存储设备,包括:
所述DMA控制器采用N个数据搬运器控制AXI_HP接口的写操作,将所述计算结果转换为N分之一倍的所述计算结果的位宽,并传输至所述外部存储设备。
7.根据权利要求5或6所述的数据处理方法,其特征在于,N取值为2,所述DMA控制器分别对两个数据搬运器的读写数据进行乒乓切换,以保证数据次序。
8.根据权利要求1所述的数据处理方法,其特征在于,所述外部存储设备中对应所述PL部分处理的数据采用HWC存储格式进行存储,所述外部存储设备中对应所述PS部分处理的数据采用CHW存储格式进行存储。
9.根据权利要求8所述的数据处理方法,其特征在于,所述读命令和所述写命令的控制域包括:
数据的起始基地址、数据长度、跳跃至下一次基地址的数据间隔长度和从起始基地址开始跳跃的次数。
10.根据权利要求9所述的数据处理方法,其特征在于,所述从起始基地址开始跳跃的次数为0时,所述控制域支持不跳跃的内存读或写。
11.一种ZYNQ FPGA芯片,其特征在于,包括:处理系统PS部分和可编程逻辑PL部分,所述PS部分与所述PL部分共享外部存储设备,所述外部存储设备挂载在所述PS部分;
所述PS部分,用于配置所述PL部分的运算单元阵列PEA中PE的运算参数,并使能所述PE的计算启动,所述PE为深度学习模型中的神经网络层对应的处理模块;
所述PEA,用于根据所述PE的运算参数,确定读命令和写命令,以及所述写命令的个数,并将所述读命令发送至直接存储器访问DMA控制器的读命令接口,将所述写命令发送至所述DMA控制器的写命令接口;
所述DMA控制器,用于根据所述读命令,启动从所述外部存储设备读取数据流程,并将读取到的数据发送至所述PEA;
所述PEA,还用于根据所述读取到的数据进行计算,并将计算结果写回所述DMA控制器;
所述DMA控制器,还用于将所述计算结果传输至所述外部存储设备,并等待传输结束将每个写命令对应的结束标志信号发回所述PEA;
所述PEA,还用于在接收到与所述写命令的个数相同数目的结束标志信号后,发送中断至所述PS部分。
12.根据权利要求11所述的芯片,其特征在于,所述运算参数是由所述PS部分根据深度学习模型中各神经网络层的数据需求配置给所述PE的。
13.根据权利要求11所述的芯片,其特征在于,所述PE的运算参数,包括:
数据传输大小、传输次数和读写基地址。
14.根据权利要求11所述的芯片,其特征在于,所述PL部分使用N个AXI_HP接口,通过DDR控制器与所述外部存储设备互联,其中,N为正整数。
15.根据权利要求14所述的芯片,其特征在于,所述DMA控制器在根据所述读命令,启动从所述外部存储设备读取数据流程,并将读取到的数据发送至所述PEA时,具体为:
根据所述读命令,采用N个数据搬运器控制AXI_HP接口的读操作,从所述外部存储设备读取数据;
将所述N个数据搬运器读取到的数据转换为N倍的所述读取到的数据的位宽,并发送至所述PEA。
16.根据权利要求14所述的芯片,其特征在于,所述DMA控制器在将所述计算结果传输至所述外部存储设备时,具体为:
采用N个数据搬运器控制AXI_HP接口的写操作,将所述计算结果转换为N分之一倍的所述计算结果的位宽,并传输至所述外部存储设备。
17.根据权利要求15或16所述的芯片,其特征在于,N取值为2,所述DMA控制器分别对两个数据搬运器的读写数据进行乒乓切换,以保证数据次序。
18.根据权利要求11所述的芯片,其特征在于,所述外部存储设备中对应所述PL部分处理的数据采用HWC存储格式进行存储,所述外部存储设备中对应所述PS部分处理的数据采用CHW存储格式进行存储。
19.根据权利要求18所述的芯片,其特征在于,所述读命令和所述写命令的控制域包括:
数据的起始基地址、数据长度、跳跃至下一次基地址的数据间隔长度和从起始基地址开始跳跃的次数。
20.根据权利要求19所述的芯片,其特征在于,所述从起始基地址开始跳跃的次数为0时,所述控制域支持不跳跃的内存读或写。
21.一种ZYNQ FPGA芯片,其特征在于,所述ZYNQ FPGA芯片上存储有计算机程序,在所述计算机程序被处理器执行时,执行如权利要求1至10任一项所述的数据处理方法。
22.一种终端设备,其特征在于,包括如权利要求11至21任一项所述的ZYNQ FPGA芯片。
23.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1至10任一项所述的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910533699.0A CN110309088B (zh) | 2019-06-19 | 2019-06-19 | Zynq fpga芯片及其数据处理方法、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910533699.0A CN110309088B (zh) | 2019-06-19 | 2019-06-19 | Zynq fpga芯片及其数据处理方法、存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110309088A true CN110309088A (zh) | 2019-10-08 |
CN110309088B CN110309088B (zh) | 2021-06-08 |
Family
ID=68077504
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910533699.0A Active CN110309088B (zh) | 2019-06-19 | 2019-06-19 | Zynq fpga芯片及其数据处理方法、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110309088B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111126584A (zh) * | 2019-12-25 | 2020-05-08 | 上海安路信息科技有限公司 | 数据回写系统 |
CN111176725A (zh) * | 2019-12-27 | 2020-05-19 | 北京市商汤科技开发有限公司 | 数据处理方法、装置、设备和存储介质 |
CN111401541A (zh) * | 2020-03-10 | 2020-07-10 | 湖南国科微电子股份有限公司 | 一种数据传输控制方法及装置 |
CN111782562A (zh) * | 2020-07-22 | 2020-10-16 | Oppo广东移动通信有限公司 | 数据传输方法、dma控制器、npu芯片及计算机设备 |
CN112130906A (zh) * | 2020-09-28 | 2020-12-25 | 深圳市宏旺微电子有限公司 | 一种主机命令处理的方法及装置 |
CN112615661A (zh) * | 2020-12-04 | 2021-04-06 | 中国电子科技集团公司第五十四研究所 | 一种宽带卫星通信收发处理模块 |
CN113132161A (zh) * | 2021-04-14 | 2021-07-16 | 五邑大学 | 一种基于zynq的数据采集传输方法、装置、设备及存储介质 |
CN113220628A (zh) * | 2021-04-29 | 2021-08-06 | 深圳供电局有限公司 | 面向电网异常检测的处理器和边缘计算装置 |
CN114780449A (zh) * | 2022-04-01 | 2022-07-22 | 扬州宇安电子科技有限公司 | 一种基于zynq芯片的数据存储及传输系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107742150A (zh) * | 2016-10-31 | 2018-02-27 | 腾讯科技(深圳)有限公司 | 一种卷积神经网络的数据处理方法和装置 |
CN207458128U (zh) * | 2017-09-07 | 2018-06-05 | 哈尔滨理工大学 | 一种基于fpga在视觉应用中的卷积神经网络加速器 |
CN109034025A (zh) * | 2018-07-16 | 2018-12-18 | 东南大学 | 一种基于zynq的人脸关键点检测系统 |
CN109521994A (zh) * | 2017-09-19 | 2019-03-26 | 华为技术有限公司 | 乘法硬件电路、片上系统及电子设备 |
CN109598128A (zh) * | 2018-12-11 | 2019-04-09 | 郑州云海信息技术有限公司 | 一种扫描检查的方法及装置 |
-
2019
- 2019-06-19 CN CN201910533699.0A patent/CN110309088B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107742150A (zh) * | 2016-10-31 | 2018-02-27 | 腾讯科技(深圳)有限公司 | 一种卷积神经网络的数据处理方法和装置 |
CN207458128U (zh) * | 2017-09-07 | 2018-06-05 | 哈尔滨理工大学 | 一种基于fpga在视觉应用中的卷积神经网络加速器 |
CN109521994A (zh) * | 2017-09-19 | 2019-03-26 | 华为技术有限公司 | 乘法硬件电路、片上系统及电子设备 |
CN109034025A (zh) * | 2018-07-16 | 2018-12-18 | 东南大学 | 一种基于zynq的人脸关键点检测系统 |
CN109598128A (zh) * | 2018-12-11 | 2019-04-09 | 郑州云海信息技术有限公司 | 一种扫描检查的方法及装置 |
Non-Patent Citations (1)
Title |
---|
李硕: ""基于张量神经网络的人脸识别算法设计与FPGA验证"", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111126584A (zh) * | 2019-12-25 | 2020-05-08 | 上海安路信息科技有限公司 | 数据回写系统 |
CN111176725A (zh) * | 2019-12-27 | 2020-05-19 | 北京市商汤科技开发有限公司 | 数据处理方法、装置、设备和存储介质 |
US11314457B2 (en) | 2019-12-27 | 2022-04-26 | Beijing Sensetime Technology Development Co., Ltd. | Data processing method for data format conversion, apparatus, device, and system, storage medium, and program product |
CN111401541A (zh) * | 2020-03-10 | 2020-07-10 | 湖南国科微电子股份有限公司 | 一种数据传输控制方法及装置 |
CN111782562A (zh) * | 2020-07-22 | 2020-10-16 | Oppo广东移动通信有限公司 | 数据传输方法、dma控制器、npu芯片及计算机设备 |
CN112130906A (zh) * | 2020-09-28 | 2020-12-25 | 深圳市宏旺微电子有限公司 | 一种主机命令处理的方法及装置 |
CN112615661A (zh) * | 2020-12-04 | 2021-04-06 | 中国电子科技集团公司第五十四研究所 | 一种宽带卫星通信收发处理模块 |
CN113132161A (zh) * | 2021-04-14 | 2021-07-16 | 五邑大学 | 一种基于zynq的数据采集传输方法、装置、设备及存储介质 |
CN113132161B (zh) * | 2021-04-14 | 2022-08-09 | 五邑大学 | 一种基于zynq的数据采集传输方法、装置、设备及存储介质 |
CN113220628A (zh) * | 2021-04-29 | 2021-08-06 | 深圳供电局有限公司 | 面向电网异常检测的处理器和边缘计算装置 |
CN114780449A (zh) * | 2022-04-01 | 2022-07-22 | 扬州宇安电子科技有限公司 | 一种基于zynq芯片的数据存储及传输系统 |
CN114780449B (zh) * | 2022-04-01 | 2022-11-25 | 扬州宇安电子科技有限公司 | 一种基于zynq芯片的数据存储及传输系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110309088B (zh) | 2021-06-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110309088A (zh) | Zynq fpga芯片及其数据处理方法、存储介质 | |
CN111176727B (zh) | 计算装置以及计算方法 | |
CN110442540A (zh) | 灵活总线协议协商和启用序列 | |
EP2901293B1 (en) | Intelligent far memory bandwidth scaling | |
CN104615488A (zh) | 异构多核可重构计算平台上任务调度的方法和装置 | |
US20150127691A1 (en) | Efficient implementations for mapreduce systems | |
CN105183662B (zh) | 一种无cache一致性协议的分布式共享片上存储架构 | |
CN103345451B (zh) | 一种在多核处理器中缓冲数据的方法 | |
KR20120087980A (ko) | 다중 인터페이스 솔리드 스테이트 디스크, 및 다중 인터페이스 솔리드 스테이트 디스크의 처리 방법 및 시스템 | |
CN105814537B (zh) | 可扩展输入/输出系统和技术 | |
CN104657308A (zh) | 一种用fpga实现的服务器硬件加速的方法 | |
TW201510730A (zh) | 具有混合之散射-聚集功能之直接記憶體存取控制器 | |
US20170091127A1 (en) | Techniques to Couple with a Storage Device via Multiple Communication Ports | |
CN104317770A (zh) | 用于众核处理系统的数据存储结构及数据访问方法 | |
CN102508803A (zh) | 一种矩阵转置存储控制器 | |
CN104461979A (zh) | 基于环形总线的多核片上通信网络实现方法 | |
US11797311B2 (en) | Asynchronous pipeline merging using long vector arbitration | |
CN104125293A (zh) | 一种云服务器及其使用方法 | |
CN113312283B (zh) | 一种基于fpga加速的异构图学习系统 | |
KR20230033090A (ko) | 스토리지 장치, 스토리지 장치를 포함하는 전자 장치, 그리고 전자 장치의 동작 방법 | |
JP5533330B2 (ja) | データ処理装置 | |
CN102279728A (zh) | 数据存储设备及数据计算方法 | |
JP2023505783A (ja) | Gpuパケット集約システム | |
CN115883022B (zh) | Dma传输控制方法、装置、电子设备及可读存储介质 | |
CN102646058A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |