CN116755991A - 通用跨平台cpu算力评估方法、电子设备 - Google Patents
通用跨平台cpu算力评估方法、电子设备 Download PDFInfo
- Publication number
- CN116755991A CN116755991A CN202311019644.0A CN202311019644A CN116755991A CN 116755991 A CN116755991 A CN 116755991A CN 202311019644 A CN202311019644 A CN 202311019644A CN 116755991 A CN116755991 A CN 116755991A
- Authority
- CN
- China
- Prior art keywords
- cpu
- integer
- score
- floating point
- evaluation
- 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
- 238000011156 evaluation Methods 0.000 title claims abstract description 149
- 238000004364 calculation method Methods 0.000 claims abstract description 109
- 238000000034 method Methods 0.000 claims abstract description 75
- 238000009434 installation Methods 0.000 claims abstract description 11
- 238000006243 chemical reaction Methods 0.000 claims description 39
- 238000010801 machine learning Methods 0.000 claims description 13
- 238000004458 analytical method Methods 0.000 claims description 12
- 230000001965 increasing effect Effects 0.000 claims description 7
- 238000012549 training Methods 0.000 claims description 6
- 230000004044 response Effects 0.000 claims description 2
- 238000012545 processing Methods 0.000 abstract description 30
- 230000000875 corresponding effect Effects 0.000 description 27
- 230000008569 process Effects 0.000 description 24
- 238000012360 testing method Methods 0.000 description 24
- 230000008878 coupling Effects 0.000 description 8
- 238000010168 coupling process Methods 0.000 description 8
- 238000005859 coupling reaction Methods 0.000 description 8
- 238000004590 computer program Methods 0.000 description 7
- 230000018109 developmental process Effects 0.000 description 7
- 238000004422 calculation algorithm Methods 0.000 description 6
- 230000008676 import Effects 0.000 description 6
- 238000013461 design Methods 0.000 description 5
- 238000012854 evaluation process Methods 0.000 description 5
- 230000001960 triggered effect Effects 0.000 description 5
- 230000003044 adaptive effect Effects 0.000 description 4
- 238000011161 development Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000012935 Averaging Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 230000002596 correlated effect Effects 0.000 description 2
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 238000011056 performance test Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 210000004556 brain Anatomy 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000010230 functional analysis Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000008140 language development Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3476—Data logging
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请数据处理领域,尤其涉及一种通用跨平台CPU算力评估方法、电子设备。待检测客户端响应于算力评估软件安装请求,基于源代码生成工程文件;基于工程文件,生成Makefile文件;基于Makefile文件,生成可执行文件;运行可执行文件,以完成所述算力评估软件的安装;采集CPU信息,并发送给服务端;响应于性能数据信息采集指令,根据所述CPU信息采集性能数据信息,并将所述性能数据信息发送到所述服务端。服务端根据所述CPU信息、性能数据信息,对所述待检测客户端的CPU进行算力评估,得到标准性能分值;将所述标准性能分值反馈给所述待检测客户端;待检测客户端显示所述标准性能分值。实现了跨平台的通用性。
Description
技术领域
本申请涉及数据处理技术领域,尤其是涉及一种通用跨平台CPU算力评估方法、电子设备。
背景技术
中央处理器(Central Processing Unit,CPU)作为计算机的大脑,其算力影响着计算机整体的性能。因此对CPU的算力评估就变得尤为重要。
现有的算力评估软件的最大缺点是不通用(具体功能分析参考现有技术分析表)。多数只能在某种CPU或某种操作系统下运行,少数可以运行在多个操作系统下,但支持的CPU数量也有限,基本都无法支持国产龙芯。这就导致部分型号的CPU无法进行算力评估,进一步导致此类CPU的使用受限。
发明内容
本申请提供一种通用跨平台CPU算力评估方法、电子设备,以解决上述技术问题。
第一方面,本申请提供一种通用跨平台CPU算力评估方法,应用于服务端,包括:
接收待检测客户端在运行算力评估软件对应的可执行文件后发送的CPU信息、性能数据信息;所述可执行文件是所述待检测客户端响应于算力评估软件安装请求,基于源代码生成工程文件;基于所述工程文件,生成Makefile文件;基于所述Makefile文件生成的;
根据所述CPU信息、性能数据信息,对所述待检测客户端的CPU进行算力评估,得到标准性能分值;
将所述标准性能分值反馈给所述待检测客户端,以使所述待检测客户端显示所述标准性能分值。
可选的,所述性能数据信息包括:CPU单核整数线程运行时间、CPU单核浮点线程运行时间、CPU整数性能数据、CPU浮点数性能数据;
所述根据所述CPU信息、性能数据信息,对所述待检测客户端的CPU进行算力评估,得到标准性能分值,包括:
根据所述CPU单核整数线程运行时间、单核整数分值计算公式,确定单核整数分值;
根据所述CPU单核浮点线程运行时间、单核浮点分值计算公式,确定单核浮点分值;
根据所述CPU整数性能数据、CPU整数分值计算公式,确定CPU整数分值;
根据所述CPU浮点数性能数据、CPU浮点数分值计算公式,确定CPU浮点数分值。
可选的,所述根据所述CPU信息、性能数据信息,对所述待检测客户端的CPU进行算力评估,得到标准性能分值,还包括:
根据所述CPU信息中的CPU名称、所述单核整数分值、所述单核浮点分值、所述CPU整数分值、所述CPU浮点数分值,更新CPU算力评估结果数据库;
从更新后的CPU算力评估结果数据库中获取所述CPU名称对应的多条记录中的CPU整数分值、CPU浮点数分值;
根据所述多条记录中的CPU整数分值、CPU浮点数分值,确定所述CPU名称对应的CPU标准整数分值、CPU标准浮点数分值。
可选的,所述CPU整数性能数据包括:CPU整数线程数、CPU整数线程运行时间;所述CPU浮点数性能数据包括:CPU浮点数线程数、CPU浮点数线程运行时间;
所述单核整数分值计算公式包括:
单核整数分值=取整数部分(调整常量×(1/单核整数线程运行时间));
所述单核浮点分值计算公式包括:
单核浮点分值=取整数部分(调整常量×(1/单核浮点线程运行时间));
所述CPU整数分值计算公式包括:
CPU整数分值=取整数部分(调整常量×(CPU整数线程数/CPU整数线程运行时间));
所述CPU浮点数分值计算公式包括:
CPU浮点分值=取整数部分(调整常量×(CPU浮点线程数/CPU浮点线程运行时间));
其中,调整常量用于表征将标准性能分值调整到设定区间内的比例。
可选的,所述方法还包括:
接收导入的其它评估软件对应的评估文件;
从所述评估文件中提取评估软件信息、CPU信息、其它评估软件性能分值,存入其它评估软件评估结果数据库中;
若根据所述CPU信息确定相关数据尚未处理,则从其它评估软件评估结果数据库中查找相同评估软件信息、CPU信息对应的记录,确定该类CPU整数分值、该类CPU浮点分值,更新所述其它评估软件评估结果数据库并将所述CPU信息标注为已处理;
在接收到分值转换请求后,根据CPU算力评估结果数据库、其它评估软件评估结果数据库,将所述其它评估软件性能分值转换成标准性能分值,更新所述其它评估软件评估结果数据库。
可选的,所述根据CPU算力评估结果数据库、其它评估软件评估结果数据库,将其它评估软件性能分值转换成标准性能分值,包括:
针对每一CPU,若所述CPU在CPU算力评估结果数据库中存在第一记录,且在其它评估软件评估结果数据库中存在第二记录,则根据所述第一记录中的CPU标准整数分值、所述第二记录中的该类CPU整数分值,确定第一转换比;
针对每一CPU,若所述CPU在CPU算力评估结果数据库中不存在记录,且在其它评估软件评估结果数据库中存在第三记录,则根据所述第一转换比,确定第二转换比;根据第三记录中的该类CPU整数分值、所述第二转换比,确定所述CPU的CPU标准整数分值。
可选的,所述根据CPU算力评估结果数据库、其它评估软件评估结果数据库,将其它评估软件性能分值转换成标准性能分值,包括:
针对每一CPU,若所述CPU在CPU算力评估结果数据库中存在第一记录,且在其它评估软件评估结果数据库中存在第二记录,则将所述第一记录、所述第二记录作为训练样本,对机器学习模型进行训练;
针对每一CPU,若所述CPU在CPU算力评估结果数据库中不存在记录,且在其它评估软件评估结果数据库中存在第三记录,则基于所述第三记录,利用训练好的所述机器学习模型,确定所述CPU的CPU标准整数分值。
可选的,所述方法还包括:
接收到测评结果对比指令后,根据所述测评结果对比指令中的CPU名称,从所述其它评估软件评估结果数据库、所述CPU算力评估结果数据库中查询相关记录;
将查询到的记录汇总成分析报表,反馈给待检测客户端。
第二方面,本申请提供一种通用跨平台CPU算力评估方法,应用于待检测客户端,包括:
响应于算力评估软件安装请求,基于源代码生成工程文件;
基于所述工程文件,生成Makefile文件;
基于所述Makefile文件,生成可执行文件;
运行所述可执行文件,以完成所述算力评估软件的安装;
采集CPU信息,并发送给服务端;
响应于性能数据信息采集指令,根据所述CPU信息采集性能数据信息,并将所述性能数据信息发送到所述服务端,以使所述服务端根据所述CPU信息、性能数据信息,对所述待检测客户端的CPU进行算力评估,得到标准性能分值;将所述标准性能分值反馈给所述待检测客户端;
显示所述标准性能分值。
可选的,所述CPU信息包括:内核数;
所述响应于性能数据信息采集指令,采集性能数据信息,包括:
开启一个整数运算模块线程,记录所述整数运算模块线程运行完成所花时间,得到CPU单核整数线程运行时间;
开启一个浮点运算模块线程,记录所述浮点运算模块线程运行完成所花时间,得到CPU单核浮点线程运行时间;
根据所述内核数,开启对应规模数量的整数运算模块线程,若CPU占用率小于设定阈值,则逐步增加整数运算模块线程,直到CPU占用率大于等于设定阈值,记录此时整数运算模块的线程数作为CPU整数线程数,关闭所有整数运算模块线程,并重新开启所述CPU整数线程数,记录所有整数运算模块线程执行完成所花时间,得到CPU整数性能数据;
根据所述内核数,开启对应规模数量的浮点数运算模块线程,CPU占用率小于设定阈值,则逐步增加浮点数运算模块线程数,直到CPU占用率大于等于设定阈值,记录此时浮点数运算模块的线程数作为CPU浮点数线程数,关闭所有浮点数运算模块线程,并重新开启所述CPU浮点数线程数,记录所有浮点数运算模块线程执行完成所花时间,得到CPU浮点数性能数据;
其中,所述整数运算模块用于计算10000以内的所有质数;所述浮点数运算模块用于对浮点数循环进行加、减、乘、除、平方根运算。
第三方面,本申请提供一种电子设备,包括:存储器和处理器,所述存储器上存储有能够被处理器加载并执行第一方面或第二方面的方法的计算机程序。
第四方面,本申请提供一种计算机可读存储介质,存储有能够被处理器加载并执行第一方面或第二方面的方法的计算机程序。
第五方面,本申请提供一种计算机程序产品,包括:计算机程序;所述计算机程序被处理器执行时,实现如第一方面或第二方面任一项所述的方法。
本申请提供了一种通用跨平台CPU算力评估方法、电子设备。算力评估软件的源代码可以在Windows、MacOS、Android、IOS、AIX、Solaris、HP-UX、Linux、unix等系统中经编译成为可执行文件执行算力评估的必要步骤,实现了跨平台的通用性。同时,本实施例的方法由待检测客户端和服务端配合执行,客户端侧采用瘦客户端,仅在待检测客户端执行简单的CPU信息、性能数据信息的采集过程,复杂的算力评估过程均在服务端执行,可进一步提高本方法跨平台的通用性和兼容性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请一实施例提供的一种应用场景示意图;
图2为本申请一实施例提供的一种通用跨平台CPU算力评估方法的流程图;
图3为本申请一实施例提供的一种算力评估软件编译过程的流程图;
图4为本申请一实施例提供的一种算力评估软件初始化过程的流程图;
图5为本申请一实施例提供的一种算力评估过程的流程图;
图6为本申请一实施例提供的一种性能数据信息的采集过程的流程图;
图7为本申请一实施例提供的一种标准性能分值的过程的流程图;
图8为本申请一实施例提供的一种确定CPU标准分数值的过程的流程图;
图9、图10为本申请一实施例提供的另一种确定CPU标准分数值的过程的流程图;
图11、图12为本申请一实施例提供的另一种确定CPU标准分数值的过程的流程图;
图13为本申请一实施例提供的一种待检测客户端和服务端的具体结构图;
图14为本申请一实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
另外,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,如无特殊说明,一般表示前后关联对象是一种“或”的关系。
下面结合说明书附图对本申请实施例作进一步详细描述。
现有算力评估软件的最大的缺点是不通用:多数只能在某种CPU和某种操作系统下运行;各种算力评估软件的CPU算力评分标准不统一,不能导入其他评估软件评分进行全面横向比较分析;评分值等算法逻辑都是在客户端执行的,所以会影响软件的跨平台、跨操作系统的兼容性。不能将其他各种测评软件各个版本的CPU评分值转换成统一标准的分值。有些测评软件针对某些CPU做过优化,所以其评估结果不能代表实际应用场景性能;多数国外软件本身不开源,且多数本类软件的开发工具或用到的组件不开源,容易被外国掐脖子。
现有技术分析表如下:
现有知名CPU评估软件 | A软件 | B软件 | C软件 | D软件 | D+软件 |
支持CPU | X86 | X86 | X86ARM | X86PowerPCSPARCMIPS | X86ARMPowerPCSPARCRISC-V |
支持系统 | Windows | WindowsAndroid | LinuxWindowsMacOSAndroid | LinuxWindowsMacOSSolarisHP-UX | LinuxWindowsMacOSAIXSolaris |
客户端与CPU或操作系统耦合性、适应性、综合评价(好√坏×) | 耦合性极强CPU和操作系统的适应性极弱× | 耦合性极强CPU和操作系统的适应性极弱× | 耦合性强CPU和操作系统的适应性弱× | 耦合性中官方文档中ARM/RISC-V CPU和AIX系统不支持× | 耦合性中官方文档中MIPS CPU和HP-UX系统不支持× |
采用瘦客户端设计提高跨平台特性 | × | × | × | × | × |
有图形界面 | √ | √ | √ | × | × |
可提供源码,定制修改 | × | × | × | √ | √ |
开源否/需为每个拷贝付费否 | 不开源 | 不开源 | 不开源 | 开源/需要为每个拷贝付费1000美元 | 开源/需要为每个拷贝付费1000美元 |
支持自身不同版本评估结果比较 | × | × | × | × | × |
支持其他算力评估软件的不同版本评估结果比较 | × | × | × | × | × |
支持其他算力评估软件的评估结果导入 | × | × | × | × | × |
提供其他算力评估分值转换本软件分值 | × | × | × | × | × |
从上表中可见,这些工具对国产CPU支持力度有限,例如国产龙芯CPU只有D软件官方文档中明确支持其MIPS指令集,而新版D+软件官方文档中已经剔除了龙芯所用的MIPS指令集。
基于此,本申请提供一种通用跨平台CPU算力评估方法、电子设备,采用瘦客户端,结合服务端交互处理,实现跨平台的通用CPU算力评估,可广泛适用于各类CPU、各类操作系统。尤其可以支持国产芯片的算力评估,进一步帮助扩展国产CPU产品的适用性和应用范围。
图1为本申请提供的一种应用场景示意图。在待检测客户端一侧,可以安装并运行本申请提供的算力评估软件。算力评估软件运行后即可采集待检测客户端设备中的CPU信息,在需要进行CPU算力评估时,通过性能数据信息采集指令的触发,采集相关性能数据信息并发送到服务端。在服务端一侧,则可以基于CPU信息和这些性能数据信息对待检测客户端设备中的CPU进行算力评估,得到对应的标准性能分值。服务端再将评估出的标准性能分值反馈给待检测客户端进行显示。具体的实现方式可以参考以下实施例。
图2为本申请一实施例提供的一种通用跨平台CPU算力评估方法的流程图,本实施例的方法可以应用于以上场景中的服务端。如图2所示的,该方法包括:
S201、接收待检测客户端在运行算力评估软件对应的可执行文件后发送的CPU信息、性能数据信息。
在待检测客户端,可以预先安装算力评估软件。用户可以下载对应的软件安装包,在需要安装使用时,触发算力评估软件安装请求。待检测客户端检测到算力评估软件安装请求后会首先基于软件的源代码生成工程文件;基于工程文件,生成Makefile文件;基于Makefile文件,生成可执行文件;运行可执行文件,以完成算力评估软件的安装。具体的,可以预先在待检测客户端安装QT(应用程序开发框架),基于QT中相应的命令将文件进行格式转化最终生成可执行文件。具体的编译过程可以参考图3。QT官网下载开源QT源代码;按照QT官网编译帮助安装各支持软件包,做相应设定;按照QT官网编译帮助编译安装QT编译安装QT;编译安装成功后,打开命令行;qmake -project将源代码.cpp文件生成.pro工程文件;qmake命令生成Makefile文件;nmake生成最终可执行文件。
运行后,可触发采集待检测客户端的CPU信息,并发送给服务端。CPU信息可以包括CPU名称、型号、内核数等信息。在一些实施例中还可以直接将CPU信息显示在算力评估软件的界面上。进一步的,还可以弹出提示信息,提醒用户在进行算力评估之前关闭其它应用,释放占用的CPU,以保证测试的准确性。提示信息例如:“请关闭其他应用程序,保持CPU占用率处于较低水平,否则会影响CPU测试分值的准确性”等。此阶段的软件初始化过程可以参考图4。
在用户需要进行CPU算力评估时,可以触发性能数据信息采集指令。具体的,可以通过点击软件界面的“测试评估按钮”触发。待检测客户端响应于性能数据信息采集指令,即可根据CPU信息采集性能数据信息,并将性能数据信息发送到服务端。相对应的,服务端则可以接收待检测客户端发送的CPU信息、性能数据信息。
其中,性能数据信息与算力评估方式相关。不同的算力评估方式下所需的性能数据可能不同,但待检测客户端所做的采集与待检测客户端所做的评估是对应的。
S202、根据CPU信息、性能数据信息,对待检测客户端的CPU进行算力评估,得到标准性能分值。
服务端将在收集到所需数据(CPU信息、性能数据信息)后,进行算力评估,得到对应的标准性能分值。
在本申请中,提供的算力评估方法是通用的,同时可以支持其它算力评估软件的评估结果的导入和比较,比较的基础也是基于本申请的算力评估的分值,故将基于本申请的方法评估得到的分值命名为“标准性能分值”,以区别于其它软件评估得到的分值。
标准性能分值,可以为表征综合性能的一个分值,也可以为分别表征多项主要性能的多个分值。
S203、将标准性能分值反馈给待检测客户端,以使待检测客户端显示标准性能分值。
完成评估后,服务端会将标准性能分值反馈到待检测客户端。相对应的,待检测客户端在接收到标准性能分值后,可以进行显示。
算力评估过程可以参考图5。
本实施例的通用跨平台CPU算力评估方法,算力评估软件的源代码可以在Windows、MacOS、Android、IOS、AIX、Solaris、HP-UX、Linux、unix等系统中经编译成为可执行文件执行算力评估的必要步骤,实现了跨平台的通用性。同时,本实施例的方法由待检测客户端和服务端配合执行,采用瘦客户端,仅在待检测客户端执行简单的CPU信息、性能数据信息的采集过程,复杂的算力评估过程均在服务端执行,可进一步提高本方法跨平台的通用性和兼容性。
另外,本实施例中采用开源QT开发软件的C++语言开发编译,不限于上述操作系统,还支持可安装上述操作系统的CPU,包括但不限于X86、ARM、PowerPC、SPARC、MIPS、RISC-V等。进一步保证了本软件对各种CPU及其操作系统的通用性。
在一些实施例中,将CPU单核整数处理性能、CPU单核浮点数处理性能、CPU整体整数处理性能、CPU整体浮点数处理性能作为CPU算力评估的重点。相对应的,需要采集的性能数据信息包括:CPU单核整数线程运行时间、CPU单核浮点线程运行时间、CPU整数性能数据、CPU浮点数性能数据。
则待检测客户端侧对性能数据信息的采集过程可以包括:开启一个整数运算模块线程,记录整数运算模块线程运行完成所花时间,得到CPU单核整数线程运行时间;开启一个浮点运算模块线程,记录浮点运算模块线程运行完成所花时间,得到CPU单核浮点线程运行时间;根据内核数,开启对应规模数量的整数运算模块线程,若CPU占用率小于设定阈值,则逐步增加整数运算模块线程,直到CPU占用率大于等于设定阈值,记录此时整数运算模块的线程数作为CPU整数线程数,关闭所有整数运算模块线程,并重新开启CPU整数线程数,记录所有整数运算模块线程执行完成所花时间,得到CPU整数性能数据;根据内核数,开启对应规模数量的浮点数运算模块线程,CPU占用率小于设定阈值,则逐步增加浮点数运算模块线程数,直到CPU占用率大于等于设定阈值,记录此时浮点数运算模块的线程数作为CPU浮点数线程数,关闭所有浮点数运算模块线程,并重新开启CPU浮点数线程数,记录所有浮点数运算模块线程执行完成所花时间,得到CPU浮点数性能数据。具体过程可以参考图6。
其中,整数运算模块可用于计算10000以内的所有质数;浮点数运算模块可用于对浮点数循环进行加、减、乘、除、平方根运算。设定阈值可以为90%-100%范围内的任一数值,例如93%、95%、98%、99%等。
当CPU有多核心时,启动一个线程占不满CPU算力,至少启动核心数个线程。但还是可能占不满,所以在采集CPU整数性能和CPU浮点数性能数据过程中,都需要先确定同时开启多少线程可以占满CPU算力。在此过程中,当发现CPU占用率不到设定阈值时,就再多启动一个线程,如此循环增加线程直到CPU占用率达到设定阈值,此时记录线程数就是可占满CPU算力的线程数。然后,再重新启动这些线程,即可统计同时启动到全执行完的时间。
另外,图6流程图所显示的上述四类数据的获取顺序仅为一种示例,不构成限制,实际可以以任意顺序执行。
相应的,基于此类性能数据信息,对待检测客户端的CPU进行算力评估,得到标准性能分值的方式包括:根据CPU单核整数线程运行时间、单核整数分值计算公式,确定单核整数分值;根据CPU单核浮点线程运行时间、单核浮点分值计算公式,确定单核浮点分值;根据CPU整数性能数据、CPU整数分值计算公式,确定CPU整数分值;根据CPU浮点数性能数据、CPU浮点数分值计算公式,确定CPU浮点数分值。
除上述的四类直接对应的分值之外,在一些实施例中,还可以综合同型号CPU的其它算力评估数据来确定另外两个更具普适性的分值。具体的,在执行上述步骤确定四类分值后,还可以:根据CPU信息中的CPU名称、单核整数分值、单核浮点分值、CPU整数分值、CPU浮点数分值,更新CPU算力评估结果数据库;从更新后的CPU算力评估结果数据库中获取CPU名称对应的多条记录中的CPU整数分值、CPU浮点数分值;根据多条记录中的CPU整数分值、CPU浮点数分值,确定CPU名称对应的CPU标准整数分值、CPU标准浮点数分值。
即构建一CPU算力评估结果数据库,专门用于存储利用本申请的方法得到的CPU算力评估的数据。每次增加新的记录后,则针对新增记录对应的这个型号的CPU,更新计算其CPU标准整数分值、CPU标准浮点数分值。
CPU算力评估结果数据库中的CPU算力评估结果表的表结构如下:
字段名 | 字段类型 | 字段说明 |
Id | 整数 | 自增序号(记录的唯一标识) |
CPU名称 | 字符串 | CPU名称,同名称CPU有小版本号的应加上版本号 |
单核整数线程所花时间 | 浮点数 | 单位毫秒 |
单核浮点线程所花时间 | 浮点数 | 单位毫秒 |
CPU整数线程数 | 整数 | 使CPU满载,启动的整数线程数 |
CPU整数线程所花时间 | 浮点数 | 上述线程同时启动到全部完成所化时间,单位毫秒 |
CPU浮点线程数 | 整数 | 使CPU满载,启动的浮点线程数 |
CPU浮点线程所花时间 | 浮点数 | 上述线程同时启动到全部完成所化时间,单位毫秒 |
单核整数分值 | 浮点数 | 本次一个CPU核心的整数性能评分 |
单核浮点分值 | 浮点数 | 本次一个CPU核心的浮点性能评分 |
CPU整数分值 | 浮点数 | 本次一颗CPU的整数性能评分 |
CPU浮点分值 | 浮点数 | 本次一颗CPU的浮点性能评分 |
该类CPU标准整数分值 | 浮点数 | 同CPU名称的测试记录的CPU整数分值的平均值 |
该类CPU标准浮点分值 | 浮点数 | 同CPU名称的测试记录的CPU浮点分值的平均值 |
测试时间 | 日期时间 | 该记录的测试年月日时分秒 |
在一些实现方式中,CPU标准整数分值可以表征为多条记录中CPU整数分值的均值。对应的处理流程参考图7。
在另一些实现方式中,CPU标准整数分值也可以表征为多条记录中CPU整数分值的加权均值。权重可以根据对应CPU的实际安装环境来确定。例如所待检测客户端的硬件性能(电脑、服务器等)、待检测客户端的操作系统类型(Linux、Windows等)、待检测客户端中安装的软件的数量类型等。安装环境的不同,可能对算力评估过程中性能数据信息产生影响,进而影响测得的标准性能分值。相对应的,待检测客户端侧在采集的CPU信息中还可以包括CPU的安装环境信息。
相对应的,CPU整数性能数据包括:CPU整数线程数、CPU整数线程运行时间;CPU浮点数性能数据包括:CPU浮点数线程数、CPU浮点数线程运行时间。则在一些实现方式中,上述的单核整数分值计算公式包括:单核整数分值=取整数部分(调整常量×(1/单核整数线程运行时间))。上述的单核浮点分值计算公式包括:单核浮点分值=取整数部分(调整常量×(1/单核浮点线程运行时间))。上述的CPU整数分值计算公式包括:CPU整数分值=取整数部分(调整常量×(CPU整数线程数/CPU整数线程运行时间))。上述的CPU浮点数分值计算公式包括:CPU浮点分值=取整数部分(调整常量×(CPU浮点线程数/CPU浮点线程运行时间))。
即分数值表征为与线程数正相关,与线程运行时间负相关的量。其中,调整常量用于表征将标准性能分值调整到设定区间内的比例。不同型号的CPU实际性能不同,分值自然也会不同。比如,比较早期研发的CPU的算力确实与比较近期研发的CPU的算力差上万倍,故其算力对应的标准性能分值应该也会相差上万倍。如果分值区间太小,比如100,则最老的CPU的分值就只能是小数了。所以,通过调整常量的选取,可以使得最终评分分值都以整数来表征。
在一些实现方式中,可以通过对最新CPU和最老CPU的实际数据的调整,确定一个调整常量,将标准性能分值的区间调到1——数十万。在另一些实现方式中,也可以将市面上仍在使用的CPU中最新和最老的型号作为调整依据,调整出一个合理的分值区间。
以上实施例所描述的是基于本申请的方法对待检测客户端进行CPU算力评估的过程。除此之外,本申请的方案还可以允许导入其它评估软件所做的评估数据,甚至进行统一的评估数据分析对比。具体的过程可以参考以下各实施例。
在一些实施例中,服务端可以接收导入的其它评估软件对应的评估文件;从评估文件中提取评估软件信息、CPU信息、其它评估软件性能分值,存入其它评估软件评估结果数据库中;若根据CPU信息确定相关数据尚未处理,则从其它评估软件评估结果数据库中查找相同评估软件信息、CPU信息对应的记录,确定该类CPU整数分值、该类CPU浮点分值,更新其它评估软件评估结果数据库并将CPU信息标注为已处理;在接收到分值转换请求后,根据CPU算力评估结果数据库、其它评估软件评估结果数据库,将其它评估软件性能分值转换成标准性能分值,更新其它评估软件评估结果数据库。
具体的,用户可以使用浏览器打开对应功能界面通过导入按钮上传导入评估文件。评估文件可以为csv文件,文件中至少包括测评软件名称、版本号、CPU名称、CPU整数分值、CPU浮点分值、测试时间等信息。如果仅有一个综合评分值,则近似视为CPU整数分值,CPU浮点分值则保存为0。
通过HTML文件选择控件,选择csv文件,触发上传处理。文件上传到后台后,通过java POI打开csv文件,并逐行读取文件信息,按项目头,插入其他评估软件评估结果数据库。全部插入完成之后,对所有本次导入的数据逐条做如下处理:根据本条数据中CPU名称,确定该CPU是否已处理;如果该CPU在已处理的CPU名称集合里,则跳过本条数据的处理。否则用本条数据中的测评软件名称、版本号、CPU名称作为检索条件,在其他评估软件评估结果表中查询所有有相同CPU名称的记录,对这些记录的CPU整数分值字段求平均值,得到该类CPU整数分值,对这些记录的CPU浮点分值字段求平均值,得到该类CPU浮点分值,将该类CPU整数分值、该类CPU浮点分值更新进这些记录的相应字段。将本条CPU名称放进已处理的CPU名称集合里。如此,即可完成其它评估软件所做的评估数据的导入,同时将其统一成为与标准性能分值的维度一致的其它评估软件性能分值。
在一种实现方式中,上述的根据CPU算力评估结果数据库、其它评估软件评估结果数据库,将其它评估软件性能分值转换成标准性能分值,包括:针对每一CPU,若CPU在CPU算力评估结果数据库中存在第一记录,且在其它评估软件评估结果数据库中存在第二记录,则根据第一记录中的CPU标准整数分值、第二记录中的该类CPU整数分值,确定第一转换比;针对每一CPU,若CPU在CPU算力评估结果数据库中不存在记录,且在其它评估软件评估结果数据库中存在第三记录,则根据第一转换比,确定第二转换比;根据第三记录中的该类CPU整数分值、第二转换比,确定CPU的CPU标准整数分值。
针对一个CPU,若该CPU同时在CPU算力评估结果数据库和其它评估软件评估结果数据库中都存在记录,则分别称之为“第一记录”和“第二记录”;若该CPU只在其它评估软件评估结果数据库中存在记录,则称之为“第三记录”。可见第几记录仅作为对其性质的区分,实际可能包含多条记录。
在另一种实现方式中,上述的根据CPU算力评估结果数据库、其它评估软件评估结果数据库,将其它评估软件性能分值转换成标准性能分值,包括:针对每一CPU,若CPU在CPU算力评估结果数据库中存在第一记录,且在其它评估软件评估结果数据库中存在第二记录,则将第一记录、第二记录作为训练样本,对机器学习模型进行训练;针对每一CPU,若CPU在CPU算力评估结果数据库中不存在记录,且在其它评估软件评估结果数据库中存在第三记录,则基于第三记录,利用训练好的机器学习模型,确定CPU的CPU标准整数分值。
在另一种实现方式中,可以结合上述两种方式确定CPU标准分数值,将其分别标识为该类CPU标准整数分值1(本软件测试结果中的该类CPU标准整数分值,具体的确定过程可以参考图8)、该类CPU标准整数分值2(利用转换比值2,计算出的该类CPU标准整数分值,具体的确定过程可以参考图9、10)、该类CPU标准整数分值3(利用机器学习,求得的该类CPU标准整数分值,具体的确定过程可以参考图11、12)。
具体的,通过上述五张图中的五步流程,可以将其他评估软件评估结果数据库中的该类CPU整数分值转换成本软件的分值即CPU标准整数分值。根据转换方法的不同,分别为该类CPU标准整数分值1、该类CPU标准整数分值2、该类CPU标准整数分值3:
(1)使用浏览器打开该功能界面,用户点击CPU分值转换按钮;
(2)调用第一步处理,生成转换比值1(有本软件测试结果的)、该类CPU标准整数分值1,即对于两个表中有相同CPU名称的记录,计算转换比值1;
(3)调用第二步处理,生成转换比值2(无本软件测试结果的,估算出的),即利用转换比值1,估算那些没有用本软件测试过的CPU的转换比值2;
(4)调用第三步处理,生成该类CPU标准整数分值2,即针对那些没有用本软件测试过的CPU,利用转换比值2计算的该类CPU标准整数分值2;
(5)调用第四步处理,生成下载数据文件,提供给外部第三方机器学习软件进行机器学习生成最新模型,即下载那些用本软件测试过的、其他评估软件也测试过的CPU的必要值,为了给机器学习使用;
(6)用户点击AI CPU分值转换按钮;
(7)调用第五步处理,即循环调用外部第三方机器学习软件接口,利用最新模型,获得该类CPU标准整数分值3并更新数据库,即针对那些没有用本软件测试过的CPU,利用机器学习获取分值,更新该类CPU标准整数分值3。
其他评估软件评估结果数据库中其他评估软件评估结果表的表结构如下:
在一些实施例中,接收到测评结果对比指令后,服务端可以根据测评结果对比指令中的CPU名称,从其它评估软件评估结果数据库、CPU算力评估结果数据库中查询相关记录;将查询到的记录汇总成分析报表,反馈给客户端。
具体的,用户输入CPU名称的一部分,可触发查询,执行模糊查询;按时间降序显示模糊查询到的某条CPU信息;用户点击选择一条CPU信息,打开该CPU的测评综合对比分析,内容包括:该CPU的CPU算力评估结果表信息及其他评估软件评估结果表信息。从而实现本软件不同算法版本算力评估结果及其他评估软件评估结果全面横向比较分析。
本申请提供一种通用型计算机CPU算力评估软件,可适用于不同种类CPU,不同指令集CPU,可在windows,MacOS,Android,AIXSolaris,HP-UX,以及各常见linux,unix等不同操作系统上进行统一标准的算力评估。使用符合行业标准的评估算法,保证评估结果的客观性。支持本评估算法评分值与导入的其他评估软件各版本评分值对比分析。支持其他评估软件各版本评分值转换为本软件评分值。使其他评估软件评估的CPU基于本软件的评估标准进行性能比较。软件代码自主可控,且开发使用开源跨平台编译工具,设计上采用瘦客户端,且只采集必要性能信息,其他评分值等算法逻辑尽量在服务器端处理。这种开发设计方法,从根源上支持各种操作系统,支持可持续性发展。可用于计算机硬件再制造行业产品性能评估,国家重大国产化计算机硬件设备替代工程和IDC数据中心的计算机硬件算力评估等领域。
本软件分本地算力评估应用程序和服务器端两大部分:
为提高软件的跨平台/跨系统的通用性,软件的兼容性/适应性、应用程序端采用瘦客户端设计思想,尽量简洁,仅包括采集CPU整数及浮点性能信息所必要的模块。其他算法、计算等模块不在客户端处理,而是尽可能放在服务器端处理。客户端和服务端具体的模块结构如图13所示。
1.本地算力评估应用程序
功能简述:安装在待测试机器上,运行后提供图形操作界面,CPU测试评估执行后,本次CPU测试评估结果显示。
提供一种跨CPU/平台编译方法,将本程序源代码在Windows、MacOS、Android、IOS、AIX、Solaris、HP-UX及各常见Linux、unix上编译成可执行文件。本软件采用开源QT开发软件的C++语言开发编译,开源QT开发软件支持上述操作系统且不限于上述操作系统,支持可安装上述操作系统的CPU,包括但不限于下列CPU:X86、ARM、PowerPC、SPARC、MIPS、RISC-V。
使用开源QT开发本软件,保证了本软件对各种CPU及其操作系统的通用性。
本地算力评估应用程序处理流程如下。
(1)启动运行初始化处理
通过CPU信息采集模块获得CPU的名称、内核数,并传给UI界面模块,显示在界面上;
弹出提示信息:“请关闭其他应用程序,保持CPU占用率处于较低水平,否则会影响CPU测试分值的准确性”。
(2)用户按UI界面模块的测试评估按钮,执行测试评估处理:
采集单核整数性能数据:单个整数运算模块线程执行所花时间(即单核整数线程所花时间);
采集单核浮点性能数据:单个浮点运算模块线程执行所花时间(即单核浮点线程所花时间);
采集CPU整数性能数据:整数运算模块线程数、所花时间(即CPU整数线程数、CPU整数线程所花时间);
采集CPU浮点性能数据:浮点运算模块线程数、所花时间(CPU浮点线程数、CPU浮点线程所花时间);
整数运算模块通过求10000内质数达到整数性能测试的目的;
浮点运算模块通过对浮点运算的四个基础运算,包括加减乘除和平方根进行循环运算达到浮点性能测试的目的。
(3)性能数据上传服务器:
调用数据库访问模块,将采集的性能数据及测试时间插入服务器数据库的CPU算力评估结果表,并获得返回值(该记录的Id)。
(4)触发服务器端性能分值计算处理:
调用服务器数据库端的CPU分值计算模块存储过程,参数为前面获得的记录Id,根据新插入的性能数据,计算出单核整数分值、单核浮点分值、CPU整数分值、CPU浮点分值、CPU标准整数分值、CPU标准浮点分值,并写入数据库。
(5)本地UI界面回显性能分值:
调用数据库访问模块,读取本次测试的记录信息,界面回显本次测试各项分值。
2.服务器端
功能简述:数据库存储评估的CPU信息和评估分值,使用浏览器操作的后台管理模块,用于算力评估结果查询,其他测评软件评估结果导入,及综合本软件测评和其他测评软件测评,对CPU进行测评综合对比分析。
提供开源mysql数据库CPU算力评估结果表,其他评估软件评估结果表。
提供mysql数据库存储过程处理。
CPU算力计算模块的CPU整数分值的计算公式如下:
CPU整数分值=取整数部分(调整常量×(CPU整数线程数/CPU整数线程所花时间))
CPU算力计算模块的CPU浮点分值的计算公式如下:
CPU浮点分值=取整数部分(调整常量×(CPU浮点线程数/CPU浮点线程所花时间))
CPU算力计算模块的单核整数分值的计算公式如下:
单核整数分值=取整数部分(调整常量×(1/单核整数线程所花时间))
CPU算力计算模块的单核浮点分值的计算公式如下:
单核浮点分值=取整数部分(调整常量×(1/单核浮点线程所花时间))
调整常量---将市面上最弱的CPU到最强CPU评估分值调整范围为一到几十万之间(参考现在测试软件的主流CPU分值是几十万)。具体取得调整常量的逻辑:调整常量先设置为1,首先选取一块市面上能找到的最弱的CPU,例如选取2008年的Intel Core2 DuoT7300,按上述公式测得分值为65.73。再选取一块市面上能找到的比较强CPU,例如选取2022年的Intel Core i9-13900K,按上述公式测得分值为6013.51。如果调整常量设置为10时,上述两低、高CPU分值分别为657.3、60135.1;取整数部分分别为657、60135,基本符合前面预想的范围。所以调整常数可以选取10。
提供开源java spring boot B/S后台管理模块。
CPU算力评估结果查询模块处理流程
(1)使用浏览器打开该功能界面,用户输入CPU名称的一部分,触发查询,执行模糊查询CPU算力评估结果表,其他评估软件评估结果表;
(2)同页面、按测试时间降序显示CPU算力评估表查询结果;按测试时间、转换时间降序显示其他评估软件评估表查询结果。
其他测评软件评估结果导入模块处理流程
(1)编辑csv文件,csv文件项目依次如下:测评软件名称、版本号、CPU名称、CPU整数分值、CPU浮点分值、测试时间。以上各项目之间使用半角逗号分隔;
如果该软件仅有一个综合评分值,则近似当作CPU整数分值、且CPU浮点分值保存为0;
(2)使用浏览器打开该功能界面通过导入按钮上传导入上述csv文件
①通过HTML文件选择控件,选择csv文件,触发上传处理;
②文件上传到后台,通过java POI打开csv文件,并逐行读取文件信息,按项目头所示,插入数据库的其他评估软件评估结果表;
③全部插入完成之后,对所有本次导入的数据逐条做如下处理:
1)如果本条CPU名称在已处理的CPU名称集合里,则跳过本条数据的处理;
2)否则用本条测评软件名称版本号CPU名称作为检索条件,在其他评估软件评估结果表中查询所有相同CPU名称的记录,
对这些记录的CPU整数分值字段求平均值,得到该类CPU整数分值,
对这些记录的CPU浮点分值字段求平均值,得到该类CPU浮点分值,
将该类CPU整数分值、该类CPU浮点分值更新进这些记录的相应字段;
将本条CPU名称放进已处理的CPU名称集合里;
④正常处理完成,前台显示导入正常结束信息。否则显示导入异常。
CPU分值转换模块处理流程
由于流程步骤较多,所以先做简要说明:通过下面各步流程,将其他评估软件评估结果表中的该类CPU整数分值转换成本软件的分值,但根据转换方法的不同,分别为该类CPU标准整数分值1、该类CPU标准整数分值2、该类CPU标准整数分值3:
(1)使用浏览器打开该功能界面,用户点击CPU分值转换按钮;
(2)调用第一步处理,生成转换比值1(有本软件测试结果的)、该类CPU标准整数分值1。即对于两个表中有相同CPU名称的记录、计算转换比值1;
(3)调用第二步处理,生成转换比值2(无本软件测试结果的_估算出的)即利用转换比值1、估算那些没有用本软件测试过的CPU的转换比值2;
(4)调用第三步处理,生成该类CPU标准整数分值2。即针对那些没有用本软件测试过的CPU,利用转换比值2计算的该类CPU标准整数分值2;
(5)调用第四步处理,生成下载数据文件。提供给外部第三方机器学习软件进行机器学习生成最新模型。即下载那些用本软件测试过的、其他评估软件也测试过的CPU的必要值,为了给机器学习使用;
(6)用户点击AI CPU分值转换按钮;
(7)调用第五步处理,即循环调用外部第三方机器学习软件接口,利用最新模型,获得该类CPU标准整数分值3并更新数据库。即针对那些没有用本软件测试过的CPU,利用机器学习获取分值,更新该类CPU标准整数分值3。
CPU测评综合对比分析模块处理流程
(1)用户输入CPU名称的一部分,触发查询,执行模糊查询;
(2)按时间降序显示模糊查询到的某条CPU信息;
(3)用户点击选择一条CPU信息,打开该CPU的测评综合对比分析,内容包括:该CPU的CPU算力评估结果表信息及其他评估软件评估结果表信息。
从而实现本软件不同算法版本算力评估结果及其他评估软件评估结果全面横向比较分析。
通过下表对比,可看到本评估软件,支持X86、ARM、PowerPC、SPARC、MIPS、RISC-V、及其他支持Linux的CPU;支持Linux、Windows、MacOS、AIX、Solaris、HP-UX系统,各种CPU,操作系统下,CPU算力评分标准统一,能导入其他评估软件评分,可以将其他评估软件各个版本的CPU评分值转换成统一标准的本软件评分值,可以和其他评估软件评分进行全面横向比较分析,这样就打通了信息孤岛,使市面各个软件各版本的不同CPU的评分值信息都充分利用起来。
本申请方案与现有技术的比较分析如下表:
现有知名CPU评估软件 | A软件 | B软件 | C软件 | D软件 | D+软件 |
支持CPU | X86 | X86 | X86ARM | X86PowerPCSPARCMIPS | X86ARMPowerPCSPARCRISC-V |
支持系统 | Windows | WindowsAndroid | LinuxWindowsMacOSAndroid | LinuxWindowsMacOSSolarisHP-UX | LinuxWindowsMacOSAIXSolaris |
客户端与CPU或操作系统耦合性、适应性、综合评价(好√坏×) | 耦合性极强CPU和操作系统的适应性极弱× | 耦合性极强CPU和操作系统的适应性极弱× | 耦合性强CPU和操作系统的适应性弱× | 耦合性中官方文档中ARM/RISC-V CPU和AIX系统不支持× | 耦合性中官方文档中MIPS CPU和HP-UX系统不支持× |
采用瘦客户端设计 | × | × | × | × | × |
有图形界面 | √ | √ | √ | × | × |
可提供源码,定制修改 | × | × | × | √ | √ |
开源否/需为每个拷贝付费否 | 不开源 | 不开源 | 不开源 | 开源/需要为每个拷贝付费1000美元 | 开源/需要为每个拷贝付费1000美元 |
支持自身不同版本评估结果比较 | × | × | × | × | × |
支持其他算力评估软件的不同版本评估结果比较 | × | × | × | × | × |
支持其他算力评估软件的评估结果导入 | × | × | × | × | × |
提供其他算力评估分值转换本软件分值 | × | × | × | × | × |
国产龙芯CPU及其他国产CPU,只要支持LINUX操作系统,就能被本软件所支持。
图14为本申请一实施例提供的一种电子设备的结构示意图,如图14所示,本实施例的电子设备140可以包括:存储器141和处理器142。
存储器141上存储有能够被处理器142加载并执行上述实施例中方法的计算机程序。
具体的,当执行上述实施例中的客户端的方法时,该电子设备即为客户端;当执行上述实施例中服务端的方法时,该电子设备即为服务端。
其中,处理器142和存储器141相连,如通过总线相连。
可选地,电子设备140还可以包括收发器。需要说明的是,实际应用中收发器不限于一个,该电子设备140的结构并不构成对本申请实施例的限定。
处理器142可以是CPU(Central Processing Unit,中央处理器),通用处理器,DSP(Digital Signal Processor,数据信号处理器),ASIC(Application SpecificIntegrated Circuit,专用集成电路),FPGA(Field Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器142也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线可包括一通路,在上述组件之间传送信息。总线可以是PCI(PeripheralComponent Interconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器141可以是ROM(Read Only Memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,RAM(Random Access Memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM(Electrically ErasableProgrammable Read Only Memory,电可擦可编程只读存储器)、CD-ROM(Compact DiscRead Only Memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
存储器141用于存储执行本申请方案的应用程序代码,并由处理器142来控制执行。处理器142用于执行存储器141中存储的应用程序代码,以实现前述方法实施例所示的内容。
其中,电子设备包括但不限于:移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。还可以为服务器等。图14示出的电子设备仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
本实施例的电子设备,可以用于执行上述任一实施例的方法,其实现原理和技术效果类似,此处不再赘述。
本申请还提供一种计算机可读存储介质,存储有能够被处理器加载并执行如上实施例中的方法的计算机程序。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
Claims (11)
1.一种通用跨平台CPU算力评估方法,其特征在于,应用于服务端,包括:
接收待检测客户端在运行算力评估软件对应的可执行文件后发送的CPU信息、性能数据信息;所述可执行文件是所述待检测客户端响应于算力评估软件安装请求,基于源代码生成工程文件;基于所述工程文件,生成Makefile文件;基于所述Makefile文件生成的;
根据所述CPU信息、性能数据信息,对所述待检测客户端的CPU进行算力评估,得到标准性能分值;
将所述标准性能分值反馈给所述待检测客户端,以使所述待检测客户端显示所述标准性能分值。
2.根据权利要求1所述的通用跨平台CPU算力评估方法,其特征在于,所述性能数据信息包括:CPU单核整数线程运行时间、CPU单核浮点线程运行时间、CPU整数性能数据、CPU浮点数性能数据;
所述根据所述CPU信息、性能数据信息,对所述待检测客户端的CPU进行算力评估,得到标准性能分值,包括:
根据所述CPU单核整数线程运行时间、单核整数分值计算公式,确定单核整数分值;
根据所述CPU单核浮点线程运行时间、单核浮点分值计算公式,确定单核浮点分值;
根据所述CPU整数性能数据、CPU整数分值计算公式,确定CPU整数分值;
根据所述CPU浮点数性能数据、CPU浮点数分值计算公式,确定CPU浮点数分值。
3.根据权利要求2所述的通用跨平台CPU算力评估方法,其特征在于,所述根据所述CPU信息、性能数据信息,对所述待检测客户端的CPU进行算力评估,得到标准性能分值,还包括:
根据所述CPU信息中的CPU名称、所述单核整数分值、所述单核浮点分值、所述CPU整数分值、所述CPU浮点数分值,更新CPU算力评估结果数据库;
从更新后的CPU算力评估结果数据库中获取所述CPU名称对应的多条记录中的CPU整数分值、CPU浮点数分值;
根据所述多条记录中的CPU整数分值、CPU浮点数分值,确定所述CPU名称对应的CPU标准整数分值、CPU标准浮点数分值。
4.根据权利要求2或3所述的通用跨平台CPU算力评估方法,其特征在于,所述CPU整数性能数据包括:CPU整数线程数、CPU整数线程运行时间;所述CPU浮点数性能数据包括:CPU浮点数线程数、CPU浮点数线程运行时间;
所述单核整数分值计算公式包括:
单核整数分值=取整数部分(调整常量×(1/单核整数线程运行时间));
所述单核浮点分值计算公式包括:
单核浮点分值=取整数部分(调整常量×(1/单核浮点线程运行时间));
所述CPU整数分值计算公式包括:
CPU整数分值=取整数部分(调整常量×(CPU整数线程数/CPU整数线程运行时间));
所述CPU浮点数分值计算公式包括:
CPU浮点分值=取整数部分(调整常量×(CPU浮点线程数/CPU浮点线程运行时间));
其中,调整常量用于表征将标准性能分值调整到设定区间内的比例。
5.根据权利要求1所述的通用跨平台CPU算力评估方法,其特征在于,还包括:
接收导入的其它评估软件对应的评估文件;
从所述评估文件中提取评估软件信息、CPU信息、其它评估软件性能分值,存入其它评估软件评估结果数据库中;
若根据所述CPU信息确定相关数据尚未处理,则从其它评估软件评估结果数据库中查找相同评估软件信息、CPU信息对应的记录,确定该类CPU整数分值、该类CPU浮点分值,更新所述其它评估软件评估结果数据库并将所述CPU信息标注为已处理;
在接收到分值转换请求后,根据CPU算力评估结果数据库、其它评估软件评估结果数据库,将所述其它评估软件性能分值转换成标准性能分值,更新所述其它评估软件评估结果数据库。
6.根据权利要求5所述的通用跨平台CPU算力评估方法,其特征在于,所述根据CPU算力评估结果数据库、其它评估软件评估结果数据库,将其它评估软件性能分值转换成标准性能分值,包括:
针对每一CPU,若所述CPU在CPU算力评估结果数据库中存在第一记录,且在其它评估软件评估结果数据库中存在第二记录,则根据所述第一记录中的CPU标准整数分值、所述第二记录中的该类CPU整数分值,确定第一转换比;
针对每一CPU,若所述CPU在CPU算力评估结果数据库中不存在记录,且在其它评估软件评估结果数据库中存在第三记录,则根据所述第一转换比,确定第二转换比;根据第三记录中的该类CPU整数分值、所述第二转换比,确定所述CPU的CPU标准整数分值。
7.根据权利要求5所述的通用跨平台CPU算力评估方法,其特征在于,所述根据CPU算力评估结果数据库、其它评估软件评估结果数据库,将其它评估软件性能分值转换成标准性能分值,包括:
针对每一CPU,若所述CPU在CPU算力评估结果数据库中存在第一记录,且在其它评估软件评估结果数据库中存在第二记录,则将所述第一记录、所述第二记录作为训练样本,对机器学习模型进行训练;
针对每一CPU,若所述CPU在CPU算力评估结果数据库中不存在记录,且在其它评估软件评估结果数据库中存在第三记录,则基于所述第三记录,利用训练好的所述机器学习模型,确定所述CPU的CPU标准整数分值。
8.根据权利要求5-7任一项所述的通用跨平台CPU算力评估方法,其特征在于,还包括:
接收到测评结果对比指令后,根据所述测评结果对比指令中的CPU名称,从所述其它评估软件评估结果数据库、所述CPU算力评估结果数据库中查询相关记录;
将查询到的记录汇总成分析报表,反馈给所述待检测客户端。
9.一种通用跨平台CPU算力评估方法,其特征在于,应用于待检测客户端,包括:
响应于算力评估软件安装请求,基于源代码生成工程文件;
基于所述工程文件,生成Makefile文件;
基于所述Makefile文件,生成可执行文件;
运行所述可执行文件,以完成所述算力评估软件的安装;
采集CPU信息,并发送给服务端;
响应于性能数据信息采集指令,根据所述CPU信息采集性能数据信息,并将所述性能数据信息发送到所述服务端,以使所述服务端根据所述CPU信息、性能数据信息,对所述待检测客户端的CPU进行算力评估,得到标准性能分值;将所述标准性能分值反馈给所述待检测客户端;
显示所述标准性能分值。
10.根据权利要求9所述的通用跨平台CPU算力评估方法,其特征在于,所述CPU信息包括:内核数;
所述响应于性能数据信息采集指令,采集性能数据信息,包括:
开启一个整数运算模块线程,记录所述整数运算模块线程运行完成所花时间,得到CPU单核整数线程运行时间;
开启一个浮点运算模块线程,记录所述浮点运算模块线程运行完成所花时间,得到CPU单核浮点线程运行时间;
根据所述内核数,开启对应规模数量的整数运算模块线程,若CPU占用率小于设定阈值,则逐步增加整数运算模块线程,直到CPU占用率大于等于设定阈值,记录此时整数运算模块的线程数作为CPU整数线程数,关闭所有整数运算模块线程,并重新开启所述CPU整数线程数,记录所有整数运算模块线程执行完成所花时间,得到CPU整数性能数据;
根据所述内核数,开启对应规模数量的浮点数运算模块线程,CPU占用率小于设定阈值,则逐步增加浮点数运算模块线程数,直到CPU占用率大于等于设定阈值,记录此时浮点数运算模块的线程数作为CPU浮点数线程数,关闭所有浮点数运算模块线程,并重新开启所述CPU浮点数线程数,记录所有浮点数运算模块线程执行完成所花时间,得到CPU浮点数性能数据;
其中,所述整数运算模块用于计算10000以内的所有质数;所述浮点数运算模块用于对浮点数循环进行加、减、乘、除、平方根运算。
11.一种电子设备,其特征在于,包括:存储器和处理器;
所述存储器,用于存储程序指令;
所述处理器,用于调用并执行所述存储器中的程序指令,执行如权利要求1-10任一项所述的通用跨平台CPU算力评估方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311019644.0A CN116755991B (zh) | 2023-08-14 | 2023-08-14 | 通用跨平台cpu算力评估方法、电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311019644.0A CN116755991B (zh) | 2023-08-14 | 2023-08-14 | 通用跨平台cpu算力评估方法、电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116755991A true CN116755991A (zh) | 2023-09-15 |
CN116755991B CN116755991B (zh) | 2023-11-17 |
Family
ID=87948021
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311019644.0A Active CN116755991B (zh) | 2023-08-14 | 2023-08-14 | 通用跨平台cpu算力评估方法、电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116755991B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104142874A (zh) * | 2013-12-25 | 2014-11-12 | 中软信息系统工程有限公司 | 一种测试评估国产cpu事务处理能力的方法 |
CN104516799A (zh) * | 2013-09-27 | 2015-04-15 | 上海宝信软件股份有限公司 | 服务器性能测试方法 |
CN109446107A (zh) * | 2019-01-23 | 2019-03-08 | 长沙软工信息科技有限公司 | 一种源代码检测方法及装置、电子设备 |
CN110633194A (zh) * | 2019-09-26 | 2019-12-31 | 中国民用航空总局第二研究所 | 一种硬件资源在特定环境下的性能评估方法 |
CN114491677A (zh) * | 2021-12-24 | 2022-05-13 | 成都鲁易科技有限公司 | 智能终端的硬件性能评测方法及装置、存储介质、终端 |
CN115437640A (zh) * | 2022-08-29 | 2022-12-06 | 网经科技(苏州)有限公司 | 快速编译工程代码的方法 |
-
2023
- 2023-08-14 CN CN202311019644.0A patent/CN116755991B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104516799A (zh) * | 2013-09-27 | 2015-04-15 | 上海宝信软件股份有限公司 | 服务器性能测试方法 |
CN104142874A (zh) * | 2013-12-25 | 2014-11-12 | 中软信息系统工程有限公司 | 一种测试评估国产cpu事务处理能力的方法 |
CN109446107A (zh) * | 2019-01-23 | 2019-03-08 | 长沙软工信息科技有限公司 | 一种源代码检测方法及装置、电子设备 |
CN110633194A (zh) * | 2019-09-26 | 2019-12-31 | 中国民用航空总局第二研究所 | 一种硬件资源在特定环境下的性能评估方法 |
CN114491677A (zh) * | 2021-12-24 | 2022-05-13 | 成都鲁易科技有限公司 | 智能终端的硬件性能评测方法及装置、存储介质、终端 |
CN115437640A (zh) * | 2022-08-29 | 2022-12-06 | 网经科技(苏州)有限公司 | 快速编译工程代码的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN116755991B (zh) | 2023-11-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108334515B (zh) | 一种处理崩溃文件中堆栈地址的方法、装置及系统 | |
CN109598414B (zh) | 风险评估模型训练、风险评估方法、装置及电子设备 | |
US20190095318A1 (en) | Test-assisted application programming interface (api) learning | |
CN110750433A (zh) | 接口测试方法和装置 | |
CN112052169A (zh) | 测试管理方法、系统、设备以及计算机可读存储介质 | |
CN113254352B (zh) | 测试案例的测试方法、装置、设备及存储介质 | |
CN112799940A (zh) | 回归测试方法、装置、计算机系统和计算机可读存储介质 | |
CN113434653A (zh) | 处理查询语句的方法、装置、设备及存储介质 | |
CN108228443B (zh) | 一种web应用的测试方法及装置 | |
CN111340062A (zh) | 一种映射关系确定方法及装置 | |
CN111913880A (zh) | 一种应用软件测试方法及装置 | |
CN116755991B (zh) | 通用跨平台cpu算力评估方法、电子设备 | |
CN111581431B (zh) | 基于动态评估的数据探查方法和装置 | |
CN109857816B (zh) | 测试样本的选取方法及装置、存储介质、电子设备 | |
CN110716859A (zh) | 自动为修改的代码推送测试用例的方法及相关装置 | |
CN117171030A (zh) | 软件运行环境检测方法、装置、设备及存储介质 | |
CN112256252A (zh) | 接口生成方法、装置、存储介质及电子设备 | |
CN116521527A (zh) | 测试案例推荐方法及装置 | |
CN103677846A (zh) | 一种SQLite数据库开发工具包及开发方法 | |
CN114724725A (zh) | 数据处理方法及装置、电子设备、存储介质 | |
CN111079185B (zh) | 数据库信息处理的方法、装置、存储介质及电子设备 | |
CN110471708B (zh) | 基于可重用组件的配置项获取的方法及装置 | |
CN114218259A (zh) | 基于大数据SaaS的多维科创信息搜索方法及系统 | |
CN113469284A (zh) | 一种数据分析的方法、装置及存储介质 | |
CN109885504B (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 |