话说上文【转载】主流CPU性能比较(Hygon7280、Intel、AMD、鲲鹏920、飞腾2500),有读者反馈:1) CPU 型号不是最新的;2)对于性能测试方法大家可能各有想法。今天我们就来看一篇论文《通用 CPU 性能基准测试研究综述》,讨论一下 CPU 性能测试应该如何做。
地址:https://www.ejournal.org.cn/CN/10.12263/DZXB.20220169
注意:本文只谈方法论,没有测试结果
本文摘要
CPU性能基准测试旨在给出可对比、定量的指标数据,为产品选型提供依据,它已成为引领计算产业发展的风向标之一。CPU技术发展迅速,性能基准测试也在不断演进。本文对包含SPEC CPU在内的主流基准测试进行了研究,从测试目标、测试方法等角度,综述主流CPU基准测试的演进过程、最新研究成果,以及通用CPU性能指标和基准测试需求,分析了通用CPU性能基准测试所面临的挑战,并对今后可能的研究趋势进行了展望。
SPEC
SPEC性能基准测试于1988年由标准性能评估机构SPEC提出,目前已发展成为包含CPU性能、服务器能效、文件系统性能、高性能计算、Web应用性能等在内的基准测试簇。其中SPEC CPU系列基准是公认的、具有事实性影响力的CPU性能基准测试标准,通过测试程序在被测系统和基准系统中执行时间的比值来考察系统CPU运算性能,原理如图3所示。
TPC
不同于SPEC从最初关注裸性能不断拓展到系统性能,TPC性能基准测试在设计之初就将系统级应用的综合性能测评作为关注的重点,测试实现方式如图4所示。20世纪80年代,事务处理模式出现。与20世纪70年代占统治地位的批量计算模式不同,事务处理模式采用相对单一的方式,直接通过在线数据库系统进行简单的事务处理。同时期,用于度量系统对该类事务处理性能的主要测试基准包括TP1(Transaction Process 1)和DebitCredit。该类测试基准由于缺少对测试执行过程和综合测评结果的有效监督,易出现测试过程不规范,甚至给出误导性测试结果的情况20世纪80年代末,第一个TPC基准TPC-A发布,对事务处理时限、测试系统终端数量等提出明确要求,澄清了当时混乱的市场,为推动 CPU 的系统级性能测试提供了重要依据。
为直观地展示本文所述通用测试基准的测试重点及主要特性,各类性能基准测试及相关工具的支持语言、编译程序、适配系统、支持的CPU架构及测试侧重点信息,如表1所示。
面临的挑战
总体来看,通用CPU性能基准测试依然面临诸多挑战,具体包括:
(1)适用性问题。随着云计算、人工智能技术的不断发展和工程应用的不断深化,跨硬件、跨平台、跨系统CPU应用场景不断丰富,操作系统的多样性和异构CPU共同发展成为行业发展的必然趋势。但目前的主流CPU性能基准测试工具主要基于传统的X86架构体系发展而来,对应用越来越广泛的异构CPU的适用性受到一定的限制,特别是对于ARM等新兴架构的CPU,受发展周期的影响,其与传统X86架构CPU迭代周期具有一定的差异,各类基准测试程序与异构CPU之间适配环境的全面性仍显不足,缺少历史数据积累导致研发周期较长。此外,数据密集型及计算密集型应用场景,对CPU的晶体管密度、集成度、电路规模、功耗等相关的制造工艺提出更高的要求,测试指标对部分真实场景下的业务的代表性不足,甚至存在AI类的负载、网络IO等版块缺失的情况。
(2)性能优化问题。从测试准确性上看,当前针对核心频率、片内存储等基础指标的CPU性能基准测试能达到一定效果,但针对多节点调度、多核调度、处理器内/间通信能力等指标的测试程序构建和调优仍需加强;部分工具对CPU拓扑识别能力弱,同一种CPU在不同操作系统中的调度策略差异较大。从测试效率上看,CPU的综合性能测试普遍超过48小时。
(3)综合性问题。CPU的发展需要的技术先进性高,但由于受知识产权保护等诸多因素的影响,部分基准测试工具仅对特定的主体开放,使得异构CPU的创新发展面临一定的困难。受早期测试基准的限制,在静态测试、自动化测试、领域基准测试、仿真验证等方面,目前主要依赖现有的基准测试工具,而部分工具支持测试开发所使用的语言单一,拓展能力有限,不利于维护升级,甚至出现编译受阻等兼容性问题,给开发和应用造成了诸多不便,这也在一定程度上影响了基准测试的效果。
总结与展望
本文首先对当前国际主流的CPU基准测试现状进行了综述,并对各类测试基准和工具的功能、算法、应用场景等方面的迭代升级和最新成果进行了分析;然后对当前通用CPU性能指标和基准测试需求进行了梳理,并分析了通用CPU性能基准测试所面临的挑战。目前,CPU性能基准测试工具和算法较早期已取得了较大的进步,满足的测试场景不断丰富,测试精度也有了明显提升,但在适用性、性能优化等方面依然有较大的提升空间。
未来CPU性能基准测试的新研究趋势包括:支持开放架构,提升对windows和Linux等多类型的操作系统及其衍生系统的适配能力,面向X86和ARM等不同架构的CPU研制具有针对性的测试基准,保障异构CPU的兼容性;提升面向新兴ARM架构CPU性能基准测试的体系化发展水平,建立基准簇,并培育可持续运营的基准组织机构,完善统一的综合性测试平台并打造自主“事实”标准,带动芯片制造、融合平台、行业应用的等全链条的一体化发展;丰富工程应用场景,在不断完善单项指标测试能力的同时,针对人工智能运算、大数据分析、大规模分布式等日益丰富的工程应用场景,研发有代表性的综合性测试基准、方法;提升算法效率和准确性,持续优化基准测试算法,构建丰富的测试模型,并综合考虑抗干扰、任务分解、耐久度、计算效能、实用性等较难测试的参数指标,实现CPU基准测试效率和准确性的全面提升。