FPGA加速卡传输性能测试方法、装置及设备和介质与流程

文档序号:17640586发布日期:2019-05-11 00:38阅读:208来源:国知局
FPGA加速卡传输性能测试方法、装置及设备和介质与流程

本申请涉及计算机技术领域,更具体地说,涉及一种fpga加速卡传输性能测试方法、装置及一种电子设备和一种计算机可读存储介质。



背景技术:

fpga异构加速卡为大规模数据计算提供加速能力,其一般部署在主机服务器端,通过pcie接口与主机进行数据交互,当有需要加速的任务时,主机端通过pcie接口利用dma技术将数据传输给加速卡,加速卡对数据进行处理后,将结果返回给主机端。上述加速过程中pcie及dma的数据传输速度会对整个加速的效率产生直接影响,因此,在fpga异构加速卡前期开发和调试过程中,需要对pcie的dma传输性能进行测试,以期能达到理论传输速度。

因此,如何对传输性能进行测试是本领域技术人员需要解决的问题。



技术实现要素:

本申请的目的在于提供一种fpga加速卡传输性能测试方法、装置及一种电子设备和一种计算机可读存储介质,实现了对fpga加速卡传输性能的测试。

为实现上述目的,本申请提供了一种fpga加速卡传输性能测试方法,包括:

获取传输完成后的第一数据包和第二数据包;

确定所述第一数据包的第一周期计数、第一帧计数和所述第二数据包的第二周期计数、第二帧计数;其中,所述周期计数为数据包发送时对应的fpga的时钟周期计数,所述帧计数为标识当前数据包发送序列的计数;

利用所述第一周期计数、所述第一帧计数、所述第二周期计数、所述第二帧计数,以及每帧的单位数据大小、fpga的时钟周期,确定单位时间内的单位数据传输量,得到第一传输性能指标。

可选的,所述利用所述第一周期计数、所述第一帧计数、所述第二周期计数、所述第二帧计数,以及每帧的单位数据大小、fpga的时钟周期,确定单位时间内的单位数据传输量,包括:

利用所述第一周期计数、所述第二周期计数以及所述时钟周期确定数据传输时间;

利用所述第一帧计数、所述第二帧计数以及所述单位数据大小确定数据传输总量;

利用所述数据传输时间和所述数据传输总量确定所述单位数据传输量。

可选的,所述利用所述第一周期计数、所述第二周期计数以及所述时钟周期确定数据传输时间,包括:

利用所述时钟周期、所述第一周期计数和所述第二周期计数,基于时间计算公式确定数据传输时间;其中,所述时间计算公式为:

transfer_time=(dma_cntnow-dma_cntpre)*t;

其中,transfer_time为所述数据传输时间;dma_cntnow为所述第一周期计数;dma_cntpre为所述第二周期计数;t为所述时钟周期。

可选的,所述利用所述第一帧计数、所述第二帧计数以及所述单位数据大小确定数据传输总量,包括:

利用所述第一帧计数、所述第二帧计数以及所述单位数据大小,基于传输计算公式确定数据传输总量;其中,所述传输计算公式为:

transfer_data=(frame_cntnow-frame_cntpre)*frame_len;

其中,transfer_data为所述数据传输总量;frame_cntnow为所述第一帧计数;frame_cntpre为所述第二帧计数;frame_len为所述单位数据大小。

可选的,还包括:

获取与所述第一帧计数相邻的目标帧计数对应的第三数据包;

基于所述第一数据包的所述第一周期计数和所述第三数据包的第三周期计数,确定实际传输时间;

确定所述单位数据大小的预设传输时间,并基于所述实际传输时间和所述预设传输时间确定传输延时,得到第二传输性能指标。

为实现上述目的,本申请提供了一种fpga加速卡传输性能测试装置,包括:

数据获取模块,用于获取传输完成后的第一数据包和第二数据包,

计数确定模块,用于确定所述第一数据包的第一周期计数、第一帧计数和所述第二数据包的第二周期计数、第二帧计数;其中,所述周期计数为数据包发送时对应的fpga的时钟周期计数,所述帧计数为标识当前数据包发送序列的计数;

性能确定模块,用于利用所述第一周期计数、所述第一帧计数、所述第二周期计数、所述第二帧计数,以及每帧的单位数据大小、fpga的时钟周期,确定单位时间内的单位数据传输量,得到第一传输性能指标。

可选的,所述性能确定模块,包括:

时间确定单元,用于利用所述第一周期计数、所述第二周期计数以及所述时钟周期确定数据传输时间;

总量确定单元,用于利用所述第一帧计数、所述第二帧计数以及所述单位数据大小确定数据传输总量;

单位确定模块,用于利用所述数据传输时间和所述数据传输总量确定所述单位数据传输量。

可选的,还包括:

相邻获取模块,用于获取与所述第一帧计数相邻的目标帧计数对应的第三数据包;

实际确定模块,用于基于所述第一数据包的所述第一周期计数和所述第三数据包的第三周期计数,确定实际传输时间;

延时确定模块,用于确定所述单位数据大小的预设传输时间,并基于所述实际传输时间和所述预设传输时间确定传输延时,得到第二传输性能指标。

为实现上述目的,本申请提供了一种电子设备,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现如前述公开的任一种fpga加速卡传输性能测试方法的步骤。

为实现上述目的,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如前述公开的任一种fpga加速卡传输性能测试方法的步骤。

通过以上方案可知,本申请提供的一种fpga加速卡传输性能测试方法,包括:获取传输完成后的第一数据包和第二数据包;确定所述第一数据包的第一周期计数、第一帧计数和所述第二数据包的第二周期计数、第二帧计数;其中,所述周期计数为数据包发送时对应的fpga的时钟周期计数,所述帧计数为标识当前数据包发送序列的计数;利用所述第一周期计数、所述第一帧计数、所述第二周期计数、所述第二帧计数,以及每帧的单位数据大小、fpga的时钟周期,确定单位时间内的单位数据传输量,得到第一传输性能指标。也即,本申请利用传输完成的数据包对应的周期计数以及帧计数,确定单位时间内单位数据传输量,得到用于表征fpga加速卡传输性能的第一传输性能指标,实现了对fpga加速卡传输性能的测试。本申请还公开了一种fpga加速卡传输性能测试装置及一种电子设备和一种计算机可读存储介质,同样能实现上述技术效果。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本申请。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例公开的一种fpga加速卡传输性能测试方法的流程图;

图2为本申请实施例公开的一种fpga加速卡传输性能测试方法中确定单位数据传输量过程的流程图;

图3为本申请实施例公开的一种fpga加速卡传输性能测试方法中获取数据传输延迟过程的流程图;

图4为本申请实施例公开的一种fpga加速卡传输性能测试装置的结构图;

图5为本申请实施例公开的一种电子设备的结构图;

图6为本申请实施例公开的另一种电子设备的结构图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

在现有技术中,fpga异构加速卡一般部署在主机服务器端,通过pcie接口与主机进行数据交互,当有需要加速的任务时,主机端通过pcie接口利用dma技术将数据传输给加速卡,加速过程中数据传输速度会对整个加速的效率产生直接影响,因此,在fpga异构加速卡前期开发和调试过程中,需要对pcie的dma传输性能进行测试。

本申请实施例公开了一种fpga加速卡传输性能测试方法。参见图1,本申请实施例公开的一种fpga加速卡传输性能测试方法的流程图,如图1所示,包括:

s101:获取传输完成后的第一数据包和第二数据包;

本实施例中,任意截取传输完成后的两个数据包,得到第一数据包和第二数据包。

s102:确定所述第一数据包的第一周期计数、第一帧计数和所述第二数据包的第二周期计数、第二帧计数;其中,所述周期计数为数据包发送时对应的fpga的时钟周期计数,所述帧计数为标识当前数据包发送序列的计数;

本步骤中,确定第一数据包对应的第一周期计数、第一帧计数,以及第二数据包的第二周期计数、第二帧计数。具体地,周期计数为数据包在发送时对应的fpga的时钟周期计数,帧计数为数据包发送时依据发送序列确定的计数。

可以理解的是,数据包在发送时将周期计数和帧计数一同封装在数据帧中。其中,数据帧包括帧头preamble,帧头可以为任意值,用于主机端对数据包进行解析;frame_len,表示数据帧长度;payload,可以为任意值;frame_cnt、dma_cnt,为帧计数和周期计数,保存在数据包的帧尾。

s103:利用所述第一周期计数、所述第一帧计数、所述第二周期计数、所述第二帧计数,以及每帧的单位数据大小、fpga的时钟周期,确定单位时间内的单位数据传输量,得到第一传输性能指标。

进一步地,基于第一周期计数、第一帧计数、第二周期计数、第二帧计数,以及每帧的单位数据大小、fpga的时钟周期,确定单位时间内的单位数据传输量,利用单位数据传输量描述fpga加速卡的传输性能。

通过以上方案可知,本申请提供的一种fpga加速卡传输性能测试方法,包括:获取传输完成后的第一数据包和第二数据包;确定所述第一数据包的第一周期计数、第一帧计数和所述第二数据包的第二周期计数、第二帧计数;其中,所述周期计数为数据包发送时对应的fpga的时钟周期计数,所述帧计数为标识当前数据包发送序列的计数;利用所述第一周期计数、所述第一帧计数、所述第二周期计数、所述第二帧计数,以及每帧的单位数据大小、fpga的时钟周期,确定单位时间内的单位数据传输量,得到第一传输性能指标。也即,本申请利用传输完成的数据包对应的周期计数以及帧计数,确定单位时间内单位数据传输量,得到用于描述fpga加速卡传输性能的第一传输性能指标,实现了对fpga加速卡传输性能的测试。

本实施例中,针对利用第一周期计数、第一帧计数、第二周期计数、第二帧计数,以及每帧的单位数据大小、fpga的时钟周期,确定单位时间内的单位数据传输量的过程进行进一步阐述,参见图2,该过程具体包括:

s201:利用所述第一周期计数、所述第二周期计数以及所述时钟周期确定数据传输时间;

利用所述时钟周期、所述第一周期计数和所述第二周期计数,基于时间计算公式确定数据传输时间;其中,所述时间计算公式为:

transfer_time=(dma_cntnow-dma_cntpre)*t;

其中,transfer_time为所述数据传输时间;dma_cntnow为所述第一周期计数;dma_cntpre为所述第二周期计数;t为所述时钟周期。

本步骤中,将任意截取得到的两个数据包的周期计数作差,得到相差的周期,再得到与时钟周期的乘积,即为数据传输时间。具体地,fpga的时钟周期t为4ns(纳秒)。

s202:利用所述第一帧计数、所述第二帧计数以及所述单位数据大小确定数据传输总量;

利用所述第一帧计数、所述第二帧计数以及所述单位数据大小,基于传输计算公式确定数据传输总量;其中,所述传输计算公式为:

transfer_data=(frame_cntnow-frame_cntpre)*frame_len;

其中,transfer_data为所述数据传输总量;frame_cntnow为所述第一帧计数;frame_cntpre为所述第二帧计数;frame_len为所述单位数据大小。

可以理解的是,利用两个数据包的帧计数之差与单位数据大小相乘,得到数据传输总量。

s203:利用所述数据传输时间和所述数据传输总量确定所述单位数据传输量。

进一步地,在得到数据传输总量和数据传输时间后,利用数据传输总量除以数据传输时间,得到单位数据传输量。在具体实施中,可以利用传输计算公式确定单位数据传输量,传输计算公式如下:

speed=[(transfer_data/(1024*1024))/transfer_time]*109

其中,speed为传输速度,也即单位数据传输量,单位为兆/秒。

进一步地,在上述任一实施例的基础上,本申请实施例提供的fpga加速卡传输性能测试还可以获取数据传输延迟,作为另一种描述数据传输性能的指标。如图3所示,获取数据传输延迟的过程包括:

s301:获取与所述第一帧计数相邻的目标帧计数对应的第三数据包;

本实施例中,获取与第一帧计数相邻的目标帧计数,也即第一数据包传输完成后传输的第三数据包。

s302:基于所述第一数据包的所述第一周期计数和所述第三数据包的第三周期计数,确定实际传输时间;

可以理解的是,利用第一周期计数和第三周期计数的差值,确定实际传输时间。

s303:确定所述单位数据大小的预设传输时间,并基于所述实际传输时间和所述预设传输时间确定传输延时,得到第二传输性能指标。

本步骤中,确定单位数据大小的预设传输时间,具体可以利用预设确定公式来计算,其中,预设确定公式为:

mv_da_time=(frame_len*8/256)*4ns;

其中,mv_da_time为预设传输时间;frame_len为单位数据大小;4ns为时钟周期。

进一步地,利用实际传输时间与预设传输时间作差,得到传输延时,将传输延时作为另一种评价传输性能的指标。

下面对本申请实施例提供的一种fpga加速卡传输性能测试装置进行介绍,下文描述的一种fpga加速卡传输性能测试装置与上文描述的一种fpga加速卡传输性能测试方法可以相互参照。

参见图4,本申请实施例提供的一种fpga加速卡传输性能测试装置的结构图,如图4所示,包括:

数据获取模块100,用于获取传输完成后的第一数据包和第二数据包;

计数确定模块200,用于确定所述第一数据包的第一周期计数、第一帧计数和所述第二数据包的第二周期计数、第二帧计数;其中,所述周期计数为数据包发送时对应的fpga的时钟周期计数,所述帧计数为标识当前数据包发送序列的计数;

性能确定模块300,用于利用所述第一周期计数、所述第一帧计数、所述第二周期计数、所述第二帧计数,以及每帧的单位数据大小、fpga的时钟周期,确定单位时间内的单位数据传输量,得到第一传输性能指标。

进一步地,所述性能确定模块,包括:

时间确定单元,用于利用所述第一周期计数、所述第二周期计数以及所述时钟周期确定数据传输时间;

总量确定单元,用于利用所述第一帧计数、所述第二帧计数以及所述单位数据大小确定数据传输总量;

单位确定模块,用于利用所述数据传输时间和所述数据传输总量确定所述单位数据传输量。

进一步地,所述fpga加速卡传输性能测试装置,还可以包括:

相邻获取模块,用于获取与所述第一帧计数相邻的目标帧计数对应的第三数据包;

实际确定模块,用于基于所述第一数据包的所述第一周期计数和所述第三数据包的第三周期计数,确定实际传输时间;

延时确定模块,用于确定所述单位数据大小的预设传输时间,并基于所述实际传输时间和所述预设传输时间确定传输延时,得到第二传输性能指标。

本申请还提供了一种电子设备,参见图5,本申请实施例提供的一种电子设备的结构图,如图5所示,包括:

存储器11,用于存储计算机程序;

处理器12,用于执行所述计算机程序时可以实现上述实施例所提供的步骤。

具体的,存储器11包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机可读指令,该内存储器为非易失性存储介质中的操作系统和计算机可读指令的运行提供环境。处理器12在一些实施例中可以是一中央处理器(centralprocessingunit,cpu)、控制器、微控制器、微处理器或其他数据处理芯片,为电子设备提供计算和控制能力。

在上述实施例的基础上,作为优选实施方式,参见图6,所述电子设备还包括:

输入接口13,与处理器12相连,用于获取外部导入的计算机程序、参数和指令,经处理器12控制保存至存储器11中。该输入接口13可以与输入装置相连,接收用户手动输入的参数或指令。该输入装置可以是显示屏上覆盖的触摸层,也可以是终端外壳上设置的按键、轨迹球或触控板,也可以是键盘、触控板或鼠标等。

显示单元14,与处理器12相连,用于显示处理器12处理的数据以及用于显示可视化的用户界面。该显示单元14可以为led显示器、液晶显示器、触控式液晶显示器以及oled(organiclight-emittingdiode,有机发光二极管)触摸器等。

网络端口15,与处理器12相连,用于与外部各终端设备进行通信连接。该通信连接所采用的通信技术可以为有线通信技术或无线通信技术,如移动高清链接技术(mhl)、通用串行总线(usb)、高清多媒体接口(hdmi)、无线保真技术(wifi)、蓝牙通信技术、低功耗蓝牙通信技术、基于ieee802.11s的通信技术等。

图6仅示出了具有组件11-15的电子设备,本领域技术人员可以理解的是,图6示出的结构并不构成对电子设备的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。

本申请还提供了一种计算机可读存储介质,该存储介质可以包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。该存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述实施例所提供的步骤。

本申请利用传输完成的数据包对应的周期计数以及帧计数,确定单位时间内单位数据传输量,得到用于表征fpga加速卡传输性能的第一传输性能指标,实现了对fpga加速卡传输性能的测试。

说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1