用于fpga云服务器性能测试的系统及方法
专利摘要:本发明涉及计算机云服务系统测试领域,公开了一种用于FPGA云服务器性能测试的系统及方法,来解决因物理底层结构对云服务器产生的影响,导致的测试准确度不高的问题。本发明包括加载模块和测试模块;加载模块分别从云端加载已加密的第一硬件测试程序和第二硬件测试程序到待测FPGA云服务器,其中,第一硬件测试程序用于测试待测FPGA云服务器的数据传输性能,第二硬件测试程序用于测试待测FPGA云服务器中FPGA器件的计算性能;测试模块在待测FPGA云服务器中的虚拟机上分别运行第一硬件测试程序和第二硬件测试程序,以分别获得数据传输性能和FPGA器件的计算性能,从而完成对待测FPGA云服务器的性能测试。本发明适用于云服务系统测试。
专利说明:
用于FPGA云服务器性能测试的系统及方法
[0001] 技术领域
[0002] 本发明涉及计算机云服务系统测试领域,特别涉及用于FPGA云服务器性能测试的系统及方法。
[0003] 背景技术
[0004] 可编程门阵列(FPGA)由于具有高吞吐率、低延迟的特点,已经广泛应用于机器学习、高性能科学计算等技术领域,并且随着云服务技术的发展,FPGA云服务器逐渐流行起来,FPGA作为CPU的协处理器用于加速各类云服务。FPGA云服务器克服了FPGA编程难的缺点,同时有效利用了FPGA强大的运算能力和可重复编程的特性,用户只需要一个终端设备和网络连接,就可以获得高于CPU计算能力几十倍甚至几百倍的计算资源,以及运行在云端环境的软件资源。
[0005] FPGA云服务器属于一种基础设施即服务(IaaS,Infrastructure as a Service)平台,该平台整合了计算、存储以及网络等IT基础设施资源,以虚拟机实例的形式供租户按需使用。部署在FPGA云服务器上的业务性能主要由FPGA加速性能决定,因此,通过性能测试准确获取FPGA云服务器的性能极为重要。
[0006] FPGA云服务器中,FPGA资源可划分为两个区域,静态区域和动态区域,静态区域设计由运营商提供,用户无法配置这部分逻辑功能;动态区域对应一个或多个用户IP,用于自定义用户逻辑设计。由于与物理环境相比,云环境的复杂程度更高,编程接口的简化也掩盖了很多设计细节,因此对FPGA云服务器的性能测试是一项很困难的任务。
[0007] 目前的云服务器性能测试方法主要针对虚拟机的各方面性能进行考虑,包括CPU计算能力,内存,网络以及硬盘等,但是,这些测试方法并没有考虑到FPGA云服务器架构中更为底层的物理结构对FPGA云服务器性能所产生的影响,因此,通过现有的FPGA云服务器性能的测试方法所获取的测试结果,并不能反映FPGA云服务器真实的性能。因此,现有的FPGA云服务性能的测试方法,准确度不高。
[0008] 发明内容
[0009] 本发明要解决的技术问题是:提供一种用于FPGA云服务器性能测试的系统及方法,来解决因物理底层结构对云服务器产生的影响,导致的测试准确度不高的问题。
[0010] 为解决上述问题,本发明采用的技术方案是:用于FPGA云服务器性能测试的系统及方法,其中,系统包括加载模块和测试模块;
[0011] 加载模块用于分别从云端加载已加密的第一硬件测试程序和第二硬件测试程序到待测FPGA云服务器;其中,第一硬件测试程序用于测试待测FPGA云服务器的数据传输性能,第二硬件测试程序用于测试待测FPGA云服务器中FPGA器件的计算性能;
[0012] 测试模块用于在待测FPGA云服务器中的虚拟机上分别运行第一硬件测试程序和第二硬件测试程序,以分别获得数据传输性能和FPGA器件的计算性能。
[0013] FPGA云服务器由虚拟机、数据传输层和硬件加速层这三个子系统构成,FPGA云服务器的加速性能实际受数据传输层的性能和硬件加速层的性能影响,其中,数据传输层的性能即FPGA云服务器的数据传输性能,硬件加速层的性能即FPGA云服务器中FPGA器件的计算性能;本发明所提供的FPGA云服务器性能的测试系统,可将FPGA云服务器的性能解耦成三个子系统的性能,分别测试数据传输性能和FPGA器件的计算性能以完成对FPGA云服务器性能的测试,由此能够结合FPGA云服务器架构的特点,提高FPGA云服务器性能测试的准确度。
[0014] 通过以上系统,本发明实现FPGA云服务器性能测试的方法的具体步骤如下:
[0015] (1)加载模块分别从云端加载已加密的第一硬件测试程序和第二硬件测试程序到待测FPGA云服务器,其中,第一硬件测试程序用于测试待测FPGA云服务器的数据传输性能,第二硬件测试程序用于测试待测FPGA云服务器中FPGA器件的计算性能;
[0016] (2)测试模块在待测FPGA云服务器中的虚拟机上分别运行第一硬件测试程序和第二硬件测试程序,以分别获得数据传输性能和FPGA器件的计算性能,从而完成对待测FPGA云服务器的性能测试。
[0017] 进一步的,本发明中待测FPGA云服务器的数据传输性能测试可包括:DMA读性能测试和DMA写性能测试;
[0018] 所述DMA读性能测试包括:
[0019] (a1)通过DMA引擎将FPGA器件中大小为pkt_size的数据包传输到虚拟机的内存中,以完成对该数据包的DMA读操作;
[0020] (a2)记录该DMA读操作的数据传输时间;
[0021] (a3)将虚拟机内存中接收到的数据与该数据包进行比对,若相同,则判定此次测试有效;否则,判定此次测试无效;
[0022] (a4)重复执行步骤(a1)~(a3),直至有效的测试次数达到指定的测试次数n;
[0023] (a5)获得所有有效测试的数据传输总时间total_time_r,并根据公式计算DMA读性能;
[0024] 所述DMA写性能测试包括:
[0025] (b1)在虚拟机内存中初始化大小为pkt_size的数据包,并通过DMA引擎将该数据包从虚拟机内存传输到FPGA器件中,以完成对该数据包的DMA写操作;
[0026] (b2)记录该DMA写操作的数据传输时间;
[0027] (b3)将虚拟机内存中的数据包与写入FPGA器件中的数据进行比对,若相同,则判定此次测试有效;否则,判定此次测试无效;
[0028] (b4)重复执行步骤(b1)~(b3),直至有效的测试次数达到预设的测试次数n;
[0029] (b5)获得所有有效测试的数据传输总时间total_time_w,并根据公式计算DMA读性能。
[0030] 进一步的,本发明中待测FPGA云服务器中FPGA器件的计算性能测试可包括:浮点运算加速性能测试和位操作加速性能测试;
[0031] 所述浮点运算加速性能测试包括:
[0032] (c1)在虚拟机内存中初始化浮点矩阵A和浮点矩阵B,浮点矩阵A的行数和列数分别为N和K,浮点矩阵B的行数和列数分别为K和M;
[0033] (c2)在该虚拟机的CPU中计算第一结果矩阵为C0=AB;
[0034] (c3)利用FPGA器件中的乘法运算单元执行浮点矩阵A和浮点矩阵B的乘法运算,以得到第二结果矩阵C,并记录对应的运算时间comput_time;
[0035] (c4)将第二结果矩阵和第一结果矩阵进行比对,若相同,则判定此次测试有效,并根据公式计算浮点运算加速性能,测试结束;否则,则判定此次测试无效,并转入步骤(c1);
[0036] 所述位操作加速性能测试包括:
[0037] (d1)将被加密文件解析为字符串,以得到明文;
[0038] (d2)在虚拟机的CPU中利用预设的秘钥对明文进行AES加密,以得到第一密文;
[0039] (d3)将明文和秘钥均传输至FPGA器件中的AES加密单元,以使得AES加密单元利用秘钥对明文进行AES加密,从而得到第二密文,并记录对应的加密时间AES_time;
[0040] (d4)将第二密文与第一密文进行比对,若相同,则判定此次测试有效,并根据公式计算位操作加速性能,否则,判定此次测试无效,并转入步骤(d1);
[0041] 其中,file_size为被加密文件的大小。
[0042] 进一步的,为充分利用FPGA器件中乘法运算单元的计算性能,浮点矩阵A和浮点矩阵B的规模均不小于1024*1024。
[0043] 进一步的,为了充分利用FPGA器件中位运算单元的计算性能,被加密文件的大小file_size≥30MB。
[0044] 本发明的有益效果如下:
[0045] (1)本发明所提供的FPGA云服务器性能的测试方法和系统,将FPGA云服务器的性能解耦成三个子系统的性能,分别测试数据传输性能和FPGA器件的计算性能以完成对FPGA云服务器性能的测试,由于数据传输性能和FPGA器件的计算性能能够最为直接且准确的反映FPGA云服务器的整体性能,因此,本发明能够结合FPGA云服务器架构的特点,有效提高FPGA云服务器性能测试的准确度。
[0046] (2)本发明所提供的FPGA云服务器性能的测试方法和系统,通过测试DMA读性能和DMA写性能实现对数据传输性能的测试,并通过测试浮点运算加速性能和位操作加速性能实现对FPGA器件的计算性能的测试,能够保证测试的准确性,并简化测试,降低测试难度。
[0047] (3)本发明所提供的FPGA云服务器性能的测试方法和系统,在每一项测试中,都会严格验证每一次测试的有效性,由此能够进一步保证对FPGA云服务器性能测试的准确性。
[0048] 附图说明
[0049] 图1为现有的FPGA云服务器架构示意图;
[0050] 图2为本发明实施例提供的开发环境的初始化流程图;
[0051] 图3为本发明实施例提供的FPGA云服务器性能测试的方法流程图。
[0052] 具体实施方式
[0053] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
[0054] 在详细解释本发明的技术方案之前,先对FPGA云服务器的架构进行简要介绍。
[0055] FPGA云服务器的架构如图1所示,FPGA云服务器包括:虚拟机和FPGA板卡,FPGA板卡包含DDR存储器、乘法运算单元、位运算单元等各中FPGA器件,虚拟机运行在FPGA云服务器中,FPGA板卡作为一种硬件加速器为部署在FPGA云服务器上的任务提供性能加速,虚拟机和FPGA板卡通过PCIe通道传输数据;从功能上,可以将FPGA云服务器架构划分为三个子系统,即虚拟机、由FPGA板卡构成的硬件加速层以及在虚拟机和硬件加速层之间负责数据传输的数据传输层。
[0056] 根据重构方式和操作权限的不同,FPGA云服务器被划分为静态区域和动态区域,其中,静态区域是整个系统架构的关键,也是整个系统的通用服务逻辑,用于连接虚拟机侧的应用程序与FPGA侧的动态区用户IP,静态区域包括PCIe协议控制器、DMA数据传输模块和内存控制器,PCIe协议控制器用于控制PCIe报文的构造、解析和传输,DMA数据传输模块用于将PCIe报文数据以DMA方式进行高效率传输,内存控制器用于控制数据在DDR存储器与FPGA之间的数据传输;动态区域对应一个或多个用户IP;静态区域不允许用户进行配置,动态区域则用于自定义用户逻辑设计。
[0057] FPGA云服务器提供两种开发套件,包括:硬件开发套件(HardwareDevelopmentKit,HDK)和软件开发套件(Software Development Kit,SDK);其中,HDK,用于提供硬件开发环境,包括加速器示例、编译工具及编译环境、自动化脚本和统一的FPGA硬件接口(例如PCIe接口、DMA接口和内存控制器接口等),这些接口与所述FPGA云服务器静态区域的所有模块相对应;SDK,用于提供软件开发环境,包括软件示例、云上FPGA管理工具、硬件抽象接口、加速器抽象接口和与HDK对应的驱动程序及软件库。
[0058] 在对FPGA云服务器性能进行测试之前,需要执行启动虚拟机和配置必备的开发环境的步骤,具体过程如图2所示,包括:
[0059] (S01)登陆FPGA云平台,在控制台配置虚拟机参数,向云端服务器请求虚拟机;
[0060] (S02)云端服务器根据请求的参数配置启动虚拟机;
[0061] (S03)配置HDK开发环境和SDK开发环境。
[0062] 针对图1所示的FPGA云服务器,本发明所提供的用于FPGA云服务器性能测试的方法,如图3所示,包括:
[0063] (1)加载模块分别从云端加载已加密的第一硬件测试程序和第二硬件测试程序到待测FPGA云服务器;
[0064] 第一硬件测试程序用于测试待测FPGA云服务器的数据传输性能,第二硬件测试程序用于测试待测FPGA云服务器中FPGA器件的计算性能;
[0065] 第一硬件测试程序和第二硬件测试程序可预先编写好,并加密、打包后上传到云端;对测试程序的加密,可通过运行运营商提供的加密脚本完成;
[0066] (2测试模块)在待测FPGA云服务器中的虚拟机上分别运行第一硬件测试程序和第二硬件测试程序,以分别获得数据传输性能和FPGA器件的计算性能,从而完成对待测FPGA云服务器的性能测试;
[0067] 在一个可选的实施方式中,在待测FPGA云服务器中的虚拟机上运行第一硬件测试程序,获得数据传输性能,包括:DMA读性能测试和DMA写性能测试;
[0068] FPGA器件与虚拟机CPU之间通过虚拟化的PCIe通道传输内存数据,DMA传输方式是FPGA器件与虚拟机CPU之间最常用的数据传输方式,DMA读写性能也能够直接反映数据传输层性能,因此,本发明通过测试DMA读性能和DMA写性能实现对数据传输性能的测试,能够保证测试的准确性,并简化测试,降低测试难度;
[0069] 可选地,DMA读性能测试包括:
[0070] (a1)通过DMA引擎将FPGA器件中大小为pkt_size的数据包传输到虚拟机的内存中,以完成对该数据包的DMA读操作;
[0071] (a2)记录该DMA读操作的数据传输时间;具体地,可通过clock_gettime函数分别获取数据包开始传输和传输结束的时间,两个时间做差即可得到该数据传输时间;
[0072] (a3)将虚拟机内存中接收到的数据与该数据包进行比对,若相同,则判定此次测试有效;否则,判定此次测试无效;
[0073] (a4)重复执行步骤(a1)~(a3),直至有效的测试次数达到指定的测试次数n;
[0074] (a5)获得所有有效测试的数据传输总时间total_time_r,以计算DMA读性能为:
[0075] 在本实施例中,DMA读性能的测试指标是单位时间内的数据传输量;
[0076] 可选地,DMA写性能测试包括:
[0077] (b1)在虚拟机内存中初始化大小为pkt_size的数据包,并通过DMA引擎将该数据包从虚拟机内存传输到FPGA器件中,以完成对该数据包的DMA写操作;
[0078] (b2)记录该DMA写操作的数据传输时间;具体地,可通过clock_gettime函数分别获取数据包开始传输和传输结束的时间,两个时间做差即可得到该数据传输时间;
[0079] (b3)将虚拟机内存中的数据包与写入FPGA器件中的数据进行比对,若相同,则判定此次测试有效;否则,判定此次测试无效;
[0080] (b4)重复执行步骤(b1)~(b3),直至有效的测试次数达到预设的测试次数n;
[0081] (b5)获得所有有效测试的数据传输总时间total_time_w,以计算DMA写性能为:
[0082] 在本实施例中,DMA写性能的测试指标是单位时间内的数据传输量;
[0083] 在上述DMA读性能测试和DMA写性能测试中,通过多次测试,并严格判定每一次测试是否有效,能够进一步保证测试的准确性;
[0084] 可选地,在执行上DMA读性能测试和DMA写性能测试之前,还可执行“echo20>/sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages”命令配置本机大页内存,以降低缓存命中缺失率,提高内存访问效率。
[0085] 在一个可选的实施方式中,在待测FPGA云服务器中的虚拟机上运行第二硬件测试程序,获得FPGA器件的计算性能,包括:浮点运算加速性能测试和位操作加速性能测试;
[0086] 浮点运算加速性能与数据挖掘、机器学习、大数据等技术实现紧密相关,能够反映FPGA云服务器在上述相关领域的效能表现;位操作,即与或非操作,是FPGA的一种基础指令操作,位操作加速性能反映了FPGA云服务器计算整形数据的能力;浮点运算加速性能和位操作加速性能能够直接反映FPGA器件的计算性能;因此,本发明通过测试浮点运算加速性能和位操作加速性能实现对FPGA器件的计算性能的测试,能够保证测试的准确性,并简化测试,降低测试难度;具体可通过执行浮点运算密集型任务来测试FPGA器件的浮点运算加速性能,可通过执行位操作密集型任务来测试FPGA器件的位操作运算加速性能;
[0087] 可选地,浮点运算加速性能测试包括:
[0088] (c1)在虚拟机内存中初始化浮点矩阵A和浮点矩阵B,浮点矩阵A的行数和列数分别为N和K,浮点矩阵B的行数和列数分别为K和M;
[0089] 为充分利用FPGA器件中乘法运算单元的计算性能,浮点矩阵A和浮点矩阵B的规模均不小于1024*1024;浮点矩阵A和浮点矩阵B都是密集矩阵(Dense Matrix);
[0090] (c2)在该虚拟机的CPU中计算第一结果矩阵为C0=AB;
[0091] (c3)利用FPGA器件中的乘法运算单元执行浮点矩阵A和浮点矩阵B的乘法运算,以得到第二结果矩阵C,并记录对应的运算时间comput_time;具体地,可通过clock_gettime函数分别获取浮点矩阵乘法的开始时间和结束时间,两个时间做差即可得到该运算时间comput_time;
[0092] (c4)将第二结果矩阵和第一结果矩阵进行比对,若相同,则判定此次测试有效,并计算浮点运算加速性能为:测试结束;否则,则判定此次测试无效,并转入步骤(c1)。
[0093] 在本实施例中,算浮点运算加速性能的测试指标是每秒十亿次浮点运算次数(GFLOPs);
[0094] 可选地,位操作加速性能测试包括:
[0095] (d1)将被加密文件解析为字符串,以得到明文;
[0096] 为充分利用FPGA器件中位运算单元的计算性能,被加密文件的大小file_size≥30MB;
[0097] (d2)在虚拟机的CPU中利用预设的秘钥对明文进行AES加密,以得到第一密文;
[0098] (d3)将明文和秘钥均传输至FPGA器件中的AES加密单元,以使得AES加密单元利用秘钥对明文进行AES加密,从而得到第二密文,并记录对应的加密时间AES_time;具体地,可通过clock_gettime函数分别获取AES加密的开始时间和结束时间,两个时间做差即可得到该加密时间AES_time;
[0099] (d4)将第二密文与第一密文进行比对,若相同,则判定此次测试有效,并计算位操作加速性能为:
[0100] 否则,判定此次测试无效,并转入步骤(d1)。
[0101] 在本实施例中,位计算加速性能的测试指标是吞吐率,即单位时间内处理的数据量;
[0102] 上述浮点运算加速性能测试和位操作加速性能测试中,会严格判定测试是否有效,能够进一步保证测试的准确性。
权利要求:1.用于FPGA云服务器性能测试的系统,其特征在于,包括加载模块和测试模块;
加载模块用于分别从云端加载已加密的第一硬件测试程序和第二硬件测试程序到待测FPGA云服务器;其中,第一硬件测试程序用于测试待测FPGA云服务器的数据传输性能,第二硬件测试程序用于测试待测FPGA云服务器中FPGA器件的计算性能;
测试模块用于在待测FPGA云服务器中的虚拟机上分别运行第一硬件测试程序和第二硬件测试程序,以分别获得数据传输性能和FPGA器件的计算性能。
2.如权利要求1所述用于FPGA云服务器性能测试的系统,其特征在于,待测FPGA云服务器的数据传输性能测试包括DMA读性能测试和DMA写性能测试;
所述DMA读性能测试包括:
(a1)通过DMA引擎将FPGA器件中大小为pkt_size的数据包传输到虚拟机的内存中,以完成对该数据包的DMA读操作;
(a2)记录该DMA读操作的数据传输时间;
(a3)将虚拟机内存中接收到的数据与该数据包进行比对,若相同,则判定此次测试有效;否则,判定此次测试无效;
(a4)重复执行步骤(a1)~(a3),直至有效的测试次数达到指定的测试次数n;
(a5)获得所有有效测试的数据传输总时间total_time_r,并根据公式计算DMA读性能;
所述DMA写性能测试包括:
(b1)在虚拟机内存中初始化大小为pkt_size的数据包,并通过DMA引擎将该数据包从虚拟机内存传输到FPGA器件中,以完成对该数据包的DMA写操作;
(b2)记录该DMA写操作的数据传输时间;
(b3)将虚拟机内存中的数据包与写入FPGA器件中的数据进行比对,若相同,则判定此次测试有效;否则,判定此次测试无效;
(b4)重复执行步骤(b1)~(b3),直至有效的测试次数达到预设的测试次数n;
(b5)获得所有有效测试的数据传输总时间total_time_w,并根据公式计算DMA读性能。
3.如权利要求1所述用于FPGA云服务器性能测试的系统,其特征在于,待测FPGA云服务器中FPGA器件的计算性能测试包括浮点运算加速性能测试和位操作加速性能测试;
所述浮点运算加速性能测试包括:
(c1)在虚拟机内存中初始化浮点矩阵A和浮点矩阵B,浮点矩阵A的行数和列数分别为N和K,浮点矩阵B的行数和列数分别为K和M;
(c2)在该虚拟机的CPU中计算第一结果矩阵为C0=AB;
(c3)利用FPGA器件中的乘法运算单元执行浮点矩阵A和浮点矩阵B的乘法运算,以得到第二结果矩阵C,并记录对应的运算时间comput_time;
(c4)将第二结果矩阵和第一结果矩阵进行比对,若相同,则判定此次测试有效,并根据公式计算浮点运算加速性能,测试结束;否则,则判定此次测试无效,并转入步骤(c1);
所述位操作加速性能测试包括:
(d1)将被加密文件解析为字符串,以得到明文;
(d2)在虚拟机的CPU中利用预设的秘钥对明文进行AES加密,以得到第一密文;
(d3)将明文和秘钥均传输至FPGA器件中的AES加密单元,以使得AES加密单元利用秘钥对明文进行AES加密,从而得到第二密文,并记录对应的加密时间AES_time;
(d4)将第二密文与第一密文进行比对,若相同,则判定此次测试有效,并根据公式计算位操作加速性能,否则,判定此次测试无效,并转入步骤(d1);
其中,file_size为被加密文件的大小。
4.如权利要求3所述用于FPGA云服务器性能测试的系统,其特征在于,浮点矩阵A和浮点矩阵B的规模均不小于1024*1024。
5.如权利要求3所述用于FPGA云服务器性能测试的系统,其特征在于,被加密文件的大小file_size≥30MB。
6.用于FPGA云服务器性能测试的方法,其特征在于,包括如下步骤:
(1)分别从云端加载已加密的第一硬件测试程序和第二硬件测试程序到待测FPGA云服务器,其中,第一硬件测试程序用于测试待测FPGA云服务器的数据传输性能,第二硬件测试程序用于测试待测FPGA云服务器中FPGA器件的计算性能;
(2)在待测FPGA云服务器中的虚拟机上分别运行第一硬件测试程序和第二硬件测试程序,以分别获得数据传输性能和FPGA器件的计算性能。
7.如权利要求6所述用于FPGA云服务器性能测试的方法,其特征在于,待测FPGA云服务器的数据传输性能测试包括DMA读性能测试和DMA写性能测试;
所述DMA读性能测试包括:
(a1)通过DMA引擎将FPGA器件中大小为pkt_size的数据包传输到虚拟机的内存中,以完成对该数据包的DMA读操作;
(a2)记录该DMA读操作的数据传输时间;
(a3)将虚拟机内存中接收到的数据与该数据包进行比对,若相同,则判定此次测试有效;否则,判定此次测试无效;
(a4)重复执行步骤(a1)~(a3),直至有效的测试次数达到指定的测试次数n;
(a5)获得所有有效测试的数据传输总时间total_time_r,并根据公式计算DMA读性能;
所述DMA写性能测试包括:
(b1)在虚拟机内存中初始化大小为pkt_size的数据包,并通过DMA引擎将该数据包从虚拟机内存传输到FPGA器件中,以完成对该数据包的DMA写操作;
(b2)记录该DMA写操作的数据传输时间;
(b3)将虚拟机内存中的数据包与写入FPGA器件中的数据进行比对,若相同,则判定此次测试有效;否则,判定此次测试无效;
(b4)重复执行步骤(b1)~(b3),直至有效的测试次数达到预设的测试次数n;
(b5)获得所有有效测试的数据传输总时间total_time_w,并根据公式计算DMA读性能。
8.如权利要求1所述用于FPGA云服务器性能测试的方法,其特征在于,待测FPGA云服务器中FPGA器件的计算性能测试包括浮点运算加速性能测试和位操作加速性能测试;
所述浮点运算加速性能测试包括:
(c1)在虚拟机内存中初始化浮点矩阵A和浮点矩阵B,浮点矩阵A的行数和列数分别为N和K,浮点矩阵B的行数和列数分别为K和M;
(c2)在该虚拟机的CPU中计算第一结果矩阵为C0=AB;
(c3)利用FPGA器件中的乘法运算单元执行浮点矩阵A和浮点矩阵B的乘法运算,以得到第二结果矩阵C,并记录对应的运算时间comput_time;
(c4)将第二结果矩阵和第一结果矩阵进行比对,若相同,则判定此次测试有效,并根据公式计算浮点运算加速性能,测试结束;否则,则判定此次测试无效,并转入步骤(c1);
所述位操作加速性能测试包括:
(d1)将被加密文件解析为字符串,以得到明文;
(d2)在虚拟机的CPU中利用预设的秘钥对明文进行AES加密,以得到第一密文;
(d3)将明文和秘钥均传输至FPGA器件中的AES加密单元,以使得AES加密单元利用秘钥对明文进行AES加密,从而得到第二密文,并记录对应的加密时间AES_time;
(d4)将第二密文与第一密文进行比对,若相同,则判定此次测试有效,并根据公式计算位操作加速性能,否则,判定此次测试无效,并转入步骤(d1);
其中,file_size为被加密文件的大小。
9.如权利要求8所述用于FPGA云服务器性能测试的方法,其特征在于,浮点矩阵A和浮点矩阵B的规模均不小于1024*1024。
10.如权利要求8所述用于FPGA云服务器性能测试的方法,其特征在于,被加密文件的大小file_size≥30MB。
公开号:CN110597680
申请号:CN201910893157.4A
发明人:康玥 郑欢
申请人:四川长虹电器股份有限公司
申请日:2019-09-20
公开日:2019-12-20