CN112131164B - 应用于加速板卡的数据调度方法、装置及加速板卡和介质 - Google Patents
应用于加速板卡的数据调度方法、装置及加速板卡和介质 Download PDFInfo
- Publication number
- CN112131164B CN112131164B CN202011011313.9A CN202011011313A CN112131164B CN 112131164 B CN112131164 B CN 112131164B CN 202011011313 A CN202011011313 A CN 202011011313A CN 112131164 B CN112131164 B CN 112131164B
- Authority
- CN
- China
- Prior art keywords
- data
- input buffer
- processing unit
- capacity
- scheduling
- 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
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
-
- 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/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Information Transfer Systems (AREA)
Abstract
本申请公开了一种应用于加速板卡的数据调度方法、装置及加速板卡和介质,加速板卡与主机通过PCIe总线进行数据传输,该方法包括:若输入缓冲器的可用容量达到第一阈值,则利用PCIe DMA对主机DDR内的目标数据进行分割;将分割后的子数据块拷贝至通过同步时钟接口连接数据处理单元的输入缓冲器,以便数据处理单元依次读取输入缓冲器的数据并进行处理;当数据处理单元得到处理结果后,将处理结果填充至通过同步时钟接口连接数据处理单元的输出缓冲器中;若输出缓冲器的已用容量达到第二阈值,则通过PCIe DMA将处理结果回填至主机DDR内的指定区域。本申请降低了系统复杂度和硬件成本,打破了本地DDR的带宽需求瓶颈。
Description
技术领域
本申请涉及计算机技术领域,更具体地说,涉及一种应用于加速板卡的数据调度方法、装置及一种加速板卡和一种计算机可读存储介质。
背景技术
随着大数据、AI(Artificial Intelligence,人工智能)、5G等新兴产业的迅速发展,各式应用场景层出不穷,计算机系统当中的通用CPU处理压力持续增大,再加上通用CPU(Central Processing Unit,中央处理器)对一些计算任务的执行效率不高,这都不断地提高了计算机系统中CPU的占用率,CPU处理能力的瓶颈最终会限制计算机系统整体性能的提升与扩展。
基于此,工业界出现了各种各样的硬件加速板卡,这些板卡可以通过PCIe(Peripheral component interconnect express,外设高速互联)等通用高速数据接口接驳于计算机系统的主机主板之上,用于承载原来由CPU负责执行的某种/多种计算任务。
传统的主机和加速板卡之间的数据链路如下图1所示,共分为四个步骤:数据从主机DDR(Double Data Rate,双倍速率)通过PCIe总线拷贝到加速板卡的本地DDR,加速板卡上的数据处理单元从本地DDR内顺序读取数据并进行处理,数据处理单元不断将处理后的结果数据写回到本地DDR,在结果数据累积到一定大小后,将被本地DDR搬移至主机DDR,从而完成一次数据处理回路。由于本地DDR可以提供可观的数据缓冲空间,上述方案可以一次搬送比较大的数据块,以降低每次启动PCIe所需要的固有时延对整体数据带宽的影响,最大化的利用PCIe总线的带宽。然而,此方案对本地DDR的带宽有着更高的要求。在数据流动起来之后,同一个数据块要两入两出本地DDR,若不考虑数据块在处理前后大小上可能的变化,其带宽的需求上限是PCIe设计带宽的两倍。例如,在理论PCIe带宽32GB(PCIe Gen4X16)的情况下,对应的,本地DDR需要支持实现64GB的理论带宽,这对系统架构设计和物理实现都十分具有挑战
因此,如何解决上述问题是本领域技术人员需要重点关注的。
发明内容
本申请的目的在于提供一种应用于加速板卡的数据调度方法、装置及一种加速板卡和一种计算机可读存储介质,降低了加速板卡的系统复杂度和硬件成本,同时打破了板卡上本地DDR的带宽需求瓶颈。
为实现上述目的,本申请提供了一种应用于加速板卡的数据调度方法,所述加速板卡与主机通过PCIe总线进行数据传输,所述方法包括:
对输入缓冲器的可用容量进行监测,若所述可用容量达到第一阈值,则利用PCIeDMA对主机DDR内的目标数据进行分割;
将分割后的子数据块拷贝至所述输入缓冲器,所述输入缓冲器通过同步时钟接口连接数据处理单元,以便所述数据处理单元依次读取所述输入缓冲器的数据并进行处理;
当所述数据处理单元得到处理结果后,将所述处理结果填充至输出缓冲器中,所述数据处理单元与所述输出缓冲器通过同步时钟接口进行连接;
对所述输出缓冲器的已用容量进行监测,若所述已用容量达到第二阈值,则通过PCIe DMA将所述处理结果回填至所述主机DDR内的指定区域。
可选的,所述对输入缓冲器的可用容量进行监测,包括:
通过第一填充计数器确定所述输入缓冲器内的现存数据大小;其中,所述第一填充计数器的数值根据一次写入所述输入缓冲器的数据量和每个时钟周期所述数据处理单元的读取数据量进行确定;
结合所述输入缓冲器的总容量、处于PCIe总线传输链路的待写入数据大小和所述现存数据大小,确定所述输入缓冲器的可用容量。
可选的,所述对所述输出缓冲器的已用容量进行监测,包括:
通过第二填充计数器确定所述输出缓冲器的已用容量;其中,所述第二填充计数器的数值根据一次从所述输出缓冲器迁出的数据量和每个时钟周期所述数据处理单元的填充数据量进行确定。
可选的,所述第一阈值和所述第二阈值均为预设调度颗粒度。
可选的,所述若所述可用容量达到第一阈值,则利用PCIe DMA对主机DDR内的目标数据进行分割,包括:
若监测到所述可用容量大于或等于所述预设调度颗粒度的大小时,则触发数据写入操作,以根据所述预设调度颗粒度、数据传输物理地址对PCIe DMA进行配置,以利用PCIeDMA对主机DDR内的目标数据进行分割。
可选的,还包括:
在每次将所述处理结果回填至所述主机DDR内的指定区域之后,根据当次数据调度过程中所述输入缓冲器和/或所述输出缓冲器的实时填充深度,对所述预设调度颗粒度进行修正,得到更新后调度颗粒度;
在对输入缓冲器的可用容量进行监测之前,查询所述更新后调度颗粒度,以根据所述更新后调度颗粒度进行下次数据调度。
为实现上述目的,本申请提供了一种应用于加速板卡的数据调度装置,包括:
容量监测单元,用于对输入缓冲器的可用容量进行监测,若所述可用容量达到第一阈值,则利用PCIe DMA对主机DDR内的目标数据进行分割;
数据拷贝单元,用于将分割后的子数据块拷贝至所述输入缓冲器,所述输入缓冲器通过同步时钟接口连接数据处理单元,以便所述数据处理单元依次读取所述输入缓冲器的数据并进行处理;
数据填充单元,用于当所述数据处理单元得到处理结果后,将所述处理结果填充至输出缓冲器中,所述数据处理单元与所述输出缓冲器通过同步时钟接口进行连接;
数据回填单元,用于对所述输出缓冲器的已用容量进行监测,若所述已用容量达到第二阈值,则通过PCIe DMA将所述处理结果回填至所述主机DDR内的指定区域。
可选的,所述容量监测单元,包括:
现存数据确定子单元,用于通过第一填充计数器确定所述输入缓冲器内的现存数据大小;其中,所述第一填充计数器的数值根据一次写入所述输入缓冲器的数据量和每个时钟周期所述数据处理单元的读取数据量进行确定;
可用容量确定子单元,用于确定结合所述输入缓冲器的总容量、处于PCIe总线传输链路的待写入数据大小和所述现存数据大小,确定所述输入缓冲器的可用容量。
为实现上述目的,本申请提供了一种加速板卡,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现前述公开的任一种应用于加速板卡的数据调度方法的步骤。
为实现上述目的,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现前述公开的任一种应用于加速板卡的数据调度方法的步骤。
通过以上方案可知,本申请提供的一种应用于加速板卡的数据调度方法,所述加速板卡与主机通过PCIe总线进行数据传输,所述方法包括:对输入缓冲器的可用容量进行监测,若所述可用容量达到第一阈值,则利用PCIe DMA对主机DDR内的目标数据进行分割;将分割后的子数据块拷贝至所述输入缓冲器,所述输入缓冲器通过同步时钟接口连接数据处理单元,以便所述数据处理单元依次读取所述输入缓冲器的数据并进行处理;当所述数据处理单元得到处理结果后,将所述处理结果填充至输出缓冲器中,所述数据处理单元与所述输出缓冲器通过同步时钟接口进行连接;对所述输出缓冲器的已用容量进行监测,若所述已用容量达到第二阈值,则通过PCIe DMA将所述处理结果回填至所述主机DDR内的指定区域。由上可知,本申请利用片载的输入缓冲器和输出缓冲器替代了加速板卡的本地DDR缓存,在移除本地DDR之后可以降低加速板卡的系统复杂度和硬件成本,同时打破了板卡上本地DDR的带宽需求瓶颈,可以充分释放PCIe的带宽性能。
本申请还公开了一种应用于加速板卡的数据调度装置及一种加速板卡和一种计算机可读存储介质,同样能实现上述技术效果。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本申请。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例公开的一种应用于加速板卡的数据调度方法的流程图;
图2为本申请实施例公开的应用于加速板卡的数据调度方法所适应的具体硬件架构图;
图3为本申请实施例公开的输入缓冲器中填充计数器的结构图;
图4为本申请实施例公开的输出缓冲器中填充计数器的结构图;
图5为本申请实施例公开的调度颗粒度更新模块的电路实现示意图;
图6为本申请实施例公开的一种应用于加速板卡的数据调度装置的结构图;
图7为本申请实施例公开的一种加速板卡的结构图;
图8为本申请实施例公开的另一种加速板卡的结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例公开了一种应用于加速板卡的数据调度方法,降低了加速板卡的系统复杂度和硬件成本,同时打破了板卡上本地DDR的带宽需求瓶颈。
参见图1所示,本申请实施例公开的一种应用于加速板卡的数据调度方法包括:
S101:对输入缓冲器的可用容量进行监测,若所述可用容量达到第一阈值,则利用PCIe DMA对主机DDR内的目标数据进行分割;
本申请实施例中,加速板卡上预设有输入缓冲器,可以对其的可用容量进行监测。若输入缓冲器的可用容量达到第一阈值,则可利用PCIe DMA(Direct Memory Access,直接存储器访问)对主机DDR内的目标数据进行分割。
具体地,本申请实施例可以通过第一填充计数器确定所述输入缓冲器内的现存数据大小;其中,第一填充计数器的数值根据一次写入输入缓冲器的数据量和每个时钟周期数据处理单元的读取数据量进行确定;结合输入缓冲器的总容量、处于PCIe总线传输链路的待写入数据大小和现存数据大小,确定输入缓冲器的可用容量。由上可知,本申请实施例在确定输入缓冲器的可用容量时,可以不仅仅确定其现存数据大小,还进一步获取处于PCIe总线传输链路的待写入数据大小,也即,先确定输入缓冲器的已用容量,包括刚刚被调度,还在链路上的传输而未进入输入缓冲器的数据,而不是当前缓冲器中实时填充的数值。如果依据实时填充数值进行调度请求,有一定的风险造成输入缓冲器满,但还有数据在链路上传输准备进入输入缓冲器的情况,从而可能反压内部数据总线接口,锁死PCIe总线,降低系统的整体的数据吞吐率性能。
可以理解的是,若监测到可用容量大于或等于预设调度颗粒度的大小时,则触发数据写入操作,以根据预设调度颗粒度、数据传输物理地址对PCIe DMA进行配置,以利用PCIe DMA对主机DDR内的目标数据进行分割。由于输入缓冲器的存储容量较小,需要将数据分割后写入输入缓冲器中。
S102:将分割后的子数据块拷贝至所述输入缓冲器,所述输入缓冲器通过同步时钟接口连接数据处理单元,以便所述数据处理单元依次读取所述输入缓冲器的数据并进行处理;
本步骤中,可以将上述步骤分割后的子数据块拷贝至输入缓冲器。其中,输入缓冲器与加速板卡本地的数据处理单元通过同步时钟接口进行连接,由此在输入缓冲器获取到子数据块后,数据处理单元即可读取其中的数据进行相应的处理过程。
S103:当所述数据处理单元得到处理结果后,将所述处理结果填充至输出缓冲器中,所述数据处理单元与所述输出缓冲器通过同步时钟接口进行连接;
可以理解的是,当数据处理单元对读取到的数据进行处理得到对应的处理结果之后,可以将处理结果填充至本地的输出缓冲器中。其中,输出缓冲器与数据处理单元同样通过同步时钟接口进行连接,以便及时将数据处理单元的处理结果填充至输出缓冲器。
S104:对所述输出缓冲器的已用容量进行监测,若所述已用容量达到第二阈值,则通过PCIe DMA将所述处理结果回填至所述主机DDR内的指定区域。
本步骤中,将对输出缓冲器的已用容量进行监测。具体地,可以通过第二填充计数器确定输出缓冲器的已用容量;其中,所述第二填充计数器的数值根据一次从输出缓冲器迁出的数据量和每个时钟周期数据处理单元的填充数据量进行确定。
若输出缓冲器的已用容量达到第二阈值,则可通过PCIe DMA将处理结果回填至主机DDR内的指定区域中。
需要说明的是,上述第一阈值和第二阈值在具体实施过程中可根据实际情况进行灵活设定。本申请实施例中,可将第一阈值和第二阈值均设置为预设调度颗粒度,预设调度颗粒度具体指每次搬迁的数据大小,同样可以根据实际情况进行设定。
通过以上方案可知,本申请提供的一种应用于加速板卡的数据调度方法,所述加速板卡与主机通过PCIe总线进行数据传输,所述方法包括:对输入缓冲器的可用容量进行监测,若所述可用容量达到第一阈值,则利用PCIe DMA对主机DDR内的目标数据进行分割;将分割后的子数据块拷贝至所述输入缓冲器,所述输入缓冲器通过同步时钟接口连接数据处理单元,以便所述数据处理单元依次读取所述输入缓冲器的数据并进行处理;当所述数据处理单元得到处理结果后,将所述处理结果填充至输出缓冲器中,所述数据处理单元与所述输出缓冲器通过同步时钟接口进行连接;对所述输出缓冲器的已用容量进行监测,若所述已用容量达到第二阈值,则通过PCIe DMA将所述处理结果回填至所述主机DDR内的指定区域。由上可知,本申请利用片载的输入缓冲器和输出缓冲器替代了加速板卡的本地DDR缓存,在移除本地DDR之后可以降低加速板卡的系统复杂度和硬件成本,同时打破了板卡上本地DDR的带宽需求瓶颈,可以充分释放PCIe的带宽性能。
下面通过一种具体的示例对本申请实施例公开的应用于加速板卡的数据调度方法进行详细的说明。参见图2所示,加速板卡中除了输入缓冲器和输出缓冲器、数据处理单元之外,还包括PCIe总线接口各相关模块:物理接口,控制器以及DMA,以及输入/输出调度模块。
具体地,输入调度模块可持续监视当前输入缓冲器的可用容量,并通过配置板卡侧PCIe DMA将主机侧DDR内一个大的目标数据块顺序分割成若干颗粒度更细的子数据块,不间断地拷贝至加速板卡上的输入缓冲器中。片上的输入缓冲器可采用类似FIFO(FirstInput First Output,先入先出)的机制,通过一个同步时钟接口对接数据处理单元,数据处理单元依次读取数据进行处理,其中,输入缓冲器理想的状态是常满。片上的输出缓冲器可采用类似FIFO的先入先出机制,通过一个同步时钟接口对接数据处理单元,数据处理单元将结果数据填充至输出缓冲器,其中,输出缓冲器理想的状态是常空。输出调度模块可持续监视当前输出缓冲器的填充情况,在累积到一定大小后,通过配置板卡侧PCIe DMA将该数据块回填回主机侧预先在主机DDR中开辟好的结果空间内。
其中,输入调度模块中可以主要包括调度控制模块和调度触发模块。调度控制模块主要用于在收到调度触发请求后,依据调度颗粒度的设定,计算并准备数据的物理地址,长度等信息,通过配置DMA进行数据的搬移操作。具体地,调度控制模块的实现形式可以是通用MCU(Microcontroller Unit,微控制单元)上的软件程序,或者是基于硬件电路的FSM(Finite State Machine,有限状态机)。
调度触发模块主要用于实施统计输入/输出缓冲当中的数据填充数量,包括已经触发调度,但还在PCIe总线传输链路上的数据,并且将填充数量和设定的搬移颗粒度进行比较,当满足触发条件后,触发调度控制模块进行数据搬移操作。
具体来说,针对输入缓冲器,如图3所示,输入调度触发模块可以主要维护一个填充计数器。在输入缓冲器的出口,即数据处理单元侧,会实时反馈数据在每个时钟周期的消耗数量,从而冲填充计数器当中减去相应数值;而在输入缓冲器入口,每次调度触发操作后,调度控制模块将反馈所调入的数据块的大小,并计入填充计数器值。调度触发模块会不间断的比较空余出来的空间和调度颗粒度设置大小,如果超过颗粒度设置,则产生一个电平/脉冲的触发信号给调度控制模块,进行数据搬移操作。与之类似的,输出缓冲器对应的调度触发模块中同样也维持着一个填充计数器,具体结构可如图4所示。
在上述实施例的基础上,本申请实施例在每次将处理结果回填至主机DDR内的指定区域之后,根据当次数据调度过程中输入缓冲器和/或所述输出缓冲器的实时填充深度,对预设调度颗粒度进行修正,得到更新后调度颗粒度;在对输入缓冲器的可用容量进行监测之前,查询更新后调度颗粒度,以根据更新后调度颗粒度进行下次数据调度。
相应的,上述调度颗粒度更新的过程可以具体通过调度颗粒度更新模块来实现,也即,输入调度模块中除了调度控制模块和调度触发模块之外,还可进一步包括调度颗粒度更新模块。具体地,调度颗粒度更新模块主要是依据输入/输出缓冲器的实时填充深度的动态变化过程,间接地获得当前PCIe总线的延时特性,从而通过调整每次数据调度颗粒度大小的方法,以最大化地增加PCIe总线带宽的利用率。
本申请实施例,具体引入了经典控制理论的PID(Proportion IntegrationDifferentiation,比例积分微分)控制方法来实现调度颗粒度的更新控制闭环,以增量式PID控制为例,其离散表达式如下所示:
Δu(k)=Kp*[e(k)-e(k-1)]+Ki*e(k)+Kd*[e(k)-2e(k-1)+e(k-2)]
进一步地,上述表达式可改写为:
Δu(k)=(Kp+Ki+Kd)*e(k)-(Kp+2Kd)*e(k-1)+Kd*e(k-2)。
由此,可得到如图5所示的电路实现方案。首先,输入的时钟经过一级分频器,再接到串联的三组D触发器中用以采样输入/输出缓冲器当中实时的填充深度相对于设定目标深度的误差值,依次为e(k)、e(k-1)和e(k-2),再分别乘以各自的系数得到输入/输出颗粒度的修正值Δu(k),并与颗粒度计算器的初始值,即当前触发模块所使用的调度颗粒度设置进行运算得到新的调度颗粒度。
在调度控制模块完成一次调度操作之后,可读取上述调度颗粒度更新值,并更新到调度触发模块,从而产生新的触发调度行为,最终形成PID闭环控制。当然,另外一种可选的更新策略是绕过调度控制模块,颗粒度计数器值会实时的映射到触发控制模块里面的颗粒度设置,相应的,调度控制模块在收到调度触发后,需要查询当前的调度颗粒度设置,并进行对应的搬移调度。
针对输入缓冲器,其期望的理想填充状态是常满,所以输入缓冲器的填充目标可直接设定为输入缓冲器的大小;而针对输出缓冲器,其期望的理想填充状态是常空,所以输出缓冲器的填充目标可直接设定为0。但是考虑到PCIe总线的传输特性,输入缓冲器的填充目标可以设置为:缓冲器的物理大小减去一个基本的调度颗粒度,输出缓冲器的填充目标可以设置为:一个基本的调度颗粒度。
下面对本申请实施例提供的一种应用于加速板卡的数据调度装置进行介绍,下文描述的一种应用于加速板卡的数据调度装置与上文描述的一种数据调度方法可以相互参照。
参见图6所示,本申请实施例提供的一种应用于加速板卡的数据调度装置包括:
容量监测单元201,用于对输入缓冲器的可用容量进行监测,若所述可用容量达到第一阈值,则利用PCIe DMA对主机DDR内的目标数据进行分割;
数据拷贝单元202,用于将分割后的子数据块拷贝至所述输入缓冲器,所述输入缓冲器通过同步时钟接口连接数据处理单元,以便所述数据处理单元依次读取所述输入缓冲器的数据并进行处理;
数据填充单元203,用于当所述数据处理单元得到处理结果后,将所述处理结果填充至输出缓冲器中,所述数据处理单元与所述输出缓冲器通过同步时钟接口进行连接;
数据回填单元204,用于对所述输出缓冲器的已用容量进行监测,若所述已用容量达到第二阈值,则通过PCIe DMA将所述处理结果回填至所述主机DDR内的指定区域。
关于上述单元201至204的具体实施过程可参考前述实施例公开的相应内容,在此不再进行赘述。
在上述实施例的基础上,作为一种优选实施方式,所述容量监测单元可以具体包括:
现存数据确定子单元,用于通过第一填充计数器确定所述输入缓冲器内的现存数据大小;其中,所述第一填充计数器的数值根据一次写入所述输入缓冲器的数据量和每个时钟周期所述数据处理单元的读取数据量进行确定;
可用容量确定子单元,用于确定结合所述输入缓冲器的总容量、处于PCIe总线传输链路的待写入数据大小和所述现存数据大小,确定所述输入缓冲器的可用容量。
本申请还提供了一种加速板卡,参见图7所示,本申请实施例提供的一种加速板卡包括:
存储器100,用于存储计算机程序;
处理器200,用于执行所述计算机程序时可以实现上述实施例所提供的步骤。
具体的,存储器100包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机可读指令,该内存储器为非易失性存储介质中的操作系统和计算机可读指令的运行提供环境。处理器200在一些实施例中可以是一中央处理器(CentralProcessing Unit,CPU)、控制器、微控制器、微处理器或其他数据处理芯片,为加速板卡提供计算和控制能力,执行所述存储器100中保存的计算机程序时,可以实现前述任一实施例公开的应用于加速板卡的数据调度方法。
在上述实施例的基础上,作为优选实施方式,参见图8所示,所述加速板卡还包括:
输入接口300,与处理器200相连,用于获取外部导入的计算机程序、参数和指令,经处理器200控制保存至存储器100中。该输入接口300可以与输入装置相连,接收用户手动输入的参数或指令。该输入装置可以是显示屏上覆盖的触摸层,也可以是终端外壳上设置的按键、轨迹球或触控板,也可以是键盘、触控板或鼠标等。
显示单元400,与处理器200相连,用于显示处理器200处理的数据以及用于显示可视化的用户界面。该显示单元400可以为LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。
网络端口500,与处理器200相连,用于与外部各终端设备进行通信连接。该通信连接所采用的通信技术可以为有线通信技术或无线通信技术,如移动高清链接技术(MHL)、通用串行总线(USB)、高清多媒体接口(HDMI)、无线保真技术(WiFi)、蓝牙通信技术、低功耗蓝牙通信技术、基于IEEE802.11s的通信技术等。
图8仅示出了具有组件100-500的加速板卡,本领域技术人员可以理解的是,图8示出的结构并不构成对加速板卡的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
本申请还提供了一种计算机可读存储介质,该存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。该存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现前述任一实施例公开的应用于加速板卡的数据调度方法。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (8)
1.一种应用于加速板卡的数据调度方法,其特征在于,所述加速板卡与主机通过PCIe总线进行数据传输,所述方法包括:
对输入缓冲器的可用容量进行监测,若所述可用容量达到第一阈值,则利用PCIe DMA对主机DDR内的目标数据进行分割;
将分割后的子数据块拷贝至所述输入缓冲器,所述输入缓冲器通过同步时钟接口连接数据处理单元,以便所述数据处理单元依次读取所述输入缓冲器的数据并进行处理;
当所述数据处理单元得到处理结果后,将所述处理结果填充至输出缓冲器中,所述数据处理单元与所述输出缓冲器通过同步时钟接口进行连接;
对所述输出缓冲器的已用容量进行监测,若所述已用容量达到第二阈值,则通过PCIeDMA将所述处理结果回填至所述主机DDR内的指定区域;
其中,所述对输入缓冲器的可用容量进行监测具体为:
通过第一填充计数器确定所述输入缓冲器内的现存数据大小;其中,所述第一填充计数器的数值根据一次写入所述输入缓冲器的数据量和每个时钟周期所述数据处理单元的读取数据量进行确定;
结合所述输入缓冲器的总容量、处于PCIe总线传输链路的待写入数据大小和所述现存数据大小,确定所述输入缓冲器的可用容量。
2.根据权利要求1所述的数据调度方法,其特征在于,所述对所述输出缓冲器的已用容量进行监测,包括:
通过第二填充计数器确定所述输出缓冲器的已用容量;其中,所述第二填充计数器的数值根据一次从所述输出缓冲器迁出的数据量和每个时钟周期所述数据处理单元的填充数据量进行确定。
3.根据权利要求1至2任一项所述的数据调度方法,其特征在于,所述第一阈值和所述第二阈值均为预设调度颗粒度。
4.根据权利要求3所述的数据调度方法,其特征在于,所述若所述可用容量达到第一阈值,则利用PCIe DMA对主机DDR内的目标数据进行分割,包括:
若监测到所述可用容量大于或等于所述预设调度颗粒度的大小时,则触发数据写入操作,以根据所述预设调度颗粒度、数据传输物理地址对PCIe DMA进行配置,以利用PCIe DMA对主机DDR内的目标数据进行分割。
5.根据权利要求3所述的数据调度方法,其特征在于,还包括:
在每次将所述处理结果回填至所述主机DDR内的指定区域之后,根据当次数据调度过程中所述输入缓冲器和/或所述输出缓冲器的实时填充深度,对所述预设调度颗粒度进行修正,得到更新后调度颗粒度;
在对输入缓冲器的可用容量进行监测之前,查询所述更新后调度颗粒度,以根据所述更新后调度颗粒度进行下次数据调度。
6.一种应用于加速板卡的数据调度装置,其特征在于,包括:
容量监测单元,用于对输入缓冲器的可用容量进行监测,若所述可用容量达到第一阈值,则利用PCIe DMA对主机DDR内的目标数据进行分割;
数据拷贝单元,用于将分割后的子数据块拷贝至所述输入缓冲器,所述输入缓冲器通过同步时钟接口连接数据处理单元,以便所述数据处理单元依次读取所述输入缓冲器的数据并进行处理;
数据填充单元,用于当所述数据处理单元得到处理结果后,将所述处理结果填充至输出缓冲器中,所述数据处理单元与所述输出缓冲器通过同步时钟接口进行连接;
数据回填单元,用于对所述输出缓冲器的已用容量进行监测,若所述已用容量达到第二阈值,则通过PCIe DMA将所述处理结果回填至所述主机DDR内的指定区域;
其中,所述容量监测单元,包括:
现存数据确定子单元,用于通过第一填充计数器确定所述输入缓冲器内的现存数据大小;其中,所述第一填充计数器的数值根据一次写入所述输入缓冲器的数据量和每个时钟周期所述数据处理单元的读取数据量进行确定;
可用容量确定子单元,用于确定结合所述输入缓冲器的总容量、处于PCIe总线传输链路的待写入数据大小和所述现存数据大小,确定所述输入缓冲器的可用容量。
7.一种加速板卡,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至5任一项所述应用于加速板卡的数据调度方法的步骤。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述应用于加速板卡的数据调度方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011011313.9A CN112131164B (zh) | 2020-09-23 | 2020-09-23 | 应用于加速板卡的数据调度方法、装置及加速板卡和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011011313.9A CN112131164B (zh) | 2020-09-23 | 2020-09-23 | 应用于加速板卡的数据调度方法、装置及加速板卡和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112131164A CN112131164A (zh) | 2020-12-25 |
CN112131164B true CN112131164B (zh) | 2022-06-17 |
Family
ID=73839277
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011011313.9A Active CN112131164B (zh) | 2020-09-23 | 2020-09-23 | 应用于加速板卡的数据调度方法、装置及加速板卡和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112131164B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113419780B (zh) * | 2021-05-08 | 2023-05-12 | 中国科学院声学研究所 | 一种基于fpga加速卡的dpdk驱动系统 |
CN113238977A (zh) * | 2021-07-12 | 2021-08-10 | 深之蓝(天津)水下智能科技有限公司 | 数据传输方法、装置、系统、电子设备及存储介质 |
CN113852563B (zh) * | 2021-09-22 | 2023-10-31 | 深圳市元征科技股份有限公司 | 报文数据传输方法、装置、终端设备及可读存储介质 |
CN116204456A (zh) * | 2021-11-30 | 2023-06-02 | 华为技术有限公司 | 数据访问方法及计算设备 |
CN115061959B (zh) * | 2022-08-17 | 2022-10-25 | 深圳比特微电子科技有限公司 | 数据交互方法、装置、系统、电子设备和存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107690622A (zh) * | 2016-08-26 | 2018-02-13 | 华为技术有限公司 | 实现硬件加速处理的方法、设备和系统 |
WO2018040494A1 (zh) * | 2016-08-30 | 2018-03-08 | 华为技术有限公司 | 一种扩展处理器指令集的方法及装置 |
CN107870879A (zh) * | 2016-09-23 | 2018-04-03 | 中国移动通信有限公司研究院 | 一种数据搬移方法、加速器板卡、主机及数据搬移系统 |
CN109062826A (zh) * | 2018-08-16 | 2018-12-21 | 算丰科技(北京)有限公司 | 数据传输方法及系统 |
CN110955390A (zh) * | 2019-11-22 | 2020-04-03 | 北京达佳互联信息技术有限公司 | 数据处理方法、装置和电子设备 |
CN111046072A (zh) * | 2019-11-29 | 2020-04-21 | 浪潮(北京)电子信息产业有限公司 | 一种数据查询方法、系统、异构计算加速平台及存储介质 |
CN111104346A (zh) * | 2019-12-13 | 2020-05-05 | 苏州浪潮智能科技有限公司 | Fpga加速板卡产品静态信息固化方法及相关组件 |
CN111444123A (zh) * | 2020-03-28 | 2020-07-24 | 珠海市一微半导体有限公司 | 基于硬件加速的spi接口的自动读取控制系统及方法 |
-
2020
- 2020-09-23 CN CN202011011313.9A patent/CN112131164B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107690622A (zh) * | 2016-08-26 | 2018-02-13 | 华为技术有限公司 | 实现硬件加速处理的方法、设备和系统 |
WO2018040494A1 (zh) * | 2016-08-30 | 2018-03-08 | 华为技术有限公司 | 一种扩展处理器指令集的方法及装置 |
CN107870879A (zh) * | 2016-09-23 | 2018-04-03 | 中国移动通信有限公司研究院 | 一种数据搬移方法、加速器板卡、主机及数据搬移系统 |
CN109062826A (zh) * | 2018-08-16 | 2018-12-21 | 算丰科技(北京)有限公司 | 数据传输方法及系统 |
CN110955390A (zh) * | 2019-11-22 | 2020-04-03 | 北京达佳互联信息技术有限公司 | 数据处理方法、装置和电子设备 |
CN111046072A (zh) * | 2019-11-29 | 2020-04-21 | 浪潮(北京)电子信息产业有限公司 | 一种数据查询方法、系统、异构计算加速平台及存储介质 |
CN111104346A (zh) * | 2019-12-13 | 2020-05-05 | 苏州浪潮智能科技有限公司 | Fpga加速板卡产品静态信息固化方法及相关组件 |
CN111444123A (zh) * | 2020-03-28 | 2020-07-24 | 珠海市一微半导体有限公司 | 基于硬件加速的spi接口的自动读取控制系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112131164A (zh) | 2020-12-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112131164B (zh) | 应用于加速板卡的数据调度方法、装置及加速板卡和介质 | |
CN105183665A (zh) | 一种数据缓存访问方法和数据缓存控制器 | |
WO2003003232A2 (en) | Data processing apparatus and a method of synchronizing a first and a second processing means in a data processing apparatus | |
CN104714785A (zh) | 任务调度装置、方法及并行处理数据的设备 | |
CN112306623A (zh) | 深度学习任务的处理方法、装置及计算机可读存储介质 | |
CN100389420C (zh) | 用协处理器加速文件系统操作的方法及装置 | |
US8914571B2 (en) | Scheduler for memory | |
CN111861412A (zh) | 面向完成时间优化的科学工作流调度方法及系统 | |
CN104156226A (zh) | 混合内存设备的挂起或关机方法 | |
CN104932933A (zh) | 一种获取自旋锁的方法及装置 | |
CN115860080A (zh) | 计算核、加速器、计算方法、装置、设备、介质及系统 | |
US20080225858A1 (en) | Data transferring apparatus and information processing system | |
CN104035725A (zh) | 用以存取数据的电子装置及其数据存取方法 | |
WO2012004954A1 (ja) | トレースシステム | |
CN103003769B (zh) | 时钟电路、电子设备以及提供时钟信号的方法 | |
CN109521970A (zh) | 一种数据处理方法及相关设备 | |
CN111930651A (zh) | 一种指令执行方法、装置、设备及可读存储介质 | |
CN109981798A (zh) | 一种数据写入方法、系统及电子设备和存储介质 | |
CN115794446A (zh) | 一种消息处理方法、装置、电子设备和存储介质 | |
US20120331209A1 (en) | Semiconductor storage system | |
US11226966B2 (en) | Journaling of streaming anchor resource(s) | |
US11044291B2 (en) | Enhanced anchor protocol for event stream processing | |
CN114490881A (zh) | 同步数据处理方法、装置、设备及存储介质 | |
CN112395249A (zh) | 用于多个异步消耗者的方法和装置 | |
CN112286684A (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 |